Erstattungen und stornierte Käufe bei Google Play: was Sie damit tun
Wie Erstattungen, Widerrufe und Chargebacks bei Google-Play-Abos funktionieren: Meldungen zu stornierten Käufen, Voided Purchases API, Refund Reviews.
Bei Google Play kann Geld auf mehreren Wegen an einen Abonnenten zurückgehen: Der Nutzer erhält eine Erstattung, Sie erstatten ihm über die Play Console oder die API, ein Kauf wird nie bestätigt, oder die Zahlung wird per Chargeback zurückgebucht. Google fasst all das unter einem Begriff zusammen: Voided Purchase (stornierter Kauf). Wenn Sie Zugang oder Guthaben aus Ihrem eigenen Backend gewähren, müssen Sie von jedem einzelnen wissen.
Dieser Ratgeber erklärt, wo stornierte Käufe auftauchen, was Google Ihnen zu jedem mitteilt, die neuere Erstattungsprüfung bei Chargebacks und wie Sie reagieren. Er hält sich an die Dokumentation von Google: die Referenz der Echtzeit-Entwicklerbenachrichtigungen, die Sicherheits-Best-Practices zu stornierten Käufen, den Umgang mit abgelehnten Käufen, den Lebenszyklus von Abos und die Referenz der Google Play Developer API zu Voided Purchases, orders.refund und orders.reviewrefund (alle abgerufen im November 2026).
Was als stornierter Kauf zählt
Googles Sicherheitsseite definiert stornierte Käufe als „Käufe, die storniert, widerrufen oder per Chargeback zurückgebucht wurden“, und nennt die Hauptursachen:
- Der Kauf wird vom Nutzer, vom Entwickler oder von Google storniert, einschließlich Käufen, die automatisch storniert wurden, weil sie nie bestätigt wurden. Bei Abos bedeutet das die Stornierung des Kaufs selbst, nicht nur das Abschalten der Verlängerung.
- Der Kauf wird per Chargeback zurückgebucht.
- Der Entwickler storniert oder erstattet eine Bestellung und aktiviert die Option „revoke“ (widerrufen).
Eine normale Abo-Kündigung (der Nutzer stoppt die Verlängerung) ist kein stornierter Kauf. Sie ist ein Event SUBSCRIPTION_CANCELED, und der Nutzer behält den Zugang bis zum Ende des Zeitraums.
Erstatten, widerrufen oder beides
Sie haben drei Aktionen, und sie bewirken Unterschiedliches:
| Aktion | API | Geld | Zugang |
|---|---|---|---|
| Nur erstatten | orders.refund ohne revoke |
Erstattet | Bleibt |
| Erstatten und widerrufen | orders.refund mit revoke=true, oder purchases.subscriptionsv2.revoke mit voller Erstattung |
Erstattet | Endet sofort |
| Kündigen | purchases.subscriptionsv2.cancel |
Nicht erstattet | Bleibt bis zum Ende des Zeitraums |
Wissenswerte Punkte aus der Doku von Google:
orders.refundkann keine Bestellungen erstatten, die älter als drei Jahre sind. Mitrevokeauf true endet der Zugang sofort, und bei einem wiederkehrenden Abo stoppen alle künftigen Zahlungen.- Googles Integrationsleitfaden sagt, dass Widerrufe durch den Entwickler und Erstattungen mit Widerruf Benachrichtigungen auslösen und in der Voided Purchases API mit
voidedSourceauf Entwickler erscheinen. Bei Abos erhalten Sie sowohlSUBSCRIPTION_REVOKEDals auch eineVoidedPurchaseNotification. - Eine Erstattung ohne Widerruf „löst keine Benachrichtigung zu Widerruf oder storniertem Kauf aus“. Wenn Sie sie nutzen, halten Sie sie selbst fest.
- Wenn Sie ein neues Abo nicht innerhalb von drei Tagen bestätigen, wird der Nutzer automatisch erstattet und der Kauf widerrufen. Google bittet Sie, sich nicht darauf zu verlassen, um Käufe abzulehnen: Widerrufen und erstatten Sie stattdessen ausdrücklich.
Wo stornierte Käufe auftauchen
In Echtzeit: VoidedPurchaseNotification
Wenn Ihre Play-App Echtzeit-Entwicklerbenachrichtigungen aktiviert hat, kommt ein stornierter Kauf als voidedPurchaseNotification an, mit:
purchaseToken: der stornierte Kauf.orderId: die genaue Bestellung. Bei Abos hat jede Verlängerung ihre eigene Bestell-ID; das sagt Ihnen also, welche Zahlung storniert wurde.productType:1Abo,2Einmalprodukt.refundType:1volle Erstattung,2mengenbasierte Teilerstattung (nur bei Käufen mit mehreren Mengen).
Google weist darauf hin, dass das genügt, um „den richtigen Kauf und die richtige Bestellung für Anpassungen der Berechtigung zu finden“. Bei Abos sendet ein Widerruf außerdem eine Abo-Benachrichtigung SUBSCRIPTION_REVOKED; der Lebenszyklus-Leitfaden sagt, in diesem Fall die Berechtigung des Nutzers sofort zu entziehen.
Gesammelt: die Voided Purchases API
purchases.voidedpurchases.list ist eine Pull-API. Aus der API-Referenz:
- Sie deckt die letzten 30 Tage ab:
startTimedarf nicht älter sein. - Standardmäßig gibt sie nur Einmalprodukte zurück. Übergeben Sie
type=1, um Abos einzuschließen. - Jeder Eintrag hat einen
voidedReason:0Other,1Remorse,2Not_received,3Defective,4Accidental_purchase,5Fraud,6Friendly_fraud,7Chargeback,8Unacknowledged_purchase. - Und eine
voidedSource:0Nutzer,1Entwickler,2Google.
Die Reason Codes sind der nützlichste Teil, weil die Benachrichtigung sie nicht enthält. Eine Einschränkung laut Sicherheitsseite: Stornierte Käufe „ohne zugehörige Rückforderung von Inhalten werden von der Voided Purchases API nicht angezeigt“.
Nutzen Sie beides: die Benachrichtigung, um innerhalb von Sekunden zu handeln, und einen täglichen Abruf der API, um die Gründe zu erhalten und alles aufzufangen, was Sie übersehen haben.
Chargebacks: die Erstattungsprüfung
Google hat Entwicklern eine Möglichkeit gegeben, bei manchen Chargebacks mitzureden. Wenn ein Nutzer einen Chargeback beantragt, der eine Prüfung durch den Entwickler erfordert, erhalten Sie eine pendingRefundReviewNotification. Laut RTDN-Referenz sollten Sie die Anfrage bewerten und „innerhalb von 24 Stunden eine Erstattungsempfehlung und Nachweise zur Nutzung des Kaufs“ senden, indem Sie orders.reviewrefund aufrufen. Ausstehende Prüfungen unterstützen derzeit nur CHARGEBACK als Grund.
Der Request-Body laut API-Referenz:
| Feld | Bedeutung |
|---|---|
pendingRefundToken |
Aus der Benachrichtigung; erforderlich |
refundPreference |
APPROVE, DECLINE oder NEUTRAL; erforderlich |
sampleContentProvided |
Ob Sie vor dem Kauf ein kostenloses Muster, eine Testphase oder eine Beschreibung angeboten haben; erforderlich |
consumptionPercentageMilliunits |
Optional, 0 bis 100.000 (45.200 bedeutet 45,2 %) |
consumptionUsageEvents |
Optionale Liste von Nutzungsereignissen (Zeit, Artikelbeschreibung, IP-Adresse, Standort, verschleierte Konto- oder Profil-ID); Listen mit mehr als 1.000 Einträgen werden abgelehnt |
Die Benachrichtigung enthält obfuscatedAccountId und obfuscatedProfileId, wenn Sie sie beim Kauf gesetzt haben. Ohne sie werden Sie Mühe haben, die Nutzung des Nutzers innerhalb von 24 Stunden zu finden.
Seien Sie ehrlich. Wenn der Nutzer nicht nutzen konnte, wofür er bezahlt hat, ist APPROVE die richtige Antwort. Wenn er das Abo den ganzen Zeitraum über genutzt hat, ist ein DECLINE mit konkreten Nutzungsereignissen genau das, wofür das Feld da ist.
Was Sie mit jedem stornierten Kauf tun
Googles Sicherheitsleitfaden empfiehlt, je nach Grund und Historie des Nutzers:
- Zurückfordern ungenutzter Artikel, etwa gewährter In-App-Währung.
- Mehrere Verwarnungen: eine Warnung in der App beim ersten Fall, stärkere Maßnahmen bei Wiederholungsfällen.
- Käufe vorübergehend deaktivieren, während Sie der Sache nachgehen.
- Den Zugang zu Ihrer App einschränken in extremen, wiederholten Fällen.
- Die Voided Purchases API häufiger aufrufen, sobald Sie stornierte Käufe erkennen.
Für eine Abo-App sieht eine praktische Richtlinie so aus:
| Grund | Empfohlene Reaktion |
|---|---|
| Versehentlicher Kauf, Reue | Zugang für den erstatteten Zeitraum beenden; keine Warnung. Eventuell um Feedback bitten |
| Nicht erhalten, fehlerhaft | Als Produktfehler behandeln; das Konto des Nutzers untersuchen |
| Nicht bestätigter Kauf | Ihre Kaufverarbeitung reparieren; das ist Ihr Fehler, nicht der des Nutzers |
| Betrug, Friendly Fraud, Chargeback | Zugang beenden, das Konto markieren, neue Käufe bis zur Prüfung sperren |
Häufige Fehler
- Nur
SUBSCRIPTION_CANCELEDverarbeiten. Das bedeutet „Verlängerung stoppen“, nicht „erstattet“. Widerrufe kommen alsSUBSCRIPTION_REVOKEDund als Benachrichtigungen zu stornierten Käufen. - Ohne Widerruf erstatten und es vergessen. Keine Benachrichtigung wird Sie daran erinnern.
- Die API seltener als monatlich abfragen. Alles, was älter als 30 Tage ist, ist aus der API verschwunden.
- Keine verschleierte Konto-ID. Sie können eine Erstattungsprüfung nicht rechtzeitig beantworten, wenn Sie den Nutzer nicht finden.
- Reue-Erstattungen wie Betrug bestrafen. Die Reason Codes existieren, damit Sie sie unterscheiden können.
Das mit NoChurn umsetzen
NoChurn liest Ihre Echtzeit-Entwicklerbenachrichtigungen von Google Play und die Voided Purchases API, sodass Erstattungen, Widerrufe und Chargebacks mit ihrem Grund in der Zeitleiste jedes Kunden erscheinen und in den Churn-Score einfließen. Bei Google Play sind Erstattungen in NoChurn schreibgeschützt: Erstattungsentscheidungen und Erstattungsprüfungen bleiben bei Ihnen und Google, und Zahlungen und Wiederholungen bleiben bei Google. Um Käufe Kunden zuzuordnen, setzen Sie beim Kauf eine verschleierte Konto-ID. Siehe NoChurn + Google Play.