App Store Receipt Validation

Paste your receipt to validate it with the App Store. Add the app-specific shared secret below if the receipt contains subscriptions. The tool uses verifyReceipt under the hood to help you quickly decode and debug.

Data will be sent securely and remain private
Receipt Status

Provide the information above

Receipt Validation Error Codes

21000The App Store could not read the JSON object you provided.
21002The data in the receipt-data property was malformed or missing.
21003The receipt could not be authenticated.
21004The shared secret you provided does not match the shared secret on file for your account.
21005The receipt server is not currently available.
21006This receipt is valid but the subscription has expired. When this status code is returned to your server, the receipt data is also decoded and returned as part of the response. Only returned for iOS 6 style transaction receipts for auto-renewable subscriptions.
21007This receipt is from the test environment, but it was sent to the production environment for verification. Send it to the test environment instead.
21008This receipt is from the production environment, but it was sent to the test environment for verification. Send it to the production environment instead.
21010This receipt could not be authorized. Treat this the same as if a purchase was never made.
21100 - 21199Internal data access error.

Frequently Asked Questions

  • Why should I use this?

  • How does it work?

  • Is it safe?

  • Are you storing any information?

  • Where can I learn more about App Store receipts?

Want to see how RevenueCat can help?

RevenueCat enables us to have one single source of truth for subscriptions and revenue data.

Olivier Lemarie, PhotoRoomOlivier Lemarie, PhotoRoom
Read case study