Alle artikelen
Deep dive9 min leestijd

Elke restitutie bij een abonnementsupgrade is de beslissing van de store, niet die van u, en ze gaat rechtstreeks van uw opbrengsten af

Wanneer een klant naar een hoger niveau overstapt, geeft de store een restitutie bij de abonnementsupgrade voor de ongebruikte dagen van het oude plan, en dat verlaagt uw opbrengsten automatisch. Zo werken upgraderestituties in de App Store en Google Play, en waarom Apple het bedrag buiten uw server houdt.

Een messing hendel die omhoog wordt geduwd naar een hogere stand terwijl munten van de bureaurand in de schaduw glijden, als illustratie van een restitutie bij een abonnementsupgrade die uw opbrengsten verlaat

Belangrijkste inzichten

  • Een restitutie bij een abonnementsupgrade is automatisch. Wanneer een klant midden in de cyclus naar een hoger niveau overstapt, crediteert of restitueert de store de ongebruikte dagen van het oude plan zonder u te vragen, en het geld komt uit de opbrengsten die u al had geboekt.
  • In de App Store wordt een upgrade meteen van kracht en restitueert Apple het naar rato berekende bedrag van het oorspronkelijke abonnement. Een downgrade wacht tot de volgende verlengingsdatum en restitueert niets.
  • Apple stuurt het bedrag van de upgraderestitutie niet naar uw server. De geüpgradede transactie is gemarkeerd met isUpgraded, maar het prijsveld toont nog steeds de volle prijs van het nieuwe niveau, dus de omzet die u uit App Store Server Notifications berekent, valt te hoog uit.
  • De financiële rapporten in App Store Connect zijn de enige plek waar een naar rato berekende upgraderestitutie wordt verantwoord. Medewerkers van Apple zeggen dat het bedrag niet beschikbaar is via de App Store Server API, Notifications of StoreKit.
  • Google Play zet bij een upgrade geen geld terug op de kaart. Het crediteert de ongebruikte tijd of berekent het prijsverschil, en welke van beide gebeurt hangt af van de vervangingsmodus die u instelt. De standaard is WITH_TIME_PRORATION.
  • Een upgraderestitutie is geen restitutieverzoek van een klant. Er is geen CONSUMPTION_REQUEST en geen terugboekingsbeoordeling, dus er is geen venster van 12 uur of 24 uur en niets om te betwisten. U verrekent ze, u vecht ze niet aan.
  • De vervangingsmodus is een omzetbeslissing. WITH_TIME_PRORATION geeft de klant extra betaalde tijd die u levert tegen de kosten van het hogere niveau, terwijl CHARGE_PRORATED_PRICE het verschil nu in rekening brengt, dus de verkeerde standaard laat marge weglekken, upgrade na upgrade.

Een klant tikt op upgraden, stapt over van uw niveau van vijf dollar naar uw niveau van tien dollar, en u boekt een grotere verkoop. De store doet op datzelfde moment iets anders, en u ziet het nooit. Hij geeft die klant een restitutie bij de abonnementsupgrade voor de dagen die hij op het oude plan al had betaald, en dat geld komt uit uw opbrengsten. Niemand heeft het u gevraagd. In de App Store vindt u het bedrag niet eens terug in de gebeurtenissen die uw server ontvangt.

Dit is niet de restitutie die u kunt aanvechten. Het is geen CONSUMPTION_REQUEST van Apple en geen terugboekingsbeoordeling van Google Play. Het is een verrekening naar rato, ingebouwd in de manier waarop beide stores mensen van plan laten wisselen, en ze loopt vanzelf, elke keer dat een abonnee een niveau omhoog gaat. Hier leest u wat een upgraderestitutie in elke store werkelijk is, waarom Apple het bedrag buiten uw server houdt, en wat de verkeerde instelling in Google Play u kost.

Wat een restitutie bij een abonnementsupgrade werkelijk is

Een upgraderestitutie is de store die afrekent voor tijd die de klant heeft betaald maar niet zal gebruiken. Ze heeft niets te maken met een klacht, een geschil of uw restitutiebeleid. Ze wordt alleen door de mechaniek van de planwissel geactiveerd.

Het is een verrekening naar rato, geen klacht van een klant

Wanneer een abonnee midden in een factureringsperiode naar een hoger niveau overstapt, heeft hij tot het einde van die periode al tegen de oude prijs betaald. De store vergoedt hem voor het ongebruikte deel. Apple geeft een naar rato berekende restitutie van het oorspronkelijke abonnement. Google Play crediteert de ongebruikte waarde op het nieuwe plan. Geen van beide verloopt via een stroom waarop u kunt reageren, en geen van beide wacht op uw goedkeuring.

Alleen een upgrade activeert ze

De richting van de wissel bepaalt het geld. In de App Store is een upgrade een overstap naar een product met een hogere rang binnen dezelfde abonnementsgroep, en alleen die overstap is meteen en met restitutie. Een downgrade is een overstap naar een lagere rang, en die wordt van kracht bij de volgende verlenging, zonder restitutie. Een crossgrade is een overstap tussen producten met dezelfde rang, en de timing hangt af van de betrokken looptijden. Rangschik de producten verkeerd in App Store Connect en een wissel die u voor een upgrade houdt, gedraagt zich als iets anders.

Wissel in de App StoreWanneer ze van kracht wordtWat er met het geld gebeurt
Upgrade naar een hoger niveauMeteenApple restitueert het naar rato berekende bedrag van het oorspronkelijke abonnement
Downgrade naar een lager niveauOp de volgende verlengingsdatumGeen restitutie, verlengt tegen de lagere prijs
Crossgrade, dezelfde looptijd vooraf betaaldMeteenNieuw abonnement begint, betaalde dienst loopt door
Crossgrade, verschillende looptijdenOp de volgende verlengingsdatumGeen restitutie midden in de cyclus

Waarom de App Store de upgraderestitutie voor uw server verbergt

Hier is het deel dat de omzetrapportage breekt. Apple geeft de upgraderestitutie, maar vertelt uw server nooit hoeveel het heeft gerestitueerd.

isUpgraded is het enige signaal, en de prijs klopt niet

De nieuwe transactie komt binnen met isUpgraded op true, wat u vertelt dat er een planwissel heeft plaatsgevonden. Het prijsveld op die transactie toont nog steeds de volle weergaveprijs van het nieuwe niveau, niet het bedrag dat Apple van het oude heeft teruggehaald. Geen enkele App Store Server Notification bevat het restitutiebedrag. In Apples eigen woorden op de ontwikkelaarsforums is het naar rato berekende restitutiebedrag niet beschikbaar via de App Store Server API, Notifications of StoreKit, en zijn de rapporten van App Store Connect uw bron voor alle doeleinden van financiële boekhouding.

Het financiële rapport is de enige eerlijke registratie

De financiële en verkooprapporten van App Store Connect verantwoorden de naar rato berekende upgraderestitutie, want die rapporten bepalen wat Apple u werkelijk uitbetaalt. Daarmee zijn ze de bron van waarheid voor elke abonnee die ooit is opgeklommen. Bouw uw boekhouding op de rapporten, en behandel de servergebeurtenissen als signalen van toegangsrechten, niet als omzet.

Twee kaarten met abonnementsniveaus op een bureau terwijl een hand een markering omhoog schuift naar de hogere kaart en munten van de oude kaart worden opgetild, als illustratie van een restitutie bij een abonnementsupgrade die uw opbrengsten verlaat

Wat het u kost, in geld

De upgraderestitutie is geen afrondingsfout. Het zijn echte opbrengsten, en bij Google Play kiest u bovendien hoeveel van de ongebruikte tijd u weggeeft.

De restitutie zijn opbrengsten die u al had geboekt

Neem een abonnee op uw niveau van 9.99 per maand die op dag 20 van een cyclus van 30 dagen upgradet naar 19.99. Ongeveer een derde van de maand is ongebruikt, dus Apple restitueert ongeveer 3.33 van de oorspronkelijke 9.99. U verliest niet de hele verkoop. U geeft het deel terug dat de klant vooraf betaalde en niet zal gebruiken. Wat telt is dat de teruggave automatisch is en op de oude verkoop landt, zodat de opbrengsten die u al had geteld achteraf krimpen. Vermenigvuldig dat met elke abonnee die midden in de cyclus opklimt en het is een regel die u zou moeten kunnen zien, geen gat dat u in de uitbetaling ontdekt.

Bij Google Play is de vervangingsmodus de echte kostenhefboom

Google Play zet bij een upgrade geen geld terug op de kaart. Het verrekent de ongebruikte tijd op een van meerdere manieren, en u kiest welke door een vervangingsmodus mee te geven wanneer u de aankoopstroom start. De keuze bepaalt of u de klant betaalde tijd geeft of hem het verschil in rekening brengt. Google raadt CHARGE_PRORATED_PRICE aan voor upgrades en DEFERRED voor downgrades, maar de standaard van de bibliotheek is WITH_TIME_PRORATION, dus een stroom die u nooit hebt geconfigureerd, crediteert stilletjes tijd.

Vervangingsmodus in Google PlayWanneer ze van kracht wordtWat er met de ongebruikte tijd gebeurt
WITH_TIME_PRORATION (standaard)MeteenGecrediteerd als extra tijd op het nieuwe plan, volgende factureringsdatum opgeschoven
CHARGE_PRORATED_PRICE (alleen upgrade)MeteenPrijsverschil voor de resterende periode wordt nu berekend, factureringsdatum ongewijzigd
WITHOUT_PRORATIONMeteenNu niets verrekend, de nieuwe prijs begint bij de volgende verlenging
CHARGE_FULL_PRICEMeteenVolle prijs van het nieuwe plan wordt nu berekend, resterende waarde overgedragen of naar rato verrekend
DEFERREDBij de volgende verlengingHuidig plan loopt tot het verloopt, daarna begint het nieuwe plan

Hoe u voorkomt dat upgraderestituties uw boeken verrassen

U kunt de verrekening naar rato niet uitschakelen, en dat zou u ook niet willen, want ze maakt een planwissel eerlijk voor de klant. Wat u wel kunt doen, is ze zien, ze inprijzen en ze gescheiden houden van de restituties die u werkelijk kunt betwisten.

Stem Apple-upgrades af op het financiële rapport

Omdat het restitutiebedrag uw server nooit bereikt, zijn de financiële en verkooprapporten van App Store Connect de enige plek waar een naar rato berekende upgraderestitutie opduikt. Stem de abonnee-omzet elke periode af op die rapporten, en bereken de omzet niet uit een lopend totaal van Server Notifications. De isUpgraded-vlag vertelt u dat er een wijziging heeft plaatsgevonden. Het rapport vertelt u wat ze heeft gekost.

Kies de vervangingsmodus in Google Play bewust

Geef voor elke planwissel bewust een vervangingsmodus mee. Gebruik CHARGE_PRORATED_PRICE wanneer u het prijsverschil bij een upgrade nu wilt innen. Laat WITH_TIME_PRORATION alleen staan wanneer u de klant de resterende tijd wilt geven. Gebruik DEFERRED voor downgrades zodat u de huidige omzet behoudt tot de looptijd afloopt. De standaard is een beslissing, en de verkeerde standaard geeft marge weg, upgrade na upgrade.

Houd upgraderestituties gescheiden van restituties die u kunt betwisten

Een upgraderestitutie is per ontwerp automatisch en definitief. Het is geen klant die zijn geld terugvraagt. De restituties waarop u werkelijk invloed hebt, zijn de door de klant gestarte, waarbij Apple een CONSUMPTION_REQUEST stuurt en u 12 uur geeft om te reageren, en waarbij Google Play via orders.reviewrefund een terugboekingsbeoordeling opent met een venster van 24 uur. Label uw gegevens zo dat de twee nooit door elkaar lopen. De ene regel verrekent u. De andere regel beantwoordt u, tegen de klok.

De korte versie

Wanneer een klant een abonnement upgradet, verrekent de store de ongebruikte tijd voor hem automatisch. Apple restitueert het naar rato berekende bedrag van het oude plan meteen en stuurt uw server het cijfer nooit, dus de financiële rapporten van App Store Connect zijn de enige nauwkeurige registratie. Google Play crediteert de tijd of berekent het verschil afhankelijk van de vervangingsmodus die u instelt, en de standaard geeft de klant betaalde tijd die u levert tegen kostprijs. Niets ervan verloopt via een CONSUMPTION_REQUEST of een terugboekingsbeoordeling, dus er is niets te betwisten. Verreken de upgraderestitutie, stel uw Google Play-modus bewust in, en houd ze gescheiden van de restituties die u nog kunt aanvechten.

Veelgestelde vragen

Vraagt een restitutie bij een abonnementsupgrade om mijn goedkeuring?
Nee. Een restitutie bij een abonnementsupgrade is automatisch. Wanneer een klant midden in de cyclus naar een hoger niveau overstapt, verrekent de store de ongebruikte tijd op het oude plan zelf, zonder verzoek aan u en zonder venster om te reageren. Apple restitueert het naar rato berekende bedrag van het oorspronkelijke abonnement, en Google Play crediteert de ongebruikte tijd of berekent het prijsverschil afhankelijk van de vervangingsmodus die u instelt.
Waarom komt mijn App Store-omzet na upgrades niet overeen met mijn uitbetaling?
Omdat Apple het bedrag van de upgraderestitutie niet naar uw server stuurt. De geüpgradede transactie draagt isUpgraded op true, maar het prijsveld toont nog steeds de volle prijs van het nieuwe niveau, en geen enkele App Store Server Notification bevat de restitutie. Omzet die uit servergebeurtenissen wordt berekend, telt de nieuwe verkoop en mist de restitutie op het oude plan, dus valt hij te hoog uit tot u hem afstemt op de financiële rapporten van App Store Connect.
Zet Google Play geld terug op de kaart wanneer een klant upgradet?
Nee. Google Play behandelt de ongebruikte tijd als een tegoed, niet als een contante restitutie. Afhankelijk van de vervangingsmodus crediteert het ofwel de resterende tijd op het nieuwe plan en schuift het de volgende factureringsdatum op, ofwel berekent het het prijsverschil voor de resterende periode. De standaardmodus is WITH_TIME_PRORATION, die de tijd crediteert.
Kan ik een restitutie bij een abonnementsupgrade betwisten?
Nee. Een upgraderestitutie is geen restitutieverzoek van een klant. Er is geen CONSUMPTION_REQUEST van Apple en geen terugboekingsbeoordeling van Google Play, dus er is geen venster van 12 uur of 24 uur en niets om te versturen. Een upgraderestitutie verrekent u. U betwist alleen door de klant gestarte restituties en terugboekingen.
Krijgt de klant bij een downgrade een restitutie?
Nee. In de App Store wordt een downgrade van kracht op de volgende verlengingsdatum en restitueert niets, omdat de klant het hogere niveau behoudt tot de betaalde periode afloopt. Bij Google Play is de aanbevolen manier om een downgrade af te handelen de vervangingsmodus DEFERRED, die het huidige plan behoudt tot het verloopt en dan het lagere start.
Welke vervangingsmodus in Google Play moet ik gebruiken voor een upgrade?
Google raadt CHARGE_PRORATED_PRICE aan voor upgrades, die het prijsverschil voor de resterende periode meteen berekent en de factureringsdatum ongewijzigd laat. De standaard WITH_TIME_PRORATION crediteert in plaats daarvan de ongebruikte tijd als extra dienst op het hogere niveau, dus gebruik die alleen wanneer u die tijd wilt weggeven.

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.