Sandbox environment returns 21003 status code for receipt validation

When I test an in-app purchase with the sandbox the post request to the sandbox url returns

 data: { environment: 'Sandbox', status: 21003 }

The 21003 status code means that the receipt could not be authenticated.

Is this expected? I'd assumed my test receipt would be considered valid for the sandbox environment and return a status of 0.


  • No its not expected. I needed to provide a valid code in the password field even though the in-app purchase was not for an auto-renewable subscription.