Skip to main content
A chamada foi recusada (4xx/5xx na hora)? Está aqui. A chamada foi aceita (202) e a mensagem falhou depois (FAILED)? Veja Erros de envio.

Formato do erro

Os identificadores de plano em currentPlan e upgradeTo são VOO (Voo) e VOO_ASSISTIDO (Primeira Classe), além de EMBARQUE e ESSENTIAL em contas de planos anteriores. Contas antigas podem trazer FREE, POC, DECOLAGEM, VOO_SOLO, PRO ou ENTERPRISE.

Respostas fora do formato

Trate primeiro pelo status HTTP. Só leia error.code quando error for um objeto.

Autenticação e permissão

Plano, conta e carteira

Os planos atuais não têm limite de templates. Contas no plano Free legado têm teto de 3 templates aprovados e recebem 403 PLAN_LIMIT_REACHED com details.feature = TEMPLATES.

Envio

Recusas antes do envio, em POST /v1/messages, POST /v1/messages/batch e campanhas: Quando a recusa vem de uma falha reconhecida do provedor, error.code é um código ararahq-* e error.details.diagnostic traz whatHappened e howToAct. A lista desses códigos está em Erros de envio.

Recursos

Genéricos

Hoje, header ou parâmetro obrigatório ausente (Idempotency-Key em campanha, count na estimativa, batchId) responde 500 INTERNAL_SERVER_ERROR, não 400.

Recuperação

Quando repetir a chamada

Em toda repetição de envio, mande a mesma Idempotency-Key da primeira tentativa. Sem ela a mensagem pode sair duas vezes. Depois do 202, a Arara repete sozinha as falhas temporárias do provedor. Você não precisa reenviar nesses casos.

Tratamento no cliente

Arquivo completo para Node 18 ou superior, sem dependências. Ele trata corpo vazio, corpo fora do formato e Retry-After.
Quem chama decide o que fazer com cada código:

Próximos passos

Erros de envio

A mensagem foi aceita e falhou depois: causa e solução.

Eventos de webhook

Receba a falha de envio em tempo real.