App Store Refund Management

So reagieren Sie Schritt für Schritt auf eine Rückerstattungsanfrage im Apple App Store

Erfahren Sie Schritt für Schritt, wie Sie mit einer Rückerstattungsanfrage im Apple App Store umgehen und professionell auf Kunden reagieren.

5 min read
So reagieren Sie Schritt für Schritt auf eine Rückerstattungsanfrage im Apple App Store

Lange Zeit lautete die ehrliche Antwort auf die Frage „Wie reagiere ich auf eine Rückerstattungsanfrage von Apple?" schlicht: gar nicht. Apple nahm die Zahlung, nahm die Anfrage entgegen, entschied – und das Erste, was ein Entwickler davon erfuhr, war eine geringere Auszahlung. Das stimmt seit 2021 nicht mehr, auch wenn viele es noch immer annehmen.

Heute fragt Apple vor seiner Entscheidung Ihren Server, was dieser über den Kauf weiß, und wartet dabei rund 12 Stunden auf die Antwort. Wir haben bereits beschrieben, was eine CONSUMPTION_REQUEST tatsächlich enthält, deshalb wiederhole ich hier nicht jedes einzelne Feld des Payloads. In diesem Beitrag geht es darum, was zu tun ist, sobald eine solche Anfrage eintrifft.

Die wichtigsten Punkte

  • Apple entscheidet über jede Rückerstattung im App Store. Was Sie senden, ändert daran nichts – aber es ändert, was Apple bei seiner Entscheidung weiß.

  • Die Anfrage kommt als CONSUMPTION_REQUEST-Benachrichtigung an, und zwar nur für Verbrauchsgüter (Consumables) und automatisch verlängerbare Abonnements.

  • Sie haben 12 Stunden Zeit, über den Send-Consumption-Information-Endpoint zu antworten, der inzwischen fünf Felder erwartet.

  • Die Antwort besteht im Kern aus drei Fakten: Wurde geliefert, wie viel wurde genutzt, gab es vorher eine kostenlose Probe. Dazu kommt Ihre Präferenz.

  • Unserer Erfahrung nach verlieren Entwickler vor allem die Rückerstattungsfälle, auf die niemand geantwortet hat.

Was ist eine Rückerstattungsanfrage im Apple App Store?

Eine Rückerstattungsanfrage im Apple App Store ist eine Anfrage, mit der ein Kunde Apple um die Rückerstattung des Geldes für eine App oder einen In-App-Kauf bittet – nicht Sie. Die Kunden gehen dafür auf reportaproblem.apple.com, oder nutzen das In-App-Rückerstattungsformular, wählen aus einem kurzen Menü einen Grund aus, bestimmen den Kauf und senden die Anfrage ab. Apples Support-Seite teilt ihnen mit, dass sie mit einer Antwort innerhalb von 24 bis 48 Stunden rechnen können.

Handelte es sich bei dem Kauf um ein Verbrauchsgut oder ein automatisch verlängerbares Abonnement, kontaktiert Apple Ihren Server und fragt nach, was Sie wissen. Anschließend fließt Ihre Antwort zusammen mit der Kauf- und Rückerstattungshistorie des Kunden – die Apple weitaus besser kennt als Sie – in die Entscheidung ein. Sie sehen den Namen des Kunden nicht und haben kein Vetorecht. Sie erhalten lediglich ein kurzes Zeitfenster, um Fakten auf den Tisch zu legen.

So funktioniert der Apple-Rückerstattungsprozess für Entwickler

Der Apple-Rückerstattungsprozess für Entwickler läuft in vier Phasen ab, von denen Sie nur eine selbst beeinflussen.

  1. Der Kunde bittet Apple um eine Rückerstattung und wählt einen Grund aus.

  2. Apple sendet eine CONSUMPTION_REQUEST an die Server-URL, die Sie in App Store Connect registriert haben. Das passiert nur bei Verbrauchsgütern und automatisch verlängerbaren Abonnements.

  3. Sie haben 12 Stunden Zeit, den Send-Consumption-Information-Endpoint mit Ihren Daten aufzurufen.

  4. Apple entscheidet und informiert Sie anschließend per REFUND- oder REFUND_DECLINED-Benachrichtigung.

Wenn Sie nie eine Server-URL für App Store Server Notifications eingerichtet haben, entfällt Phase zwei einfach – ohne Hinweis. Apple entscheidet dann allein anhand des Kundenkontos, und Sie erfahren davon nur aus dem Verkaufsbericht, sofern Sie ihn überhaupt lesen.

Was passiert, nachdem ein Kunde eine Rückerstattung beantragt hat?

Kurz nachdem der Kunde die Anfrage abgeschickt hat, erhält Ihr Endpoint ein signiertes JSON-Payload mit dem notificationType CONSUMPTION_REQUEST. Darin enthalten: die signierte Transaktion, die Produkt-ID, die ursprüngliche Transaktions-ID und ein consumptionRequestReason. Apple hat diesen Grund 2024 hinzugefügt und in der WWDC24-Session zu den App Store Server APIs erläutert. Fünf mögliche Werte: UNINTENDED_PURCHASE, FULFILLMENT_ISSUE, UNSATISFIED_WITH_PURCHASE, LEGAL und OTHER.

Was fehlt, ist die Person selbst. Die einzige Verbindung zurück zu Ihren Aufzeichnungen ist die Transaktions-ID – und der appAccountToken, falls Sie beim Kauf einen angehängt haben. Falls nicht, ist genau jetzt der Moment, an dem Sie sich wünschen, Sie hätten es getan.

Die Prüfung ist also im Grunde eine Recherche: Wer hat das gekauft, hat er oder sie es erhalten, und was wurde seitdem damit gemacht?

So reagieren Sie auf eine Rückerstattungsanfrage von Apple

Wer nach „wie reagiere ich auf Apple-Rückerstattungsbenachrichtigungen" sucht, findet meist nur die API-Referenz. Hier sind die Schritte in der richtigen Reihenfolge.

1. Payload überprüfen

Apple signiert jede Benachrichtigung. Prüfen Sie die Signatur, bevor Sie dem Inhalt auch nur ein Wort glauben. Apples App Store Server Library übernimmt das in Java, Python, Node und Swift.

2. Den Kauf finden

Nutzen Sie die Transaktions-ID oder den appAccountToken, um den Kauf in Ihrem eigenen System zu finden. Gesucht sind der Nutzer, der Zustellnachweis und alle Nutzungsdaten, die Sie seitdem protokolliert haben.

3. Den Grund lesen – und überprüfen

FULFILLMENT_ISSUE bedeutet, dass der Kunde angibt, das Bezahlte nie erhalten zu haben. Prüfen Sie zuerst Ihre Zustellprotokolle – denn wenn der Kunde recht hat, wollen Sie, dass diese Rückerstattung durchgeht.

UNINTENDED_PURCHASE ist meist ein Kind oder ein versehentlicher Tipp.

Bei UNSATISFIED_WITH_PURCHASE zählen Ihre Nutzungsdaten besonders, denn „Es hat mir nicht gefallen" wirkt bei 2 Prozent Nutzung anders als bei 100.

4. Eine Präferenz festlegen

Apple akzeptiert GRANT_FULL, GRANT_PRORATED oder DECLINE. Wählen Sie die Option, die Ihre Daten stützen. Es handelt sich um eine Präferenz, und Apple hat schon zahlreiche Rückerstattungen gewährt, die Entwickler ablehnen wollten.

5. Antwort senden

Rufen Sie den Send Consumption Information -Endpoint auf. Der aktuelle Request Body enthält fünf Felder: customerConsented, deliveryStatus, consumptionPercentage, sampleContentProvided und refundPreference.

Der Verbrauch wird in Milliunits angegeben, was oft zu Verwirrung führt: 100000 bedeutet vollständig genutzt, 45200 bedeutet 45.2 Prozent.

Und customerConsented muss true sein – die Erlaubnis zur Weitergabe von Nutzungsdaten sollte daher schon lange vor der ersten Anfrage in Ihren Nutzungsbedingungen verankert sein.

6. Auf das Ergebnis reagieren

REFUND bedeutet, dass Sie den Inhalt oder die Berechtigung entziehen sollten – idealerweise innerhalb einer Stunde. REFUND_DECLINED bedeutet, dass sich nichts ändert. In beiden Fällen sollten Sie das Ergebnis beim jeweiligen Fall dokumentieren.

Angenommen, jemand kauft um 23 Uhr ein 500-Coin-Paket, verbraucht über Nacht 470 davon und reicht am nächsten Morgen eine Anfrage unter UNSATISFIED_WITH_PURCHASE ein. Zugestellt, 94 Prozent verbraucht, kein Test, Präferenz DECLINE. Das ist eine vollständige Antwort auf eine Apple-Rückerstattungsanfrage. Kein Essay.

Welche Informationen sollten Entwickler vor der Antwort prüfen?

Fünf Dinge, von denen die meisten bereits in Ihrer Datenbank vorhanden sein sollten.

Der Kaufdatensatz

Datum, Produkt, Preis und ob dieses Konto schon einmal bei Ihnen gekauft hat. Wenn Ihre Aufzeichnungen dünn sind: Der Get-Transaction-History-Endpoint von Apple liefert alles, was dieser Kunde in Ihrer App gekauft hat, sobald Sie eine seiner Transaktions-IDs als Ausgangspunkt angeben.

Zustellung

Hat Ihr Server die Coins tatsächlich übergeben, die Funktion freigeschaltet, das Abonnement gestartet – und wann? Ist dieser Aufruf fehlgeschlagen, liegt Ihr deliveryStatus bei einem der UNDELIVERED-Werte, und die Rückerstattung ist gerechtfertigt. Widersprechen Sie nicht Ihren eigenen Protokollen.

Nutzung seitdem

Sitzungen, geöffnete Kapitel, ausgegebene Coins – was „Nutzung" für Ihr Produkt auch bedeutet. Apple will nur einen Prozentsatz, aber ohne die zugrunde liegenden Ereignisse können Sie keinen liefern, den Sie auch verteidigen könnten.

Ob es vorher eine kostenlose Probe gab

Gemeint ist ein kostenloser Test, ein Vorschaukapitel oder eine kostenlose Stufe. Apple fragt das direkt ab, und ein „Ja" entkräftet die Geschichte „Ich wusste nicht, was ich kaufe".

Das Konto auf Ihrer Seite

Wie alt es ist, ob Sie es schon einmal erstattet haben, ob ein offenes Support-Ticket existiert. Apple sieht die App-Store-Hälfte dieser Historie. Sie sehen Ihre.

Das Ganze hängt davon ab, dass Sie Apples Transaktions-ID mit einem Nutzer in Ihrem System verknüpfen – genau dafür gibt es appAccountToken. Das ist die häufigste Lücke, die wir finden, und wir haben bereits beschrieben, warum appAccountToken für die Rückerstattungsverteidigung wichtig ist, falls Sie die Einrichtungsdetails brauchen.

Häufige Fehler von Entwicklern bei Apple-Rückerstattungsanfragen

Die Benachrichtigung kommt nie an

Es gibt keine Server-URL in App Store Connect – oder es gibt eine, die aber auf eine Staging-Instanz zeigt, die im März von jemandem abgeschaltet wurde. Apple sendet weiterhin. Niemand ist da, um zu antworten.

Zu spät antworten

Zwölf Stunden klingen nach viel Zeit – bis eine Anfrage um 2 Uhr nachts an einem Sonntag eintrifft und die zuständige Person schläft, dann beim Brunch ist und erst später vage eine Slack-Nachricht bemerkt. Ein Prozess, der auf Bürozeiten ausgelegt ist, verpasst systembedingt einen Teil der Anfragen.

Nichts zu sagen haben

Die Benachrichtigung kommt an, und es gibt kein Zustellprotokoll, keine Nutzungsereignisse, keinen appAccountToken. Apple entscheidet dann allein auf Basis der Aussage des Kunden. Dieser Fehler wurde bereits Monate zuvor gemacht – an der Kasse.

Apple bitten, alles abzulehnen

Wir haben Setups gesehen, die auf jede Anfrage DECLINE senden – auch dann, wenn die eigenen Protokolle des Entwicklers zeigen, dass die Zustellung fehlgeschlagen ist. Apple erkennt dieses Muster, und es kostet Glaubwürdigkeit bei den Anfragen, bei denen Sie tatsächlich im Recht sind.

Vergessen, nach einer gewährten Rückerstattung den Zugriff zu entziehen

Das ist der Fehler, der doppelt kostet. Das Geld ist weg, und der Kunde hat weiterhin Zugriff auf den Inhalt – und manche merken das.

In der Produktion testen

Apple stellt Ihnen einen Test-Benachrichtigungsendpoint und Sandbox-Rückerstattungsanfragen zur Verfügung. Nutzen Sie beide, bevor die erste echte Anfrage zu einer ungünstigen Uhrzeit eintrifft.

Apple-Rückerstattungsmanagement: Manuell vs. automatisiert

Apple-Rückerstattungsmanagement umfasst alles rund um dieses 12-Stunden-Fenster: die Anfrage empfangen, die Daten finden, eine Präferenz festlegen, die Antwort senden, das Ergebnis protokollieren und bei Bedarf den Zugriff entziehen.

Manuell

Von Hand bedeutet: eine Person mit Zugriff auf die Protokolle und einem Alert. Das funktioniert gut bei einer Handvoll Anfragen pro Monat – solange diese Person nie eine Woche Urlaub nimmt.

Bei etwa zwanzig Anfragen pro Woche beginnt es zu kippen. Bei hundert ist es ein eigener Job – und keiner, den sich jemand gewünscht hat.

Automatisiert

Bei Automatisierung laufen Recherche und Antwort über Regeln, die Sie einmal festgelegt haben. Ein vollständig verbrauchtes Consumable erhält DECLINE, ein FULFILLMENT_ISSUE mit fehlgeschlagener Zustellung erhält GRANT_FULL, und alles Ungewöhnliche wird für eine manuelle Prüfung markiert.

Antworten gehen innerhalb von Minuten hinaus – um 2 Uhr nachts ebenso zuverlässig wie um 14 Uhr.

Der Haken: Automatisierung ist nur so gut wie die Daten, auf denen sie basiert. Lückenhafte Zustell- und Nutzungsdaten führen nur schneller zu „unbekannt".

Wann sollten Entwickler Apple-Rückerstattungsmanagement-Software in Betracht ziehen?

Ehrlich gesagt: zunächst nicht. Zwei oder drei Anfragen im Monat lassen sich mit einer Checkliste und einem lauten Alert bewältigen, und ein paar davon von Hand zu bearbeiten, lehrt einiges.

Sinnvoll wird es, wenn Anfragen schneller eingehen, als eine Person sie innerhalb des Zeitfensters bearbeiten kann, oder zu Zeiten, in denen niemand wach ist. Es hilft auch, wenn Sie mehrere Apps betreiben oder Apple und Google Play parallel nutzen und eine Liste statt drei haben möchten.

Apple-Rückerstattungsmanagement-Software macht sich bezahlt, sobald der manuelle Prozess anfängt, Anfragen durchrutschen zu lassen. Sie werden merken, wann das ist: Es ist die Woche, in der Sie drei hintereinander verpassen und es erst aus der Auszahlung erfahren.

Apple-Rückerstattungsverteidigungs-Software: Worauf sollten Entwickler achten?

Wenn Sie Apple-Rückerstattungsverteidigungs-Software vergleichen, beginnen Sie bei der technischen Basis: Empfängt die Software die CONSUMPTION_REQUEST selbst und beantwortet Routinefälle ohne menschliches Eingreifen? Wie schnell – auch nachts und am Wochenende? Minuten ist die richtige Antwort, und lassen Sie sich Zeitstempel zeigen.

Nachweise

Kann sie Ihre Zustell- und Nutzungsdaten abrufen oder empfangen, oder gibt sie die Benachrichtigung lediglich mit angehängter Präferenz zurück? Letzteres ist nicht viel wert.

Sie sollte außerdem auf der App Store Server API und Server Notifications V2 aufbauen – nicht auf dem Auslesen von E-Mails.

Transparenz

Benachrichtigungen, wenn eine Anfrage eingeht, wenn eine Antwort versendet wird und wenn Apple entscheidet.

Ein Fall pro Anfrage mit Antwort und Ergebnis an einem Ort.

Reporting zu Rückerstattungsquoten, Erfolgsquoten und Gründen – pro App und pro Produkt.

Ein Audit-Trail darüber, wer oder was wann welche Antwort gesendet hat.

Regeln, die Sie selbst steuern, sodass eine Änderung Ihrer Logik kein Deployment erfordert.

Preisgestaltung

Auch die Preisgestaltung unterscheidet sich: feste Monatsgebühren, Gebühren pro Anfrage und Modelle mit prozentualer Beteiligung am Erfolg ergeben je nach Volumen unterschiedlich viel Sinn.

Eines können sie alle nicht: Rückerstattungsanfragen verhindern oder garantieren, wie Apple entscheidet. Wer etwas anderes behauptet, will Ihnen etwas verkaufen.

Best Practices für die Beantwortung von Apple-Rückerstattungsanfragen

Hängen Sie das neben den Bereitschaftsplan.

  • Registrieren Sie eine Produktions-Server-URL für App Store Server Notifications V2 und richten Sie einen Alert ein, falls es dort still wird.

  • Setzen Sie bei jedem Kauf einen appAccountToken. Bei jedem.

  • Protokollieren Sie die Zustellung mit Zeitstempel und Ergebnis, dazu die wenigen Nutzungsereignisse, die bedeuten „es wurde genutzt".

  • Verankern Sie die Zustimmung zur Weitergabe von Nutzungsdaten jetzt in Ihren Nutzungsbedingungen.

  • Beantworten Sie jede Anfrage innerhalb von 12 Stunden – auch die, bei denen die Antwort „gewähren" lautet.

  • Fordern Sie DECLINE nur an, wenn Ihre Daten das belegen. Apple erkennt Muster.

  • Entziehen Sie bei jeder REFUND-Benachrichtigung noch am selben Tag den Zugriff.

  • Prüfen Sie einmal im Monat, welchen Anteil der Anfragen Sie tatsächlich beantwortet haben. Diese Zahl beeinflusst Ihre Rückerstattungsquote stärker als alles andere.

Lohnt sich Apple-Rückerstattungsmanagement-Software?

Bei geringem Volumen wahrscheinlich nicht. Sobald Anfragen schneller eingehen, als eine Person sie zuverlässig beantworten kann, oder außerhalb der Arbeitszeiten eintreffen, zahlt sich Software, die automatisch antwortet, in der Regel aus.

Wenn man aus all dem eine Gewohnheit mitnehmen sollte, dann diese: jede Anfrage beantworten, mit echten Daten, bevor die Zeit abläuft. Dipsea, eine Abo-Audio-App, senkte ihre Rückerstattungsquote innerhalb von etwa zwei Wochen nach Beginn der Beantwortung von 3 Prozent auf 1.9 Prozent – ohne Apple je um eine Ablehnung zu bitten. Apps, die schweigen, erfahren nie, was sie hätten behalten können.

Häufig gestellte Fragen

Dabei bittet ein Kunde Apple – meist über reportaproblem.apple.com – um eine Rückerstattung für eine App oder einen In-App-Kauf. Apple teilt Kunden mit, dass sie mit einer Antwort innerhalb von 24 bis 48 Stunden rechnen können. Bei Verbrauchsgütern (Consumables) und Abonnements fragt Apple zunächst den Entwickler nach Informationen.

Überprüfen Sie die Benachrichtigung, suchen Sie den Kauf in Ihren eigenen Aufzeichnungen, prüfen Sie Zustellung und Nutzung, legen Sie eine Präferenz fest und rufen Sie innerhalb von 12 Stunden den Send-Consumption-Information-Endpoint von Apple auf. Handeln Sie anschließend entsprechend der Entscheidung von Apple.

Nein. Sie können Apple mitteilen, dass Sie eine Ablehnung bevorzugen, und entsprechende Daten zur Unterstützung senden. Die endgültige Entscheidung trifft jedoch weiterhin Apple – und Apple gewährt durchaus Rückerstattungen, die Entwickler ablehnen wollten.

Fünf Dinge: dass der Kunde der Datenweitergabe zugestimmt hat, ob der Kauf zugestellt wurde, wie viel davon verbraucht wurde, ob der Kunde zuvor eine kostenlose Probe oder einen Test erhalten hat, und Ihre Präferenz zur Rückerstattung. Das ist der vollständige aktuelle Request Body.

Zwölf Stunden ab der CONSUMPTION_REQUEST. Apple empfiehlt, innerhalb dieses Zeitfensters zu antworten, wenn Ihre Daten in die Entscheidung einfließen sollen.

#Apple App Store Refund#Apple Refund Request#App Store Refund#Apple App Store#Refund Request Guide
Refund SensorRefund Sensor TeamRefund defense for App Store and Google Play developers