Comment gagner ses chargebacks sur Stripe
Les litiges Stripe pour les abonnements : statuts, catégories de motifs, champs de preuves, délais, frais, alertes de fraude précoces et Smart Disputes.
Un chargeback sur un paiement d’abonnement vous coûte le paiement, des frais, et une partie de votre crédit auprès des réseaux de cartes. Vous avez une seule occasion d’y répondre, généralement en quelques semaines, et la banque décide uniquement sur ce que vous envoyez. Ce guide explique comment fonctionne la procédure de litige sur Stripe et comment monter un dossier de preuves adapté à une activité par abonnement.
Il s’en tient à la documentation de Stripe : how disputes work, respond to disputes, les catégories de reason codes, les reason codes, les bonnes pratiques sur les preuves, l’objet Dispute, Smart Disputes et la FAQ sur les frais de litige (toutes consultées en novembre 2026). Quand les pages de Stripe laissent un vide, nous le disons.
Le cycle de vie d’un litige
Un litige commence quand le titulaire contacte sa banque. Stripe crée alors un objet Dispute sur le paiement et envoie le webhook charge.dispute.created. Ensuite, l’objet Dispute passe par un petit nombre de statuts :
| Statut | Ce qu’il veut dire |
|---|---|
warning_needs_response |
Une demande d’information (pas encore un chargeback) qui attend une réponse |
warning_under_review |
Une demande d’information en cours d’examen après l’envoi de vos preuves |
warning_closed |
Une demande d’information close sans devenir un litige formel |
needs_response |
Un chargeback qui attend une réponse |
under_review |
Un chargeback en cours d’examen après l’envoi de vos preuves |
won / lost |
Tranché en votre faveur / en faveur du client |
prevented |
Un litige empêché de devenir un chargeback formel |
Les demandes d’information comptent car, d’après Stripe, aucun fonds n’est retiré sauf si la demande passe en litige. Si vous perdez une demande d’information, elle passe en litige : le statut change avec un événement charge.dispute.updated et les fonds sont retirés avec charge.dispute.funds_withdrawn. Quand le dossier se termine, charge.dispute.closed se déclenche avec won, lost ou warning_closed.
Côté délais, la page how disputes work de Stripe indique que vous avez généralement 7 à 21 jours pour répondre après la création d’un chargeback, selon le réseau de cartes, et que la banque émettrice met en général 60 à 75 jours à décider après votre envoi. L’ensemble de la procédure peut prendre deux à trois mois. La date limite exacte de chaque dossier figure sur l’objet Dispute et dans le Dashboard ; travaillez toujours à partir de cette date, pas d’une règle approximative.
Les frais
Stripe facture des frais de litige à l’ouverture d’un litige, et des frais de contestation séparés si vous le contestez. D’après la FAQ sur les frais de litige et la page tarifs américaine de Stripe, aux États-Unis les deux sont de 15,00 $ ; les frais de contestation sont rendus si vous gagnez, et les frais de litige ne sont pas rendus sauf mention contraire dans votre contrat. Les montants varient selon le pays : vérifiez la page tarifs du vôtre. Accepter un litige n’évite pas les frais de litige.
Pour les litiges de conformité Visa et Mastercard, Stripe perçoit des frais réseau supplémentaires de 500 USD (ou l’équivalent local) si vous contestez, remboursés si vous gagnez.
Les catégories de motifs
Chaque réseau a ses propres reason codes. Stripe les associe à une valeur reason sur le litige, la première chose à lire car elle détermine les preuves que la banque examinera. La page des catégories les liste ; les trois qui reviennent le plus pour les abonnements sont :
fraudulent: le titulaire dit qu’il n’a pas autorisé le paiement (par exemple Visa 10.4, Mastercard 4837).subscription_canceled: le titulaire dit qu’il a été prélevé après avoir résilié (Visa 13.2, Mastercard 4841, Amex C28).product_not_received: le titulaire dit qu’il n’a pas reçu ce qu’il a payé (Visa 13.1, Mastercard 4855).
D’autres valeurs existent, comme duplicate, credit_not_processed, product_unacceptable et general. Utilisez la page des reason codes pour voir ce que le réseau attend pour chacune.
Ce que Stripe accepte comme preuves
Vous envoyez les preuves via le Dashboard ou en mettant à jour le litige via l’API. Le hash evidence a des champs fichiers et des champs texte. Quelques-uns qui comptent pour les abonnements, avec les descriptions de Stripe reformulées d’après l’objet Dispute :
| Champ | Type | À utiliser pour |
|---|---|---|
cancellation_policy |
Fichier | Votre politique de résiliation telle que montrée au client |
access_activity_log |
Texte, 20 000 caractères max. | Les logs qui prouvent que le client a utilisé le produit : adresses IP, horodatages, activité |
customer_communication |
Fichier | Les emails ou messages échangés avec le client |
uncategorized_text / uncategorized_file |
Texte / fichier | Tout élément pertinent qui ne rentre dans aucun autre champ |
Les contraintes documentées par Stripe dans respond to disputes et les bonnes pratiques :
- Un seul envoi. Vous ne pouvez envoyer qu’une fois. Ensuite, vous ne pouvez plus modifier la réponse ni ajouter de preuves.
- Préparez d’abord. Mettre à jour le litige avec
submit=falseprépare les preuves sans les envoyer. Une requête ultérieure avecsubmit=true(par défaut) les envoie à la banque. - Un fichier par type de preuve. Regroupez plusieurs documents d’un même type dans un seul fichier de plusieurs pages.
- Limites de taille. Les fichiers sont limités à 4,5 Mo au total, et les preuves Mastercard à 19 pages au total. L’ensemble des champs texte est limité à 150 000 caractères. Si le dossier compilé est trop long, l’API renvoie
dispute_evidence_page_limit_exceeded. - Pas de liens. Stripe précise que les banques n’examinent pas de contenu externe : ne comptez donc pas sur des URL ou un « appelez-nous ».
Les preuves qui marchent pour les abonnements
La page des reason codes de Stripe donne la direction pour chaque catégorie. Transposé à une activité par abonnement :
Abonnement résilié
La banque veut savoir si le client a vraiment résilié avant le prélèvement, et s’il avait accepté les conditions.
- Montrez la preuve que le client a accepté les conditions de l’abonnement, y compris comment et quand il pouvait résilier. Chargez la section concernée de la politique en
cancellation_policy, pas toutes vos conditions ; Stripe suggère de surligner la partie qui s’applique. - Donnez l’historique de résiliation avec les horodatages exacts. Si le client n’a jamais résilié, ou a résilié après le prélèvement, dites-le avec le log système.
- S’il a utilisé le produit après la date de résiliation qu’il invoque, incluez l’usage avec horodatages et IP dans
access_activity_log. - Si vous avez remboursé quoi que ce soit, incluez la trace du remboursement.
Fraude
Le titulaire dit qu’il n’a jamais autorisé le paiement. Pour un abonnement, la réponse la plus forte est que le même client paie et utilise le compte depuis un moment.
- Montrez l’historique : paiements antérieurs non contestés sur la même carte, date de création du compte, email enregistré.
- Montrez l’usage du compte : connexions, adresses IP, appareils, activité autour de la date de facturation.
- Incluez toute communication de ce client qui montre qu’il connaît le service.
Produit non reçu
Pour les services numériques, Stripe renvoie aux historiques de connexion, logs de téléchargement et horodatages d’usage, plus vos conditions. Montrez que le compte a été ouvert et utilisé pendant la période facturée.
Rédigez une courte note d’accompagnement
Quel que soit le motif, mettez un résumé simple dans uncategorized_text : qui est le client, ce qu’il a acheté, ce qui s’est passé, et quel document joint prouve chaque point. L’examinateur lit beaucoup de dossiers ; rendez le vôtre facile à suivre.
Les alertes de fraude précoces
Les banques émettrices Visa, Mastercard et JCB peuvent envoyer des alertes de fraude précoces (EFW) pour des paiements qu’elles soupçonnent d’être frauduleux, souvent avant tout litige. Stripe les expose sous forme d’objets Early Fraud Warning et via le webhook radar.early_fraud_warning.created. Le champ actionable de l’objet vaut true seulement tant que le paiement n’a pas de litige et n’a pas été entièrement remboursé.
La recommandation de Stripe n’est pas de rembourser chaque alerte. Sa doc indique qu’un remboursement ne supprime pas l’alerte elle-même et n’empêche le signalement de fraude que s’il est traité comme une annulation (reversal), ce qui arrive généralement dans les deux heures environ suivant la capture. Stripe suggère que rembourser a le plus de sens pour les paiements à peu près égaux ou inférieurs à vos frais de litige, et donne un exemple de Workflows qui rembourse sous ce montant et alerte une personne au-dessus. Pour un abonnement, pensez aussi à résilier l’abonnement sur cette carte pour que le prochain renouvellement ne crée pas un second litige.
Smart Disputes
Stripe propose Smart Disputes, qui assemble un dossier de preuves à partir des données que Stripe détient déjà et, si vous ne faites rien, l’envoie juste avant la date limite. Vous pouvez désactiver l’envoi automatique dans le Dashboard. La doc de Stripe indique que les frais de Smart Disputes ne sont facturés que si le litige est gagné ; vérifiez les conditions actuelles sur cette page, car Stripe présente le produit comme une preview. Smart Disputes ne peut utiliser que les données détenues par Stripe : les preuves qui vivent dans vos propres systèmes (connexions, usage, échanges avec le support) doivent toujours venir de vous.
Une check-list de réponse
- Abonnez-vous à
charge.dispute.created,charge.dispute.updated,charge.dispute.closedetradar.early_fraud_warning.created. - Sur chaque litige, lisez d’abord
reasonet la date limite de réponse. - Décidez vite s’il faut accepter. Si le client a bien résilié et a quand même été prélevé, accepter et corriger la cause peut être la réponse honnête.
- Réunissez les preuves adaptées au motif : conditions acceptées, historique de résiliation, logs d’usage, communications.
- Préparez les preuves avec
submit=false, vérifiez les limites, faites relire par quelqu’un, puis envoyez une fois. - Notez l’issue et le motif, pour corriger les schémas qui causent des litiges (libellé de facturation peu clair, bouton de résiliation difficile à trouver, rappels de renouvellement manqués).
Faire tout cela avec NoChurn
NoChurn lit les litiges Stripe et réunit automatiquement les preuves de chacun : les réponses du client au parcours d’annulation, les emails envoyés par NoChurn, les données d’usage que vous envoyez par API, et les conversations d’un help desk connecté (en lecture seule). Il rédige la réponse avec l’IA, et rien n’est envoyé à Stripe tant qu’une personne de votre équipe ne l’a pas relue. Stripe décide toujours des frais, des délais et de l’issue avec la banque, et NoChurn ne peut rien y changer. NoChurn est gratuit sous 300 $ de MRR, avec toutes les fonctionnalités dans toutes les offres (votre propre domaine d’email dès 9 $). Voir NoChurn + Stripe.