Quando um pagamento falha, o Dodo Payments informa por quê através de um
error_code padronizado e um error_message legível para humanos. Este guia mostra como ler esses campos, decidir se vale a pena tentar novamente e recuperar o pagamento sem expor informações sensíveis aos clientes.Como o Dodo Payments Relata uma Falha
Todo pagamento falho — seja uma compra única ou uma renovação de assinatura — possui os mesmos campos de falha no objeto de pagamento:error_code e error_message são null até que um pagamento realmente falhe. Sempre verifique primeiro status, depois leia os campos de erro.O webhook payment.failed
A maneira mais confiável de detectar uma falha é o webhook payment.failed. O evento inclui o objeto de pagamento completo em data:
payment.failed payload
error_code e define o fluxo com base nele:
Decida se deve tentar novamente: recusas temporárias vs. permanentes
Oerror_code informa se vale a pena tentar novamente com o mesmo método de pagamento.
A referência de Transaction Failures lista o tipo de recusa e a ação recomendada para cada
error_code.
Como lidar com falhas no checkout e na renovação
A forma de recuperação depende de o cliente estar presente.- At checkout (customer present)
- On subscription renewal (customer not present)
O cliente está realizando o checkout ativamente. Exiba uma mensagem clara e permita que ele tente novamente imediatamente ou use outro cartão.
requires_payment_method— o cliente nunca forneceu um método de pagamento: não inseriu os dados do cartão ou recebeu uma solicitação para informá-los, mas não tomou nenhuma ação. Geralmente, isso é um abandono no checkout, não uma recusa — reengaje o cliente para concluir o pagamento (consulte Recuperação de carrinho abandonado).requires_customer_action— é necessária uma autenticação adicional (como 3DS); peça ao cliente que a conclua. Consulte Como lidar com o 3D Secure.
Tentar novamente um pagamento com falha
- Assinaturas: ative Subscription Payment Retries para recuperar recusas temporárias sem trabalho de integração. Você também pode acionar a recuperação fazendo com que o cliente atualize o método de pagamento por meio da Update Payment Method API, que cobra quaisquer valores pendentes.
- Pagamentos avulsos: reenvie o checkout ou
payment_linkpara que o cliente possa tentar novamente com outro método. Não há tentativa automática para pagamentos avulsos.
Exibir erros aos clientes com segurança
Exiba uma mensagem amigável para os clientes — nunca oerror_code bruto e nunca o error_message voltado ao merchant.
Nas superfícies controladas pela Dodo Payments — checkout, o Customer Portal e os e-mails de cobrança — esse mapeamento já é feito para você, incluindo o fallback para uma mensagem genérica em caso de recusas relacionadas a fraude. Você só precisa do mapeamento abaixo quando exibir falhas no seu próprio produto.
Customer-facing messaging
Relacionados
Transaction Failures
Cada código de recusa, seu tipo e a ação recomendada.
Error Codes
Erros de API e de lógica de negócios que não são recusas de cartão.
Subscription Payment Retries
Recuperação automática de recusas temporárias em renovações de assinaturas.
Subscription Dunning
Sequências de e-mails que recuperam recusas permanentes.
Payment Webhooks
Esquema completo do payload para eventos de pagamento.
Testing Failures
Cartões de teste que simulam recusas e falhas de renovação.