Enviando sua Primeira Mensagem

Pré-requisitos

  • Uma conta no Muchaw DEV com uma chave de API
  • Um número de WhatsApp com status: ACTIVE (veja o Quickstart)
  • O número de telefone do destinatário deve ter o WhatsApp instalado

Passo 1 — Encontre o ID do seu número

$curl "https://dev.muchau.com.br/api/numbers?status=ACTIVE" \
> -H "Authorization: Bearer $MUCHAW_API_KEY"

Copie o id do número a partir do qual você quer enviar.

Passo 2 — Envie uma mensagem de texto

$curl -X POST https://dev.muchau.com.br/api/messages/send \
> -H "Authorization: Bearer $MUCHAW_API_KEY" \
> -H "Content-Type: application/json" \
> -d '{
> "number_id": "<SEU_NUMBER_ID>",
> "to": "5511999990000",
> "type": "text",
> "text": { "body": "Olá! Seu pedido #1234 está pronto." }
> }'

Resposta bem-sucedida:

1{
2 "id": "msg_01j...",
3 "wa_message_id": "wamid.HBgL...",
4 "status": "sent"
5}

Passo 3 — Evite envios duplicados (opcional)

Adicione o header Idempotency-Key para fazer retry seguro em requisições com falha:

$curl -X POST https://dev.muchau.com.br/api/messages/send \
> -H "Authorization: Bearer $MUCHAW_API_KEY" \
> -H "Content-Type: application/json" \
> -H "Idempotency-Key: pedido-1234-notificacao-v1" \
> -d '{
> "number_id": "<SEU_NUMBER_ID>",
> "to": "5511999990000",
> "type": "text",
> "text": { "body": "Seu pedido #1234 está pronto." }
> }'

Se você chamar este endpoint novamente com o mesmo Idempotency-Key dentro de 24 horas, você receberá a resposta original sem enviar uma mensagem duplicada.

Enviando diferentes tipos de mensagem

Mensagem de template

Templates precisam ser pré-aprovados pela Meta. Use-os para a primeira mensagem a um usuário (fora de uma janela de conversa).

1{
2 "number_id": "<SEU_NUMBER_ID>",
3 "to": "5511999990000",
4 "type": "template",
5 "template": {
6 "name": "confirmacao_pedido",
7 "language": { "code": "pt_BR" },
8 "components": [
9 {
10 "type": "body",
11 "parameters": [
12 { "type": "text", "text": "1234" }
13 ]
14 }
15 ]
16 }
17}

Mensagem de imagem

1{
2 "number_id": "<SEU_NUMBER_ID>",
3 "to": "5511999990000",
4 "type": "image",
5 "image": {
6 "link": "https://seu-cdn.com/recibo-1234.png",
7 "caption": "Seu recibo"
8 }
9}

Mensagem de documento

1{
2 "number_id": "<SEU_NUMBER_ID>",
3 "to": "5511999990000",
4 "type": "document",
5 "document": {
6 "link": "https://seu-cdn.com/nota-fiscal-1234.pdf",
7 "filename": "nota-fiscal-1234.pdf",
8 "caption": "Nota Fiscal #1234"
9 }
10}

Tratando erros

Status HTTPCódigo de erroSignificado
401UNAUTHORIZEDChave de API inválida ou revogada
403FORBIDDENO número pertence a uma conta diferente
404NOT_FOUNDID do número não encontrado
422VALIDATION_ERRORCampos ausentes ou inválidos no corpo da requisição
1{
2 "error": {
3 "code": "NOT_FOUND",
4 "message": "Number not found",
5 "status": 404
6 }
7}

Acompanhe o status de entrega

Verifique o status da mensagem após o envio:

$curl "https://dev.muchau.com.br/api/messages/<msg_id>" \
> -H "Authorization: Bearer $MUCHAW_API_KEY"

Ou configure um webhook para os eventos message.delivered e message.read para atualizações em tempo real.