Codes de refus
Codes de refus Stripe : ce que chacun signifie et comment le résoudre
Vérifié le
Les codes de refus Stripe vous indiquent pourquoi un paiement par carte a échoué sur Stripe. Certains proviennent de la banque émettrice de la carte, comme `insufficient_funds` ou `expired_card` ; quelques-uns proviennent de Stripe même, comme `fraudulent` ou `merchant_blacklist`. Stripe les renvoie comme `decline_code` sur une erreur `card_declined`. Chaque page ci-dessous explique un code, indique si une nouvelle tentative peut fonctionner selon les règles du réseau de cartes, et montre ce que le paiement PlatformDTC et les renouvellements d'abonnement en font.
| Code | Signification |
|---|---|
| authentication_required | La banque souhaite que le titulaire de la carte vérifie le paiement, généralement avec 3D Secure. |
| authentication_not_handled | La vérification était requise, l'acheteur l'a ignorée, et la banque a refusé à nouveau. |
| approve_with_id | La banque n'a pas pu autoriser le paiement tel qu'il a été envoyé ; une nouvelle tentative pourrait fonctionner. |
| call_issuer | La banque a refusé sans donner de raison et souhaite que le titulaire de la carte la contacte. |
| card_not_supported | La carte ne peut pas être utilisée pour ce type d'achat. |
| card_velocity_exceeded | Le solde, la limite de crédit ou la limite de montant de la carte a été atteint. |
| currency_not_supported | La carte ne peut pas être débitée dans la devise du paiement. |
| do_not_honor | La banque a refusé la carte sans en donner la raison. |
| do_not_try_again | Code déprécié : refusé pour une raison inconnue ; ne débitez plus cette carte. |
| duplicate_transaction | Un paiement identique sur la même carte a été soumis il y a quelques instants. |
| expired_card | La carte a dépassé sa date d'expiration. |
| fraudulent | Les contrôles anti-fraude de Stripe ont suspecté que le paiement était frauduleux et l'ont bloqué. |
| generic_decline | Refusé pour une raison inconnue, ou bloqué par Stripe Radar ou Adaptive Acceptance. |
| incorrect_address | L'adresse de facturation saisie ne correspond pas aux dossiers de la banque. |
| incorrect_cvc | Le code de sécurité de la carte (CVC) est incorrect. |
| incorrect_number | Le numéro de carte saisi est incorrect. |
| incorrect_pin | Le code PIN saisi sur un lecteur de carte est incorrect. |
| incorrect_zip | Le code postal de facturation ne correspond pas aux enregistrements de la banque. |
| insufficient_funds | La carte n'a pas assez d'argent ou de crédit pour ce paiement. |
| invalid_account | La carte ou le compte associé n'est plus valide. |
| invalid_amount | Le montant du paiement est invalide ou supérieur à ce que la carte autorise. |
| invalid_cvc | Le code de sécurité de la carte (CVC) est incorrect. |
| invalid_expiry_month | Le mois d'expiration de la carte est invalide. |
| invalid_expiry_year | L'année d'expiration de la carte est invalide. |
| invalid_number | Le numéro de carte est incorrect. |
| invalid_pin | Le code PIN saisi est incorrect. |
| issuer_not_available | La banque de la carte n'a pas pu être jointe, le paiement n'a donc jamais été autorisé. |
| lost_card | La carte a été déclarée perdue. Elle ne peut pas être utilisée ; l'acheteur a besoin d'une autre carte. |
| merchant_blacklist | Le paiement correspondait à une entrée sur la liste de blocage Stripe propre au magasin. |
| new_account_information_available | La carte ou son compte est invalide ; la banque peut détenir des informations plus récentes à son sujet. |
| no_action_taken | La carte a été refusée pour une raison que la banque n'a pas communiquée. |
| not_permitted | La banque indique que ce paiement n'est pas autorisé sur cette carte. |
| offline_pin_required | En personne uniquement : la carte doit être insérée et un code PIN saisi. |
| online_or_offline_pin_required | En personne uniquement : la carte nécessite un code PIN, par code PIN en ligne ou par puce et code PIN. |
| pickup_card | La carte ne peut pas être utilisée pour ce paiement ; elle a peut-être été déclarée perdue ou volée. |
| pin_try_exceeded | Trop de tentatives de code PIN erronées ; le client doit utiliser une autre carte ou un autre mode de paiement. |
| processing_error | Une erreur est survenue lors du traitement de la carte. Généralement temporaire. |
| reenter_transaction | La banque n'a pas pu traiter le paiement pour une raison inconnue ; essayez à nouveau. |
| restricted_card | La carte ne peut pas être utilisée pour ce paiement ; elle a peut-être été déclarée perdue ou volée. |
| revocation_of_all_authorizations | La banque a refusé ; généralement, le titulaire de la carte a arrêté tous les paiements futurs. |
| revocation_of_authorization | La banque a refusé ; généralement le titulaire de la carte a révoqué les paiements à ce magasin. |
| security_violation | La banque a refusé pour une raison qu'elle n'a pas partagée ; souvent une règle de sécurité. |
| service_not_allowed | La carte a été refusée pour une raison que la banque n'a pas donnée. |
| stolen_card | La carte a été signalée comme volée. Elle ne peut plus être utilisée. |
| stop_payment_order | La banque a refusé ; le nom du code indique un ordre de non-paiement sur la carte. |
| testmode_decline | Un numéro de carte de test Stripe a été utilisé pour un paiement réel. |
| transaction_not_allowed | La banque a refusé ; la carte n'autorise pas ce type de transaction. |
| try_again_later | Code obsolète : la banque a refusé pour une raison inconnue ; réessayez plus tard. |
| withdrawal_count_limit_exceeded | Le client a dépassé le solde ou la limite de crédit disponible sur la carte. |
| mobile_device_authentication_required | Le paiement nécessite une authentification ; le client doit taper à nouveau sur son téléphone. |
| card_declined | Le code d'erreur de Stripe pour toute carte refusée ; le decline_code indique la raison. |
| payment_intent_authentication_failure | La carte a échoué à la vérification d'authentification de la banque (comme le 3-D Secure). |
Quels codes de refus Stripe peuvent être réessayés
Stripe classe de nombreux refus comme génériques, la raison exacte est donc souvent peu claire. En règle générale, les codes liés aux fonds, aux limites et aux problèmes temporaires peuvent être résolus plus tard ; les détails de carte erronés nécessitent que l'acheteur les saisisse à nouveau ; les cartes perdues, volées, fermées, restreintes et expirées nécessitent une carte différente.
Stripe renvoie également un code de conseil avec certains refus : `do_not_try_again` signifie de ne plus utiliser la carte pour ce paiement, `try_again_later` signifie qu'une nouvelle tentative est autorisée, et `confirm_card_data` signifie que certains détails de la carte sont erronés. Stripe recommande au maximum huit nouvelles tentatives pour un paiement qui les autorise.
Selon le calendrier fixe par défaut (nouvelles tentatives espacées de 1, 3, 5 et 7 jours), les refus des deux derniers groupes s'arrêtent également au premier échec : la carte n'est pas réessayée, l'abonnement est mis en attente de paiement et le client reçoit l'e-mail de mise à jour de carte ou de confirmation de paiement. Seuls les autres groupes sont réessayés selon ce calendrier.
| Groupe | Exemples de codes | Ce qui se passe |
|---|---|---|
| Fonds insuffisants | insufficient_funds | Réessayé à la date de paie probable du client, ou 2, 5, 8, 13 et 18 jours après le premier refus : jusqu'à 6 tentatives (7 sur PayPal, 2 sur une carte prépayée) |
| Temporaire | processing_error, issuer_not_available, try_again_later, card_velocity_exceeded, card_decline_rate_limit_exceeded | Réessayé 2, 5 et 8 jours après le premier refus : jusqu'à 4 tentatives |
| Aucune raison donnée | do_not_honor, generic_decline, call_issuer, approve_with_id, no_action_taken, duplicate_transaction | Une nouvelle tentative 48 à 72 heures plus tard, puis le client est invité à fournir une nouvelle carte |
| Confirmation bancaire requise | authentication_required, authentication_not_handled, mobile_device_authentication_required | Pas de nouvelle tentative aveugle ; le client est invité à confirmer le paiement auprès de sa banque |
| Carte inutilisable | lost_card, stolen_card, expired_card, incorrect_number, incorrect_zip, restricted_card, pin_try_exceeded, do_not_try_again | Jamais réessayé ; le client reçoit un lien en un clic pour mettre à jour la carte |
Ce que PlatformDTC fait au moment du paiement
L'acheteur voit le message de refus de Stripe, plus un indice simple pour les codes courants, tel que « Votre carte n'a pas suffisamment de fonds. Essayez une autre carte. » et une option pour essayer une autre carte immédiatement. Pour `lost_card`, `stolen_card`, `pickup_card`, `fraudulent` et `merchant_blacklist`, l'indice est toujours le message générique « Votre carte a été refusée. Essayez une autre carte ou contactez votre banque. », de sorte que l'acheteur n'est jamais informé qu'une carte a été signalée comme perdue, volée ou marquée.
Si le magasin a choisi les paiements par carte PayPal comme solution de secours, un refus bancaire sans raison durable, tel que `do_not_honor` ou `processing_error`, peut être réessayé via PayPal, où l'acheteur saisit à nouveau la carte. Les refus liés aux fonds, au 3-D Secure, aux détails erronés, aux cartes invalides et à la fraude ne sont jamais transférés à la solution de secours.
Questions fréquentes
- Où puis-je trouver le code de refus pour un paiement Stripe ?
- Dans le tableau de bord Stripe, ouvrez le paiement échoué : la raison du refus est affichée avec une courte solution suggérée. Dans l'API, c'est le `decline_code` sur le `last_payment_error` du `PaymentIntent`, et le résultat du paiement contient également la raison, un code de conseil et, lorsque le réseau en a envoyé un, le code de refus brut du réseau.
- Quel est le code de refus Stripe le plus courant ?
- Stripe indique que les banques émettrices de cartes classent la plupart des refus comme génériques (`generic_decline`), ce qui rend la raison exacte peu claire. Si les informations de la carte sont correctes, Stripe conseille de demander au client de contacter sa banque émettrice pour savoir pourquoi le paiement a été refusé.
- Combien de fois puis-je réessayer un paiement Stripe refusé ?
- Stripe recommande un maximum de huit nouvelles tentatives pour les paiements qui les autorisent, et avertit que des tentatives supplémentaires peuvent ressembler à de la fraude pour les banques émettrices de cartes. Visa autorise jusqu'à 20 tentatives en 30 jours pour les refus réessayables et aucune après un refus de Catégorie 1, comme une carte perdue ou volée.
- Dois-je indiquer à l'acheteur la raison exacte du refus ?
- Pour la plupart des codes, oui : une raison simple comme une carte expirée ou un code de sécurité erroné les aide à résoudre le problème. Pour `fraudulent`, `lost_card`, `stolen_card` et `merchant_blacklist`, Stripe conseille de ne pas donner de détails et d'afficher le refus de la même manière que `generic_decline`.