Mensagens
Enviar Texto
Envia mensagem de texto com suporte a delay, link preview, reply, reply privado e menções
POST
Enviar Texto
Auth:
Envelope de erro:
TokenAccount ou TokenInstance • Rate-limit: Global (100/min) • Idempotente: não
Descrição
Envia uma mensagem de texto a um contato 1-a-1, grupo (@g.us) ou canal (@newsletter). Suporta replyTo (citação por ID), replyPrivate (responder no privado a partir de uma mensagem de grupo), mention / mentionAll (apenas em grupos), linkPreview e delay (em segundos) para simular digitação real. É o endpoint mais usado e serve como “Hello World” para validar que a instância está conectada.
Exemplos
Mínimo
Envia uma mensagem de texto com o payload mínimo (number + message). Sem delay, sem preview, sem citação, útil como “Hello World” para validar que a instância está conectada.
Com delay e link preview
Envia indicador de “digitando…” por 3 segundos e depois envia a mensagem com prévia da URL detectada.Como resposta
Cita uma mensagem existente (replyTo recebe o messageId da mensagem original). A mensagem original precisa pertencer à mesma instância e ter sido salva no banco (qualquer mensagem trafegada via webhook/envio é salva automaticamente).
Como resposta no privado (grupo)
Quando alguém manda uma mensagem em um grupo e você quer responder no privado dessa pessoa (sem retornar a resposta para o grupo), usereplyPrivate: true. O number deve apontar para o JID do grupo onde a mensagem original foi enviada, o servidor extrai o autor original e redireciona a resposta para o privado dele, mantendo a citação.
Com menção a membro(s) (grupo)
Adiciona menção visível com@5511... no corpo da mensagem e lista os números no array mention. O texto e o array precisam estar consistentes, o WhatsApp só transforma em link clicável o que estiver no mention.
Menção oculta (grupo)
Faz ping em todos os membros do grupo sem precisar listar @s no texto, usandomentionAll: true. O texto exibido fica limpo, mas os participantes recebem a notificação de menção. Útil para anúncios silenciosos. Para mencionar pessoas específicas de forma oculta, basta usar mention: ["..."] sem colocar @número no texto, eles também recebem a notificação sem aparecer marcados.
Resposta de sucesso
A resposta inclui omessageId (use-o em replyTo para citar essa mensagem em envios futuros), o direction: "outgoing" e a marcação de chat/sender. Os campos mentions e replyTo só aparecem quando aplicáveis, e chat.groupName é incluído em mensagens de grupo.
200 OK
Parâmetros de rota
Nome da instância (ex.:
$Instance_Name).Headers
TokenAccount ou TokenInstance.application/jsonRequest body
Destino: telefone (
5511999999999) ou JID (@s.whatsapp.net, @lid, @g.us, @newsletter).Corpo do texto. Não pode estar vazio.
Tempo em segundos para aguardar antes de enviar. Durante o intervalo, o servidor envia o indicador de “digitando…” ao destinatário e dispara o “paused” antes do envio real.
Quando
true, o servidor extrai a primeira URL do message, busca os metadados Open Graph (título, descrição, thumbnail) e envia a mensagem como ExtendedTextMessage com o card de preview embutido. Quando false ou omitido, a URL aparece como texto simples.ID da mensagem a ser citada (reply). A mensagem original precisa pertencer à mesma instância e ter sido salva no banco. Erros possíveis:
reply_message_not_found, reply_message_instance_mismatch.Quando
true e replyTo aponta para uma mensagem originária de um grupo, a resposta é redirecionada para o privado do autor original (mantendo a citação). Útil para responder dúvidas individualmente sem poluir o grupo. Ignorado se a mensagem original não for de grupo.Lista de números (ou JIDs) a mencionar. Apenas em grupos (
@g.us). Limite de 10 menções por mensagem, números excedentes são ignorados com warning. Para que apareçam como link clicável, inclua @5511... no message. Sem isso, viram menções ocultas (apenas notificam).Quando
true, menciona todos os membros do grupo (exceto a própria instância). Equivale ao @todos/@everyone. O servidor consulta a lista de participantes e injeta cada JID no MentionedJID do contexto, sem alterar o texto exibido. Apenas em grupos.Identificador de origem para rastreabilidade (ex.:
crm, bot-suporte, n8n). Salvo no registro da mensagem no banco e propagado para webhooks. Quando omitido, assume "api".Notas
delayé em segundos (diferente de muitas APIs que usam ms). Valor3= 3 segundos de “digitando”.- Em grupos, o texto com
@5511...por si só não vira clickable, é o arraymentionque o WhatsApp processa. Mantenha os dois consistentes. mentionementionAllsão exclusivos a grupos. Se enviados para DM/canal, retorna400 Mentions are only supported in group chats.- Para números BR (começando com
55), o serviço tenta automaticamente variações com e sem o 9º dígito, evitando o histórico de inconsistências em DDDs antigos. linkPreviewrequer que o servidor consiga buscar os metadados Open Graph da URL, sites com bloqueio de bots podem cair no fallback de texto simples sem erro visível.- Mensagens enviadas via
replyPrivate: trueaparecem no privado do destinatário com o card da mensagem citada do grupo, ele consegue ver de qual conversa veio.
Erros
| HTTP | Status interno | Mensagem |
|---|---|---|
| 400 | , | Instance name is required |
| 400 | , | Invalid request body: <detalhe> |
| 400 | , | Number is required |
| 400 | , | Message is required |
| 400 | invalid_number | Invalid phone number format: <detalhe> |
| 400 | mentions_not_supported | Mentions are only supported in group chats |
| 400 | reply_message_not_found | Original message not found (ID: ...) |
| 400 | reply_message_instance_mismatch | Original message does not belong to this instance |
| 400 | private_reply_failed | (motivo do erro de redirecionamento privado) |
| 404 | , | Instance not found |
| 500 | send_failed | Failed to send message: <reason> |
| 503 | disconnected | Instance is not connected to WhatsApp |