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, remetente ambíguo no body, 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 provedor de e-mail 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.

Publicação e sincronização de templates (API v1)

Endpoints: POST /v1/whatsapp/instances/{instanceId}/meta/push-template (publicar) e POST .../meta/sync-templates (preview/apply). Todas as falhas retornam { success: false, error, message, code } com message localizado via Accept-Language / x-locale. Lista completa dos códigos de publicação na seção Templates abaixo (TEMPLATE_*, GUPSHUP_*, META_TEMPLATE_CREATE_FAILED, …).

Lista completa de enums (code)

Todos os 307 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