Successful responses return HTTP status 200.
Failed responses return HTTP status 400.
All error messages have the same base structure:
|Error||Short Error Message|
Debug your application while testing to detect errors. Consider implementing error handling or displaying feedback to the user in case of errors. Please see below for a list of error codes that could occur during validation.
Most importantly, do not reward users with in-app products if the validation response contains HTTP status 400 or an error object!
|10000||Invalid Request||Request contains missing or invalid parameters.||Check your request input.|
|10001||Invalid App ID||Requested App ID does not exist.||Check your request input.|
|10002||Malformed App Data||App contents in backend cannot be read.||Contact Support.|
|10003||Unsupported Store||Request contains invalid store value.||Check your request input.|
|10004||Invalid App ID Bundle||Requested bundle identifier does not match.||Check your request input.|
|10010||App Limit reached||Validation Limit exceeded.||Upgrade or wait for quota reset.|
|10011||App Limit reached (Cache)||Validation Limit exceeded in region cache.||Upgrade or wait for quota reset.|
|10012||App Limit reset imminent||Validation Limit exceeded but reset ongoing.||Wait for quota reset.|
|10013||App Data unreachable||Request to backend application failed.||Contact Support.|
|10100||Missing Authentication Parameters||Authentication credentials missing.||Check your app setup.|
|10101||Invalid Auth Token||Authentication credentials invalid.||Check your app setup.|
|10102||Unexpected Response||App Store response returned an error or cannot be read.||See raw response or contact Support.|
|10103||Purchase cancelled||Purchase is flagged as cancelled.||Deny Purchase.|
|10104||Duplicate Transaction (consumed)||Product is already consumed but transaction was sent again.||Deny Purchase.|
|10105||Receipt validation failed||Generic failed response when unable to parse transaction data. There could be more details in the Error message.||Deny Purchase.|
|10130||Payment pending||App Store did not approve the transaction yet.||Do not finish transaction, try validating again later.|
|10140||Subscriptions not supported||Received subscription receipt but your plan does not support subscriptions.||Upgrade to higher plan.|
Internal, do not use. Caused by server-server interaction only.
|10200||Invalid Request (encoded)||Raw request contains missing or invalid parameters.||-|
|10201||Invalid Auth Token||Authentication credentials invalid.||-|
|10202||Invalid Request (decoded)||Parsed request contains missing or invalid parameters.||-|
|10203||Unsupported NotificationType||Received unhandled Notificationtype.||-|
|10204||Unexpected Response||App Store validation response cannot be read.||-|
|10205||Receipt validation failed||Generic failed response when unable to parse transaction data.||-|
|10240||Subscriptions not supported||Received subscription receipt but your plan does not support subscriptions.||-|
|10300||Duplicate Transaction||Consumable product purchase was already recorded.||Deny Purchase.|
|10301||Transaction transfer cooldown||Transaction was recently claimed by different user (User Behaviour = Transfer).||Instruct user or contact Support.|
|10302||Duplicate Transaction||Product purchase was already recorded (User Behaviour = Block).||Deny Purchase.|
|10303||User Limit reached||Transaction is already associated with maximum amount of user IDs (User Behaviour = Alias).||Instruct user or contact Support.|