status
The status of the app receipt.
Declaration
int statusPossible Values
21000The request to the App Store didn’t use the HTTP POST request method.
21001The App Store no longer sends this status code.
21002The data in the
receipt-dataproperty is malformed or the service experienced a temporary issue. Try again.21003The system couldn’t authenticate the receipt.
21004The shared secret you provided doesn’t match the shared secret on file for your account.
21005The receipt server was temporarily unable to provide the receipt. Try again.
21006This receipt is valid, but the subscription is in an expired state. When your server receives this status code, the system also decodes and returns receipt data as part of the response. This status only returns for iOS 6-style transaction receipts for auto-renewable subscriptions.
21007This receipt is from the test environment, but you sent it to the production environment for verification.
21008This receipt is from the production environment, but you sent it to the test environment for verification.
21009Internal data access error. Try again later.
21010The system can’t find the user account or the user account has been deleted.
Discussion
The verifyReceipt endpoint returns this field in the JSON response, responseBody.
The value for status is 0 if the receipt is valid, or a status code if there’s an error. The status code reflects the status of the app receipt as a whole. For example, if you send a valid app receipt that contains an expired subscription, the response is 0 because the receipt is valid.
Status codes 21100–21199 are various internal data access errors.