Kündigungsgründe für Abos erreichen Sie meist vor dem Erstattungsantrag, und Google Play liefert Ihnen weit mehr davon als Apple
Google Play erfasst Kündigungsgründe über eine Kündigungsumfrage, Apple sendet nur einen Ablaufcode. Was jeder Store Ihnen verrät, welche Signale auf eine kommende Erstattung oder Rückbuchung hindeuten und was Sie jedes davon kostet.

Wichtigste Erkenntnisse
- Google Play fragt Abonnenten bei der Kündigung, warum sie gehen. Die Antwort erreicht den Entwickler über canceledStateContext.userInitiatedCancellation.cancelSurveyResult in purchases.subscriptionsv2.
- Die Kündigungsumfrage von Google Play hat fünf Antworten, die ein Entwickler auslesen kann: zu wenig Nutzung, technische Probleme, Kosten, bessere App gefunden und Sonstiges. Freitext in reasonUserInput gibt es nur, wenn der Nutzer Sonstiges wählt.
- Eine SUBSCRIPTION_CANCELED-Benachrichtigung von Google Play enthält nur das Kauf-Token. Den Kündigungsgrund müssen Sie mit purchases.subscriptionsv2.get abrufen, und Google löscht alle Kündigungsfelder, wenn der Nutzer das Abo wiederherstellt.
- Die App Store Server API von Apple hat keine Kündigungsumfrage. Das Feld expirationIntent liefert einen von fünf Codes: Kunde hat gekündigt, Abrechnungsfehler, keine Zustimmung zu einer Preiserhöhung oder Angebotsumstellung, Produkt nicht verfügbar oder Sonstiges.
- Die Apple-Benachrichtigung DID_CHANGE_RENEWAL_STATUS mit dem Subtyp AUTO_RENEW_DISABLED kann bedeuten, dass der App Store die automatische Verlängerung nach einem Erstattungsantrag abgeschaltet hat, nicht nur, dass der Kunde sie selbst deaktiviert hat.
- Ein Kündigungsgrund gibt einem Entwickler nie ein Mitspracherecht bei einer Erstattung. Nur der CONSUMPTION_REQUEST von Apple, zu beantworten innerhalb von 12 Stunden, und die Rückbuchungsprüfung von Google Play über orders.reviewrefund, zu beantworten innerhalb von 24 Stunden, fragen nach Belegen.
- Ein Google Play-Abonnent, der wegen technischer Probleme kündigt, will am ehesten sein Geld zurück. Bei Bestellungen nach dem 3. August 2026 kostet eine gewonnene Rückbuchung den Entwickler den Kaufpreis abzüglich der Play-Servicegebühr plus die Gebühren der Bank.
Die meisten Abonnenten, die am Ende eine Erstattung bekommen, kündigen zuerst. Diese Kündigung hat einen Grund, und die beiden Stores geben Ihnen davon sehr unterschiedlich viel. Google Play führt eine kurze Umfrage durch und gibt die Antwort an Ihren Server weiter, samt Freitext. Apple sendet einen numerischen Code, der beschreibt, wie das Abo endete, nicht warum der Kunde gehen wollte. Wer beides richtig liest, sieht Erstattungsanträge kommen, solange man noch etwas tun kann.
Was Google Play Ihnen über Kündigungsgründe verrät
Wenn ein Nutzer im Play-Abozentrum kündigt, fragt Google nach dem Grund. Die Antwort landet in der Abo-Ressource, die Sie von purchases.subscriptionsv2.get erhalten, unter canceledStateContext. Dieses Objekt existiert nur, solange das Abo gekündigt oder abgelaufen ist. Es sagt, wer das Abo beendet hat: der Nutzer, das System von Google, Sie oder ein Ersatz wie ein Tarifwechsel.
Hat der Nutzer gekündigt, enthält das Objekt userInitiatedCancellation zwei Felder. cancelTime gibt an, wann gekündigt wurde. cancelSurveyResult enthält die Umfrageantwort.
| Umfragegrund | Beschreibung von Google | Was er oft signalisiert |
|---|---|---|
| CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE | Zu wenig Nutzung des Abos | Geringe Nutzung, also kaum Kosten im Konto |
| CANCEL_SURVEY_REASON_TECHNICAL_ISSUES | Technische Probleme bei der Nutzung der App | Das stärkste Signal für Erstattung und Rückbuchung |
| CANCEL_SURVEY_REASON_COST_RELATED | Kostenbezogene Gründe | Preissensibilität, manchmal eine unerwartete Verlängerung |
| CANCEL_SURVEY_REASON_FOUND_BETTER_APP | Der Nutzer hat eine bessere App gefunden | Ein Wettbewerber hat gewonnen, selten ein Streitfall |
| CANCEL_SURVEY_REASON_OTHERS | Sonstige Gründe | reasonUserInput lesen, die eigenen Worte des Nutzers |
| CANCEL_SURVEY_REASON_UNSPECIFIED | Nicht angegebener Umfragegrund | Keine Antwort, mit der man arbeiten kann |
Die rechte Spalte ist unsere Deutung, nicht die von Google. Die ersten beiden Spalten stammen direkt aus der API-Referenz.
Die Benachrichtigung enthält den Grund nicht
Ein gekündigtes Abo löst eine SUBSCRIPTION_CANCELED-Echtzeitbenachrichtigung für Entwickler aus, Typ 3. Google stellt klar, dass diese Benachrichtigungen nur melden, dass sich der Kaufstatus geändert hat. Die Payload liefert ein Kauf-Token und sonst nichts Brauchbares. Ihr Handler muss also purchases.subscriptionsv2.get aufrufen, um die Umfrageantwort zu lesen.
Die Ansicht in der Play Console
Für die Summen brauchen Sie keinen Code. Die Aboberichte der Play Console enthalten eine Karte „Kündigungen“, die die Abwanderung in freiwillig, unfreiwillig und sonstige aufteilt, sowie eine Karte mit Antworten auf die Kündigungsumfrage für Nutzer, die geantwortet haben. Freitextantworten von Nutzern, die Sonstiges gewählt haben, lassen sich als CSV über die Karte „Sonstige Antworten“ herunterladen. Dafür brauchen Sie die Berechtigung View financial data, dieselbe, die Sie einem Tool geben würden, das Ihre Bestellungen liest.
Was Apple Ihnen sagt und was es auslässt
Apple führt keine Kündigungsumfrage, die an Entwickler zurückgemeldet wird. Am nächsten kommt das Feld expirationIntent in den signierten Verlängerungsinfos. Es beschreibt, wie ein Abo endete, nicht was der Kunde dachte.
| expirationIntent | Bedeutung laut Apple | Passender EXPIRED-Subtyp |
|---|---|---|
| 1 | Der Kunde hat sein Abo gekündigt | VOLUNTARY |
| 2 | Abrechnungsfehler, etwa ungültige Zahlungsdaten | BILLING_RETRY |
| 3 | Keine Zustimmung zu einer erforderlichen Preiserhöhung oder Angebotsumstellung | PRICE_INCREASE |
| 4 | Das Produkt war bei der Verlängerung nicht erhältlich | PRODUCT_NOT_FOR_SALE |
| 5 | Ein anderer Grund | Kein Subtyp |
Code 1 ist der einzige, der eine Entscheidung des Kunden beschreibt, und er sagt nichts über das Motiv. Ein Kunde, der ging, weil die App ständig abstürzte, und einer, der einfach ein Projekt abgeschlossen hat, sehen gleich aus.
Das Signal in AUTO_RENEW_DISABLED
Eine Apple-Benachrichtigung lohnt einen genaueren Blick. DID_CHANGE_RENEWAL_STATUS mit dem Subtyp AUTO_RENEW_DISABLED bedeutet meist, dass der Kunde die automatische Verlängerung abgeschaltet hat. Die Dokumentation von Apple nennt einen zweiten Fall: Der App Store schaltet die automatische Verlängerung auch ab, nachdem der Kunde eine Erstattung beantragt hat.
Unter iOS kann ein Verlängerungs-aus-Ereignis also die erste Spur eines Erstattungsantrags sein. Ist der Kauf ein Verbrauchsartikel oder ein automatisch verlängerbares Abo, kann ein CONSUMPTION_REQUEST folgen, und ab dann haben Sie 12 Stunden Zeit, Verbrauchsdaten zu senden. Kommt ein solches Ereignis ohne sichtbare Aktion in Ihrer App, behandeln Sie es als Vorwarnung und bereiten Sie die Nutzungsdaten dieses Kontos vor.
Apple und Google im Vergleich
| Google Play | Apple App Store | |
|---|---|---|
| Fragt den Nutzer nach dem Grund | Ja, per Kündigungsumfrage | Keine für Entwickler sichtbare Umfrage |
| Wo der Grund steht | canceledStateContext in purchases.subscriptionsv2 | expirationIntent in den Verlängerungsinfos |
| Freitext | reasonUserInput, nur bei Sonstiges | Keiner |
| Wer gekündigt hat | Nutzer, System, Entwickler oder Ersatz | Abgeleitet aus Code und Subtyp |
| Benachrichtigung | SUBSCRIPTION_CANCELED, dann get aufrufen | DID_CHANGE_RENEWAL_STATUS, EXPIRED |
| Verloren, wenn der Nutzer neu abonniert | Ja, beim Wiederherstellen gelöscht | Verlängerungsinfos zeigen den aktuellen Stand |
| Dashboard | Karte mit Antworten auf die Kündigungsumfrage | Keins für Gründe |

Wo aus einer Kündigung eine Erstattung wird
Eine Kündigung stoppt die nächste Abbuchung. Die letzte gibt sie nicht zurück. Ob Geld zurückfließt, hängt davon ab, welchen Erstattungsweg der Kunde als Nächstes nimmt, und die meisten dieser Wege laufen ohne Sie.
- Bei Google Play kann ein Käufer innerhalb von 48 Stunden nach dem Kauf selbst eine Erstattung bekommen, und Google entscheidet.
- Über Erstattungen beim Support von Google oder Apple entscheidet der Store.
- Der CONSUMPTION_REQUEST von Apple fragt nach Ihren Verbrauchsdaten, mit einem Zeitfenster von 12 Stunden.
- Die Rückbuchungsprüfung von Google Play fragt über orders.reviewrefund nach Belegen, mit einem Zeitfenster von 24 Stunden. Die Entscheidung der Bank über eine Rückbuchung ist endgültig.
Ein Kündigungsgrund ändert keine dieser Regeln. Er ändert, wie früh Sie wissen, welcher Kunde unzufrieden ist, und ob Ihre Belege bereitliegen, wenn einer der beiden Wege kommt, die danach fragen.
Was Sie jeder Grund kostet
Die Umfrageantwort ist auch ein grober Hinweis darauf, was ein Konto bereits an Bereitstellung gekostet hat. Genau dieses Geld bleibt bei einer Erstattung an Ihnen hängen.
Technische Probleme
Das ist der teure Fall. Der Kunde hat das Produkt so viel genutzt, dass er auf Probleme stieß. Sie haben also die Rechenleistung hinter seinen Sitzungen bezahlt, die Modell-API-Aufrufe seiner Anfragen, den Speicher für alles, was er erstellt hat, und jede Auszahlung an Creator, deren Inhalte er genutzt hat. Bekommt er danach eine Erstattung, geht der Preis zurück, und die Kosten bleiben bei Ihnen. Geht er bei Google Play zu seiner Bank, kostet Sie eine Bestellung nach dem 3. August 2026 den Kaufpreis abzüglich der Play-Servicegebühr, plus die Gebühren der Bank.
Kosten
Eine Preisbeschwerde kostet Sie weniger, als es scheint, außer sie verbirgt eine unerwartete Verlängerung. Das ist die klassische Rückbuchungsgeschichte. Prüfen Sie also, ob die Kündigung direkt nach einer Verlängerungsabbuchung kam und ob Ihre Verlängerungserinnerungen verschickt wurden.
Zu wenig Nutzung
Wenig Nutzung heißt geringe Bereitstellungskosten. Eine Erstattung gibt hier also vor allem Geld zurück, für das Sie wenig ausgegeben haben. Bei diesem Grund zeigen ehrliche Verbrauchsdaten, falls Apple danach fragt, genau, was der Kunde genutzt hat und was nicht.
Bessere App gefunden
Diese Kunden streiten selten. Sie sind zu einem Wettbewerber gewechselt. Der Grund ist nützlich für Produktentscheidungen und fast nie für die Abwehr von Erstattungen.
Eine Routine zum Auswerten von Kündigungsgründen
- Rufen Sie bei jedem SUBSCRIPTION_CANCELED von Google Play purchases.subscriptionsv2.get auf und speichern Sie canceledStateContext mit dem Kauf-Token und cancelTime.
- Speichern Sie reasonUserInput wortwörtlich, wenn der Grund Sonstiges ist. Es ist der einzige Freitext, den einer der beiden Stores liefert.
- Protokollieren Sie bei jedem DID_CHANGE_RENEWAL_STATUS von Apple mit AUTO_RENEW_DISABLED das Ereignis und ziehen Sie die Nutzungsdaten des Kontos, falls ein CONSUMPTION_REQUEST folgt.
- Erfassen Sie bei jeder EXPIRED-Benachrichtigung von Apple den Subtyp und expirationIntent, damit freiwillige Abwanderung und Zahlungsfehler nicht verschwimmen.
- Prüfen Sie bei Kündigungen in Google Play wegen technischer Probleme die Fehlerprotokolle dieses Kontos und melden Sie sich, bevor der Kunde zu seiner Bank geht.
- Führen Sie Nutzungsprotokolle pro Konto, damit ein CONSUMPTION_REQUEST innerhalb von 12 Stunden und eine Rückbuchungsprüfung innerhalb von 24 Stunden eine Antwort bekommt.
Häufig gestellte Fragen
- Wie sehe ich, warum ein Google Play-Abonnent gekündigt hat?
- Rufen Sie purchases.subscriptionsv2.get auf und lesen Sie canceledStateContext.userInitiatedCancellation.cancelSurveyResult. Das Feld reason enthält die Umfrageantwort, und reasonUserInput enthält Freitext, wenn der Nutzer Sonstiges gewählt hat. Die Play Console zeigt die Summen außerdem auf der Karte mit Antworten auf die Kündigungsumfrage.
- Sagt Apple Entwicklern, warum ein Kunde ein Abo gekündigt hat?
- Nein. Apple hat keine für Entwickler sichtbare Kündigungsumfrage. Das Feld expirationIntent sagt, wie das Abo endete, mit Codes für Kunde hat gekündigt, Abrechnungsfehler, keine Zustimmung zu einer Preiserhöhung, Produkt nicht verfügbar oder Sonstiges, aber nicht das Motiv des Kunden.
- Enthält die SUBSCRIPTION_CANCELED-Benachrichtigung den Kündigungsgrund?
- Nein. Die Echtzeitbenachrichtigungen für Entwickler von Google Play melden nur, dass sich der Kaufstatus geändert hat. Rufen Sie das Abo mit purchases.subscriptionsv2.get ab, um den Grund zu lesen, und speichern Sie ihn sofort, denn Google löscht die Kündigungsfelder, wenn der Nutzer das Abo wiederherstellt.
- Kann eine AUTO_RENEW_DISABLED-Benachrichtigung von Apple einen Erstattungsantrag bedeuten?
- Ja. Laut Dokumentation von Apple deckt der Subtyp AUTO_RENEW_DISABLED beides ab: Der Kunde schaltet die automatische Verlängerung ab, oder der App Store schaltet sie ab, nachdem der Kunde eine Erstattung beantragt hat.
- Darf ich den Zugang entziehen, wenn ein Abonnent kündigt?
- Bei Google Play nicht, solange noch ein Anspruch besteht. Laut Google behält ein gekündigter Abonnent den Zugang bis zum Ende des Abrechnungszeitraums, und ein vorzeitiger Entzug verstößt gegen die Abo-Richtlinie von Google Play. Nutzen Sie expiryTime, um zu entscheiden, wann der Zugang endet.
Quellen und weiterführende Informationen
- Google Play Developer API: purchases.subscriptionsv2
- Google Play Billing: Subscription lifecycle
- Google Play Billing: Real-time developer notifications reference
- Play Console Help: Review in-app subscription performance
- Apple Developer: expirationIntent
- Apple Developer: notificationType
- Apple Developer: Send Consumption Information
- Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
Der Rückerstattungs-Autopilot für App Store und Google Play
Weiterlesen
Übermäßige Rückerstattungsanfragen können Sie mehr kosten als die Rückerstattungen selbst, denn beide App-Stores werten sie als Qualitätssignal
Apples Richtlinie 5.6.4 nennt übermäßige Rückerstattungsanfragen als Zeichen, dass eine App die Qualitätsstandards nicht erfüllt, und Googles Vertriebsvereinbarung erlaubt es, Apps neuer Entwickler wegen ihrer Rückerstattungsquote zu entfernen. Was jeder Store sagt, was eine Entfernung kostet und wie Sie ihr aus dem Weg gehen.
Prüfen Sie App Store Server Notifications, bevor Sie auf eine Erstattung reagieren, denn jeder kann an Ihre Webhook-URL senden
Eine Erstattungsbenachrichtigung ist nur eine HTTPS-Anfrage, bis Sie ihre Signatur prüfen. So verifizieren Sie App Store Server Notifications und Google Play RTDN-Nachrichten, was jeder Store signiert und was Sie eine gefälschte oder fälschlich abgelehnte Erstattung kostet.