<!--
{
  "documentType" : "article",
  "framework" : "AppStoreServerNotifications",
  "identifier" : "/documentation/AppStoreServerNotifications/receiving-app-store-server-notifications",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Receiving App Store Server Notifications"
}
-->

# Receiving App Store Server Notifications

Implement server-side code to receive and parse notification posts.

## Discussion

The App Store delivers JSON objects using an HTTP POST to your server for notable in-app purchase events and unreported external purchase tokens. Your server is responsible for parsing, interpreting, and responding to all server-to-server notification posts. For more information about responding, see [Responding to App Store Server Notifications](/documentation/AppStoreServerNotifications/responding-to-app-store-server-notifications).

The body of the POST contains the data elements described in the [`responseBodyV2`](/documentation/AppStoreServerNotifications/responseBodyV2) for version 2 notifications, and [`responseBodyV1`](/documentation/AppStoreServerNotifications/responseBodyV1) for version 1. Parse them using the following information:

- The version 2 response body, [`responseBodyV2`](/documentation/AppStoreServerNotifications/responseBodyV2), contains a [`signedPayload`](/documentation/AppStoreServerNotifications/signedPayload) that’s cryptographically signed by the App Store in JSON Web Signature (JWS) format. The JWS format increases security and enables you to decode and validate the signature on your server.  Some notifications include a [`data`](/documentation/AppStoreServerNotifications/data) object, which has transaction and subscription renewal information that the App Store signs in JWS. The <doc://com.apple.documentation/documentation/AppStoreServerAPI> and the StoreKit <doc://com.apple.documentation/documentation/StoreKit/in-app-purchase> API use the same JWS-signed format for transaction and subscription status information. For more information about JWS, see the [IETF RFC 7515](https://datatracker.ietf.org/doc/html/rfc7515) specification.
- The version 1 response body, [`responseBodyV1`](/documentation/AppStoreServerNotifications/responseBodyV1), is a JSON object. It includes the receipt that contains the most recent in-app purchase transaction for the app. For more information, see the [`unified_receipt`](/documentation/AppStoreServerNotifications/unified_receipt) object.

> Important:
> The ``doc://com.apple.appstoreservernotifications/documentation/AppStoreServerNotifications/App-Store-Server-Notifications-V1`` endpoint and version 1 notifications, ``doc://com.apple.appstoreservernotifications/documentation/AppStoreServerNotifications/notification_type``, are deprecated. Instead, implement the ``doc://com.apple.appstoreservernotifications/documentation/AppStoreServerNotifications/App-Store-Server-Notifications-V2`` endpoint on your server to receive version 2 notifications.

Use the notification type along with the transaction and subscription renewal information to update a user’s service or present promotional offers according to your business logic. For information on handling notifications that contain an external purchase token, see [`externalPurchaseToken`](/documentation/AppStoreServerNotifications/externalPurchaseToken).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)