Skip to main content
Auth: TokenAccount ou TokenInstanceRate-limit: Global (100/min) • Idempotente: não O módulo /api/message/* cobre o envio de todos os formatos suportados pelo WhatsApp, texto, mídias, sticker, localização, contato, reação, enquete, carrossel, botões, lista, formulário, PIX e status (stories). Todas as rotas validam ownership da instância e aceitam TokenAccount ou TokenInstance.
Para buscar uma mensagem por ID use GET /api/chat/getMessage/:instance, esse endpoint deixou de pertencer ao módulo de mensagens.

Endpoints disponíveis

Estrutura comum

Destinatário (number ou to)

A maioria dos endpoints aceita o destinatário no campo number. Os formatos suportados são:
  • Número simples: "5511999999999" (preferido).
  • JID privado: "5511999999999@s.whatsapp.net".
  • JID oculto (@lid): "123456789012345@lid", identificador anônimo usado pelo WhatsApp em grupos/canais quando o número real não está exposto.
  • JID grupo: "120363406289005073@g.us".
  • JID newsletter: "120363422585881117@newsletter".
  • Status broadcast: "status@broadcast".

Comportamento brasileiro do número

Para números começando com 55 (Brasil), o serviço tenta automaticamente variações:
  • Com 9 (5511999999999)
  • Sem 9 (551199999999)
Isso resolve um histórico de inconsistências em DDDs antigos. Se o número não for encontrado em nenhuma das variações, o handler retorna 400 Number is not registered on WhatsApp.

Campos opcionais comuns

delay é em segundos (não milissegundos). Valor 3 = 3 s de “digitando”.
Reactions (/api/message/reaction/:instance) não suportam delay/replyTo/mention, o payload é mínimo (messageId, reaction, participant). Status (/api/message/status/:instance) também não usa number/replyTo (sempre vai para status@broadcast).

Resposta padrão (200)

Todos os endpoints de envio retornam o mesmo envelope MessageSentDetails:
Campos opcionais no data: mentions (quando há menção), replyTo (quando há citação), chat.groupName (quando é grupo), mediaUrl/mediaMimeType/mediaSize/fileName (quando é mídia), vcard (quando é contato). statussent | disconnected | invalid_number | mentions_not_supported | reply_message_not_found | reply_message_instance_mismatch | private_reply_failed | send_failed | media_download_failed | media_upload_failed | media_validation_failed | unsupported_media_type | image_conversion_failed | sticker_upload_failed | audio_conversion_failed | invalid_message_id | missing_participant | invalid_request.

Erros comuns

Envelope de erro:

Limites observados

Próximos passos

Enviar texto

Endpoint mais usado, ideal como “Hello World”.

Enviar mídia

Imagem, vídeo, áudio e documento por URL ou base64.

Buscar mensagem por ID

Recupera uma mensagem específica do histórico.

Webhooks

Recebe eventos message.exchange em tempo real.