CHARGEBACKSGOOGLE PLAY

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.

Veröffentlicht am 5 Min. Lesezeit

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.refund kann keine Bestellungen erstatten, die älter als drei Jahre sind. Mit revoke auf 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 voidedSource auf Entwickler erscheinen. Bei Abos erhalten Sie sowohl SUBSCRIPTION_REVOKED als auch eine VoidedPurchaseNotification.
  • 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: 1 Abo, 2 Einmalprodukt.
  • refundType: 1 volle Erstattung, 2 mengenbasierte 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: startTime darf nicht älter sein.
  • Standardmäßig gibt sie nur Einmalprodukte zurück. Übergeben Sie type=1, um Abos einzuschließen.
  • Jeder Eintrag hat einen voidedReason: 0 Other, 1 Remorse, 2 Not_received, 3 Defective, 4 Accidental_purchase, 5 Fraud, 6 Friendly_fraud, 7 Chargeback, 8 Unacknowledged_purchase.
  • Und eine voidedSource: 0 Nutzer, 1 Entwickler, 2 Google.

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:

  1. Zurückfordern ungenutzter Artikel, etwa gewährter In-App-Währung.
  2. Mehrere Verwarnungen: eine Warnung in der App beim ersten Fall, stärkere Maßnahmen bei Wiederholungsfällen.
  3. Käufe vorübergehend deaktivieren, während Sie der Sache nachgehen.
  4. Den Zugang zu Ihrer App einschränken in extremen, wiederholten Fällen.
  5. 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_CANCELED verarbeiten. Das bedeutet „Verlängerung stoppen“, nicht „erstattet“. Widerrufe kommen als SUBSCRIPTION_REVOKED und 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.

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Hören Sie auf, Umsatz zu verlieren.

  • Kostenlos bis $300 MRR
  • Keine Karte nötig
  • In 10 Minuten live
  • Nie ein Anteil an dem, was wir retten