Apple und Google erstatten jeweils nur im eigenen Store, also muss Ihr plattformübergreifendes Abo den Zugang überall sonst beenden
Wenn Apple oder Google ein plattformübergreifendes Abo erstattet, erfahren Ihre Android-App, Ihre iPhone-App und Ihre Website davon nichts. So verknüpfen Sie jeden Store-Kauf mit einem Konto, entziehen die richtige Berechtigung und zahlen nicht länger für erstattete Nutzer.

Wichtigste Erkenntnisse
- Apples App Review Guideline 3.1.3(b) erlaubt Apps, die auf mehreren Plattformen laufen, Nutzern Zugang zu Inhalten und Abos zu geben, die auf anderen Plattformen oder auf der Website des Entwicklers erworben wurden, sofern diese auch als In-App-Käufe in der App erhältlich sind.
- Apple und Google erstatten nur Käufe aus dem eigenen Store. Eine Apple-Erstattung bei einem plattformübergreifenden Abo erreicht daher weder Google Play noch die Web-Abrechnung des Kunden. Der Server des Entwicklers muss den gewährten Zugang auf jeder Plattform entfernen.
- Apple sendet über App Store Server Notifications V2 eine REFUND-Benachrichtigung, wenn es ein Verbrauchsgut, ein Nicht-Verbrauchsgut, ein nicht verlängerndes Abo oder ein automatisch verlängerndes Abo erstattet, und stellt klar, dass der Entwickler jede erstattete Transaktion speichern, überwachen und darauf reagieren muss.
- Apples appAccountToken ist eine UUID, die ein Entwickler an einen In-App-Kauf anhängt. Der Endpunkt Set App Account Token der App Store Server API kann sie nachträglich zu Käufen außerhalb der App hinzufügen, etwa zu einem eingelösten Angebotscode.
- setObfuscatedAccountId von Google Play verknüpft einen Kauf mit einem Konto in der App des Entwicklers, ist auf 64 Zeichen begrenzt und führt zur Sperrung von Käufen, wenn es personenbezogene Daten im Klartext wie eine E-Mail-Adresse enthält.
- Die Voided Purchases API von Google Play meldet erstattete und zurückgebuchte Käufe mit einer orderId und einer voidedSource von 0 für den Nutzer, 1 für den Entwickler oder 2 für Google.
- Bei Google-Play-Bestellungen ab dem 3. August 2026 trägt der Entwickler bei einer erfolgreichen Rückbuchung den Kaufpreis abzüglich der Play-Servicegebühr sowie die Rückbuchungsgebühren der Bank.
Ihr Abonnent hat bei Apple bezahlt, am selben Nachmittag Ihre Android-App geöffnet und nutzt bei der Arbeit inzwischen Ihre Website. Dann erstattet Apple den Kauf. Google Play weiß davon nichts. Ihre Web-Abrechnung weiß davon nichts. Solange Ihr eigener Server den Zugang nicht beendet, funktioniert ein erstattetes plattformübergreifendes Abo auf jedem Bildschirm weiter, der Ihre Kontodatenbank ausliest. Die Stores erstatten jeweils nur im eigenen Storefront, und Ihr Kontosystem ist der einzige Ort, an dem das gesamte Abo existiert. Damit ist es auch der einzige Ort, der es beenden kann.
Warum die Erstattung eines Stores ein plattformübergreifendes Abo nicht beendet
Apple erlaubt dieses Modell ausdrücklich. App Review Guideline 3.1.3(b), Multiplatform Services, besagt, dass Apps, die auf mehreren Plattformen laufen, Nutzern Zugang zu Inhalten, Abos oder Funktionen geben dürfen, die sie in Ihrer App auf anderen Plattformen oder auf Ihrer Website erworben haben, sofern diese auch als In-App-Käufe in der App erhältlich sind.
Apples Leitfaden zum Anbieten eines Abos über mehrere Apps beschreibt, wie das in der Praxis funktioniert. Ihr Server gewährt den Zugang über eine einheitliche Kontodatenbank, und jede App liest daraus. Derselbe Leitfaden warnt: Wird ein Kauf nicht an die anderen Apps weitergegeben, zahlt der Nutzer womöglich mehrfach für denselben Dienst.
Dieses Design hat eine Folge, die oft übersehen wird. Die Berechtigung liegt in Ihrer Datenbank, aber jeder Store kennt nur seine eigenen Belege. Apple kann den iPhone-Kauf erstatten und Ihren Server informieren. Ihrer Android-App oder Ihrer Website kann Apple nichts mitteilen. Aktualisiert der Erstattungs-Handler nur den iOS-Client, bekommt der Kunde sein Geld zurück und behält das Abo überall sonst.
| Wo bezahlt wurde | Wer über die Erstattung entscheidet | Wie Ihr Server davon erfährt | Wer Verlängerungen stoppen kann |
|---|---|---|---|
| App Store | Apple | REFUND-Benachrichtigung in App Store Server Notifications V2 | Der Kunde, in seinen App-Store-Abo-Einstellungen oder in einer Verwaltungsansicht, die Ihre App öffnet |
| Google Play | Google in den ersten 48 Stunden, danach Sie oder Google | Voided Purchases API und Echtzeit-Entwicklerbenachrichtigungen | Der Kunde, oder Sie über purchases.subscriptionsv2.cancel |
| Ihre Website | Sie | Webhooks Ihres Zahlungsanbieters | Sie |
So entziehen Sie nach einer Erstattung den Zugang auf jeder Plattform
Verknüpfen Sie jeden Store-Kauf mit einem Konto
Der schwierige Teil ist, eine Erstattung einer Person zuzuordnen, denn jeder Store identifiziert den Käufer auf seine eigene Weise. Beide bieten ein Feld für Ihre eigene Konto-ID. Nutzen Sie es bei jedem Kauf.
- Setzen Sie bei Apple zu Beginn des Kaufs einen appAccountToken, eine von Ihnen erzeugte UUID. Der App Store gibt dieselbe UUID in den Transaktions- und Verlängerungsinformationen zurück. Laut Apple können Sie einen Wert für alle Transaktionen desselben Kunden wiederverwenden.
- Hat der Kunde außerhalb Ihrer App gekauft, etwa durch Einlösen eines Angebotscodes im App Store, hat die Transaktion keinen Token. Der Endpunkt Set App Account Token fügt ihn hinzu. Bei einem automatisch verlängernden Abo gilt er für die aktuelle und alle späteren Verlängerungen, nicht für frühere Transaktionen, und er funktioniert nicht für Käufe, die über die Familienfreigabe geteilt werden.
- Übergeben Sie bei Google Play beim Start des Kaufvorgangs eine verschleierte Konto-ID mit setObfuscatedAccountId. Sie ist auf 64 Zeichen begrenzt. Laut Google führen personenbezogene Daten im Klartext wie eine E-Mail-Adresse zur Sperrung von Käufen. Google empfiehlt Verschlüsselung oder einen Einweg-Hash.
Hören Sie beide Stores ab und schreiben Sie eine einzige Berechtigung
Apple sendet REFUND, wenn es einen beliebigen Produkttyp erstattet, automatisch verlängernde Abos eingeschlossen. REFUND_REVERSED sendet Apple, wenn es eine bereits gewährte Erstattung wegen eines vom Kunden angestoßenen Streitfalls rückgängig macht. Bei Google Play listet die Voided Purchases API erstattete und zurückgebuchte Käufe auf, jeweils mit einer orderId, die den genauen Kauf oder die genaue Verlängerung identifiziert. Ihr Web-Zahlungsanbieter sendet ein eigenes Erstattungsereignis. Alle drei sollten im selben Handler landen und denselben Datensatz ändern.
Entziehen Sie die Berechtigung, nicht das Konto
Eine Erstattung storniert einen Kauf, keine Person. Entfernen Sie den Zugang, der aus dem erstatteten Kauf stammt, und berechnen Sie dann neu, was dem Konto noch zusteht. Hat der Kunde zusätzlich ein aktives Abo aus einem anderen Store, behält er darüber den Zugang. Wenn nicht, verliert jeder Client die Premium-Funktionen, sobald er das nächste Mal bei Ihrem Server nachfragt.
Wenn dieselbe Person in zwei Stores abonniert
Doppelte Abos sind die andere Hälfte des Problems. Jemand abonniert auf Android, bekommt ein neues iPhone, meldet sich nicht an und abonniert erneut. Nun zahlt er doppelt für einen Dienst, und eine der beiden Abbuchungen wird meist zu einem Erstattungsantrag. Apples Commerce-Team brachte es im Apple Developer Forum in einer Antwort an einen Entwickler auf den Punkt: Ein App-Kontosystem sollte Logik enthalten, die den doppelten Kauf auf einer anderen Plattform verhindert.
Prüfen Sie jeden Store, bevor Sie die Paywall zeigen
Melden Sie den Nutzer vor der Paywall an, suchen Sie auf Ihrem Server alle seine aktiven Käufe und überspringen Sie das Angebot, wenn einer davon diese Plattform abdeckt. Diese eine Prüfung verhindert die meisten doppelten Abbuchungen, bevor sie entstehen.
Welchen Kauf sollte ich erstatten, wenn es schon passiert ist?
Erstatten Sie den, über den Sie entscheiden. Bei Google Play können Sie die Erstattung selbst in der Play Console auslösen, und purchases.subscriptionsv2.cancel mit DEVELOPER_REQUESTED_STOP_PAYMENTS stoppt die nächste Zahlung. Ihr Web-Abo können Sie ohne Weiteres selbst erstatten. Über App-Store-Erstattungen entscheidet Apple. Liegt das Duplikat also auf dem iPhone, beantragt der Kunde die Erstattung bei Apple, und Ihre App kann diesen Antrag mit der Refund-Request-API von StoreKit öffnen.
Was Sie eine Erstattung kostet, die eine Plattform verfehlt
Der erstattete Preis ist nur der erste Verlust. Ein Kunde, dessen Apple-Erstattung nie bei Ihrer Android-App oder Website angekommen ist, nutzt weiter, wofür Sie den Betrieb bezahlen. Jede Sitzung verbraucht weiter Rechenleistung. Jede KI-Funktion löst weiter API-Aufrufe bei Drittanbietern aus, die Ihnen in Rechnung gestellt werden. Seine Dateien belegen weiter Speicher, und wenn Ihre App Creator pro Aufruf oder pro Nutzung bezahlt, fließen diese Auszahlungen weiter. Bei einem Jahresabo kann das ein ganzes Jahr Betriebskosten für ein Konto bedeuten, das nichts mehr zahlt.
Der Weg über die Bank macht es schlimmer. Für Google-Play-Bestellungen ab dem 3. August 2026 gilt laut Google: Geht eine Rückbuchung durch, trägt der Entwickler den Kaufpreis abzüglich der Play-Servicegebühr sowie die Rückbuchungsgebühren, die das Finanzinstitut erhebt. Eine Rückbuchung ist bei der Bank endgültig. Ein Kunde, der zurückgebucht hat und trotzdem noch Zugang hat, kostet Sie den Preis, die Gebühren und die Betriebskosten auf einmal.
| Was nach einem verpassten Entzug weiterläuft | Wer dafür zahlt |
|---|---|
| Server-Rechenleistung für jede Sitzung auf Android oder im Web | Sie |
| API-Aufrufe bei Drittanbietern durch Ihre Funktionen | Sie |
| Speicher für Dateien und Verlauf des Nutzers | Sie |
| Auszahlungen an Creator pro Nutzung oder pro Aufruf | Sie |
| Rückbuchungsgebühren bei einer Google-Play-Bestellung nach dem 3. August 2026 | Sie, zusätzlich zum Kaufpreis abzüglich der Play-Servicegebühr |

Plattformübergreifende Nutzung bleibt ein Beleg
Ein Konto über alle Plattformen hilft auch, wenn ein Store Ihre Sicht der Dinge erfragt. Apples Verbrauchsinformationen fragen, welchen Anteil eines Verbrauchsguts, Nicht-Verbrauchsguts oder nicht verlängernden Abos der Kunde verbraucht hat. Für automatisch verlängernde Abos senden Sie keinen Prozentsatz, weil Apple ihn aus der verstrichenen Zeit berechnet. Die Rückbuchungsprüfung von Google Play akzeptiert bis zu 1.000 Nutzungsereignisse, die jeweils die verschleierte Konto-ID enthalten können. Nutzung, die unter einer Konto-ID protokolliert wurde, egal auf welchem Gerät, ist Nutzung, die Sie vorweisen können.
Bei welchen Erstattungen Sie nie gefragt werden
Die meisten Erstattungen werden ohne Sie entschieden. Google Play kann einen Kauf innerhalb von 48 Stunden über seinen eigenen Erstattungsablauf erstatten. Erstattungen durch den Store-Support, stornierte Käufe und Googles automatische Erstattung von Käufen, die Sie nie bestätigen, nach etwa 72 Stunden, passieren alle zuerst und werden erst danach gemeldet. Für diese Fälle ist die oben beschriebene Entzugslogik die gesamte Aufgabe.
Nur zwei Abläufe fragen nach Belegen. Apples CONSUMPTION_REQUEST gibt Ihnen 12 Stunden, um Verbrauchsinformationen zu senden. Die Rückbuchungsprüfung von Google Play gibt Ihnen ab der PendingRefundReviewNotification 24 Stunden, um über orders.reviewrefund zu antworten, und Google wertet nur Ihren ersten Aufruf. RefundHalt beantwortet beide innerhalb der Frist, mit den Nutzungsdaten, die Sie bereits erfassen, verknüpft mit demselben Konto über alle Ihre Apps.
Eine kurze Checkliste für plattformübergreifende Erstattungen
- Setzen Sie appAccountToken bei Apple-Käufen und eine verschleierte Konto-ID bei Google-Play-Käufen.
- Ergänzen Sie fehlende Apple-Tokens bei eingelösten Angebotscodes mit Set App Account Token.
- Leiten Sie Apples REFUND und REFUND_REVERSED, stornierte Google-Play-Käufe und Web-Erstattungen in einen einzigen Handler.
- Speichern Sie jeden Kauf mit seiner Quelle und berechnen Sie den Zugang aus allen aktiven Käufen.
- Prüfen Sie die Käufe in jedem Store, bevor Sie auf irgendeiner Plattform eine Paywall zeigen.
Häufig gestellte Fragen
- Darf ich iPhone-Nutzern Zugang zu einem Abo geben, das sie auf Android oder auf meiner Website gekauft haben?
- Ja. Apples App Review Guideline 3.1.3(b) erlaubt Apps, die auf mehreren Plattformen laufen, Nutzern Zugang zu Inhalten, Abos oder Funktionen zu geben, die auf anderen Plattformen oder auf Ihrer Website erworben wurden, sofern diese auch als In-App-Käufe in der iPhone-App erhältlich sind.
- Wenn Apple einem Abonnenten erstattet, erfahren Google Play oder meine Web-Abrechnung davon?
- Nein. Apple informiert Ihren Server über eine REFUND-Benachrichtigung in App Store Server Notifications V2, sonst niemanden. Ihr Server muss den Zugang entfernen, den dieser Kauf auf Android, im Web und überall sonst gewährt hat, wo sich das Konto anmeldet.
- Wie ordne ich eine App-Store-Erstattung einem Nutzerkonto zu?
- Verwenden Sie appAccountToken, eine UUID, die Ihre App an den Kauf anhängt und die der App Store in den Transaktionsinformationen zurückgibt. Für Käufe außerhalb Ihrer App, etwa eingelöste Angebotscodes, fügt Apples Endpunkt Set App Account Token den Token hinzu oder ersetzt ihn. Transaktionen aus der Familienfreigabe unterstützt er nicht.
- Ein Kunde hat sowohl im App Store als auch bei Google Play abonniert. Welches Abo sollte ich erstatten?
- Erstatten Sie das, über das Sie entscheiden. Eine Google-Play-Bestellung können Sie in der Play Console erstatten und die nächste Zahlung mit purchases.subscriptionsv2.cancel stoppen. Über App-Store-Erstattungen entscheidet Apple, ein iPhone-Duplikat läuft also über Apples Erstattungsantrag, den Ihre App mit StoreKit öffnen kann.
- Zählt die Nutzung auf meiner Website oder in meiner Android-App als Beleg bei einer Erstattungsprüfung?
- Nutzung, die unter einem Konto protokolliert wurde, kann Ihre Antwort stützen. Apples Verbrauchsinformationen fragen, welcher Anteil eines Verbrauchsguts, Nicht-Verbrauchsguts oder nicht verlängernden Abos verbraucht wurde, und die Rückbuchungsprüfung von Google Play akzeptiert bis zu 1.000 Nutzungsereignisse, die die verschleierte Konto-ID enthalten können.
Quellen und weiterführende Informationen
- Apple: App Review Guidelines, 3.1.3(b) Multiplatform Services
- Apple Developer Documentation: Offering a subscription across multiple apps
- Apple Developer Documentation: Handling refund notifications
- Apple Developer Documentation: notificationType
- Apple Developer Documentation: Set App Account Token
- Android Developers: BillingFlowParams.Builder, setObfuscatedAccountId
- Google Play Developer API: purchases.voidedpurchases
- Google 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.