Wenn deine App noch App Store Server Notifications V1 nutzt, fragt Apple dich nie zu Abo-Erstattungen
Apple hat App Store Server Notifications V1 im Juni 2023 als veraltet markiert, und V1 hat nie CONSUMPTION_REQUEST für Abos, REFUND_DECLINED oder REFUND_REVERSED bekommen. Hier liest du, was ein V1-Server verpasst, was das kostet und wie du ohne verlorene Erstattung auf V2 umsteigst.

Wichtigste Erkenntnisse
- Apple hat App Store Server Notifications V1 und den verifyReceipt-Endpunkt am 5. Juni 2023 als veraltet markiert. Beide funktionieren noch, bekommen keine neuen Funktionen und haben kein angekündigtes Enddatum.
- Apples V1-Dokumentation nennt CONSUMPTION_REQUEST nur für Verbrauchsartikel (Consumables). Consumption Requests für automatisch verlängerbare Abos kamen im April 2024 zu App Store Server Notifications V2 hinzu.
- REFUND_DECLINED und REFUND_REVERSED gibt es nur in App Store Server Notifications V2. Ein V1-Server erfährt also nie, dass Apple eine Erstattung abgelehnt oder zurückgenommen hat.
- Bei V1 kommt eine Apple-Erstattung eines automatisch verlängerbaren Abos als CANCEL an. Bei V2 kommt sie als REFUND an, mit revocationDate und revocationReason in der signierten Transaktion.
- Apple wiederholt eine fehlgeschlagene V2-Benachrichtigung fünfmal über etwa eine Woche, nach 1, 12, 24, 48 und 72 Stunden. Eine fehlgeschlagene V1-Benachrichtigung bekommt drei Wiederholungen, nach 6, 24 und 48 Stunden, und lässt sich nicht über Get Notification History wiederherstellen.
- Nachdem eine App in App Store Connect auf V2 umgestellt wurde, kommen neue Benachrichtigungen sofort im V2-Format an. V1-Benachrichtigungen, die sich bereits in der Wiederholung befinden, können noch etwa 78 Stunden lang eintreffen.
Version 1 von App Store Server Notifications liefert Erstattungen weiterhin aus, lässt aber genau die eine Benachrichtigung weg, mit der du einer Abo-Erstattung widersprechen kannst. Apple hat V1 am 5. Juni 2023 zusammen mit dem verifyReceipt-Endpunkt als veraltet markiert und seitdem jede neue Erstattungsfunktion nur in V2 eingebaut. Steht in deinen App Store Connect-Einstellungen noch Version 1, kann Apple über eine Abo-Erstattung entscheiden, ohne deinem Server je einen CONSUMPTION_REQUEST zu schicken. Du verlierst dort keinen Streit. Du wirst gar nicht erst dazu eingeladen.
Was die Abkündigung von App Store Server Notifications V1 bedeutet
Veraltet heißt nicht abgeschaltet. Ein Apple-Ingenieur schrieb im Juni 2023 in den Entwicklerforen, dass verifyReceipt und V1-Benachrichtigungen weiter funktionieren, bis ein Enddatum angekündigt wird, dass dieses Datum noch nicht feststeht und dass Entwickler vorab informiert werden. Mehr als drei Jahre später bietet App Store Connect beim Festlegen einer Server-URL immer noch "Version 1 (deprecated)" zur Auswahl an.
Was veraltet sehr wohl bedeutet, ist Stillstand. Jede Änderung in Apples Changelog für Benachrichtigungen seit Juni 2023 betrifft V2: neue Felder in der signierten Transaktion, neue Benachrichtigungstypen, die im April 2026 ergänzten Daten zur 12-monatigen Bindung. Ein V1-Server sieht davon nichts.
Welche Erstattungssignale ein V1-Server nie bekommt
So erreichen dieselben Erstattungsereignisse einen V1-Server und einen V2-Server, laut Apples Dokumentation für die jeweilige Version.
| Erstattungsereignis | Version 1 | Version 2 |
|---|---|---|
| Kunde bittet Apple um Erstattung eines Verbrauchsartikels | CONSUMPTION_REQUEST | CONSUMPTION_REQUEST |
| Kunde bittet Apple um Erstattung eines automatisch verlängerbaren Abos | In der V1-Dokumentation nicht aufgeführt | CONSUMPTION_REQUEST, seit April 2024 |
| Apple erstattet ein automatisch verlängerbares Abo | CANCEL | REFUND |
| Apple erstattet einen Verbrauchsartikel, einen Nicht-Verbrauchsartikel oder ein nicht verlängerbares Abo | REFUND | REFUND |
| Apple lehnt eine Erstattung ab, die der Kunde in deiner App gestartet hat | Nicht verfügbar | REFUND_DECLINED |
| Apple nimmt eine bereits gewährte Erstattung zurück | Nicht verfügbar | REFUND_REVERSED |
| Du holst Benachrichtigungen nach, die während eines Ausfalls verpasst wurden | Nicht verfügbar | Get Notification History |
Bekommt V1 überhaupt noch CONSUMPTION_REQUEST?
Ja, für Verbrauchsartikel. Apples V1-Referenz beschreibt CONSUMPTION_REQUEST als die Benachrichtigung, die gesendet wird, wenn ein Kunde eine Erstattung für einen Verbrauchsartikel beantragt. Ein Apple-Ingenieur bestätigte 2023 in den Foren, dass V1-Consumption-Requests bei berechtigten Erstattungen ausgelöst werden. Die Lücke sind Abos. Apples Changelog datiert Consumption Requests für Abos auf den 11. April 2024, in V2, und die Dokumentation zu Send Consumption Information sagt, dass Apple die Anfrage über deinen V2-Endpunkt sendet.
Warum CANCEL bei V1 leicht missverstanden wird
Wenn Apple bei V1 ein Abo erstattet, lautet der Benachrichtigungstyp CANCEL, oft zusammen mit DID_CHANGE_RENEWAL_STATUS. Viele Server behandeln jedes Cancel so, als hätte der Kunde die automatische Verlängerung ausgeschaltet, und lassen den Zugang bis zum Ende des Zeitraums laufen. V2 beseitigt diese Mehrdeutigkeit. Eine Erstattung kommt als REFUND an, und ein Kunde, der die Verlängerung ausschaltet, kommt als DID_CHANGE_RENEWAL_STATUS mit dem Subtyp AUTO_RENEW_DISABLED an.
Was dich das Festhalten an V1 an Geld kostet
Apple entscheidet über jede Erstattung im App Store. Der CONSUMPTION_REQUEST ist der einzige Punkt, an dem deine Nutzungsdaten in diese Entscheidung einfließen, und Apple bittet dich, innerhalb von 12 Stunden zu antworten. Bei V1 überspringen Abo-Erstattungen diesen Schritt.
Hier ein Rechenbeispiel mit beispielhaften Zahlen. Angenommen, deine App verkauft ein Monatsabo für $9.99, das KI-Bildgenerierungen enthält. Ein Abonnent erzeugt in einem Monat 400 Bilder, und jedes kostet dich echtes Geld für Modell-Inferenz. Dann bittet er Apple um eine Erstattung.
| Kostenposten | V1-Server | V2-Server |
|---|---|---|
| Dein Anteil an der Zahlung | Zurückgezahlt, wenn Apple zustimmt | Zurückgezahlt, wenn Apple zustimmt |
| Rechenleistung, API-Aufrufe und Speicher in diesem Monat | Bereits bezahlt, nicht zurückholbar | Bereits bezahlt, nicht zurückholbar |
| Chance, Apple die 400 Generierungen zu zeigen | Keine | Ein CONSUMPTION_REQUEST, 12 Stunden |
| Erfahren, dass Apple die Erstattung abgelehnt hat | Nie | REFUND_DECLINED |
| Erfahren, dass eine Erstattung zurückgenommen wurde | Nie | REFUND_REVERSED |
Die Zahlung, die du verlierst, ist dein Anteil, nicht der Listenpreis. Apple zahlt im ersten Jahr bezahlter Nutzung eines Abonnenten 70% des Abopreises abzüglich anfallender Steuern aus, danach oder für Mitglieder des App Store Small Business Program 85%. Die Rechenkosten schrumpfen nicht mit. Inferenz, API-Aufrufe bei Drittanbietern und Dateispeicher wurden bezahlt, als der Kunde sie genutzt hat.
Auch die zwei fehlenden Ergebnis-Benachrichtigungen kosten Geld. Ohne REFUND_REVERSED stellt ein Server, der bei einer Erstattung den Zugang entzogen hat, ihn nie wieder her, wenn Apple die Erstattung zurücknimmt. Ein zahlender Kunde bleibt also ausgesperrt und schreibt an den Support. Ohne REFUND_DECLINED kannst du eine noch offene Erstattung nicht von einer unterscheiden, die Apple abgelehnt hat.

So migrierst du von V1 auf V2, ohne eine Erstattung zu verlieren
Der Umstieg auf V2 ist eine Serveränderung plus eine Einstellung. Apples eigene Hinweise in den Foren, von einem App Store Commerce Engineer im Dezember 2025, erklären, was am Tag der Umstellung passiert.
Bau den V2-Endpunkt, bevor du die Einstellung änderst
- Akzeptiere einen POST, dessen Body ein signedPayload enthält. V2-Payloads sind JWS und von Apple signiert, also prüfe die Signatur, bevor du dem Inhalt vertraust. Apples App Store Server Library erledigt das für dich.
- Übertrage deine CANCEL-Behandlung auf REFUND und behandle REFUND_DECLINED und REFUND_REVERSED als neue Fälle.
- Beantworte CONSUMPTION_REQUEST für Abos mit Send Consumption Information, und nur dann, wenn der Kunde der Weitergabe von Daten an Apple zugestimmt hat. Apple sagt, ohne Zustimmung solltest du nicht antworten.
- Gib bei Erfolg HTTP 200 bis 206 zurück. Jeder 40x- oder 50x-Code lässt Apple es erneut versuchen.
Ändere die Einstellung in App Store Connect
Öffne in App Store Connect deine App, wähle unter Allgemein den Punkt App-Informationen, suche App Store Server Notifications und setze die Production Server URL auf deinen V2-Endpunkt, mit Version 2 ausgewählt. Wenn du testen willst, mach dasselbe zuerst für die Sandbox-URL und nutze Request a Test Notification, um zu prüfen, ob dein Server antwortet.
Lass den V1-Handler etwa drei Tage weiterlaufen
Nach der Umstellung kommen neue Benachrichtigungen sofort im V2-Format an, für jedes Abo, alt oder neu. V1-Benachrichtigungen, die sich bereits in der Wiederholung befinden, kommen weiter im V1-Format, bis sie erfolgreich sind oder keine Versuche mehr übrig haben. Apple setzt den letzten möglichen V1-Versuch bei etwa 78 Stunden an, also 6 plus 24 plus 48. Lass den alten Handler länger als das laufen und entferne ihn dann.
Ersetze bei der Gelegenheit gleich verifyReceipt
verifyReceipt wurde am selben Tag als veraltet markiert. Der Endpunkt antwortet noch, aber Apple verweist Server stattdessen auf die App Store Server API. Get Transaction Info liefert eine signierte Transaktion, Get Transaction History liefert den Verlauf eines Kunden, und Get Refund History listet jeden erstatteten Kauf eines Kunden auf. Zusammen mit V2-Benachrichtigungen decken sie ab, wofür die meisten Server Belege genutzt haben, einschließlich des Felds cancellation_date, das früher eine Erstattung im Beleg markierte.
RefundHalt verbindet sich mit App Store Server Notifications V2 und beantwortet jeden CONSUMPTION_REQUEST innerhalb des 12-Stunden-Fensters, mit den Nutzungsdaten, die deine App ohnehin erfasst. Wenn du noch auf V1 bist, ist die Umstellung der Schritt, der all das erst möglich macht.
Häufig gestellte Fragen
- Wird App Store Server Notifications V1 abgeschaltet?
- Noch nicht. Apple hat V1 und verifyReceipt am 5. Juni 2023 als veraltet markiert, und beide funktionieren noch. Apple hat gesagt, dass es noch kein Enddatum gibt und dass Entwickler vorab informiert werden. Bis dahin bekommt V1 keine neuen Funktionen.
- Bekomme ich bei V1 CONSUMPTION_REQUEST-Benachrichtigungen?
- Laut Apples V1-Dokumentation nur für Verbrauchsartikel. Consumption Requests für automatisch verlängerbare Abos kamen im April 2024 zu V2 hinzu, und Apple sendet sie über deinen V2-Endpunkt. Wenn du Abos verkaufst und bei V1 bleibst, kannst du diese Erstattungsanfragen nicht beantworten.
- Wie sieht eine Abo-Erstattung bei V1 im Vergleich zu V2 aus?
- Bei V1 kommt sie als CANCEL an, oft zusammen mit DID_CHANGE_RENEWAL_STATUS. Bei V2 kommt sie als REFUND an, mit revocationDate und revocationReason in der signierten Transaktion. V2 sendet außerdem REFUND_DECLINED, wenn Apple eine in deiner App gestartete Erstattung ablehnt, und REFUND_REVERSED, wenn Apple eine gewährte Erstattung zurücknimmt.
- Was passiert mit Benachrichtigungen, wenn ich von V1 auf V2 umstelle?
- Neue Benachrichtigungen kommen kurz nach der Umstellung im V2-Format an, für alle Abos. V1-Benachrichtigungen, die gerade wiederholt werden, kommen weiter im V1-Format, bis sie erfolgreich sind oder ihre Versuche aufgebraucht haben, was Apple bei etwa 78 Stunden nach der Umstellung ansetzt. Lass beide Handler in diesem Zeitraum laufen.
- Kann ich nach der Umstellung auf V2 zu V1 zurückkehren?
- Ja, über den Endpunkt Modify an App der App Store Connect API, wie Apples Technote TN3180 beschreibt. Apple nennt das einen ungewöhnlichen Fall und markiert V1 weiterhin als veraltet. Eine Rückkehr bedeutet also den Verzicht auf Consumption Requests für Abos und die neueren Erstattungsbenachrichtigungen.
Quellen und weiterführende Informationen
- Apple Developer Documentation: App Store Server Notifications changelog
- Apple Developer Documentation: notification_type (Version 1)
- Apple Developer Documentation: notificationType (Version 2)
- Apple Developer Documentation: Responding to App Store Server Notifications
- Apple Developer Documentation: Send Consumption Information V1
- Apple Developer Documentation: App Store Receipts (verifyReceipt deprecated)
- Apple Developer Documentation: TN3180, Reverting to App Store Server Notifications V1
- App Store Connect Help: Enter server URLs for App Store Server Notifications
- Apple Developer Forums: When will the verifyReceipt API be deprecated? (Apple staff reply, June 2023)
- Apple Developer Forums: Switching App Store Server Notifications from V1 to V2 (Apple staff reply, December 2025)
- Apple Developer: Auto-renewable subscriptions (net revenue after one year of paid service)
RefundHalt
Der Rückerstattungs-Autopilot für App Store und Google Play
Weiterlesen
Eine Erstattung beim Apple-Monatsabo mit 12-monatiger Bindung kann das ganze Jahr beenden oder nur einen Monat davon
Beim Monatsabo mit 12-monatiger Bindung teilt Apple Erstattungen in zwei Fälle. Wird ein vergangener Monat erstattet, läuft die Abrechnung weiter. Wird der aktuelle Monat erstattet, endet die Bindung sofort. So erreicht jeder Fall Ihren Server, das kostet er, und das sollten Sie an Apple senden.
Ihre Erstattungsrichtlinie kann Apple oder Google nicht überstimmen, also schreiben Sie die, die zur Realität passt
Eine Erstattungsrichtlinie für Apps bindet Sie nur dort, wo Sie selbst Erstattungen ausstellen. Apple erstattet jeden App Store-Kauf selbst, Google Play überlässt Erstattungen nach 48 Stunden Ihnen. Hier steht, was die Verträge sagen, was ein unbedachtes Versprechen kostet und welche Klauseln sich lohnen.