Skip to main content
Lorsqu’un paiement échoue, Dodo Payments vous indique pourquoi grâce à un error_code standardisé et une error_message lisible par l’homme. Ce guide montre comment lire ces champs, décider si un nouvel essai est valable, et récupérer le paiement sans exposer d’informations sensibles aux clients.

Comment Dodo Payments Signale un Échec

Chaque paiement échoué — qu’il s’agisse d’un achat unique ou d’un renouvellement d’abonnement — comporte les mêmes champs d’échec sur l’objet de paiement :
error_code et error_message sont null jusqu’à ce qu’un paiement échoue réellement. Vérifiez toujours d’abord status, puis lisez les champs d’erreur.
Le error_message de l’API marchand est un contenu destiné au marchand. Il peut indiquer le motif réel d’un refus, y compris les motifs liés à la fraude. Ne l’affichez donc jamais directement à un client. Associez plutôt error_code à votre propre formulation sécurisée pour les clients, comme indiqué dans Afficher les erreurs aux clients en toute sécurité.

Le webhook payment.failed

Le moyen le plus fiable de détecter un échec est le webhook payment.failed. L’événement encapsule l’objet de paiement complet dans data :
payment.failed payload
Un gestionnaire minimal lit error_code et effectue un routage en fonction de celui-ci :
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. La référence Transaction Failures répertorie le type de refus et l’action recommandée pour chaque error_code.

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 laissez-le réessayer immédiatement ou utiliser une autre carte.
  • requires_payment_method — le client n’a jamais fourni de moyen de paiement : il n’a pas saisi les informations de sa carte ou a été invité à le faire sans donner suite. Il s’agit généralement d’un abandon lors du paiement, 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 requise ; demandez au client de l’effectuer. Consultez Gestion de 3D Secure.

Réessayer un paiement échoué

  • Abonnements : activez Nouvelles tentatives de paiement d’abonnement pour récupérer les refus temporaires sans travail d’intégration. Vous pouvez également déclencher la récupération en demandant au client de mettre à jour son moyen de paiement via l’API Update Payment Method, 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 de paiement. 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 peuvent considérer les refus répétés comme abusifs, ce qui nuit à votre taux d’autorisation.

Afficher les erreurs aux clients en toute sécurité

Affichez aux clients un message convivial — jamais le error_code brut et jamais le error_message destiné au marchand.
Sur les interfaces contrôlées par Dodo Payments — le checkout, le Customer Portal et les e-mails de relance — cette correspondance est déjà effectuée pour vous, y compris le recours à un message générique 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. Leur affichage pourrait alerter un acteur frauduleux. Affichez un message de refus générique et consignez uniquement le error_code spécifique en interne.

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 permettent de récupérer 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 8 août 2026