Erros vêm num envelope JSON estável, com um code interno e uma message
amigável (sem vazar detalhes de infraestrutura):
{ "error": { "code": "invalid_channel", "message": "unknown channel" } }
| Status |
Significado |
O que fazer |
202 Accepted |
mensagem aceita para envio |
ok — acompanhe o resultado via message.status |
200 OK |
leitura bem-sucedida |
— |
201 Created |
recurso criado (ex.: webhook, API key) |
guarde o segredo retornado uma única vez |
204 No Content |
removido/revogado |
— |
400 Bad Request |
corpo não é JSON válido |
corrija o payload |
401 Unauthorized |
API key ausente, inválida ou revogada |
verifique a sua API key |
403 Forbidden |
a API key não tem papel para a ação |
verifique o papel da key |
404 Not Found |
recurso inexistente no seu tenant |
confira o id |
422 Unprocessable Entity |
dados inválidos (canal, destinatário, tipo, URL…) |
veja o code |
429 Too Many Requests |
limite de taxa |
aplique backoff e tente de novo |
500 Internal Server Error |
erro interno |
tente de novo; se persistir, contate o suporte |
502 Bad Gateway |
a Meta recusou a requisição |
veja a mensagem; frequentemente é regra da Meta (janela/template) |
code |
Contexto |
invalid_body |
corpo não era JSON válido |
invalid_channel |
channel desconhecido |
invalid_recipient |
to ausente |
invalid_type |
type ausente |
invalid_url |
URL de webhook não é https válida |
invalid_event_type |
tipo de evento desconhecido no filtro |
invalid_role |
papel inválido para a API key |
invalid_name |
nome obrigatório ausente |
unauthorized |
falha de autenticação |
forbidden |
papel insuficiente |
not_found |
recurso não encontrado |
- Envio: o
202 significa aceito, não entregue. O resultado final chega
como evento message.status no seu webhook.
- Webhooks: o broker re-tenta entregas falhas com backoff; torne seu handler
idempotente pelo
id do evento.