Apple en Google laten je allebei de verlengingsdatum van een abonnement opschuiven na een storing, maar hun grenzen lijken totaal niet op elkaar
Als je app platligt, kun je de verlengingsdatum van een abonnement opschuiven in plaats van te wachten op terugbetalingsverzoeken. Zo werken de verlengingen van 90 dagen bij Apple en het uitstellen van facturering bij Google Play, hier trekt elke store de grens en dit kost elke optie je.

Belangrijkste inzichten
- Met de App Store Server API kan een developer de verlengingsdatum van een betaald, actief, automatisch verlengbaar abonnement 1 tot 90 dagen opschuiven, als compensatie voor een storing, een geannuleerd evenement of een onderbroken livestream.
- Apple staat twee verlengingen van de verlengingsdatum per klant toe binnen 365 dagen. Een verlenging die van kracht is, kan niet worden teruggedraaid, en Apple mailt de klant de nieuwe verlengingsdatum.
- Apple verlengt geen abonnement dat in een gratis aanbiedingsperiode zit, in een herhaalpoging voor betaling, in een respijtperiode waarvan de einddatum al verstreken is, of dat al verlopen is. Het abonnement moet minstens één betaalde periode achter de rug hebben.
- Dagen die een verlenging van de verlengingsdatum bij Apple toevoegt, tellen niet mee voor het jaar betaalde dienstverlening waarna het aandeel van de developer in de abonnementsinkomsten stijgt van 70% naar 85%.
- Met purchases.subscriptionsv2.defer van Google Play schuif je de volgende factuurdatum van een abonnement minimaal één dag en maximaal een jaar per aanroep op. De gebruiker houdt volledige toegang zonder te betalen, en Google stuurt een SUBSCRIPTION_DEFERRED-melding.
- Een verlenging van de verlengingsdatum levert geen geld terug, dus de developer houdt de betaling, maar betaalt tijdens de extra dagen voor rekenkracht, opslag en API-aanroepen zonder dat er een verlenging tegenover staat. Een terugbetaling stuurt de prijs terug en niets van het geld dat al is uitgegeven aan die klant.
- Als een storing ervoor zorgde dat een in-app-aankoop niet werd geleverd en Apple een CONSUMPTION_REQUEST stuurt, is de eerlijke deliveryStatus UNDELIVERED_SERVER_OUTAGE, en Apple eist dat consumptionPercentage 0 is bij elke status behalve DELIVERED.
Een storing geeft elke abonnee het sterkste terugbetalingsverhaal dat er bestaat, en je kunt niet voorkomen dat ze het vertellen. Wat je wel kunt doen, is de verloren dagen teruggeven voordat iemand erom vraagt. In beide app stores kun je de verlengingsdatum van een abonnement opschuiven, zodat de klant gratis tijd krijgt in plaats van geld. Apple beperkt elke verlenging tot 90 dagen en staat er twee per jaar toe. Google laat je de facturering tot een jaar per aanroep uitstellen. Het papierwerk, de meldingen en de rekening eronder verschillen zoveel dat één storingsplan ze niet allebei dekt.
Wat een storing doet met je terugbetalingsrisico
Terugbetalingen worden beslist door de stores, niet door jou. In de App Store vraagt een klant het aan Apple en beslist Apple. Je kunt een CONSUMPTION_REQUEST-melding krijgen en 12 uur om verbruiksgegevens te sturen via Send Consumption Information. Meer inspraak heb je niet.
Op Google Play kan een koper binnen 48 uur na aankoop een terugbetaling krijgen zonder dat jou iets gevraagd wordt. Daarna komen verzoeken bij jou terecht. De enige Google-flow die om jouw bewijs vraagt, is een chargeback die is gemarkeerd voor beoordeling door de developer, en die beantwoord je via orders.reviewrefund binnen 24 uur. De beslissing van de bank over een chargeback is definitief.
Geen van beide stores geeft je dus een manier om een terugbetaling te blokkeren. Wat je wel in de hand hebt, is of een abonnee zich nog tekortgedaan voelt als de dienst weer werkt. Extra tijd op het abonnement, snel toegekend en duidelijk aangekondigd, is precies het middel dat beide stores daarvoor hebben gebouwd.
Zo schuif je de verlengingsdatum van een abonnement op in de App Store
De App Store Server API heeft hiervoor twee endpoints. Extend a Subscription Renewal Date werkt op één abonnement, dat je aanwijst met zijn originalTransactionId. Extend Subscription Renewal Dates for All Active Subscribers werkt op elke geschikte abonnee van één productId, en je kunt het beperken met storefrontCountryCodes als de storing maar een paar regio's trof.
Elk verzoek bevat drie dingen: extendByDays, een getal van 1 tot 90; een extendReasonCode; en een requestIdentifier die je zelf genereert. Redencode 3 betekent een probleem met de dienst of een storing. Code 1 is klanttevredenheid, code 2 is andere redenen en code 0 is niet opgegeven.
Welke abonnementen Apple verlengt
Alleen actieve automatisch verlengbare abonnementen met minstens één eerder betaalde periode komen in aanmerking. Apple slaat deze over:
- Abonnementen in een gratis aanbiedingsperiode, zoals een gratis proefperiode.
- Inactieve abonnementen in een herhaalpoging voor betaling.
- Abonnementen in een respijtperiode voor betaling waarvan de einddatum in het verleden ligt.
- Abonnementen die in de afgelopen 365 dagen al twee verlengingen van de verlengingsdatum kregen.
- Verlopen abonnementen.
Delen met gezin gaat vanzelf mee. Als Apple een gekocht abonnement verlengt dat Delen met gezin ondersteunt, worden de abonnementen van de gezinsleden ook verlengd. Je kunt het abonnement van een gezinslid niet rechtstreeks aanwijzen.
Het bulkverzoek is traag, dus let op de meldingen
Volgens Apple kan een verzoek om alle actieve abonnees te verlengen uren of zelfs dagen duren, afhankelijk van hoeveel abonnees je hebt. Een 200-antwoord betekent alleen dat Apple het verwerkt. App Store Server Notifications V2 vertelt je hoe het afliep:
| Melding | Subtype | Wat het betekent |
|---|---|---|
| RENEWAL_EXTENDED | geen | De verlengingsdatum van één abonnement is opgeschoven |
| RENEWAL_EXTENSION | FAILURE | De verlenging van één abonnement is mislukt |
| RENEWAL_EXTENSION | SUMMARY | Het volledige bulkverzoek is afgerond |
Neem bij elke FAILURE de originalTransactionId uit de ondertekende transactie in de payload en probeer het opnieuw met het endpoint voor één abonnement. Wil je liever pollen, dan meldt Get Status of Subscription Renewal Date Extensions of het verzoek klaar is en hoeveel verlengingen gelukt of mislukt zijn.
Zo werkt het uitstellen van facturering bij Google Play
De Google-versie is purchases.subscriptionsv2.defer, die je eenmaal per aankooptoken aanroept. De body van het verzoek bevat een deferralContext met drie velden. De etag komt uit purchases.subscriptionsv2.get, en de aanroep mislukt als die niet overeenkomt met de nieuwste etag van het abonnement. De deferDuration bepaalt hoe ver de datum opschuift. En validateOnly voert het verzoek, als het op true staat, uit als proefrun zonder het abonnement aan te raken.
De billinggids van Google legt het bereik vast op één dag tot één jaar per API-aanroep. Wil je verder gaan, roep dan opnieuw aan voordat de nieuwe einddatum is bereikt. Bij een automatisch verlengend abonnement verschuift het uitstel de volgende verlengingsdatum. Bij een prepaid abonnement verschuift het de eindtijd. Bij een abonnement met add-ons wordt elk item met dezelfde duur uitgesteld. Het antwoord vermeldt de nieuwe expiryTime van elk item.
Tijdens het uitstel blijft de gebruiker geabonneerd met volledige toegang en betaalt niets voor de extra tijd. Google stuurt een real-time developer notification SUBSCRIPTION_DEFERRED. De oudere purchases.subscriptions.defer is verouderd, dus nieuwe code hoort de v2-methode te gebruiken.
Google licht je klant niet in, dus dat moet jij doen
Apple mailt de klant na elke geslaagde verlenging. De billinggids van Google beschrijft helemaal geen bericht aan de gebruiker. Als het hele doel is terugbetalingsverzoeken voor te zijn, moet de abonnee weten dat de extra tijd er is. Laat het zelf weten, in de app en per e-mail, en vertel hoeveel dagen en waarom.
Apple en Google naast elkaar
| Apple App Store | Google Play | |
|---|---|---|
| API | Extend a Subscription Renewal Date, plus een bulkendpoint | purchases.subscriptionsv2.defer |
| Duur per verzoek | 1 tot 90 dagen | 1 dag tot 1 jaar |
| Hoe vaak | Twee keer per klant binnen 365 dagen | Geen limiet vermeld; roep opnieuw aan vóór de nieuwe einddatum |
| Bulkoptie | Eén aanroep per productId, optioneel per storefront | Eén aanroep per aankooptoken |
| Gratis proefperiode | Komt niet in aanmerking | Niet behandeld in de gids van Google |
| Melding | RENEWAL_EXTENDED, RENEWAL_EXTENSION | SUBSCRIPTION_DEFERRED |
| Klant ingelicht | Apple stuurt een e-mail | Aan jou |
| Terug te draaien | Nee | Niet behandeld in de gids van Google |
Wat een verlenging kost vergeleken met een terugbetaling
Een terugbetaling en een verlenging halen geld op verschillende plekken weg. Een terugbetaling stuurt terug wat de klant voor de periode betaalde. Alles wat je al hebt uitgegeven om die klant te bedienen, blijft uitgegeven: rekenkracht voor elke sessie, API-aanroepen naar modellen, opslag en elke uitbetaling aan een maker van wie ze de content gebruikten.
Een verlenging houdt de betaling. Wat het kost, is dienstverlening die je levert zonder verlenging die ervoor betaalt. Elke extra dag blijft een actieve abonnee dezelfde rekeningen oplopen. Voor een lichte gebruiker is dat bijna niets. Voor een zware gebruiker van een AI-functie kunnen 30 extra dagen 30 dagen modelaanroepen betekenen zonder inkomsten ertegenover. Stem de verlenging af op de storing, niet op de excuses die je graag zou maken.
| Wat je opgeeft | Terugbetaling | Verlenging van de verlengingsdatum |
|---|---|---|
| De abonnementsbetaling | Teruggegeven aan de klant | Behouden |
| Kosten al gemaakt om de klant te bedienen | Verloren | Verloren |
| Rekenkracht, opslag en API-aanroepen tijdens de extra dagen | Geen, toegang stopt | Betaald door jou, nog geen verlenging |
| Het abonnement daarna | Stopt als de terugbetaling de toegang intrekt | Actief, verlengt op de nieuwe datum |
De commissiekosten bij Apple
Apple betaalt 70% van elke verlenging tijdens het eerste jaar betaalde dienstverlening van een abonnee en daarna 85%. Volgens de abonnementspagina van Apple tellen verlengingsdagen niet mee als dagen betaalde dienstverlening. Een verlenging van 30 dagen schuift de overstap van die abonnee naar 85% dus 30 dagen op. Zit je in het App Store Small Business Program, dan ontvang je al 85% en geldt deze kostenpost niet.
De chargebackkosten bij Google Play
Voor bestellingen na 3 augustus 2026 kost een chargeback die de kaarthouder wint een Google Play-developer de aankoopprijs min de servicekosten van Play, plus de kosten van de bank. Een storing is precies het soort gebeurtenis dat een geïrriteerde klant naar de bank stuurt. Uitstel dat hen eerst bereikt, is goedkoper dan een geschil dat je niet kunt terugdraaien.

Wanneer een verlenging niet het juiste middel is
De aankoop was geen abonnement
Verlengingen van de verlengingsdatum gelden alleen voor abonnementen. Als een storing een verbruiksartikel of een eenmalige ontgrendeling liet mislukken, lever het item dan opnieuw. Als Apple er een CONSUMPTION_REQUEST voor stuurt, meld dan wat er gebeurde. Het deliveryStatus-veld van Apple heeft hiervoor een waarde, UNDELIVERED_SERVER_OUTAGE, en Apple zegt dat elke status behalve DELIVERED moet samengaan met consumptionPercentage op 0.
De klant heeft beide Apple-verlengingen al gebruikt
De limiet van Apple is twee verlengingen per klant in 365 dagen. Twee storingen in een jaar gebruiken ze allebei op, en bij een derde heb je via de store niets meer te bieden. Houd bij hoeveel verlengingen elke originalTransactionId heeft gebruikt, zodat de FAILURE-meldingen van het bulkverzoek je niet verrassen.
De klant zit in een gratis proefperiode
Apple verlengt geen abonnement in een gratis aanbiedingsperiode. Een proefgebruiker verloor gratis dagen, geen betaalde, dus het terugbetalingsrisico is laag. Wil je het toch goedmaken, dan kost een bericht in de app minder dan welke API-aanroep ook.
Een checklist voor de volgende storing
- Leg vast wanneer de storing begon en eindigde, en welke producten en regio's werden getroffen.
- Kies een aantal dagen dat de verloren tijd dekt. Gebruik bij Apple redencode 3 en blijf binnen 1 tot 90.
- Stuur bij Apple één bulkverzoek per productId, beperkt met storefrontCountryCodes als maar een paar regio's getroffen waren.
- Luister naar RENEWAL_EXTENSION FAILURE en probeer elk geval opnieuw met het endpoint voor één abonnement.
- Loop bij Google Play de actieve aankooptokens langs, lees elke etag, voer eerst uit met validateOnly en stel daarna echt uit.
- Vertel abonnees van Google Play zelf over de extra tijd, want Google doet het niet.
- Werk de vervaldatum van rechten bij op basis van RENEWAL_EXTENDED en SUBSCRIPTION_DEFERRED, niet op basis van je eigen datumberekening.
- Bewaar gebruikslogs per account, zodat je bewijs klaarligt binnen 12 uur voor Apple en 24 uur voor Google als er toch een terugbetalingsverzoek of chargeback binnenkomt.
Veelgestelde vragen
- Hoe vaak kan ik de verlengingsdatum van een App Store-abonnement opschuiven?
- Twee keer per klant binnen 365 dagen. Elke verlenging kan 1 tot 90 dagen zijn, en een abonnement dat in de afgelopen 365 dagen al twee verlengingen kreeg, komt niet in aanmerking voor nog een.
- Laat Apple de klant weten dat ik zijn abonnement heb verlengd?
- Ja. Na een geslaagde verlenging van de verlengingsdatum stuurt Apple de klant een e-mail met de nieuwe verlengingsdatum. De billinggids van Google Play beschrijft zo'n bericht niet, dus op Android licht je abonnees beter zelf in.
- Hoe lang kan ik een Google Play-abonnement uitstellen?
- Volgens de billinggids van Google één dag tot één jaar per aanroep van purchases.subscriptionsv2.defer. Wil je verder uitstellen, roep de API dan opnieuw aan voordat de nieuwe einddatum is bereikt. De gebruiker houdt volledige toegang en betaalt niets voor de uitgestelde tijd.
- Kan ik een verlenging van de verlengingsdatum bij Apple ongedaan maken?
- Nee. Apple zegt dat een verlenging van een abonnement niet meer kan worden teruggedraaid zodra die van kracht is. Controleer het product, het aantal dagen en de storefronts voordat je het verzoek verstuurt.
- Heeft een verlenging van de verlengingsdatum invloed op mijn inkomstenaandeel van 85% bij Apple?
- Ja. Apple telt verlengingsdagen niet mee als dagen betaalde dienstverlening, dus een verlenging stelt het moment waarop een abonnee van 70% naar 85% gaat uit met het aantal dagen dat je toevoegde. Developers in het App Store Small Business Program ontvangen al 85%.
- Kan ik een abonnement in een gratis proefperiode verlengen?
- Niet in de App Store. Apple sluit abonnementen in een gratis aanbiedingsperiode uit, net als herhaalpogingen voor betaling, een verlopen respijtperiode en verlopen abonnementen. Alleen actieve abonnementen met minstens één betaalde periode komen in aanmerking.
Bronnen en verder lezen
- Apple Developer: Extending the renewal date for auto-renewable subscriptions
- Apple Developer: Extend a Subscription Renewal Date
- Apple Developer: Extend Subscription Renewal Dates for All Active Subscribers
- Apple Developer: extendReasonCode
- Apple Developer: Auto-renewable subscriptions
- Apple Developer: deliveryStatus
- Google Play Developer API: purchases.subscriptionsv2.defer
- Google Play Billing: Manage subscriptions and one-time purchases
- Google Play Billing: Subscription lifecycle
- Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
De terugbetalingsautopiloot voor de App Store en Google Play
Lees verder
Buitensporige terugbetalingsverzoeken kunnen je meer kosten dan de terugbetalingen zelf, want beide app stores zien ze als kwaliteitssignaal
Apple's richtlijn 5.6.4 noemt buitensporige terugbetalingsverzoeken een teken dat een app niet aan de kwaliteitsnormen voldoet, en Google's distributieovereenkomst laat Google apps van nieuwe ontwikkelaars verwijderen op basis van het terugbetalingspercentage. Dit zegt elke store, dit kost een verwijdering en zo blijf je buiten schot.
Verifieer App Store server notifications voordat je op een terugbetaling reageert, want iedereen kan naar je webhook-URL posten
Een terugbetalingsmelding is gewoon een HTTPS-verzoek totdat je de handtekening controleert. Zo verifieer je App Store server notifications en Google Play RTDN-berichten, lees je wat elke store ondertekent en wat een vervalste of ten onrechte geweigerde terugbetaling je kost.