Glossary · Store notifications

What are App Store Server Notifications V2?

App Store Server Notifications V2

App Store Server Notifications V2 is Apple's server-to-server service that sends signed JSON messages to an HTTPS URL you configure whenever an in-app purchase event happens, such as a renewal, a failed charge, a refund or an offer redemption. Each message has a notification type, an optional subtype, and signed transaction and renewal data.

You set the URL in App Store Connect and can use separate URLs for production and sandbox, or the same one. Your server must support TLS 1.2 or later, and a custom port must be 443 or 1024 and above. Answer with an HTTP code from 200 to 206 when you accepted the message. A 40x or 50x answer makes Apple retry: for version 2, five more times, at 1, 12, 24, 48 and 72 hours after the previous attempt, in production only (the sandbox sends once). Apple deprecated version 1 notifications, so new work should use version 2. To test, call the Request a Test Notification endpoint, and use Get Notification History to fetch messages you missed in the past 180 days (30 days in the sandbox).

The payload carries a notificationType and sometimes a subtype. Common types are SUBSCRIBED, DID_RENEW, DID_FAIL_TO_RENEW, GRACE_PERIOD_EXPIRED, DID_CHANGE_RENEWAL_STATUS, DID_CHANGE_RENEWAL_PREF, EXPIRED, REFUND, REFUND_REVERSED, REVOKE, OFFER_REDEEMED, PRICE_INCREASE, ONE_TIME_CHARGE and CONSUMPTION_REQUEST. The transaction and renewal data inside are JWS strings that you must verify.

RevenueDot gives each App Store app a notification URL. It answers 200 for every verified message, 400 for a bad signature or the wrong bundle ID, and 500 when it fails so that Apple retries. It stores messages about purchases it has not seen and applies them only when you turn on tracking of new purchases from notifications. The dashboard shows each app's notification status.

Sources: Apple: App Store Server Notifications · Apple: Enabling App Store Server Notifications · Apple: Responding to App Store Server Notifications · Apple: notificationType · Apple: App Store Server API

FAQ

App Store Server Notifications V2: questions people ask

What is the difference between V1 and V2 notifications?

Version 2 sends signed JWS data with a notification type and subtype, and Apple deprecated version 1. Use version 2 for any new integration.

How do I test App Store notifications?

Call the Request a Test Notification endpoint of the App Store Server API. Apple sends a TEST notification to your URL, and you can look up how your server answered.

What if my server was down?

Apple retries a version 2 notification five times over three days, at 1, 12, 24, 48 and 72 hours after the previous attempt. Get Notification History returns the past 180 days in production (30 days in the sandbox), so you can recover what you missed.

Get started

Run subscriptions without the revenue share.

Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue, or move an existing RevenueCat app with one line of code.

Already have an account? Sign in · Prefer your own servers? Self-host free