Skip to main content
Erro na API é o semáforo vermelho do caminho: o HTTP diz a gravidade e o code diz o que parou. Trate pelo code, não pela mensagem em texto livre.

O que é uma resposta de erro?

Quando algo dá errado, a API responde com um código HTTP e um campo code estável no JSON. Use os dois para decidir se corrige o pedido, tenta de novo ou avisa o usuário. Pense como o painel do carro: a luz acende (HTTP) e o manual diz o problema (code).

Para que serve?

Com as respostas de erro você pode:
  • Automatizar tratamento no seu código (retry, mensagem ao usuário, alerta interno)
  • Depurar mais rápido com Logs da API
  • Evitar depender de texto traduzido em message

Formato padrão

Em toda a API v1, erros vêm assim:
Em templates, erros de variável podem trazer também missingVariables (chaves {{…}} que faltaram) e details (array { field, message } por campo).
Desde jul/2026 todos os erros HTTP da API v1 incluem code + message. Integrações antigas que só liam message devem migrar para code.

Códigos HTTP mais comuns

Campo faltando, formato inválido, roteamento conflitante (instanceId + sendingPoolId juntos), etc. Corrija o body e tente de novo.
Header errado, chave revogada ou expirada. Confira Authorization: Bearer sk_.... Em linha oficial WhatsApp, token Meta expirado/inválido também pode vir como 401 com META_TOKEN_EXPIRED / META_TOKEN_INVALID (chave ok; reconecte a instância).
Trial acabou, saldo zerado ou teto da chave estourado. Recarregue, faça upgrade ou ajuste o limite da chave.
Escopo faltando, recurso fora da lista da chave ou operação bloqueada. Ajuste escopos ou restrições da chave.
ID errado, instância inativa ou recurso de outro workspace. Confira o ID na URL ou no body.
Recurso duplicado ou estado inválido (ex.: apagar instância ativa; domínio de e-mail já cadastrado, EMAIL_DOMAIN_ALREADY_REGISTERED). Use o existente ou mude o estado antes.
O pedido está bem formado, mas o provedor externo recusou a operação. Em POST /v1/email/domains, domínio bloqueado por antispam ou recusa do ZeptoMail/SES retorna EMAIL_DOMAIN_PROVIDER_ANTISPAM ou EMAIL_DOMAIN_PROVIDER_REJECTED. Trate pelo code; use message (traduzido) para o usuário final.
Rate limit da API, limite diário do sandbox (SANDBOX_DAILY_LIMIT) ou limite diário do Trust Factor (TRUST_DAILY_LIMIT). Espere, reduza volume ou melhore a pontuação do workspace. Veja Trust Factor.
Instância desconectada ou falha temporária no provedor. Tente de novo em alguns minutos. No registro de domínio de e-mail, indisponibilidade do provedor usa EMAIL_DOMAIN_PROVIDER_UNAVAILABLE (502 ou 503). Não confunda com antispam (422).

Situações especiais

Alguns fluxos não seguem o padrão “HTTP de erro”. Vale guardar estes casos:

Verificar domínio de e-mail (POST /v1/email/domains/:id/verify)

Escopos: email:domains:list ou email:domains:create.

Denúncias FELCA (POST /v1/report)

Endpoint público (sem API Key). Erros seguem o mesmo envelope success: false com code. Guia completo: API de denúncias (FELCA).

Download de mídia WhatsApp inbound

GET /v1/whatsapp/messages/inbound/{id}/media/download ou POST .../media. Escopo whatsapp:read. Tipos: image, audio, document, video, sticker (instância QR). Veja Mensagens recebidas e respostas.

Download de mídia Telegram inbound

GET /v1/telegram/messages/inbound/{id}/media/download ou POST .../media. Escopo telegram:read. Tipos: image, audio, video, document, sticker (Bot e User/QR).

Download de mídia Instagram inbound

GET /v1/instagram/messages/inbound/{id}/media/download ou POST .../media. Escopo instagram:read. Tipos: image, video, audio/voice.

Sending Pools (WhatsApp)

Guia: Sending Pools. Campanhas com pool: CAMPAIGN_SENDING_POOL_INVALID (seção Campanhas abaixo).

Proteção de número (WhatsApp)

Guia: Política anti-banimento.

Grupos (WhatsApp, não oficial)

Guia: Grupos. Só instância não oficial.

Linha oficial Meta (WhatsApp)

Guia: Templates oficiais Meta. Em sk_live_ os gates Meta rodam; no sandbox (sk_test_) não. TEMPLATE_NOT_ALLOWED_FOR_INSTANCE e TEMPLATE_META_STRUCTURE_REQUIRES_OFFICIAL estão na seção Templates abaixo.

Lista completa de enums (code)

Todos os 245 valores code públicos retornados pela API v1. Enums internos da plataforma não entram aqui. Expanda cada seção para ver a tabela. Para o request exato que gerou o erro, abra Logs da API.

Próximos passos