Alle artikelen
Deep dive9 min leestijd

Uw verbruiksgegevens informeren Apple's terugbetalingsbeslissing, ze bepalen die niet

Wanneer een klant Apple om terugbetaling vraagt, krijgt u 12 uur om verbruiksgegevens te sturen. Apple's eigen documentatie noemt het een van meerdere factoren, geen oordeel. Hier leest u wat uw gegevens werkelijk bewegen, waarom een DECLINE toch in een terugbetaling kan eindigen, en wat de duw in dollars waard is.

Een hand legt een klein koperen gewicht op een balansweegschaal die er al meerdere draagt, als beeld voor verbruiksgegevens als een factor in Apple's terugbetalingsbeslissing

Belangrijkste inzichten

  • Wanneer een klant een terugbetaling aanvraagt, stuurt Apple uw server een CONSUMPTION_REQUEST-melding en geeft u 12 uur om via het Send Consumption Information endpoint met verbruiksgegevens te antwoorden. Mist u het venster, dan beslist Apple zonder uw inbreng.
  • In Apple's eigen woorden gebruikt de App Store meerdere factoren om over een terugbetaling te beslissen, en de verbruiksinformatie die u stuurt dient om die beslissing te informeren. Uw refundPreference is een van die factoren, niet het oordeel.
  • U kunt een refundPreference sturen van afwijzing verkiezen, volledige toekenning verkiezen of naar rato toekenning verkiezen. Apple weegt die af. Daarom zien teams dat een aankoop die zij als afwijzing verkiezen markeerden toch wordt terugbetaald, en dat werkt zoals gedocumenteerd.
  • Apple wijst uw verbruiksgegevens af tenzij customerConsented true is. Als de klant niet heeft ingestemd met het delen van de gegevens, is Apple's richtlijn om helemaal niet op de melding te reageren, en u bent als enige verantwoordelijk voor het verkrijgen van die toestemming.
  • Sinds WWDC24 wordt de CONSUMPTION_REQUEST ook geactiveerd voor automatisch verlengende abonnementen, niet alleen voor verbruiksartikelen, zodat hetzelfde antwoord binnen 12 uur nu veel meer van uw terugbetalingen bereikt dan vroeger.
  • Voor automatisch verlengende abonnementen berekent Apple het verbruik zelf en verbiedt een naar-rato-voorkeur, zodat uw invloed daar dunner is dan bij een verbruiksartikel dat u als volledig verbruikt kunt beschrijven.
  • Het geld dat u al hebt uitgegeven om de aankoop te leveren, de rekenkracht, de API-aanroepen van derden, de opslag, is weg, of Apple de terugbetaling nu toekent of niet. Uw verbruiksantwoord verandert de terugbetaling, nooit de kosten die u al hebt betaald om te leveren.

Een klant tikt op terugbetalen, en binnen een minuut krijgt uw server een CONSUMPTION_REQUEST van Apple. U hebt 12 uur om met verbruiksgegevens te antwoorden, en het is verleidelijk om dat antwoord als een veto te lezen: afwijzing verkiezen sturen, het geld houden. Het is geen veto. Apple's eigen documentatie zegt dat de App Store meerdere factoren gebruikt om te bepalen of een terugbetalingsverzoek wordt goedgekeurd of afgewezen, en dat de verbruiksinformatie die u verstrekt dient om zijn terugbetalingsbeslissingen te informeren. Informeren, niet beslissen. Dit bericht loopt na wat uw verbruiksgegevens werkelijk bewegen, waarom een aankoop die u als afwijzing verkiezen markeerde toch kan worden terugbetaald, en wat de hele oefening waard is zodra u het geld meetelt dat u al hebt uitgegeven.

Wat Apple werkelijk met uw verbruiksgegevens doet

Het Send Consumption Information endpoint bestaat zodat u Apple context kunt aanreiken op het moment dat een terugbetaling in het geding is. Het geeft u niet de beslissing. De stroom in de juiste volgorde lezen is het verschil tussen redelijke verwachtingen stellen en een bug melden tegen gedrag dat gedocumenteerd is.

De App Store beslist, en u beveelt aan

Apple is duidelijk over de scheiding. In de referentie voor Send Consumption Information schrijft Apple dat de App Store meerdere factoren gebruikt om te bepalen of een terugbetalingsverzoek wordt goedgekeurd of afgewezen, en dat het de verbruiksinformatie die u verstrekt gebruikt om zijn terugbetalingsbeslissingen te informeren. Over het veld refundPreference zelf stelt Apple dat uw terugbetalingsvoorkeur een van meerdere factoren is die de App Store gebruikt om zijn terugbetalingsbeslissingen te informeren. Dus het sterkste signaal dat u kunt sturen, een botte afwijzing verkiezen, is nog steeds één input in een model dat u niet beheerst. De geschiedenis van de klant, de opgegeven reden, het producttype en Apple's eigen fraudesignalen zitten allemaal in datzelfde model naast uw antwoord.

CONSUMPTION_REQUEST dekt nu abonnementen, niet alleen verbruiksartikelen

Vroeger was dit een verhaal over verbruiksartikelen. Sinds WWDC24 wordt de CONSUMPTION_REQUEST-melding geactiveerd wanneer een klant een terugbetaling aanvraagt voor een verbruikbare in-app-aankoop of een automatisch verlengend abonnement. Dat is een grote uitbreiding van het oppervlak. Hetzelfde antwoord binnen 12 uur geldt nu voor abonnementsterugbetalingen, waar uw invloed anders is omdat Apple het verbruik voor automatisch verlengende abonnementen zelf berekent en geen naar-rato-voorkeur van u accepteert. Lees bij elk verzoek het producttype voordat u beslist hoe hard uw antwoord kan duwen.

De vijf invoerwaarden die u mag sturen

De V2-verzoekbody die Apple accepteert is klein, vijf velden doen het werk, en drie ervan zijn verplicht. Elk is een input die Apple afweegt, geen schakelaar die een uitkomst afdwingt. Hier is wat u in het antwoord kunt zetten en wat het Apple vertelt.

VeldVerplichtWat het Apple vertelt
customerConsentedJaOf de klant ermee instemde deze terugbetalingsgegevens te delen. Moet true zijn, anders wijst Apple het verzoek af.
consumptionStatusNeeHoeveel er is gebruikt: niet opgegeven, niet verbruikt, gedeeltelijk verbruikt of volledig verbruikt.
deliveryStatusNeeOf uw app een werkende aankoop leverde, of op een probleem stuitte dat u vastgelegd wilt hebben.
sampleContentProvidedNeeOf u een gratis proef, proefversie of een beschrijving van de functie aanbood vóór de aankoop.
refundPreferenceNeeUw aanbevolen uitkomst: afwijzing verkiezen, volledige toekenning verkiezen of naar rato toekenning verkiezen.

Het venster van 12 uur, en de toestemmingshorde die de meeste teams missen

Twee mechanismen bepalen of uw antwoord überhaupt meetelt. Het ene is een klok. Het andere is een toestemmingsvlag die veel goedbedoelde antwoorden bij de deur tegenhoudt.

Reageer binnen 12 uur of het moment is voorbij

Apple's instructie is helder: reageer binnen 12 uur na ontvangst van de CONSUMPTION_REQUEST-melding. Dat is het hele venster. Een terugbetalingsverzoek wacht niet op uw volgende werkdag, en een verbruiksantwoord dat te laat binnenkomt is een antwoord dat Apple nooit heeft afgewogen. Als u deze met de hand beantwoordt, is de klok van 12 uur het onderdeel dat stilletjes als eerste faalt, in weekenden, op feestdagen en om 3 uur 's nachts in uw tijdzone. Het antwoord moet geautomatiseerd zijn om betrouwbaar te zijn, want het venster trekt zich niets aan van wanneer uw team wakker is.

Een analoge wijzerplaat op een bureau naast een smartphone die met het scherm naar beneden ligt, als beeld voor het venster van 12 uur om op Apple's CONSUMPTION_REQUEST te reageren

U kunt geen gegevens sturen tenzij de klant heeft ingestemd

Hier is de horde waarover teams struikelen. Apple wijst een Send Consumption Information verzoek af waarvan de customerConsented-waarde iets anders is dan true. In Apple's woorden: als de klant toestemming gaf, reageer dan door de API aan te roepen en de verbruiksgegevens te sturen; zo niet, reageer dan niet op de CONSUMPTION_REQUEST-melding. Apple legt de verantwoordelijkheid ook nadrukkelijk bij u: u moet geldige toestemming van de klant verkrijgen voordat u hun persoonsgegevens deelt, en u, de ontwikkelaar, bent daar als enige verantwoordelijk voor. De eerste vraag bij elk verzoek is dus niet hoeveel ze hebben gebruikt, maar of deze klant ermee instemde dat wij het Apple vertellen. Geen toestemming, geen antwoord, en de terugbetaling wordt beslist op alles behalve uw kant van het verhaal.

Wat Apple's terugbetalingsbeslissing werkelijk beweegt

Als het antwoord een aanbeveling is, is de eerlijke vraag hoeveel het aanbeveelt. Het antwoord is dat uw gegevens juist daar het meest tellen waar een mens zou aarzelen, en het minst waar de uitkomst nooit echt in twijfel stond.

Waarom u afwijzing verkiezen kunt sturen en toch een terugbetaling ziet

Ontwikkelaars melden dat ze afwijzing verkiezen sturen op een aankoop die de klant volledig heeft verbruikt en zien dat Apple die toch terugbetaalt. Dat is geen kapotte API. Apple heeft u verteld dat het meerdere factoren afweegt, en bij een gegeven verzoek kunnen sommige van die factoren een volledig verbruikt verbruiksartikel overtreffen: een klant met een schone geschiedenis, een opgegeven reden die Apple als sterk beschouwt, een klein dollarbedrag, een eerste verzoek. Uw antwoord duwde tegen de terugbetaling. Andere invoerwaarden duwden harder. De les is niet om te stoppen met antwoorden, maar om te stoppen met verwachten dat een schoon verbruiksartikel altijd overleeft. Waar het signaal echt gemengd is, zijn een gedeeltelijk verbruikte status, een gedocumenteerd leveringsprobleem en een eerlijke voorkeur de invoerwaarden die een grensgeval in uw voordeel kunnen doen kantelen.

Wat een aanbeveling in dollars waard is

Een terugbetaling is niet de prijs van de verkoop. Het is de prijs van de verkoop plus alles wat u al hebt uitgegeven om die te leveren, en het verbruiksantwoord raakt alleen ooit het eerste deel.

Het geld is al uitgegeven tegen de tijd dat het verzoek binnenkomt

Tegen de tijd dat Apple vraagt of het moet terugbetalen, heeft de klant het ding al gebruikt. Bij een verbruiksartikel betekent dat dat de rekenkracht draaide, de API-aanroepen van derden in rekening werden gebracht, de afbeeldingen of tokens of generaties werden geproduceerd en de opslag werd geschreven. Dat zijn betaalde kosten aan uw kant en ze komen niet terug als Apple de terugbetaling afwijst, en ze zijn dubbel verloren als Apple die toekent. Uw verbruiksantwoord kan de verkoopprijs terugwinnen bij een grensgeval. Het kan de kosten van goederen die u al hebt overhandigd niet terugwinnen. Dat is de echte reden waarom een volledig verbruikte aankoop de dure is om terug te betalen, en het heeft niets te maken met hoe lang geleden die is gekocht.

  • De verkoopprijs: uw netto-opbrengst na Apple's commissie, teruggedraaid als de terugbetaling wordt toegekend. Dit is het enige deel dat uw antwoord kan beïnvloeden.
  • De leveringskosten: rekenkracht, API-aanroepen, opslag, en elke uitbetaling die u al tegen de aankoop hebt gedaan. Weg, ongeacht de beslissing.
  • De personeelstijd: elke met de hand beantwoorde terugbetaling is minuten uit iemands dag, en het venster van 12 uur betekent dat die minuten op ongelegen uren vallen.
  • Het patroon dat u mist: een klant die keer op keer terugbetalingen aanvraagt is een kostenpost die u alleen ziet als u verbruik en geschiedenis over verzoeken heen bijhoudt, in plaats van elk als een eenmalig geval te behandelen.

Hoe Google Play dezelfde vraag afhandelt

Apple is niet de enige store die u om een oordeel vraagt en dan zelf beslist. Google Play draait een parallelle stroom voor bankterugboekingen, en de vorm is dezelfde: u stuurt bewijs, de store beslist. De verschillen zitten in de klok en in wat u mag sturen.

VraagApp StoreGoogle Play
TriggerCONSUMPTION_REQUEST-meldingPendingRefundReviewNotification bij een terugboeking
Uw venster12 uur24 uur
Hoe u antwoordtSend Consumption Informationorders.reviewrefund
Uw aanbevelingrefundPreference: afwijzen, volledig toekennen, naar rato toekennenrefundPreference: APPROVE, DECLINE of NEUTRAL
Wie beslistDe App StoreGoogle Play, of de bank bij een terugboeking

De conclusie is bij beide stores identiek. Uw taak is om binnen het venster te antwoorden met accuraat verbruiksbewijs en een eerlijke voorkeur. De taak van de store is om te beslissen. De twee verwarren is hoe een team uiteindelijk ofwel het venster negeert omdat het antwoord slechts een aanbeveling is, ofwel het antwoord als veto vertrouwt en verrast wordt wanneer er toch een terugbetaling binnenkomt. Geen van beide klopt. Antwoord elke keer, antwoord accuraat, en behandel de uitkomst als een beslissing die u hebt geïnformeerd, niet een die u hebt genomen.

RefundHalt vangt de CONSUMPTION_REQUEST op het moment dat Apple die stuurt, controleert de toestemming, stelt de verbruiksstatus, de leveringsstatus en een op bewijs gebaseerde terugbetalingsvoorkeur samen, en antwoordt binnen het venster van 12 uur zonder dat iemand in uw team op een klok kijkt. Het doet hetzelfde voor Google Play's terugboekingsbeoordeling binnen het venster van 24 uur. U kunt Apple niet dwingen in uw voordeel te beslissen. U kunt ervoor zorgen dat Apple nooit beslist zonder uw kant van het verhaal, bij elke terugbetaling, op tijd.

Veelgestelde vragen

Stopt het sturen van verbruiksgegevens naar Apple een terugbetaling?
Niet op zichzelf. Apple's documentatie zegt dat de App Store meerdere factoren gebruikt om over een terugbetaling te beslissen en dat uw verbruiksgegevens dienen om die beslissing te informeren. Uw antwoord, inclusief een refundPreference van afwijzing verkiezen, is één input die Apple afweegt, dus het kan een grensgeval bewegen maar garandeert geen afwijzing, vooral bij een aankoop die de klant volledig heeft verbruikt.
Hoeveel tijd heb ik om op een CONSUMPTION_REQUEST te reageren?
12 uur. Apple zegt binnen 12 uur na ontvangst van de CONSUMPTION_REQUEST-melding te reageren via het Send Consumption Information endpoint. Een antwoord dat na het venster binnenkomt is een antwoord dat Apple nooit heeft afgewogen, en daarom moet het antwoord geautomatiseerd zijn in plaats van afgehandeld door een persoon die misschien slaapt.
Waarom betaalde Apple een aankoop terug nadat ik afwijzing verkiezen had gestuurd?
Omdat afwijzing verkiezen een aanbeveling is, geen bevel. Apple stelt dat uw terugbetalingsvoorkeur een van meerdere factoren is die het gebruikt om zijn beslissing te informeren. Bij een gegeven verzoek kunnen de geschiedenis van de klant, de opgegeven reden, het dollarbedrag en Apple's eigen fraudesignalen uw voorkeur overtreffen, dus een terugbetaling na een afwijzing verkiezen is de stroom die werkt zoals gedocumenteerd.
Heb ik toestemming van de klant nodig om verbruiksgegevens te sturen?
Ja. Apple wijst een Send Consumption Information verzoek af tenzij customerConsented true is, en zijn richtlijn is dat u, als de klant niet instemde, helemaal niet op de CONSUMPTION_REQUEST moet reageren. Apple stelt ook dat u, de ontwikkelaar, als enige verantwoordelijk bent voor het verkrijgen van geldige toestemming voordat u de gegevens van de klant deelt.
Werkt de verbruiksstroom voor abonnementen of alleen voor verbruiksartikelen?
Beide, sinds WWDC24. De CONSUMPTION_REQUEST wordt nu geactiveerd voor een verbruikbare in-app-aankoop of een automatisch verlengend abonnement. Voor automatisch verlengende abonnementen berekent Apple het verbruik zelf en accepteert geen naar-rato-voorkeur, zodat uw invloed smaller is dan bij een verbruiksartikel waarvan u het gebruik direct kunt beschrijven.

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.