Dicionário de Erros

A Legacy padroniza todos os erros em um formato consistente, ocultando detalhes técnicos internos das adquirentes. Isso garante que sua integração possa tratar erros de forma clara e previsível, independente do provedor subjacente.


Formato padrão de erro

Toda requisição que resultar em falha retorna um objeto com a seguinte estrutura:

{
  "error": "NOME_DO_ERRO",
  "message": "Descrição legível do motivo da falha.",
  "statusCode": 400
}
CampoTipoDescrição
errorstringCódigo constante e identificável do erro
messagestringExplicação amigável e detalhada para o desenvolvedor
statusCodeintegerCódigo HTTP associado à resposta

Códigos HTTP utilizados

StatusQuando ocorre
400 Bad RequestDados inválidos ou regra de negócio violada
401 UnauthorizedCredenciais ausentes ou inválidas
403 ForbiddenAcesso negado — KYC não aprovado, empresa bloqueada ou requisição via browser
404 Not FoundRecurso não encontrado para o ID informado
422 Unprocessable EntityDados estruturalmente válidos mas semanticamente inaceitáveis
500 Internal Server ErrorErro interno inesperado na plataforma
502 Bad GatewayFalha ou rejeição temporária de uma adquirente parceira

Erros em Payins

Retornados quando a cobrança não pode ser criada ou processada.

CódigoStatus HTTPSignificado
INVALID_DATA400Campos inválidos na requisição — telefone, CEP, CPF ou outros dados com formato incorreto
PAYER_LIMIT_REJECTED400Limite insuficiente no cartão ou bloqueio temporário imposto pela administradora
REJECTED_BY_RISK400Negado pelo sistema antifraude devido a pontuação de risco elevada do IP, documento ou padrão da transação
INVALID_CVV400Código de segurança do cartão incorreto
PROVIDER_ERROR502A adquirente recusou sem expor o motivo específico

Como tratar

  • INVALID_DATA: Revise os campos enviados e valide CPF, telefone e CEP no seu front-end antes da requisição.
  • PAYER_LIMIT_REJECTED: Informe o cliente para tentar outro cartão ou aguardar o desbloqueio pela administradora.
  • REJECTED_BY_RISK: Não exponha ao cliente que foi o antifraude — use uma mensagem genérica de "pagamento não autorizado".
  • PROVIDER_ERROR: Implemente uma retentativa com backoff exponencial. Se persistir, tente uma adquirente alternativa.

Erros em Payouts

Retornados quando o saque não pode ser criado ou processado.

CódigoStatus HTTPSignificado
INVALID_PIX_KEY400Chave PIX inválida ou não encontrada no DICT do Banco Central
TEMPORARY_UNAVAILABLE502Saldo indisponível na adquirente temporariamente
BEYOND_LIMITS400Valor excede o limite permitido para esse horário (comum para valores altos após às 20h)
PROVIDER_REJECTED502A instituição bancária rejeitou a transferência por motivo não documentado no SPB

Como tratar

  • INVALID_PIX_KEY: Valide o formato da chave antes de enviar (CPF, CNPJ, EMAIL, PHONE ou EVP) e informe ao usuário para verificar a chave digitada.
  • TEMPORARY_UNAVAILABLE: Tente novamente em 5 a 10 minutos. Se persistir por mais de 1 hora, acione o suporte.
  • BEYOND_LIMITS: Reduza o valor da transação ou tente novamente no horário comercial.
  • PROVIDER_REJECTED: Verifique se a chave PIX pertence a uma conta ativa. O saldo será estornado automaticamente via webhook.

📘

Dica para produção

Monitore os webhooks com status FAILED e REFUSED em Payouts — eles indicam que o saldo foi devolvido à sua conta e a transferência precisa ser refeita. Consulte o guia de Webhooks para entender o fluxo completo.