Vue d’ensemble
Dodo Payments renvoie une raison détaillée de l’échec chaque fois qu’une tentative de paiement échoue. Ces raisons sont standardisées entre les moyens de paiement et les prestataires, afin que vous puissiez mettre en œuvre une gestion cohérente dans votre application. Lorsqu’un paiement échoue, le webhookpayment.failed et l’objet de paiement exposent :
error_code— une raison d’échec standardisée issue du tableau ci-dessous.error_message— une explication lisible par l’utilisateur.retry_attempt—0pour le prélèvement initial,1ou plus pour chaque nouvelle tentative planifiée de renouvellement d’un abonnement.
Handle Payment Failures
Guide développeur étape par étape pour lire ces codes depuis les webhooks et l’API, les présenter aux clients et déterminer quand effectuer une nouvelle tentative.
Refus temporaires et définitifs
Chaque code d’échec appartient à l’une de deux catégories. Cette distinction détermine si vous devez réessayer avec le même moyen de paiement ou demander au client d’en utiliser un nouveau.
Pour les renouvellements d’abonnement, Dodo Payments applique automatiquement cette distinction : les refus temporaires font l’objet de nouvelles tentatives via Nouvelles tentatives de paiement d’abonnement, tandis que les refus définitifs interrompent immédiatement la chaîne de tentatives et sont mieux gérés avec Relances d’abonnement.
Raisons des échecs de transaction
Le tableau suivant répertorie chaque code d’échec, son type de refus, la possibilité pour le client de le résoudre, sa description et l’action recommandée.Erreur utilisateur indique si le refus du paiement peut être résolu par le client. Lorsque
Yes, le client peut agir pour résoudre le problème (par exemple, en saisissant les informations correctes de sa carte). Lorsque No, le refus est dû à des problèmes au niveau du système ou à des restrictions bancaires que le client ne peut pas résoudre directement.Une carte peut également être refusée lorsque le moteur de gestion des risques de la banque émettrice signale le titulaire comme un client à haut risque, indépendamment du marchand ou des détails de la transaction. Ces refus apparaissent généralement sous la forme de codes génériques tels que
DO_NOT_HONOR, GENERIC_DECLINE, CARD_DECLINED, TRANSACTION_NOT_APPROVED ou FRAUDULENT. Dans ces cas, la banque ne communique pas la raison précise, et ni Dodo Payments ni le marchand ne peuvent passer outre cette décision. Demandez au client de contacter sa banque pour résoudre le signalement, ou d’utiliser une autre carte ou un autre moyen de paiement.Gestion programmatique des échecs
Lisezerror_code depuis le webhook payment.failed ou l’objet de paiement, associez-le à l’action recommandée ci-dessus et déterminez s’il faut effectuer une nouvelle tentative. Pour les renouvellements d’abonnement, les refus temporaires font automatiquement l’objet de nouvelles tentatives pour vous — consultez Nouvelles tentatives de paiement d’abonnement.
Pour les erreurs au niveau de l’API et de la logique métier (telles que PAYMENT_NOT_SUCCEEDED ou REFUND_WINDOW_EXPIRED) qui ne sont pas des refus de carte, consultez la référence Codes d’erreur.
Pages associées
Handle Payment Failures
Guide de bout en bout pour détecter, présenter et réessayer les paiements échoués.
Error Codes
Codes d’erreur de l’API et de la logique métier pour les échecs qui ne sont pas des refus.
Subscription Payment Retries
Nouvelles tentatives automatiques qui récupèrent les refus temporaires lors des renouvellements d’abonnement.
Subscription Dunning
Séquences d’e-mails qui récupèrent les refus définitifs en invitant le client à mettre à jour son moyen de paiement.