Skip to main content
Rotas sob /v1/* retornam erros em JSON padronizado. Rotas de dashboard e autenticação podem usar formato NestJS clássico (statusCode, message).

Envelope de erro (API pública)

Não existe enum fixa BAD_REQUEST no campo code. Use error.statusCode e message na lógica do integrador.

Status HTTP frequentes

Códigos de domínio (trilho)

Respostas 403 ou 409 podem incluir mensagens relacionadas a:

Validação de body

Campos inválidos retornam 400 com mensagem agregada. Exemplos:
  • amount abaixo do mínimo da operação
  • description com menos de 3 caracteres
  • splitUser sem splitTax (ou vice-versa)
  • pixKey ausente quando não há pixCopyPaste

Prisma e conflitos

Violação de unicidade no banco (P2002) mapeia para 409 Conflict.

Rate limiting

429 com corpo simplificado. Veja Rate limiting.

OAuth 2.0

Rotas em /oauth/* e /.well-known/oauth-authorization-server seguem RFC 6749 — resposta JSON sem envelope { success, message, data }. Na API /v1/* com bearer OAuth:

Boas práticas

Registre sempre requestId nos logs do seu servidor ao tratar erros 5xx.
Não interprete mensagens em português como API estável: prefira statusCode e campos estruturados em data nas respostas de sucesso.
Em webhooks inbound para seu servidor, valide assinatura antes de processar. Erros de parsing devem retornar 4xx apenas quando o payload for inválido; duplicatas devem retornar 200.