Skip to main content
Lorsqu’un paiement échoue, Dodo Payments fournit un error_code standardisé et un error_message compréhensible. Ce guide explique comment lire ces champs, déterminer s’il faut réessayer et récupérer le paiement en toute sécurité.

Comment Dodo Payments Signale un Échec

Chaque paiement échoué contient ces champs dans l’objet de paiement :
error_code et error_message sont null jusqu’à l’échec d’un paiement. Vérifiez toujours status en premier.
error_message est destiné au marchand et peut révéler des motifs liés à la fraude. Ne l’affichez jamais aux clients. Associez plutôt error_code à un texte adapté aux clients (consultez Afficher les erreurs aux clients en toute sécurité).

Le webhook payment.failed

Le webhook payment.failed est le moyen le plus fiable de détecter un échec. L’événement contient l’objet de paiement complet dans data :
payment.failed payload
Un gestionnaire minimal lit error_code et l’oriente en fonction de sa valeur :
Vérifiez toujours la signature du webhook avant tout traitement. Consultez le guide Webhooks pour la configuration complète, notamment la vérification de signature et l’idempotence.

Décider s’il faut réessayer : refus temporaires ou définitifs

Le error_code vous indique s’il est utile de réessayer avec le même moyen de paiement. Consultez Échecs de transaction pour obtenir la liste complète des types de refus et des actions recommandées.

Gérer les échecs lors du paiement initial ou du renouvellement

La façon dont vous récupérez l’échec dépend de la présence ou non du client.
Le client est en train d’effectuer son paiement. Affichez un message clair et permettez-lui de réessayer ou d’utiliser une autre carte.
  • requires_payment_method — le client n’a jamais fourni de moyen de paiement. Il s’agit généralement d’un abandon du checkout, et non d’un refus. Relancez le client pour qu’il termine son paiement (consultez Récupération des paniers abandonnés).
  • requires_customer_action — une authentification supplémentaire (telle que 3DS) est nécessaire. Demandez au client de l’effectuer. Consultez 3D Secure.

Réessayer un paiement échoué

Abonnements : activez Nouvelles tentatives de paiement des abonnements pour récupérer automatiquement les refus temporaires. Pour réessayer immédiatement au lieu d’attendre la planification, utilisez Nouvelle tentative de paiement manuelle depuis le tableau de bord ou l’API. Vous pouvez également déclencher la récupération en demandant au client de mettre à jour son moyen de paiement via l’API de mise à jour du moyen de paiement, qui débite les sommes dues. Paiements ponctuels : renvoyez le checkout ou payment_link afin que le client puisse réessayer avec un autre moyen. Les paiements ponctuels ne font l’objet d’aucune nouvelle tentative automatique.
Ne réessayez pas les refus définitifs avec la même carte. Les réseaux de cartes signalent les refus répétés comme abusifs, ce qui réduit votre taux d’autorisation.

Afficher les erreurs aux clients en toute sécurité

Affichez aux clients un message convivial, jamais le error_code brut ni le error_message destiné au marchand.
Sur les interfaces contrôlées par Dodo Payments (checkout, Customer Portal, e-mails de relance), cette correspondance est déjà effectuée pour vous, avec notamment un message générique de remplacement pour les refus liés à la fraude. Vous n’avez besoin de la correspondance ci-dessous que lorsque vous affichez les échecs dans votre propre produit.
Customer-facing messaging
Ne révélez jamais le motif réel de STOLEN_CARD, LOST_CARD, PICKUP_CARD ou FRAUDULENT. Les afficher pourrait alerter un fraudeur. Affichez un message générique de refus et consignez uniquement en interne le error_code spécifique.

Articles associés

Transaction Failures

Chaque code de refus, son type et l’action recommandée.

Error Codes

Erreurs d’API et de logique métier qui ne sont pas des refus de carte.

Subscription Payment Retries

Récupération automatique des refus temporaires lors des renouvellements d’abonnement.

Subscription Dunning

Séquences d’e-mails qui récupèrent les refus définitifs.

Payment Webhooks

Schéma complet de la charge utile des événements de paiement.

Testing Failures

Cartes de test qui simulent les refus et les échecs de renouvellement.
Dernière modification le 26 septembre 2026