Erros

{
  "error": {
    "code": "meta_error",
    "message": "Meta limitou mensagens de marketing: …",
    "details": {
      "meta_code": "131049",
      "meta_message": "…",
      "action": "Não reenvie agora…",
      "temporary": true
    },
    "request_id": "req_8f2c…"
  }
}
unauthorized401Cabeçalho Authorization ausente ou mal formatado.
invalid_key401Chave inexistente ou revogada.
key_expired401A chave passou da validade.
ip_not_allowed403IP fora da lista permitida da chave.
plan_not_allowed403O plano da conta não inclui API/webhooks.
key_owner_inactive403Quem criou a chave deixou de ser owner/admin.
insufficient_scope403A chave não tem o escopo exigido.
operation_read_only403Operação suspensa, arquivada ou com teste expirado.
plan_limit403Limite do plano atingido (contatos, listas, campanhas…).
not_found404Recurso inexistente nesta operação.
validation_error422Dados inválidos; veja details.issues.
rule_violation422Regra do CRM impediu a ação (opt-out, WABA de outra operação…).
contact_opted_out422O contato fez opt-out.
meta_error502A Meta recusou; details.meta_code, meta_message e action explicam.
idempotency_mismatch422Idempotency-Key reutilizada com outro corpo.
idempotency_in_progress409A primeira requisição com esta chave ainda não terminou.
rate_limited429Limite por minuto atingido; respeite Retry-After.
flow_invalid422Fluxo com problemas; veja details.issues.
shared_flow409Fluxo de acesso compartilhado: altere pelo CRM.
invalid_state409Ação não permitida no estado atual.
disconnected409Número desconectado do CRM; reconecte.
conflict409Registro duplicado.
internal_error500Erro inesperado; informe o request_id.