Alle artikelen
Playbook7 min leestijd

Klanten die twee keer voor hetzelfde abonnement betalen, kochten meestal op twee platforms, en maar één van die terugbetalingen ligt bij jou

Betaalt een klant twee keer voor hetzelfde abonnement, dan gaat het meestal om één abonnement via de App Store en een tweede via Google Play of je website. Hier lees je wie welke kant kan terugbetalen, wat het je kost en hoe je de tweede afschrijving voorkomt.

Een iPhone en een Android-telefoon naast elkaar op een bureau, naast een bankafschrift met twee identieke afschrijvingen, een klant die twee keer voor hetzelfde abonnement betaalde

Belangrijkste inzichten

  • Een klant die twee keer voor hetzelfde abonnement betaalt, heeft het meestal in twee aparte stores gekocht, zoals de App Store en Google Play. Elke store factureert en vergoedt zijn eigen aankoop onafhankelijk.
  • Ontwikkelaars kunnen App Store-aankopen niet terugbetalen. Apple beslist, via reportaproblem.apple.com of via het terugbetalingsvenster dat een app kan openen met beginRefundRequest van StoreKit. Volgens Apple duurt goedkeuring of afwijzing tot 48 uur.
  • Op Google Play kun je een bestelling zelf terugbetalen via Order management in Play Console of via de orders.refund API. Die API kan geen bestellingen terugbetalen die ouder zijn dan 3 jaar.
  • Betaal je de meest recente bestelling van een Google Play-abonnement terug, dan wordt het abonnement direct verwijderd en worden toekomstige verlengingen geannuleerd. Betaal je een oudere bestelling terug, dan blijft het abonnement actief.
  • Apple stuurt bij terugbetalingsverzoeken voor elk producttype een CONSUMPTION_REQUEST, ook voor automatisch verlengbare abonnementen. Heeft de klant toestemming gegeven, dan heb je 12 uur om te antwoorden met Send Consumption Information.
  • Voor Google Play-bestellingen vanaf 3 augustus 2026 kost een chargeback je de aankoopprijs, min de servicekosten van Play, plus de chargebackkosten van de bank.
  • Stel je een appAccountToken in bij Apple-aankopen en een versluierde account-ID bij Google Play-aankopen, dan ziet je server één klant achter twee store-abonnementen voordat er een tweede afschrijving plaatsvindt.

Niets in de betaalsystemen van Apple of Google houdt één persoon tegen om in dezelfde maand bij allebei voor je abonnement te betalen. Betaalt een klant twee keer voor hetzelfde abonnement, dan is dat bijna altijd wat er gebeurde. Hij nam een abonnement op een iPhone, daarna nog een keer op een Android-tablet of op je website, en je app herkende het eerste abonnement niet. De klant ziet twee afschrijvingen en mailt je. Het addertje: je kunt er maar één zelf terugbetalen, en alleen als die niet via Apple is gekocht. Hier lees je hoe elke kant werkt, wat het dubbele abonnement je kost en hoe je zorgt dat het niet opnieuw gebeurt.

Waarom klanten twee keer betalen voor hetzelfde abonnement

Elke store beheert zijn eigen aankoop. Apple factureert het App Store-abonnement, Google het Google Play-abonnement en je betaalprovider het webabonnement. Geen van hen weet dat de anderen bestaan. Je server is de enige plek waar de twee aankopen elkaar kunnen ontmoeten, en alleen als beide een ID dragen die ze aan hetzelfde account koppelt.

De gebruikelijke routes naar een dubbele afschrijving zien er zo uit:

  • De klant wisselt van telefoon, van iOS naar Android of terug, en neemt opnieuw een abonnement omdat de nieuwe app een paywall toont.
  • De klant neemt een abonnement op je website, installeert de app en is niet ingelogd. Dus verkoopt de app hem er nog een store-abonnement bij.
  • De klant verwijdert de app en gaat ervan uit dat het abonnement daarmee stopt. Volgens de hulppagina van Google annuleert het verwijderen van een app het Google Play-abonnement niet, en een App Store-abonnement wordt verlengd tot het in het Apple-account wordt opgezegd.

“Je app en je website praten duidelijk niet met elkaar”

Dat is de klacht die je in de supportmail leest, en vanuit de klant gezien is die terecht. Hij betaalde voor één product. Gevraagd worden om daar nog eens voor te betalen voelt als een val, ook als het aan beide kanten een vergissing was. De snelste manier om de boel te sussen is helder zeggen welke aankoop jij kunt terugbetalen en met welke hij naar Apple moet.

Wie welke afschrijving kan terugbetalen

Hier gaan de meeste supportantwoorden mis. Je kunt alleen beloven wat je zelf in handen hebt.

Waar het dubbele abonnement is gekochtWie over de terugbetaling beslistHoe de verlenging stoptJouw inbreng
App StoreAlleen Apple, via reportaproblem.apple.com of je terugbetalingsvenster in de appDe klant zegt op in zijn Apple-accountCONSUMPTION_REQUEST, antwoord binnen 12 uur als de klant toestemming gaf
Google Play, binnen 48 uur na aankoopDe klant kan het bij Google aanvragen, of jij betaalt terugTerugbetaling van de laatste bestelling annuleert toekomstige verlengingenGeen bij de selfservice-terugbetaling van Google
Google Play, na 48 uurJij, via Play Console of orders.refundTerugbetaling van de laatste bestelling annuleert toekomstige verlengingenJij beslist
Je websiteJij, via je betaalproviderJij zegt op aan jouw kantJij beslist

Kan een ontwikkelaar een App Store-abonnement terugbetalen?

Nee. Apple handelt elke App Store-terugbetaling af. Wat je wel kunt doen, is de route korter maken. beginRefundRequest van StoreKit opent het terugbetalingsvenster van Apple in je app, met de aankoopgegevens en een lijst met redenen al ingevuld. Volgens de documentatie van Apple heeft de App Store tot 48 uur nodig om het verzoek goed of af te keuren. Buiten de app logt de klant in op reportaproblem.apple.com, kiest “Vraag een terugbetaling aan”, geeft een reden op en selecteert het abonnement.

De Google Play-kant zelf terugbetalen

Op Google Play heb jij de controle. Open in Play Console Order management, selecteer de bestelling en betaal haar terug. De hulp van Play Console is duidelijk over abonnementen: betaal je de meest recente bestelling terug, dan wordt het abonnement direct verwijderd en worden toekomstige verlengingen geannuleerd. Betaal je een oudere bestelling terug, dan blijft het abonnement actief. Automatiseer je dit, dan doet de orders.refund API hetzelfde. Hij accepteert een revoke-vlag om de toegang meteen te beëindigen en weigert bestellingen die ouder zijn dan 3 jaar.

Wat een dubbel abonnement je kost

Het dubbele abonnement was nooit omzet die je mocht houden. De geldvraag is hoeveel het je kost bovenop de terugbetaling.

Het nette scenario

Stel dat een klant drie maanden lang $9.99 per maand betaalde in zowel de App Store als Google Play voordat hij het merkte. Dat is $29.97 aan dubbele afschrijvingen. Betaal je de drie Google Play-bestellingen zelf terug, dan geef je $29.97 terug en is het probleem dezelfde dag opgelost. Gaat de klant in plaats daarvan met de App Store-kant naar Apple, dan beslist Apple hoeveel er wordt terugbetaald en hoor je dat alleen via je servermeldingen. Hoe dan ook gaat de omzet van één platform voor die drie maanden terug.

Het dure scenario

Het echte verlies ontstaat als de klant het opgeeft met support en zijn bank belt. Een chargeback is definitief zodra de bank heeft beslist. Google Play geeft je één kans om bezwaar te maken, een chargebackbeoordeling die je binnen 24 uur beantwoordt via orders.reviewrefund. Voor Google Play-bestellingen vanaf 3 augustus 2026 kost een verloren chargeback je de aankoopprijs, min de servicekosten van Play, plus de chargebackkosten van de bank. Een terugbetaling van $29.97 die je in een minuut had kunnen doen, wordt $29.97 plus kosten waar je geen invloed op hebt.

De kosten die intussen doorlopen

Zolang beide abonnementen actief zijn, bedient je backend één persoon maar ziet hij twee abonnementen. Tel je seats, synchroniseer je data of roep je betaalde API's van derden aan per abonnement, dan betaal je mogelijk dubbel voor rekenkracht, opslag en API-aanroepen voor één klant. Voeg je de twee records samen, dan houdt dat op.

Een ontwikkelaar leest een klantenservice-inbox op een laptop naast een smartphone en handelt de terugbetaling van een dubbel abonnement af

Zo handel je een dubbele afschrijving af in support

Antwoord snel en in één bericht. Elke extra ronde vergroot de kans op een geschil bij de bank.

  • Zoek beide aankopen op via het account van de klant, niet via het e-mailadres waarmee hij schreef.
  • Vraag welk abonnement hij wil houden. Meestal is dat het abonnement op het apparaat dat hij nu gebruikt.
  • Staat het dubbele abonnement op Google Play of je website, betaal het dan zelf terug en laat weten dat het geregeld is.
  • Staat het dubbele abonnement in de App Store, stuur hem dan naar reportaproblem.apple.com, of naar de terugbetalingsknop in je app als je die hebt gebouwd, en zeg dat hij het moet opzeggen in de instellingen van zijn Apple-account.
  • Stuurt Apple daarna een CONSUMPTION_REQUEST en gaf de klant toestemming, beantwoord die dan binnen 12 uur met correcte gebruiksgegevens. Een dubbel abonnement dat nooit is gebruikt, keurt Apple makkelijk goed.

Zo voorkom je de tweede afschrijving voordat die plaatsvindt

Voorkomen is goedkoper dan elke terugbetaling, en de tools bestaan al in beide stores.

Koppel elke aankoop aan je account-ID

Genereer op iOS per account een UUID en geef die mee als de aankoopoptie appAccountToken. Apple geeft dezelfde waarde terug in de transactie en in de verlengingsinformatie van het abonnement. Vond een aankoop buiten je app plaats, dan kun je het token later koppelen of bijwerken via het endpoint Set App Account Token. Geef op Android een gehashte account-ID van maximaal 64 tekens door aan setObfuscatedAccountId, nooit ruwe persoonsgegevens.

Controleer rechten voordat je een paywall toont

Vraag je eigen server, voordat de paywall verschijnt, of het ingelogde account al een actief abonnement heeft op een willekeurig platform. Toon eerst een inlogprompt en de paywall alleen aan accounts zonder actief abonnement.

Let op twee actieve abonnementen op één account

Controleer dagelijks welke accounts meer dan één actief abonnement hebben over verschillende stores. Vang je het in de eerste week, dan betaal je één maand terug in plaats van drie en stuur je een korte e-mail in plaats van een chargeback te bestrijden.

RefundHalt koppelt App Store- en Google Play-abonnementen aan je eigen account-ID's. Zo verschijnt een klant die dubbel betaalt als één persoon met twee abonnementen, nog voordat zijn bank het doet.

Veelgestelde vragen

Waarom betaalde een klant twee keer voor hetzelfde abonnement?
Meestal omdat hij het op twee platforms kocht, zoals de App Store en Google Play, of in een store en op je website. Elke store factureert zijn eigen abonnement en weet niets van het andere. Daardoor worden beide verlengd tot er één wordt opgezegd.
Kan ik een App Store-abonnement terugbetalen voor een klant?
Nee. Alleen Apple kan App Store-aankopen terugbetalen. Je kunt het terugbetalingsvenster van Apple in je app openen met beginRefundRequest van StoreKit, of de klant doorverwijzen naar reportaproblem.apple.com. Volgens Apple duurt goedkeuring of afwijzing tot 48 uur.
Hoe betaal ik een dubbel Google Play-abonnement terug?
Betaal de bestelling terug via Order management in Play Console, of roep de orders.refund API aan. Terugbetaling van de meest recente bestelling verwijdert het abonnement direct en annuleert toekomstige verlengingen. De API kan geen bestellingen terugbetalen die ouder zijn dan 3 jaar.
Wordt een abonnement ook opgezegd als je het terugbetaalt?
Op Google Play annuleert terugbetaling van de meest recente bestelling toekomstige verlengingen, maar terugbetaling van een oudere bestelling laat het abonnement actief. In de App Store is een terugbetaling de beslissing van Apple, en de klant zegt het abonnement op in zijn Apple-account.
Hoe voorkom ik dat gebruikers dubbel abonneren op iOS en Android?
Koppel je eigen account-ID aan elke aankoop, met appAccountToken bij Apple en een versluierde account-ID bij Google Play. Controleer daarna op je server of er op een willekeurig platform een actief abonnement is voordat je een paywall toont, en vraag de gebruiker eerst in te loggen.

Bronnen en verder lezen

RefundHalt

De terugbetalingsautopiloot voor de App Store en Google Play

Lees verder

Het volgende terugbetalingsverzoek is al onderweg.

Stel RefundHalt in binnen de tijd die het kost om nog een supportmail te lezen over een terugbetaling die je niet kon betwisten.