We're hiring 😎Learn more
Apphud
Why Apphud?PricingBlogContactSign inStart for Free

Apple Receipt Checker

Application will be sent securely and remain private

Got a question?

Why should I use receipt checker?
It’s a simple and convenient tool to debug in-app purchases/subscriptions in your app. No more headache with command-line, curl, and other stuff like that.

Save your time – just grab Base 64 encoded receipt data and the app’s shared secret. That’s it! Get JSON-formatted receipt data.
How does it work?
We check the receipt status sending it to Apple via a proxy server.
What these status codes mean?
Here’s some explanation.

21000 – The App Store could not read the JSON object you provided.
21002 – The data in the receipt-data property was malformed or missing.
21003 – The receipt could not be authenticated.
21004 – The shared secret you provided does not match the shared secret on file for your account.
21005 – The receipt server is not currently available.
21006 – This 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.
21007 – This receipt is from the test environment, but it was sent to the production environment for verification. Send it to the test environment instead.
21008 – This receipt is from the production environment, but it was sent to the test environment for verification. Send it to the production environment instead.
21010 – This receipt could not be authorized. Treat this the same as if a purchase was never made.
21100-21199 - Internal data access error.
What about my data? Is it safe?
Don’t worry – it’s impossible to cancel or change a purchase with the receipt. Having the shared secret, the only thing you can do is to query a receipt status.

Also, we don’t store any of your receipts. We only proxying requests and return a response. Nothing more.