Messages

Messages

POST /v1/messages (envia template/texto/mídia) e GET /v1/messages/{id} (consulta status).

POST /v1/messages

Envia uma mensagem: template, text ou mídia (image/video/document/audio).

POST /v1/messages 201400401402403404409422429

Headers: Idempotency-Key (opcional, recomendado).

Body (JSON):

{
  "to": "+5511999990000",
  "type": "template",
  "account_id": "ckv...",
  "template": { "name": "boas_vindas", "language": "pt_BR", "components": [] }
}
Campo Tipo Obrigatório Regras
to string Sim E.164. Regex ^\+?[1-9]\d{7,14}$. Normalizado internamente
type enum Sim template | text | image | video | document | audio
account_id string Não Conexão; default = conexão padrão do usuário
template object Não Obrigatório se type=template. { name (≥1), language (≥1), components? }
text object Não Obrigatório se type=text. { body } — 1 a 4096 chars
media object Não Obrigatório para tipos de mídia. { id (≥1), caption? (≤1024), filename? (≤255, só document) }

media.id é o media_id obtido em POST /v1/media.

Checagens pré-envio (nesta ordem)

  1. Conta existe e pertence ao dono da chave → senão 404 ACCOUNT_NOT_FOUND.
  2. Assinatura ACTIVE ou GRACE válida → senão 402 SUBSCRIPTION_REQUIRED.
  3. Cap diário do tier não atingido → senão 429 TIER_DAILY_CAP_REACHED.
  4. Contato não optou por sair → senão 403 CONTACT_OPTED_OUT.
  5. Para não-template: houve inbound do contato nas últimas 24h → senão 409 WINDOW_CLOSED.

Templates aprovados ignoram a janela de 24h. Texto e mídia exigem janela aberta.

Resposta 201

Resposta 201

{
"id": "msg_ckv...",
"meta_message_id": "wamid.HBgM...",
"to": "+5511999990000",
"status": "sent"
}
CampoDescrição
idID interno (consultar em GET /v1/messages/{id})
meta_message_idID da mensagem na Meta (casa com os webhooks)
toTelefone normalizado (E.164)
statusSempre "sent". Mudanças de status chegam via webhook.

Exemplo

curl -X POST https://api.wablastmessage.com/v1/messages \
-H "Authorization: Bearer wak_sua_chave" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 9f1c-7b22-aa01" \
-d '{
  "to": "+5511999990000",
  "type": "text",
  "text": { "body": "Olá! Sua entrega chegou." }
}'

GET /v1/messages/{id}

Consulta o status de uma mensagem.

GET /v1/messages/{id} 200401404429

Path: id (string, obrig.) — ID interno da mensagem.

Resposta 200

Resposta 200

{
"id": "msg_ckv...",
"status": "DELIVERED",
"meta_message_id": "wamid.HBgM...",
"sent_at": "2026-06-22T14:03:11.000Z",
"error_code": null,
"error_message": null,
"created_at": "2026-06-22T14:03:10.000Z"
}

statusSENT | DELIVERED | READ | FAILED. error_code/error_message preenchidos só em falha.

Pular para o conteúdo