escopo: messages:send
Envia uma mensagem de texto via WhatsApp (UAZAPI ou Meta Cloud).
Modelo de envio
{
"to": "5548999990000",
"message": "Olá! Seu pedido foi confirmado.",
"connection_id": "<opcional — UUID da conexão>"
}Resposta (200)
{
"success": true,
"data": {
"wamid": "<id-da-meta-ou-provider>",
"provider": "uazapi",
"message_id": "<uuid>",
"contact_id": "<uuid>"
}
}Erros
| Status | Código | Quando ocorre |
|---|---|---|
| 400 | MISSING_FIELD | Campo obrigatório ausente no corpo (to, message) |
| 400 | INVALID_PHONE | Número de telefone não pôde ser normalizado |
| 403 | CONTACT_OPTED_OUT | Contato pediu para não receber mensagens (opted_out_at) |
| 403 | CONTACT_BLOCKED | Contato bloqueado |
| 403 | EXTERNAL_AI_DISABLED | IA externa desligada para o contato (o operador assumiu o atendimento). Só volta quando alguém religar pelo menu de IA no inbox; templates por /api/v1/send/template não são afetados |
| 404 | NOT_FOUND | connection_id enviado não pertence à empresa |
| 502 | PROVIDER_ERROR | Falha no envio pelo provedor (UAZAPI/Meta) |
| 503 | CONTACT_STATE_UNAVAILABLE | Não foi possível ler o estado do contato (indisponibilidade transitória) — re-tente após Retry-After; não é um estado do contato |
Exemplo
curl -s -X POST -H "Authorization: Bearer <sua-key>" -H "Content-Type: application/json" \
-d '{"to":"5548999990000","message":"Olá! Seu pedido foi confirmado.","connection_id":"<opcional — UUID da conexão>"}' \
https://www.prosalab.com/api/v1/send/message