Pular para o conteúdo principal

Erros

Todo erro usa o mesmo envelope JSON — programe seu handler uma vez:

{
"statusCode": 400,
"error": "Bad Request",
"message": "Validation failed",
"fieldErrors": { "amount": ["must be greater than 0"] },
"requestId": "a7b8c9d0-e1f2-4345-9012-345678901234"
}
  • fieldErrors aparece em 400 (validação) — mostre ao usuário, não repita o request.
  • requestId vem em todo erro (e no header x-request-id) — cite ao falar com o suporte.

Status

CódigoSignificadoAção
400Validação ou regra de negócioCorrija o corpo (veja message/fieldErrors). Não repita igual.
401Chave de API inválida/ausenteVerifique o header apikey.
403Bloqueio antifraude/velocity (fraud.*)Revise o cliente ou contate o suporte.
404Recurso não encontradoVerifique o id.
409idempotencyKey reusada com corpo diferenteUse uma chave nova.
429Rate limitFaça backoff com jitter.
5xxErro interno PagNowReenvie com a mesma idempotencyKey.
observação

Regras de negócio (moeda não habilitada, valor abaixo do mínimo, CPF/CNPJ inválido, chave PIX inválida) são retornadas como 400 com uma message explicativa — não há um 422 separado.