Códigos de Erro

Todos os erros da API seguem um formato padronizado com código, mensagem e request ID para rastreamento.

Formato de Erro

Resposta de erro padrãojson
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Token de autenticação expirado",
    "statusCode": 401,
    "timestamp": "2026-02-15T12:00:00.000Z",
    "path": "/v1/auth/me",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Códigos de Status HTTP

StatusCódigoDescrição
200OKRequisição bem-sucedida
201CREATEDRecurso criado com sucesso
204NO_CONTENTOperação bem-sucedida sem corpo
400BAD_REQUESTDados inválidos ou malformados
401UNAUTHORIZEDToken ausente, inválido ou expirado
403FORBIDDENSem permissão para o recurso
404NOT_FOUNDRecurso não encontrado
409CONFLICTConflito (ex: email duplicado)
422UNPROCESSABLE_ENTITYErro de validação nos dados
429TOO_MANY_REQUESTSRate limit excedido
500INTERNAL_ERRORErro interno do servidor

Erros de Validação

Quando há erros de validação (422), o campo details contém a lista de problemas:

Erro de validaçãojson
{
  "success": false,
  "error": {
    "code": "BAD_REQUEST",
    "message": "Erro de validação",
    "statusCode": 400
  },
  "details": [
    "email must be an email",
    "password must be longer than or equal to 8 characters",
    "fullName must be longer than or equal to 2 characters"
  ]
}

Códigos Especiais

TOKEN_EXPIREDO access token expirou. Use o refresh token para obter um novo.
INVALID_TOKENToken JWT malformado ou com assinatura inválida.
DATABASE_ERRORErro ao processar dados (unique constraint, foreign key, etc.)

Modo Produção

Em produção, mensagens de erro detalhadas são ocultadas por segurança. Apenas o código e uma mensagem genérica são retornados. Use o requestId para rastrear erros nos logs do servidor.