Tratamento de Erros

Formato de resposta de erro e códigos de erro comuns.

Formato de Erro

Todo erro inclui uma mensagem error e um code:

Resposta de erro
{
  "error": "Mensagem curta legível por humanos",
  "code": "ERROR_CODE"
}

Erros de validação incluem detalhes adicionais:

Erro de validação
{
  "error": "Validação falhou",
  "code": "VALIDATION_ERROR",
  "errors": [
    { "path": "/body/name", "message": "deve ser string" }
  ]
}

Códigos de Erro Comuns

StatusCódigoDescrição
400VALIDATION_ERRORCorpo da requisição ou parâmetros inválidos.
401UNAUTHORIZEDChave de API ausente ou inválida.
402INSUFFICIENT_BALANCECréditos insuficientes para a operação.
402PAYMENT_FAILEDPagamento de ativação da empresa falhou.
403FORBIDDENEmpresa não está ativa.
404NOT_FOUNDRecurso não existe.
409ALREADY_PROCESSEDAtivação já processada.
409CONVERSATION_CLOSEDConversa não está mais ativa.
500INTERNAL_ERRORErro inesperado do servidor.

Tratando Erros 402

Se receber INSUFFICIENT_BALANCE, o plano da empresa não cobre a ação e não há créditos pré-pagos suficientes. Compre créditos via POST /api/companies/credits/purchase e tente novamente.

Boas Práticas

  • Sempre verifique o campo code, não o status HTTP, para tratamento programático de erros.
  • Registre a resposta de erro completa para depuração.
  • Apresente a mensagem error aos usuários quando apropriado.
  • Implemente lógica de retry com backoff exponencial para erros 500.