Pular para o conteúdo

Enviar texto

Envia uma mensagem de texto para um número ou grupo. Suporta emojis e quebras de linha. A resposta é assíncrona: retorna 202 na hora e o status final chega por webhook.

POSThttps://api.zapdev.com.br/v1/messages/text

Envie um objeto JSON. O token no header Authorization identifica a instância que envia, veja Autenticação.

Campo Tipo Descrição
to (obrig.) string Número em E.164 (5511999990000) ou JID de grupo (...@g.us)
text (obrig.) string Conteúdo da mensagem. Aceita emojis e \n.

Requisição

cURL
curl -X POST https://api.zapdev.com.br/v1/messages/text \
-H "Authorization: Bearer zd_live_..." \
-H "Content-Type: application/json" \
-H "X-Idempotency-Key: <uuid-v4>" \
-d '{
"to": "5511999990000",
"text": "Olá! Sua mensagem chegou. 👋"
}'

202 Accepted: a mensagem foi aceita e enfileirada. O status evolui depois via webhook (queued → sent → delivered → read).

Campo Tipo Descrição
id string Identificador da mensagem. Use para rastrear o status.
status string Estado inicial. Sempre queued nesta resposta.

Resposta

202 Accepted
{
"data": {
"id": "msg_3Hb9aZ2kQ",
"status": "queued"
}
}
HTTP error.code Quando
401 invalid_token token ausente ou inválido
422 instance_not_connected instância sem WhatsApp conectado
400 invalid_phone_number número em formato inválido
429 rate_limit_exceeded acima de 100 req/min na instância

Envelope completo em Erros.

O campo to também aceita o JID de um grupo (...@g.us), o corpo é idêntico:

Texto para grupo
curl -X POST https://api.zapdev.com.br/v1/messages/text \
-H "Authorization: Bearer zd_live_..." \
-H "Content-Type: application/json" \
-d '{ "to": "1203...@g.us", "text": "Bem-vindos ao grupo! 🎉" }'

message.sent · message.delivered · message.read · message.failed, veja Webhooks.