Tous les articles
Playbook9 min de lecture

La plupart des remboursements d'apps sont décidés sans vous, donc la façon de réduire les remboursements d'apps est de les empêcher avant que la demande n'arrive

La plupart des remboursements et rétrofacturations d'apps sont décidés par Apple, Google ou une banque sans vous demander votre avis. Voici où vous réduisez réellement les remboursements d'apps : validez les achats à temps, livrez proprement, étiquetez chaque compte et répondez aux deux fenêtres de preuve avant que l'argent ne parte.

Une digue de pierre retenant une mer agitée à l'heure dorée, une image de la façon dont les développeurs réduisent les remboursements d'apps en les arrêtant avant qu'ils n'atteignent le rivage

Points clés

  • La plupart des remboursements et rétrofacturations d'apps sont réglés par Apple, Google ou une banque sans que le développeur soit dans la pièce, donc le levier est dans la prévention, pas dans les recours. Seuls deux flux demandent un jour votre version.
  • Les deux moments où vous avez voix au chapitre sont courts. Apple vous donne 12 hours pour répondre à un CONSUMPTION_REQUEST, et Google Play vous donne 24 hours pour répondre à un examen de rétrofacturation via orders.reviewrefund. Manquez la fenêtre et la boutique décide sans vous.
  • Google Play rembourse et révoque automatiquement tout achat que votre app ne parvient pas à valider sous trois jours, donc un bug de validation silencieux rend de l'argent réel à des clients qui ne l'ont jamais demandé.
  • Étiqueter chaque achat sur un compte est ce qui vous permet de répondre plus tard. Sur iOS, appAccountToken doit être un UUID, et sur Android setObfuscatedAccountId prend un hachage de 64 characters ou moins, jamais de données personnelles en clair, au sujet desquelles Google peut bloquer des achats.
  • Une ligne non reconnue sur un relevé bancaire est une rétrofacturation en attente. Google peut agir sur les litiges par carte ou PayPal jusqu'à 120 days et sur la facturation via l'opérateur pendant 60 days, donc un libellé de facturation clair est une assurance bon marché contre le chemin le plus coûteux.
  • Révoquer l'accès dès qu'un remboursement arrive, via la Voided Purchases API sur Android et les notifications REFUND sur iOS, est ce qui arrête le schéma dépenser-puis-rembourser où un client garde les pièces après le retour de l'argent.
  • Un remboursement évité vaut plus que le prix que vous conservez. Il économise le calcul, les appels d'API, le stockage et les reversements que vous avez déjà dépensés, et sur les commandes Google Play passées le 3 août 2026 ou après, il économise aussi les frais de rétrofacturation de la banque.

Voici la partie inconfortable de la tentative de réduire les remboursements d'apps. Vous n'avez pas à approuver la plupart d'entre eux. Un client Google Play appuie sur un bouton en moins de 48 hours et l'argent est parti avant que votre serveur n'en entende parler. Un client de l'App Store dépose une demande sur reportaproblem.apple.com et Apple tranche seule. Une banque annule un débit des mois plus tard et celui-là est définitif dès qu'il arrive. Combattre les remboursements après coup est le mauvais réflexe, car dans presque tous les flux il n'y a rien à combattre. La façon de réduire les remboursements d'apps est de remonter en amont, vers la poignée de choses qui se trouvent réellement dans votre code et votre configuration de facturation, et vers les deux courtes fenêtres où une boutique demande bel et bien votre preuve. Voici cette carte.

Ce que vous contrôlez réellement quand vous essayez de réduire les remboursements d'apps

Répartissez chaque remboursement en deux tas. Dans le premier tas, la décision est prise sans vous : la boutique ou la banque tranche, et vous apprenez le résultat par une notification une fois que l'argent a déjà bougé. Dans le second tas, une boutique fait une pause et demande une preuve avant de décider. Le premier tas est grand. Le second tas, ce sont exactement deux flux. Savoir dans quel tas tombe un remboursement vous dit si le levier est la prévention ou la réponse.

Les remboursements sur lesquels personne ne vous demande votre avis

La plupart des chemins de remboursement ne passent jamais par vous. Le remboursement en libre-service de 48 heures de Google Play est décidé par Google d'un simple appui du client. Les remboursements du support, les remboursements accordés par Apple depuis reportaproblem.apple.com et les remboursements de bonne volonté de Google lui-même sont tous décidés par la boutique. Google rembourse aussi automatiquement un achat que votre app ne valide jamais, et annule les achats qu'il juge abusifs, sans aucune contribution de votre part. Une rétrofacturation bancaire est le cas extrême : une fois que la banque donne raison au client, l'annulation est définitive et aucune boutique ne peut la défaire. Pour chaque remboursement de ce tas, le seul travail à votre portée a eu lieu avant que la demande n'existe.

Les deux moments où vous avez voix au chapitre

Deux flux, et deux seulement, font une pause pour demander votre preuve. Quand un remboursement est en question pour un achat Apple éligible, Apple envoie à votre serveur un CONSUMPTION_REQUEST et vous donne 12 hours pour répondre via l'endpoint Send Consumption Information. Quand un client Google Play conteste un débit auprès de sa banque, Google envoie un examen de rétrofacturation et vous donne 24 hours pour répondre via l'API orders.reviewrefund. Les deux sont des preuves que vous soumettez, pas un verdict auquel vous parvenez. Ce sont les contreparties directes l'un de l'autre, et ce sont la dernière ligne où votre contribution compte encore.

Empêchez le remboursement avant même que la boutique ne décide

Parce que le grand tas est décidé sans vous, le travail à plus fort levier consiste à faire en sorte que ces remboursements ne soient jamais déclenchés. Quatre leviers font l'essentiel du travail, et chacun correspond à un mécanisme concret de la boutique, pas à une impression.

Validez chaque achat sous trois jours

Google Play exige que votre app valide un achat après que vous avez accordé le droit. Selon les propres mots de Google : la validation doit être faite sous trois jours pour que l'achat ne soit pas remboursé automatiquement et le droit révoqué. C'est un remboursement que vous avez causé, en silence, avec un bug. Un plantage entre l'octroi de l'article et l'appel à acknowledgePurchase, un appel serveur perdu, un achat en attente que vous avez validé trop tôt, n'importe lequel peut abandonner une vente réelle et Google la récupérera au seuil des trois jours. C'est le remboursement le moins cher à éliminer parce qu'il est entièrement dans votre code.

Livrez ce qu'ils ont payé, à chaque fois

Le remboursement le plus honnête est celui où la livraison a échoué. Un client a payé, les pièces ne sont jamais arrivées, les fonctionnalités pro ne se sont jamais débloquées, et maintenant il veut son argent et il a raison. Les doubles débits, les droits qui ne se synchronisent pas entre les appareils d'un client et le contenu qui ne se télécharge jamais sont tous des remboursements que vous avez fabriqués. Une livraison fiable, une gestion idempotente des achats et la restauration des droits lors d'une nouvelle installation suppriment toute une catégorie de demandes légitimes avant que quiconque n'ouvre un formulaire de remboursement.

Rendez votre libellé de facturation reconnaissable

Un client qui ne reconnaît pas une ligne sur son relevé ne dépose pas une demande de remboursement aimable, il appelle sa banque. Google indique qu'il peut agir sur les litiges non reconnus par carte ou PayPal jusqu'à 120 days à partir de la transaction, et les litiges de facturation via l'opérateur pendant 60 days. Un libellé de facturation clair et recherchable et un nom d'app évident sur le reçu transforment une rétrofacturation potentielle en, au pire, un e-mail au support. Vu ce qu'une rétrofacturation coûte désormais sur Android, c'est le meilleur rendement par heure de travail de cette liste.

Étiquetez chaque achat sur un compte

Vous ne pouvez pas répondre à un litige que vous ne pouvez pas tracer, et vous ne pouvez pas révoquer l'accès d'un client que vous ne pouvez pas identifier. Étiquetez chaque achat avec votre propre identifiant de compte au moment de l'achat. Sur iOS, appAccountToken doit être un UUID. Sur Android, setObfuscatedAccountId prend un hachage de 64 characters ou moins, et il ne doit jamais contenir de données personnelles en clair, parce que Google bloque les achats qui portent des informations identifiables dans ce champ. Cette seule habitude est ce qui rend chaque étape ultérieure, preuve, révocation et détection d'abus, réellement possible.

LevierMécanisme de boutique qu'il désamorceOù il vit
Valider sous 3 joursRemboursement automatique et révocation du droitVotre code de traitement des achats
Livraison fiableRemboursements légitimes de \"non reçu\"Votre logique de livraison et de synchronisation
Libellé de facturation clairRétrofacturations pour débit non reconnuVotre configuration de boutique et de paiement
Étiqueter chaque achat sur un compteLitiges non traçables et abusappAccountToken et obfuscatedAccountId

Coupez l'abus que vous voyez venir

Certains remboursements ne sont ni honnêtes ni accidentels. Un client achète un consommable, en dépense chaque unité, puis réclame son argent. Les propres forums de développeurs d'Apple regorgent exactement de cette question sur les achats intégrés consommables, parce que la boutique ne peut pas dé-dépenser ce que le client a déjà utilisé. Vous ne pouvez pas empêcher le remboursement, mais vous pouvez faire en sorte qu'il ne laisse pas non plus le client avec les biens.

Révoquez l'accès dès qu'un remboursement arrive

Quand un remboursement ou une rétrofacturation se règle, coupez le droit. Sur Android, la Voided Purchases API liste les commandes qui ont été remboursées, rétrofacturées ou révoquées afin que vous puissiez récupérer l'article. Sur iOS, une notification REFUND sur votre serveur est le signal pour révoquer. Si vous sautez cette étape, un abuseur en série garde chaque pièce, niveau ou déblocage premium qu'il a déjà payé pour se faire rembourser, et votre app devient la boutique la moins chère de la ville. La révocation ne récupère pas la vente, mais elle supprime la raison de rejouer le coup.

Répondez aux deux fenêtres de preuve à temps

Pour les deux flux qui demandent bel et bien, se présenter est tout le travail. Les 12 hours d'Apple et les 24 hours de Google sont des délais stricts, et ils s'ouvrent selon l'agenda de la boutique, pas le vôtre, souvent au milieu de la nuit. Un CONSUMPTION_REQUEST auquel vous répondez avec le statut de livraison et les données d'usage est un élément qu'Apple met en balance face à un remboursement. Une réponse orders.reviewrefund avec des détails de livraison et de consommation, ce sont des données que Google utilise pour contester une rétrofacturation illégitime en votre nom. Une fenêtre sans réponse est une défaite par défaut. Celles-ci ne peuvent pas être traitées à la main à un volume réel, ce qui est toute la raison de les automatiser.

Des pièces empilées à côté d'un reçu bancaire et d'un stylo sur un bureau en bois chaleureux, représentant l'argent qu'un remboursement évité conserve : la vente, le coût de livraison et les frais de rétrofacturation

Ce que vaut un remboursement évité, en argent

La prévention paie parce qu'une annulation n'est jamais seulement le prix de la vente qui ressort. Au moment où un remboursement ou une rétrofacturation arrive, vous avez déjà livré l'achat, et cette dépense ne revient pas avec lui.

Le prix de la vente est la plus petite partie

Quand un remboursement se concrétise, vous perdez votre produit net après la commission de la boutique. Mais le calcul qui a tourné, les appels d'API tiers qui ont été facturés, le stockage qui a été écrit et tout reversement à un créateur qui est parti ont tous disparu aussi, et rien de tout cela ne revient avec l'annulation. Un remboursement évité conserve le prix et tout ce coût de livraison. Plus la fenêtre de remboursement qu'un client a utilisée est longue, plus vous aviez accumulé de ces coûts avant que l'argent ne parte.

Le changement du 3 août fait mieux payer la prévention sur Android

Pour les commandes Google Play passées le 3 août 2026 ou après, une rétrofacturation perdue coûte aussi au développeur les frais de rétrofacturation de la banque, en plus du prix d'achat moins les frais de service de Play. Google continue de ne couvrir que ses propres frais de service. Parce que les frais de rétrofacturation sont fixes et que les prix des produits ne le sont pas, sur un achat intégré bon marché, les frais seuls peuvent dépasser ce que le client a payé. Chaque litige de débit non reconnu que vous écartez avec un libellé clair vaut désormais la vente plus des frais, pas seulement la vente.

Ce qu'un remboursement évité conserveRécupéré quand vous l'évitezPerdu quand vous ne l'évitez pas
Prix net de la venteOuiLe prix ressort de votre reversement
Coût de livraison : calcul, API, stockage, reversementsOuiDépensé et perdu quoi qu'il arrive
Frais de rétrofacturation Google, commandes le 3 août 2026 ou aprèsOuiAjoutés par-dessus le prix d'achat
Des chiffres de revenus propresOuiLes revenus récents s'annulent un trimestre plus tard

RefundHalt est conçu pour la partie de tout cela que vous ne pouvez pas faire à la main. Il guette le CONSUMPTION_REQUEST d'Apple dans la fenêtre de 12 hours et l'examen de rétrofacturation de Google Play dans la fenêtre de 24 hours, rassemble la preuve de livraison et de consommation, et répond à temps sans que personne de votre équipe ne soit éveillé pour capter une notification à 3 heures du matin. Il retrace les remboursements et rétrofacturations jusqu'au compte qui les a faits, de sorte que l'abus que vous voyez venir est visible au lieu d'être enfoui. Vous ne réduirez jamais les remboursements d'apps à zéro, parce que la plupart ne vous appartiennent pas à décider. Vous pouvez faire en sorte que ceux que vous auriez pu éviter n'arrivent jamais, et que les deux que vous pouvez contester ne restent jamais sans réponse.

Questions fréquentes

Puis-je empêcher Apple ou Google de rembourser mon client ?
La plupart du temps non, et c'est le fait clé. Le remboursement en libre-service de 48 heures de Google Play, les remboursements du support et les décisions d'Apple depuis reportaproblem.apple.com sont tous pris sans vous, et une rétrofacturation bancaire est définitive une fois qu'elle se règle. Les deux seuls flux qui demandent votre preuve sont le CONSUMPTION_REQUEST d'Apple, avec une fenêtre de 12 hours, et l'examen de rétrofacturation de Google Play via orders.reviewrefund, avec une fenêtre de 24 hours. Partout ailleurs, votre levier est d'empêcher le remboursement d'être déclenché, pas d'en faire appel.
Comment réduire les remboursements d'apps que j'ai réellement causés ?
Commencez par les remboursements que votre propre code déclenche. Validez chaque achat Google Play sous trois jours, sinon Google le rembourse automatiquement et révoque le droit. Livrez de façon fiable ce que le client a payé, restaurez les droits sur les nouveaux appareils et évitez les doubles débits, car un remboursement de \"non reçu\" est une demande que vous avez fabriquée. Ce sont les remboursements les moins chers à éliminer parce qu'ils vivent entièrement dans votre intégration.
Pourquoi un libellé de facturation clair réduit-il les rétrofacturations ?
Un client qui ne reconnaît pas un débit sur son relevé le conteste auprès de sa banque au lieu de vous demander, et une rétrofacturation coûte bien plus qu'un remboursement. Google indique qu'il peut agir sur les litiges non reconnus par carte ou PayPal jusqu'à 120 days à partir de la transaction et les litiges de facturation via l'opérateur pendant 60 days. Un libellé recherchable et un nom d'app évident sur le reçu transforment une rétrofacturation potentielle en un e-mail au support que vous pouvez résoudre directement.
Comment empêcher les clients de rembourser un consommable après l'avoir utilisé ?
Vous ne pouvez pas bloquer le remboursement, mais vous pouvez révoquer ce qu'ils ont gardé. Quand un remboursement ou une rétrofacturation se règle, coupez le droit : sur Android, la Voided Purchases API liste les commandes remboursées, rétrofacturées et révoquées, et sur iOS une notification REFUND est votre signal pour retirer l'accès. Étiqueter chaque achat avec appAccountToken sur iOS ou setObfuscatedAccountId sur Android est ce qui vous permet de relier le remboursement au compte et d'empêcher le schéma de se répéter.
Éviter un remboursement vaut-il plus que le prix de la vente ?
Oui. Au moment où un remboursement ou une rétrofacturation arrive, vous avez déjà dépensé de l'argent à livrer l'achat, le calcul, les appels d'API, le stockage et les reversements, et rien de tout cela ne revient avec l'annulation. Pour les commandes Google Play passées le 3 août 2026 ou après, une rétrofacturation perdue ajoute aussi les frais de rétrofacturation de la banque par-dessus le prix d'achat. Un remboursement évité conserve la vente, le coût de livraison et, sur Android, ces frais.

Sources et lectures complémentaires

RefundHalt

Le pilote automatique des remboursements pour l'App Store et Google Play

Poursuivre la lecture

La prochaine demande de remboursement est déjà en route.

Configurez RefundHalt dans le temps qu'il vous faudrait pour lire un nouvel e-mail d'assistance au sujet d'un remboursement que vous n'avez pas pu contester.