Verlengingen mislukken vaker dan klanten opzeggen, en dat onvrijwillige verloop is omzet die je nog kunt terugwinnen
Een geweigerde kaart, geen tik op opzeggen, beeindigt een groot deel van de abonnementen, en de store blijft weken proberen te incasseren. Zo werken de betalingsrespijtperiode, de betalingsherhaling en de accountblokkering in de App Store en Google Play, en wat onvrijwillig verloop je echt kost.

Belangrijkste inzichten
- Onvrijwillig verloop is een abonnement dat eindigt omdat een verlengingsafschrijving mislukte, meestal een verlopen of geweigerde kaart, en niet omdat de klant koos om op te zeggen. Het is een betalingsprobleem, en beide stores zijn gebouwd om het voor je te herstellen.
- Wanneer een verlenging mislukt, beeindigt geen van beide stores het abonnement meteen. Apple probeert de kaart tot 60 dagen opnieuw, en Google Play houdt een herstelvenster van 60 dagen open, verdeeld over een respijtperiode en een accountblokkering.
- Tijdens een betalingsrespijtperiode behoudt de abonnee volledige toegang terwijl de store het opnieuw probeert. Herstel binnen de respijtperiode in beide stores en er is geen onderbreking en geen verloren dagen, en de facturatiedatum verschuift niet.
- Na de respijtperiode verliest de abonnee toegang, maar de herhaling gaat door. Herstel dan en Apple start een nieuwe facturatiecyclus op de hersteldatum, en Google reset de facturatiedatum, zodat je de abonnee met een verse klok terugkrijgt.
- Het herstel loopt op de achtergrond zonder kosten voor jou. Je betaalt geen verwerker om opnieuw te proberen, en Apple neemt zelfs de tijdens de respijt geleverde gratis dagen voor zijn rekening. De omzet die je verliest is meestal omzet die je laat weglekken door de respijtperiode uit te zetten of een herstelbare abonnee verkeerd te lezen als verloren.
- De signalen komen binnen via dezelfde App Store Server Notifications- en Google Play RTDN-feeds die je al gebruikt voor terugbetalingen: DID_FAIL_TO_RENEW en SUBSCRIPTION_IN_GRACE_PERIOD, SUBSCRIPTION_ON_HOLD, daarna een BILLING_RECOVERY of SUBSCRIPTION_RECOVERED wanneer de kaart doorkomt.
- Een abonnee in respijt of blokkering is nog niet verlopen. Tel hem pas als verloren wanneer het venster van 60 dagen sluit zonder herstel, anders ziet je verloop er slechter uit dan het is en ziet je herstelpercentage eruit als nul.
Een kaart verloopt, een bank weigert een verlenging, en een abonnee die je nooit verloor stopt met betalen. Hij opende je app niet en tikte niet op opzeggen. Zijn betaalmethode mislukte gewoon, en tenzij je weet wat er daarna gebeurt, valt hij geruisloos uit je omzet. Dit is onvrijwillig verloop, en zowel in de App Store als in Google Play geeft de store die betaling niet op wanneer ze mislukt. Hij behoudt de abonnee, blijft de kaart opnieuw proberen en houdt in de meeste gevallen wekenlang een venster open waarin het geld nog kan binnenkomen. Het meeste van dat herstel gebeurt of je nu handelt of niet. Het correct lezen is het verschil tussen het tellen van een echte opzegging en het afschrijven van een betaling die de store op het punt staat voor je te incasseren.
Dit is geen terugbetaling en geen terugboeking. Niets wordt teruggedraaid, geen geld verlaat je rekening. De omzet landt gewoon nooit, en in je rapporten ziet het eruit als een gewoon verloop. Precies daarom lekt het stilletjes weg. Een klant die opzegt vertelt je dat hij vertrekt. Een klant wiens kaart mislukte vertelt je niets, en als je ze hetzelfde behandelt, verlies je degenen die de store op het punt stond terug te winnen.
Wat onvrijwillig verloop eigenlijk is
Verloop komt in twee vormen, en ze zijn niet hetzelfde probleem. Vrijwillig verloop is een beslissing: de klant zegt op omdat hij het abonnement niet meer wil. Onvrijwillig verloop is een ongeluk: de verlengingsafschrijving mislukt, meestal omdat een kaart verliep, haar limiet bereikte of door de bank werd gemarkeerd voor een terugkerende of buitenlandse afschrijving. Het eerste is een productprobleem dat je met het product oplost. Het tweede is een betalingsprobleem, en het is het probleem dat de store voor je moet oplossen.
Waarom het groter is dan het lijkt
Mislukte verlengingen komen vaak voor, en ze hebben niets te maken met hoe goed je app is. Kaarten verlopen volgens een schema, saldi raken op, en banken weigeren terugkerende afschrijvingen die er volgens hen riskant uitzien. Elke verlengingscyclus mislukt een deel van je afschrijvingen om redenen die de abonnee nooit koos. Omdat die abonnees nooit aankondigden dat ze vertrokken, zijn ze gemakkelijk verkeerd te lezen als gewone verlopen en gemakkelijk uit het oog te verliezen, en zo wordt herstelbare omzet uiteindelijk als dood geboekt.
De App Store blijft 60 dagen proberen
Wanneer een automatisch verlengbaar abonnement niet kan worden afgeschreven, beeindigt Apple het niet. Het gaat over in een betalingsherhalingsperiode die tot 60 dagen loopt, en Apple blijft de kaart in dat venster proberen te belasten. Wat de abonnee tijdens die 60 dagen ervaart, hangt af van een instelling die jij bestuurt: de betalingsrespijtperiode.
De betalingsrespijtperiode behoudt toegang terwijl Apple het opnieuw probeert
Zet de betalingsrespijtperiode aan en de abonnee behoudt volledige toegang tot je betaalde inhoud gedurende de lengte van de respijt, tot 16 dagen bij maand- en jaarplannen, terwijl Apple de kaart opnieuw probeert. Herstel binnen de respijtperiode en er is helemaal geen onderbreking: dezelfde facturatiedatum, geen verloren servicedagen en geen gat in je omzet. Apple neemt zelfs de kosten voor de dagen die het tijdens de respijt gratis leverde voor zijn rekening. Dit is de zeldzame instelling die bijna puur voordeel is, want een herstelde abonnee merkt de mislukte afschrijving niet eens.
Na de respijt stopt de toegang, maar de herhaling niet
Zodra de respijtperiode eindigt zonder geslaagde afschrijving, verliest de abonnee toegang, maar Apple blijft de kaart proberen gedurende de rest van het venster van 60 dagen. Herstel in die periode en de abonnee verlengt op de hersteldatum, waarbij een nieuwe facturatiecyclus start, en Apple factureert niet voor de al weggegeven respijtdagen. Pas wanneer de volle 60 dagen verstrijken zonder geslaagde betaling, verloopt het abonnement definitief. Laat de respijtperiode uit en de abonnee verliest toegang op het moment dat de verlenging mislukt, wat het slechtst denkbare moment is om een betalende klant een gesloten deur voor te schotelen.
De meldingen die elke stap markeren
Je App Store Server Notifications-feed vertelt de hele reeks. DID_FAIL_TO_RENEW vertelt je dat een verlenging mislukte, met een GRACE_PERIOD-subtype zolang de abonnee nog in de respijt zit en toegang zou moeten behouden. GRACE_PERIOD_EXPIRED markeert het einde van de respijt, het punt om toegang in te trekken. DID_RENEW met een BILLING_RECOVERY-subtype betekent dat de kaart eindelijk doorkwam en de abonnee terug is. EXPIRED met een BILLING_RETRY-subtype betekent dat de 60 dagen op zijn en de abonnee echt weg is. Handel die vier af en je toegang komt altijd overeen met de echte staat.

Google Play splitst dezelfde 60 dagen in tweeen
Google Play voert hetzelfde idee uit in een andere vorm en met eigen woordenschat. Een mislukte verlenging beweegt het abonnement door een respijtperiode en daarna een accountblokkering, en die twee samen vormen een herstelvenster van 60 dagen.
De respijtperiode behoudt toegang, de accountblokkering neemt ze weg
Tijdens de respijtperiode behoudt de abonnee toegang terwijl Google de kaart opnieuw probeert, en de vervaltijd wordt vooruitgeschoven naarmate de herhalingen lopen. Als de kaart doorkomt, herstelt het abonnement met zijn oorspronkelijke verlengingsdatum intact, alsof de mislukking nooit gebeurde. Als de respijt afloopt, valt het abonnement in de accountblokkering. Nu stopt de toegang, en die blijft uit tot de betaling is opgelost. Herstel uit de accountblokkering en de toegang keert terug, maar de facturatiedatum reset naar de hersteldatum in plaats van de oude.
De rekensom van 60 dagen veranderde eind 2025
Sinds 1 december 2025 berekent Google de lengte van de accountblokkering als 60 dagen min je respijtperiode. Een respijt van 16 dagen laat 44 dagen blokkering, en het gecombineerde herstelvenster blijft 60 dagen. Kies een langere respijt en je ruilt blokkeertijd voor toegangstijd, maar het totale venster verandert niet. Google raadt aan de live abonnementsstaat via zijn API te lezen in plaats van een vaste blokkeerlengte aan te nemen, omdat de verdeling nu afgeleid is en niet statisch.
De RTDN-typen die je afhandelt
Google Play's Real-time Developer Notifications benoemen elke fase. SUBSCRIPTION_IN_GRACE_PERIOD betekent behoud toegang en vraag de klant de kaart te herstellen. SUBSCRIPTION_ON_HOLD betekent trek de toegang nu in. SUBSCRIPTION_RECOVERED betekent dat de betaling doorkwam en de toegang terugkomt. SUBSCRIPTION_CANCELED en daarna SUBSCRIPTION_EXPIRED betekenen dat het venster sloot zonder oplossing en de abonnee is verlopen. Deze komen binnen via dezelfde RTDN-pijp die je al draait voor ongeldig gemaakte aankopen en terugbetalingen.
| Fase | App Store | Google Play |
|---|---|---|
| Verlenging mislukt, toegang behouden | Betalingsrespijtperiode, tot 16 dagen | Respijtperiode, lengte die je instelt |
| Verlenging mislukt, toegang verloren | Na de respijt, gedurende de rest van de 60 dagen | Accountblokkering |
| Totaal herstelvenster | Tot 60 dagen | 60 dagen, respijt plus blokkering |
| Herstel tijdens de respijt | Dezelfde facturatiedatum, geen verloren dagen | Dezelfde verlengingsdatum, geen onderbreking |
| Herstel na de respijt | Nieuwe facturatiecyclus op de hersteldatum | Facturatiedatum reset naar de hersteldatum |
| Eindigt definitief | EXPIRED, subtype BILLING_RETRY | SUBSCRIPTION_EXPIRED |
Wat onvrijwillig verloop je kost
De kosten hier zijn niet de terugbetalingssoort, waarbij geld dat je hebt geboekt wordt teruggehaald. Het is omzet die nooit opduikt, en die verbergt zich in je cijfers als een gewoon verloop.
Een verlenging waarvoor je al betaalde om ze te verdienen
Elke terugkerende abonnee kostte je echt geld om binnen te halen: de advertentie-uitgaven en creatie die hem wierven, de onboarding, en de rekenkracht, opslag en API-aanroepen die je sindsdien elke cyclus voor hem hebt gedraaid. Een abonnee die verloren gaat aan een dode kaart loopt weg met al die verzonken kosten onherstelbaar, en om de omzet te vervangen betaal je de wervingskosten helemaal opnieuw voor iemand nieuw. Een abonnee die de store herstelt kost je niets om opnieuw binnen te halen. Het gat tussen die twee, volledige herwerving tegenover nul, is het geld dat onvrijwillig verloop werkelijk verplaatst.
Het herstel loopt gratis, als je het laat
Hier is het deel dat gemist wordt. Tijdens respijt en herhaling incasseert de store namens jou zonder kosten voor jou. Je voert geen aanmaningsproces, je betaalt geen verwerker voor elke herhaling, en je hoeft geen enkele e-mail te sturen. Het herstel gebeurt op de achtergrond over een venster van 60 dagen. Wanneer die omzet toch verloren gaat, is dat meestal te herleiden tot een van twee zelfveroorzaakte fouten: de respijtperiode uitzetten, zodat abonnees worden buitengesloten op het moment dat een kaart mislukt, of een abonnee die nog in het herstelvenster zit behandelen als een harde opzegging en omzet opgeven die de store niet had opgegeven.
Hoe je onvrijwillig verloop echt laag houdt
Besteed je moeite aan de weinige instellingen en signalen die het herstel bewegen, en laat de store het herhalen doen dat hij al goed doet.
Zet de betalingsrespijtperiode aan
Schakel in beide stores een respijtperiode in. Die houdt betalende abonnees in je app terwijl de store het opnieuw probeert, zodat een herstelde abonnee geen dag verliest, en het is hier de enkele hefboom met de meeste impact. In de App Store is het een schakelaar in App Store Connect. In Google Play staat een respijtperiode standaard aan voor automatisch verlengende basisplannen, dus de taak is hem aan te laten en een lengte in te stellen die je met een gerust hart gratis levert.
Laat toegang overeenkomen met de echte staat bij respijt en blokkering
Behoud toegang tijdens de respijt, bij Apple's DID_FAIL_TO_RENEW met het GRACE_PERIOD-subtype en Google's SUBSCRIPTION_IN_GRACE_PERIOD. Trek toegang in wanneer Apple's respijt afloopt en wanneer Google SUBSCRIPTION_ON_HOLD stuurt. Herstel ze op het moment dat het herstel binnenkomt, bij BILLING_RECOVERY of SUBSCRIPTION_RECOVERED. Doe dit in de ene richting fout en je geeft wekenlang gratis toegang weg. Doe het in de andere richting fout en je sluit een abonnee buiten die een herhaling verwijderd is van je opnieuw betalen.
Tel herstel apart van verloop
Een abonnee in respijt of accountblokkering is niet verlopen. Boek hem niet als verloren tot het herstelvenster sluit zonder geslaagde afschrijving. Als je analyse mislukte verlenging en klant zegde op samenvoegt tot een getal, leest je verloop slechter dan het is en leest je herstel alsof er niets gebeurt. Scheid onvrijwillig verloop eruit en volg het herstelpercentage, want dat percentage is een getal dat je daadwerkelijk kunt bewegen met een instelling en een aansporing.
Spoor aan tot de oplossing, ga dan uit de weg
Het ene nuttige dat je kunt toevoegen is een duwtje. Beide stores laten je de abonnee aansporen zijn betaalmethode bij te werken, Apple binnen de app en Google via zijn In-App Messaging API en Play-meldingen. Een goed getimede aansporing tijdens de respijt verhoogt het herstel, want de meeste van deze klanten willen het abonnement nog en hoeven alleen een kaart te herstellen. Voorbij het duwtje, laat de store herhalen. Hij doet het dure deel al, gratis, wekenlang.
Dezelfde App Store Server Notifications- en RTDN-feeds waar RefundHalt al naar luistert voor terugbetalingen dragen ook elk van deze facturatiesignalen. Respijt, blokkering, herstel en onvrijwillig verloop landen in je dashboard naast je terugbetalingen, zodat je het herstelvenster zijn werk kunt zien doen in plaats van te gissen welke mislukte verlengingen weg zijn en welke terugkomen.
De korte versie
Een mislukte verlenging is geen opzegging, en de store behandelt het wekenlang zo. Apple probeert een kaart tot 60 dagen opnieuw en houdt, met een respijtperiode aan, de abonnee daarbij in je app. Google Play splitst dezelfde 60 dagen tussen een respijtperiode die toegang behoudt en een accountblokkering die ze wegneemt. Zet de respijt aan, handel de meldingen over respijt en blokkering af zodat toegang overeenkomt met de werkelijkheid, spoor de klant aan zijn kaart te herstellen, en tel een abonnee pas als verlopen nadat het venster leeg sloot. Onvrijwillig verloop is het ene omzetlek dat de store actief voor je probeert te dichten. Je taak is grotendeels uit de weg te blijven, en je cijfers goed genoeg te lezen om te weten wanneer het verlies echt is.
Veelgestelde vragen
- Wat is het verschil tussen vrijwillig en onvrijwillig verloop?
- Vrijwillig verloop is een klant die ervoor kiest een abonnement op te zeggen. Onvrijwillig verloop is een abonnement dat eindigt omdat een verlengingsafschrijving mislukte, meestal een verlopen of geweigerde kaart, zonder dat de klant besloot te vertrekken. Onvrijwillig verloop is een betalingsprobleem dat de store voor je probeert te herstellen, dus het zou niet op dezelfde manier moeten worden geteld of behandeld als een echte opzegging.
- Behoudt een abonnee toegang wanneer zijn verlengingsbetaling mislukt?
- Dat hangt af van de fase. Tijdens een betalingsrespijtperiode behoudt de abonnee volledige toegang terwijl de store de kaart opnieuw probeert, in zowel de App Store als Google Play. Nadat de respijtperiode eindigt, stopt de toegang: Apple blijft de rest van het venster van 60 dagen proberen met toegang uit, en Google verplaatst het abonnement naar de accountblokkering, waar toegang wordt weggenomen tot de betaling is opgelost.
- Hoe lang blijft de store proberen een mislukt abonnement te belasten?
- Tot 60 dagen in beide stores. Apple draait een betalingsherhalingsperiode van tot 60 dagen, met de betalingsrespijtperiode erin. Google Play houdt een herstelvenster van 60 dagen verdeeld over de respijtperiode en de accountblokkering, waar sinds 1 december 2025 de accountblokkering wordt berekend als 60 dagen min de lengte van je respijtperiode.
- Moet ik de betalingsrespijtperiode aanzetten?
- Voor de meeste apps, ja. De respijtperiode houdt betalende abonnees in je app terwijl de store een mislukte kaart opnieuw probeert, zodat iedereen die erbinnen herstelt geen dag verliest en de mislukking nooit merkt. De kosten zijn een paar dagen gratis toegang voor de abonnees die nooit herstellen. Het voordeel is het behouden van degenen die vanwege een plotselinge uitsluiting waren weggelopen.
- Is een abonnee in respijtperiode of accountblokkering al verlopen?
- Nee. Hij zit in het herstelvenster, en de store probeert nog te incasseren. Hem als verlopen tellen overdrijft je verloop en verbergt je herstelpercentage. Boek een abonnee pas als verloren wanneer het venster van 60 dagen sluit zonder geslaagde betaling, wat de stores signaleren met een EXPIRED-melding (billing retry) bij Apple en SUBSCRIPTION_EXPIRED bij Google Play.
- Veroorzaakt onvrijwillig verloop een terugbetaling of een terugboeking?
- Nee. Niets wordt teruggedraaid en geen geld verlaat je rekening. Een mislukte verlenging is omzet die nooit binnenkomt, geen betaling die wordt teruggetrokken. Dat is het tegenovergestelde van een terugbetaling of terugboeking, en het is waarom het zich in je rapporten verbergt als een gewoon verloop in plaats van op te duiken als geld dat weggaat.
Bronnen en verder lezen
- Apple Developer: Reducing Involuntary Subscriber Churn (billing retry and billing grace period for auto-renewable subscriptions)
- Apple: App Store Connect Help, Enable Billing Grace Period for auto-renewable subscriptions (grace keeps access; up to 16 days on monthly and yearly plans)
- Apple Developer: App Store Server Notifications notificationType and subtype (DID_FAIL_TO_RENEW with GRACE_PERIOD, GRACE_PERIOD_EXPIRED, DID_RENEW with BILLING_RECOVERY, EXPIRED with BILLING_RETRY)
- Android Developers: Subscription lifecycle (grace period keeps access, account hold removes it, and the recovery RTDN types)
- Google Play Console Help: Changes to Google Play subscription payment recovery periods (from December 1, 2025, account hold is 60 days minus grace period)
- Android Developers: Real-time developer notifications reference (SubscriptionNotification types including SUBSCRIPTION_IN_GRACE_PERIOD, SUBSCRIPTION_ON_HOLD, SUBSCRIPTION_RECOVERED, SUBSCRIPTION_EXPIRED)
RefundHalt
De terugbetalingsautopiloot voor de App Store en Google Play
Lees verder
Ongeautoriseerde in-app-aankopen door kinderen worden bijna altijd aan de ouder terugbetaald, en jij draagt de kosten
Wanneer een kind een muntpakket koopt op de telefoon van een ouder, betalen zowel Apple als Google het terug en geen van beide vraagt het jou eerst. Toezichthouders hebben het zo ontworpen. Zo werken deze terugbetalingen voor ongeautoriseerde in-app-aankopen in elke store, het venster van 15 minuten waarin het geld verdwijnt, en wat er eentje echt kost.
De belasting op een app-terugbetaling was nooit van jou, dus een terugbetaling kost je jouw aandeel, niet het totaal op de bon
Betaal een in-app aankoop terug en de bon toont de prijs plus belasting die teruggaan. Die belasting was nooit jouw geld. Apple en Google innen en dragen het af als merchant of record, en draaien het bij een terugbetaling terug zonder aan jouw aandeel te komen. Dit is wat een terugbetaling werkelijk kost, en de ene opzet waarin de belasting wel van jou wordt.