Alle Artikel
Deep dive8 Min. Lesezeit

Jeder In-App-Kauftyp wird nach anderen Regeln erstattet, und nur zwei davon fragen jemals nach Ihrer Seite

Verbrauchbare Käufe, nicht verbrauchbare Käufe, automatisch verlängerbare Abonnements und nicht verlängerbare Abonnements werden jeweils nach eigenen Regeln erstattet. Manche lassen sich wiederherstellen, manche verschwinden, sobald sie verbraucht sind, und nur die Anfrage bei verbrauchbaren Käufen und die Anfrage bei Abonnements fragen den Entwickler jemals nach Belegen. So verändert der In-App-Kauftyp, den Sie verkaufen, das, was eine Erstattung mit Ihnen macht.

Ein Stapel Münzen, ein Vorhängeschloss, ein Kalender und ein Ticket in einer Reihe auf einem warm beleuchteten Schreibtisch, die veranschaulichen, wie jeder In-App-Kauftyp anders erstattet wird

Wichtigste Erkenntnisse

  • Es gibt vier In-App-Kauftypen im App Store, verbrauchbar, nicht verbrauchbar, automatisch verlängerbares Abonnement und nicht verlängerbares Abonnement, und jeder wird nach anderen Regeln erstattet. Google Play sortiert denselben Katalog in einmalige Produkte und Abonnements.
  • Nur zwei Apple-Abläufe fragen den Entwickler jemals nach Belegen, bevor über eine Erstattung entschieden wird, der verbrauchbare CONSUMPTION_REQUEST und, seit der WWDC24, der CONSUMPTION_REQUEST des automatisch verlängerbaren Abonnements. Nicht verbrauchbare Käufe und nicht verlängerbare Abonnements öffnen dieses Fenster kaum jemals.
  • Verbrauchbare Käufe tragen das größte Erstattungsrisiko. Sie werden bei der Lieferung verbraucht, sie lassen sich nicht wiederherstellen, und ihr Wert ist bereits verloren, bevor die Erstattung eintrifft. Genau deshalb bittet Apple bei ihnen um Ihre Verbrauchsdaten.
  • Nicht verbrauchbare Käufe sind dauerhaft und wiederherstellbar, deshalb muss eine Erstattung eine Berechtigung entziehen, an die sich das Konto des Kunden noch erinnert. Bei Google Play wird ein Kauf, den Sie nicht innerhalb von 72 hours bestätigen, automatisch erstattet und der Zugang wird zurückgezogen.
  • Automatisch verlängerbare Abonnements werden nach einer Uhr erstattet. Apple berechnet aus der verstrichenen Zeit, wie viel verbraucht wurde, nicht aus einer Zahl, die Sie senden, deshalb besteht Ihre Aufgabe in einer ehrlichen refundPreference und den Nutzungsbelegen dahinter.
  • Im App Store kann nur Apple eine Erstattung für einen In-App-Kauf ausstellen. Bei Google Play können Sie eine Bestellung selbst in der Play Console erstatten, wodurch der von Ihnen verkaufte Produkttyp zu Ihrer eigenen Verantwortung wird.
  • Welcher Typ auch immer, eine Erstattung gibt die Provision des Stores an den Kunden zurück, aber niemals Ihre Ausgaben. Die Rechenleistung, die API-Aufrufe, der Speicher und die Auszahlungen, die ein verbrauchbarer Kauf bereits ausgelöst hat, bleiben verloren.

Der In-App-Kauftyp, den Sie in App Store Connect oder der Play Console gewählt haben, entscheidet über mehr als nur darüber, wie das Produkt verkauft wird. Er entscheidet, wie sich eine Erstattung verhält, wenn sie eintrifft, ob der Kunde den Artikel danach kostenlos zurückbekommen kann und ob Sie jemals nach Ihrer Seite gefragt werden, bevor das Geld fließt. Ein Münzpaket, eine lebenslange Freischaltung, ein monatliches Abonnement und ein einmaliger Season Pass sind vier verschiedene rechtliche und technische Objekte, und die Erstattungsregeln behandeln sie genau so. Die meisten Entwickler versenden sie alle über denselben Kaufcode und wundern sich dann, warum sich Erstattungen uneinheitlich anfühlen. Sie sind nicht uneinheitlich. Sie sind typspezifisch.

Hier ist, was jeder In-App-Kauftyp ist, wie eine Erstattung ihn trifft und warum nur zwei der vier die Entscheidung jemals über Ihren Server leiten.

Die vier In-App-Kauftypen, und warum sich Erstattungen an ihnen aufteilen

Apple definiert vier Produkttypen. Ein verbrauchbarer Kauf wird aufgebraucht und erneut gekauft: Spielwährung, Hinweise, ein Energienachschub. Ein nicht verbrauchbarer Kauf wird einmal gekauft und für immer behalten: eine Pro-Freischaltung, ein Upgrade zum Entfernen von Werbung, ein herunterladbares Levelpaket. Ein automatisch verlängerbares Abonnement wird in einem wiederkehrenden Zyklus abgerechnet, bis der Kunde kündigt. Ein nicht verlängerbares Abonnement gewährt Zugang für einen festen Zeitraum, der sich nicht von selbst verlängert, wie eine Inhaltssaison, die als einzelner Zeitraum verkauft wird.

Google Play sortiert denselben Katalog anders, landet aber am selben Ort. Es teilt Produkte in einmalige Produkte und Abonnements auf, und ein einmaliges Produkt wird als verbrauchbar oder nicht gekennzeichnet, je nachdem, ob Ihre App es nach dem Kauf verbraucht. Die Worte unterscheiden sich. Die Erstattungsfolgen nicht.

In-App-KauftypNach Erstattung wiederherstellbarWert zum ErstattungszeitpunktFragt Apple nach Ihren Belegen
VerbrauchbarNein, nicht wiederherstellbarMeist bereits verbrauchtJa, CONSUMPTION_REQUEST
Nicht verbrauchbarJa, an das Konto gebundenNoch gehalten, Berechtigung entzogenSelten
Automatisch verlängerbares AbonnementJa, solange aktivAnteilig nach verstrichener ZeitJa, seit WWDC24
Nicht verlängerbares AbonnementIhre App muss es wiederherstellenZeitraum teilweise verstrichenSelten

Verbrauchbare Käufe sind der Typ, den Erstattungsbetrug tatsächlich ins Visier nimmt

Ein verbrauchbarer Kauf ist der schwierigste Erstattungsfall, dem Sie begegnen werden, und es ist kein Zufall, dass es der ist, um den Apple die Verbrauchsanfrage herum gebaut hat. In dem Moment, in dem ein Kunde 10,000 Münzen kauft und Ihr Server sie gewährt, ist der Wert geliefert. Wenn sie diese Münzen ausgeben und dann eine Erstattung beantragen, kann der Store ihr Geld zurückgeben, aber die Münzen sind weg und ebenso das, was es Sie gekostet hat, sie zu honorieren. Apples eigene Werkzeuge spiegeln das wider: ein verbrauchbarer Kauf verlässt den Transaktionsdatensatz, sobald er abgeschlossen ist, und trägt niemals ein Stornierungsdatum, weil es nichts Dauerhaftes zum Stornieren gibt.

Deshalb ist der verbrauchbare Kauf der Produkttyp, bei dem sich Belege auszahlen. Wenn ein Kunde eine Erstattung für einen verbrauchbaren Kauf beantragt, sendet Apple Ihrem Server einen CONSUMPTION_REQUEST und wartet bis zu 12 hours auf einen Send Consumption Information-Aufruf. In diesem Aufruf setzen Sie einen deliveryStatus und, wenn Sie geliefert haben, eine consumptionPercentage. Der Prozentsatz ist eine ganze Zahl in milliunits von 0 bis 100,000, wobei 100,000 bedeutet, dass der Kunde den gesamten Kauf genutzt hat. Ein Münzguthaben, das Ihre Aufzeichnungen als vollständig ausgegeben zeigen, ist eine 100,000, die Sie melden können, und es ist die stärkste einzelne Tatsache, die Sie einem Anspruch wegen unbeabsichtigten Kaufs entgegenhalten können.

Verbrauchbare Käufe lassen sich nicht wiederherstellen, deshalb ist das Timing alles

Weil ein verbrauchbarer Kauf nicht wiederhergestellt werden kann, können Sie ihn nicht zurückholen, wie Sie ein Abonnement entziehen können. Sobald eine Erstattung gewährt ist, ist Ihr einziger Schutz die Aufzeichnung, die Sie zum Verkaufszeitpunkt geführt haben. Wenn Sie Lieferung und Verbrauch nicht festgehalten haben, als es geschah, rekonstruieren Sie es unter einer Uhr von 12 hours, was der schlechteste Moment ist, um nach Daten zu suchen. Halten Sie es beim Eingang fest, nicht beim Ausgang.

Abonnements werden nach einer Uhr erstattet, die Sie nicht steuern

Automatisch verlängerbare Abonnements sind der Ort, an dem die meisten Apps ihr Geld verdienen, und das WWDC24-Erstattungsupdate hat sie endlich durch dasselbe Belegfenster wie verbrauchbare Käufe geleitet. Seit App Store Server Notifications version 2.11 löst eine Erstattungsanfrage für ein automatisch verlängerbares Abonnement ebenfalls einen CONSUMPTION_REQUEST aus. So kommen die Abonnementerstattungen, die früher vollständig ohne Sie entschieden wurden, nun mit einem angehängten Fenster von 12 hours.

Der Haken ist, wie der Verbrauch gemessen wird. Bei einem automatisch verlängerbaren Abonnement will Apple nicht, dass Sie einen Nutzungsprozentsatz erfinden. Es berechnet den Verbrauch selbst aus der verstrichenen Zeit, sodass jemand, der sechs Monate in einem Jahresplan ist, als etwa halb verbraucht gelesen wird, egal was Sie senden. Ihr Hebel ist nicht der Prozentsatz. Es ist eine ehrliche refundPreference von GRANT_FULL, GRANT_PRORATED oder DECLINE, gestützt durch das Nutzungssignal, das Sie tatsächlich halten. Senden Sie die Präferenz, die die Belege stützen, und lassen Sie Apple sie abwägen.

Nicht verlängerbare Abonnements liegen näher an einer einmaligen Freischaltung

Ein nicht verlängerbares Abonnement ist ein fester Zeitraum, den der Kunde einmal kauft, und es verhält sich für Erstattungszwecke eher wie ein nicht verbrauchbarer Kauf als wie ein automatisch verlängerbarer Plan. Apple leitet ihm selten einen CONSUMPTION_REQUEST zu, und es gibt keine automatische Verlängerung, die anteilig berechnet werden müsste. Ihre App ist dafür verantwortlich, den Zeitraum zu verfolgen und ihn über die Geräte des Kunden hinweg wiederherzustellen, sodass eine Erstattung bedeutet, ein Zugangsfenster zu beenden, das Sie selbst verwaltet haben, nicht eines, das Apple für Sie getaktet hat.

Nicht verbrauchbare Käufe sind dauerhaft, was in beide Richtungen schneidet

Ein nicht verbrauchbarer Kauf ist das Sauberste zum Verkaufen und eine stille Falle bei der Erstattung. Er wird einmal gekauft, er ist für immer an das Store-Konto des Kunden gebunden, und der Store kann ihn auf Anfrage auf jedem Gerät wiederherstellen. Diese Dauerhaftigkeit ist ein Vorteil, bis eine Erstattung eintrifft, denn nun müssen Sie eine Berechtigung entziehen, an die sich das Konto noch erinnert. Wenn Ihre Entzugslogik nur zum Kaufzeitpunkt prüft und nie erneut verifiziert, kann ein erstatteter Kunde Käufe wiederherstellen und direkt zurück in die bezahlte Funktion spazieren.

Google Play fügt hier eine harte Kante hinzu, die neue Entwickler erwischt. Wenn Ihre App einen Kauf nicht innerhalb von 72 hours bestätigt, erstattet Google ihn automatisch und entzieht die Berechtigung. Ein nicht verbrauchbarer Kauf, den Ihr Abrechnungscode zu bestätigen vergessen hat, bleibt nicht in der Schwebe. Er kehrt sich selbst um, und der Kunde verliert den Zugang zu etwas, wofür er bezahlt hat, ohne eigenes Zutun.

Ein Smartphone, das eine Zahlungsbestätigung neben einem kleinen Stapel Münzen zeigt, von denen einige beiseite gefegt sind, veranschaulicht, wie jeder In-App-Kauftyp nach anderen Regeln erstattet wird

Wer überhaupt die Erstattung ausstellen kann, ändert sich je nach Store und Typ

Bevor Sie irgendeine Erstattungsreaktion planen, sollten Sie wissen, wer den Stift hält. Im App Store kann nur Apple eine Erstattung für einen In-App-Kauf ausstellen, für jeden Produkttyp. Ihr StoreKit-Code kann einen Kauf nicht erstatten, und Ihr Support-Team auch nicht. Sie können Verbrauchsdaten senden, um Apples Entscheidung bei den zwei Typen zu beeinflussen, die ein Fenster öffnen, und das ist Ihre gesamte direkte Kontrolle.

Google Play ist das Gegenteil. Sie können ein einmaliges Produkt oder eine Abonnementbestellung selbst in der Play Console oder über die Voided Purchases- und Erstattungs-APIs erstatten, ganz oder teilweise. Diese Freiheit ist auch eine Verantwortung: eine Erstattung, die Sie auf einen verbrauchbaren Kauf ausstellen, muss den Artikel weiterhin in Ihrem eigenen Backend entziehen, weil Google nicht weiß, dass Ihre Münzen verbraucht sind. Der Produkttyp, den Sie gewählt haben, entscheidet, wie sauber dieser Entzug ist.

Was Sie jeder Erstattungstyp tatsächlich kostet

Der erstattete Preis ist die Zeile, die alle beobachten, und der kleinste Teil der Rechnung. Wenn irgendein Store eine Erstattung gewährt, kehrt er seine eigene Provision damit um, sodass Sie Ihren Nettoerlös verlieren statt des vollen Listenpreises. Das ist die gute Nachricht, und dort hört sie auf. Was der Store zurückgibt, ist der Anteil, den er genommen hat. Was er niemals zurückgibt, ist das, was Sie bereits ausgegeben haben, um den Verkauf zu erfüllen, und diese Zahl ändert sich stark je nach Produkttyp.

Der verbrauchbare Kauf ist die teure Erstattung

Ein erstatteter verbrauchbarer Kauf ist der eine, der mehr kosten kann als sein Preis. Sagen wir, ein Kunde kauft 5,000 Credits, die jeweils einen bezahlten Inferenzaufruf auslösen, gibt 4,000 davon aus und beantragt dann eine Erstattung. Der Store gibt den Preis und seine Provision zurück, aber die Rechenleistung, die API-Rechnung pro Token, die Bilder, die Sie generiert haben, und jede Creator-Auszahlung, die diese Credits finanziert haben, sind alle verbraucht. Eine Erstattung eines nicht verbrauchbaren Kaufs holt zumindest eine Berechtigung zurück in Ihre Kontrolle. Eine Erstattung eines verbrauchbaren Kaufs holt einen Verkauf zurück, dessen gesamte Kosten Sie bereits bezahlt haben.

Ein Chargeback ist die schwerere Version derselben Rechnung

Eine Erstattung und ein Chargeback sind unterschiedliche Ereignisse, und die Lücke hat jetzt ein Datum. Wenn ein Kunde die Abbuchung bei seiner Bank anficht, statt den Store zu fragen, ist ein abgeschlossener Chargeback bankendgültig. Für Google-Play-Bestellungen, die am oder nach dem August 3 2026 aufgegeben wurden, belastet ein verlorener Chargeback dem Entwickler den Kaufpreis abzüglich der Play-Servicegebühr, plus die Chargeback-Gebühr der Bank, eine Pauschalgebühr, die das Kartennetzwerk festlegt. Google Play leitet einen Chargeback zur Prüfung über orders.reviewrefund mit einem Fenster von 24 hours an Sie weiter, der einzige Google-Ablauf, der nach Ihren Belegen fragt, und er kann jeden Produkttyp treffen.

Wie Sie reagieren, wenn der Typ die Regeln bestimmt

Sie können nicht ändern, auf welchen Produkttyp eine Erstattung nach dem Verkauf trifft, aber Sie können aufhören, alle vier auf dieselbe Weise zu behandeln.

  • Halten Sie Lieferung und Verbrauch für verbrauchbare Käufe in dem Moment fest, in dem sie geschehen. Dieses Protokoll ist Ihre gesamte Verteidigung bei dem einen Typ, der nicht wiederhergestellt werden kann, und das Fenster von 12 hours ist viel zu kurz, um es von Grund auf aufzubauen.
  • Verifizieren Sie Berechtigungen für nicht verbrauchbare Käufe nach einer Erstattung erneut, nicht nur beim Kauf. Ein Wiederherstellungsaufruf sollte den aktuellen Status prüfen, sodass ein erstatteter Kunde nicht zurück in die bezahlte Funktion spazieren kann.
  • Beantworten Sie beide Belegfenster automatisch. Eine Verbrauchsanfrage von 12 hours und eine Chargeback-Prüfung von 24 hours können nicht darauf warten, dass jemand ein Postfach liest, und sie verlängern sich nicht für Zeitzonen.
  • Beurteilen Sie Ihre Erstattungsverteidigung nur an den zwei anfechtbaren Typen. Eine steigende Zahl von Erstattungen bei Typen, die nie ein Fenster geöffnet haben, ist ein Produkt- oder Preissignal, kein Versagen Ihrer Belege.

Bei all dem geht es nicht darum, den Store zu schlagen. Es geht darum, Ihre Reaktion auf das Objekt abzustimmen, das tatsächlich verkauft wurde. RefundHalt beantwortet den CONSUMPTION_REQUEST bei verbrauchbaren Käufen und Abonnements und die Google Play orders.reviewrefund-Prüfung automatisch, innerhalb des Fensters, mit den Liefer- und Nutzungsbelegen, die Sie zum Verkaufszeitpunkt festgehalten haben, und es behält die Erstattungen, die kein Fenster je anfechten ließ, in ihrem eigenen Buch, sodass die Zahl, an der Sie sich selbst messen, ehrlich bleibt.

Häufig gestellte Fragen

Kann ich einen In-App-Kauf selbst erstatten?
Das hängt vom Store ab. Im App Store kann nur Apple eine Erstattung für einen In-App-Kauf ausstellen, für jeden Produkttyp, sodass Ihr einziger Einfluss die Verbrauchsdaten sind, die Sie bei den zwei Abläufen senden, die danach fragen. Bei Google Play können Sie ein einmaliges Produkt oder eine Abonnementbestellung selbst in der Play Console oder über die Erstattungs-APIs erstatten, ganz oder teilweise.
Welcher In-App-Kauftyp hat das höchste Erstattungsrisiko?
Verbrauchbare Käufe. Ein verbrauchbarer Kauf wird bei der Lieferung verbraucht, er lässt sich nicht wiederherstellen, und sein Wert ist meist bereits verloren, bevor die Erstattungsanfrage eintrifft. Genau deshalb sendet Apple einen CONSUMPTION_REQUEST für verbrauchbare Käufe und fragt nach Ihren Verbrauchsdaten, und deshalb kann die Rechen- oder API-Kosten hinter einem verbrauchbaren Kauf dessen Erstattung mehr kosten lassen als den Verkauf.
Sendet Apple für jeden Kauftyp eine Verbrauchsanfrage?
Nein. Apple sendet einen CONSUMPTION_REQUEST für verbrauchbare Käufe und, seit dem WWDC24-Update, für automatisch verlängerbare Abonnements. Nicht verbrauchbare Käufe und nicht verlängerbare Abonnements öffnen dieses Belegfenster kaum jemals. Für jeden Typ wird die Erstattung selbst weiterhin von Apple entschieden, nicht von Ihnen.
Kann ein Kunde einen verbrauchbaren Kauf nach einer Erstattung wiederherstellen?
Nein. Verbrauchbare Käufe lassen sich nicht wiederherstellen, was ihre Erstattungen für Sie endgültig macht. Nicht verbrauchbare Käufe und aktive Abonnements sind an das Store-Konto des Kunden gebunden und können wiederhergestellt werden, sodass eine Erstattung bei diesen eine Berechtigung entziehen muss, die Ihr Backend erneut verifizieren sollte, statt ihr vom Kaufzeitpunkt zu vertrauen.
Wie werden Abonnementerstattungen anders berechnet?
Bei einem automatisch verlängerbaren Abonnement berechnet Apple aus der verstrichenen Zeit, wie viel verbraucht wurde, statt aus einem Prozentsatz, den Sie senden, sodass ein halber Zeitraum als etwa halb verbraucht gelesen wird. Ihre Rolle ist eine ehrliche refundPreference von GRANT_FULL, GRANT_PRORATED oder DECLINE, gestützt durch die Nutzungsbelege, die Sie halten, nicht eine erfundene Verbrauchszahl.

Quellen und weiterführende Informationen

RefundHalt

Der Rückerstattungs-Autopilot für App Store und Google Play

Weiterlesen

Die nächste Rückerstattungsanfrage ist bereits unterwegs.

Richten Sie RefundHalt in der Zeit ein, die Sie brauchen, um eine weitere Support-E-Mail über eine Rückerstattung zu lesen, die Sie nicht anfechten konnten.