---
title: Manage errors
url: amazon-pay-api-v2/error-handling.html
---

Amazon Pay returns a `reasonCode` and `message` if there is an error with your API request. As an example, below is the response if a request is submitted with an invalid parameter value:

```JSON
{
  "reasonCode": "InvalidParameterValue",
  "message": "The value provided for [Parameter] is invalid."
}
```

* TOC
{:toc}

***

### Error codes

This table describes generic error codes that Amazon Pay API endpoints can return.

<table width="100%" border="1">
    <tbody>
        <tr id='PDH9CA9PtDE'>
            <td id='s:PDH9CA9PtDE;PDH9CAZyG1Z' style='vertical-align: top; font-weight: bold; width: 35%;' class='bold'>HTTP status code
                <br /></td>
            <td id='s:PDH9CA9PtDE;PDH9CAe8xlz' style='vertical-align: top; font-weight: bold; width: 30%;' class='bold'>Reason code
                <br /></td>
            <td id='s:PDH9CA9PtDE;PDH9CAzg2Fx' style='vertical-align: top; font-weight: bold; width: 40%;' class='bold'>Description
                <br /></td>
        </tr>
        <tr id='PDH9CAZtePQ'>
            <td id='s:PDH9CAZtePQ;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CAZtePQ;PDH9CAe8xlz' style='vertical-align: top;'>InvalidHeaderValue
                <br /></td>
            <td id='s:PDH9CAZtePQ;PDH9CAzg2Fx' style='vertical-align: top;'>You submitted an invalid value for at least one of the header parameters of your API call<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='' style='vertical-align: top;'>InvalidRequest
                <br /></td>
            <td id='' style='vertical-align: top;'>You request is invalid<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CAnDfc8'>
            <td id='s:PDH9CAnDfc8;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CAnDfc8;PDH9CAe8xlz' style='vertical-align: top;'>InvalidParameterValue
                <br /></td>
            <td id='s:PDH9CAnDfc8;PDH9CAzg2Fx' style='vertical-align: top;'>You submitted an invalid value for at least one of the parameters of your API call<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CAFb0ux'>
            <td id='s:PDH9CAFb0ux;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CAFb0ux;PDH9CAe8xlz' style='vertical-align: top;'>InvalidRequestFormat
                <br /></td>
            <td id='s:PDH9CAFb0ux;PDH9CAzg2Fx' style='vertical-align: top;'>You submitted a request in invalid JSON format. Validate request body format
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='' style='vertical-align: top;'>MissingHeader
                <br /></td>
            <td id='' style='vertical-align: top;'>One of the header parameters is missing in the API call<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CAXw5Op'>
            <td id='s:PDH9CAXw5Op;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CAXw5Op;PDH9CAe8xlz' style='vertical-align: top;'>MissingHeaderValue
                <br /></td>
            <td id='s:PDH9CAXw5Op;PDH9CAzg2Fx' style='vertical-align: top;'>One of the header parameters is missing in the API call<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CApY7c2'>
            <td id='s:PDH9CApY7c2;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CApY7c2;PDH9CAe8xlz' style='vertical-align: top;'>MissingParameterValue
                <br /></td>
            <td id='s:PDH9CApY7c2;PDH9CAzg2Fx' style='vertical-align: top;'>One of the mandatory request parameters is missing in the API call<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CA2CYDO'>
            <td id='s:PDH9CA2CYDO;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CA2CYDO;PDH9CAe8xlz' style='vertical-align: top;'>UnrecognizedField
                <br /></td>
            <td id='s:PDH9CA2CYDO;PDH9CAzg2Fx' style='vertical-align: top;'>You have passed an invalid field in the request body<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CA0OKsY'>
            <td id='s:PDH9CA0OKsY;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CA0OKsY;PDH9CAe8xlz' style='vertical-align: top;'>InvalidSandboxSimulationSpecified
                <br /></td>
            <td id='s:PDH9CA0OKsY;PDH9CAzg2Fx' style='vertical-align: top;'>You have attempted an invalid operation for the Sandbox environment<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CAizdLm'>
            <td id='s:PDH9CAizdLm;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CAizdLm;PDH9CAe8xlz' style='vertical-align: top;'>DuplicateIdempotencyKey
                <br /></td>
            <td id='s:PDH9CAizdLm;PDH9CAzg2Fx' style='vertical-align: top;'>The IdempotencyKey that you have specified in this request was already used in a different request, and cannot be reused
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='' style='vertical-align: top;'>InvalidParameterCombination
                <br /></td>
            <td id='' style='vertical-align: top;'>You attempted to use an invalid combination of parameters, check your request
                <br /></td>
        </tr>
        <tr id='PDH9CAR5xql'>
            <td id='s:PDH9CAR5xql;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CAR5xql;PDH9CAe8xlz' style='vertical-align: top;'>CurrencyMismatch
                <br /></td>
            <td id='s:PDH9CAR5xql;PDH9CAzg2Fx' style='vertical-align: top;'>Currency code provided in Charge does not match the currency set during checkout
                <br /></td>
        </tr>
        <tr id='PDH9CAR5xql'>
            <td id='s:PDH9CAR5xql;PDH9CAZyG1Z' style='vertical-align: top;'>400 BAD_REQUEST
                <br /></td>
            <td id='s:PDH9CAR5xql;PDH9CAe8xlz' style='vertical-align: top;'>InvalidAPIVersion
                <br /></td>
            <td id='s:PDH9CAR5xql;PDH9CAzg2Fx' style='vertical-align: top;'>You have either attempted to use an unsupported API version or the API object version and API request version are incompatible
                <br /></td>
        </tr>
        <tr id='PDH9CAloMEm'>
            <td id='s:PDH9CAloMEm;PDH9CAZyG1Z' style='vertical-align: top;'>401 UNAUTHORIZED
                <br /></td>
            <td id='s:PDH9CAloMEm;PDH9CAe8xlz' style='vertical-align: top;'>UnauthorizedAccess
                <br /></td>
            <td id='s:PDH9CAloMEm;PDH9CAzg2Fx' style='vertical-align: top;'>The specified merchant account is not authorized to execute this request<br><br>For example, you attempted to make a request using delegated authorization that you aren't authorized to execute
                <br /></td>
        </tr>
        <tr id='PDH9CAZtePQ'>
            <td id='s:PDH9CAZtePQ;PDH9CAZyG1Z' style='vertical-align: top;'>403 FORBIDDEN
                <br /></td>
            <td id='s:PDH9CAZtePQ;PDH9CAe8xlz' style='vertical-align: top;'>InvalidAuthentication
                <br /></td>
            <td id='s:PDH9CAZtePQ;PDH9CAzg2Fx' style='vertical-align: top;'>Authentication was not successful, check the status of your credentials in Seller Central (<a href="https://sellercentral.amazon.com/" target="_blank" rel="noopener noreferrer">US</a>, <a href="https://sellercentral-europe.amazon.com/" target="_blank" rel="noopener noreferrer">EU</a>, <a href="https://sellercentral-japan.amazon.com/" target="_blank" rel="noopener noreferrer">JP</a>)
                <br /></td>
        </tr>
        <tr id='PDH9CArhOed'>
            <td id='s:PDH9CArhOed;PDH9CAZyG1Z' style='vertical-align: top;'>403 FORBIDDEN
                <br /></td>
            <td id='s:PDH9CArhOed;PDH9CAe8xlz' style='vertical-align: top;'>InvalidAccountStatus
                <br /></td>
            <td id='s:PDH9CArhOed;PDH9CAzg2Fx' style='vertical-align: top;'>Your account or merchant's account is not in an appropriate state to execute this request<br><br>For example, your account has been suspended or you have not completed registration. Visit Seller Central (<a href="https://sellercentral.amazon.com/" target="_blank" rel="noopener noreferrer">US</a>, <a href="https://sellercentral-europe.amazon.com/" target="_blank" rel="noopener noreferrer">EU</a>, <a href="https://sellercentral-japan.amazon.com/" target="_blank" rel="noopener noreferrer">JP</a>) for more information
                <br /></td>
        </tr>
        <tr id='PDH9CABHlOx'>
            <td id='s:PDH9CABHlOx;PDH9CAZyG1Z' style='vertical-align: top;'>403 FORBIDDEN
                <br /></td>
            <td id='s:PDH9CABHlOx;PDH9CAe8xlz' style='vertical-align: top;'>InvalidRequestSignature
                <br /></td>
            <td id='s:PDH9CABHlOx;PDH9CAzg2Fx' style='vertical-align: top;'>The signature in the Authorization header of your API call is invalid<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>403 FORBIDDEN
                <br /></td>
            <td id='' style='vertical-align: top;'>InvalidAuthorizationToken
                <br /></td>
            <td id='' style='vertical-align: top;'>The authorization token passed in the request is not valid
                <br /></td>
        </tr>
        <tr id='PDH9CAC9L7o'>
            <td id='s:PDH9CAC9L7o;PDH9CAZyG1Z' style='vertical-align: top;'>404 NOT_FOUND
                <br /></td>
            <td id='s:PDH9CAC9L7o;PDH9CAe8xlz' style='vertical-align: top;'>ResourceNotFound
                <br /></td>
            <td id='s:PDH9CAC9L7o;PDH9CAzg2Fx' style='vertical-align: top;'>Couldn’t find requested resource
                <br /></td>
        </tr>
        <tr id='PDH9CACNW8X'>
            <td id='s:PDH9CACNW8X;PDH9CAZyG1Z' style='vertical-align: top;'>405 METHOD_NOT_ALLOWED
                <br /></td>
            <td id='s:PDH9CACNW8X;PDH9CAe8xlz' style='vertical-align: top;'>UnsupportedOperation
                <br /></td>
            <td id='s:PDH9CACNW8X;PDH9CAzg2Fx' style='vertical-align: top;'>Operation not supported
                <br /></td>
        </tr>
        <tr id='PDH9CAui183'>
            <td id='s:PDH9CAui183;PDH9CAZyG1Z' style='vertical-align: top;'>405 METHOD_NOT_ALLOWED
                <br /></td>
            <td id='s:PDH9CAui183;PDH9CAe8xlz' style='vertical-align: top;'>RequestNotSupported
                <br /></td>
            <td id='s:PDH9CAui183;PDH9CAzg2Fx' style='vertical-align: top;'>HTTP method not supported<br><br>For details, check the message element in the API response
                <br /></td>
        </tr>
        <tr id='PDH9CAZtePQ'>
            <td id='s:PDH9CAZtePQ;PDH9CAZyG1Z' style='vertical-align: top;'>408 REQUEST_TIMEOUT
                <br /></td>
            <td id='s:PDH9CAZtePQ;PDH9CAe8xlz' style='vertical-align: top;'>RequestTimeout
                <br /></td>
            <td id='s:PDH9CAZtePQ;PDH9CAzg2Fx' style='vertical-align: top;'>The request timed out<br><br>Retry the request. However, retry does not guarantee a successful response
                <br /></td>
        </tr>
        <tr id=''>
            <td id='' style='vertical-align: top;'>426 UPGRADE_REQUIRED
                <br /></td>
            <td id='' style='vertical-align: top;'>TLSVersionNotSupported
                <br /></td>
            <td id='' style='vertical-align: top;'>TLS version not supported. Upgrade to the latest SSL/TLS version
                <br /></td>
        </tr>
        <tr id='PDH9CAdQAW4'>
            <td id='s:PDH9CAdQAW4;PDH9CAZyG1Z' style='vertical-align: top;'>429 TOO_MANY_REQUESTS
                <br /></td>
            <td id='s:PDH9CAdQAW4;PDH9CAe8xlz' style='vertical-align: top;'>TooManyRequests
                <br /></td>
            <td id='s:PDH9CAdQAW4;PDH9CAzg2Fx' style='vertical-align: top;'>The request is throttled, due to too many requests in a given amount of time <br><br> You should retry the request
                <br /></td>
        </tr>
        <tr id='PDH9CArFZRd'>
            <td id='s:PDH9CArFZRd;PDH9CAZyG1Z' style='vertical-align: top;'>500 INTERNAL_SERVER_ERROR
                <br /></td>
            <td id='s:PDH9CArFZRd;PDH9CAe8xlz' style='vertical-align: top;'>InternalServerError
                <br /></td>
            <td id='s:PDH9CArFZRd;PDH9CAzg2Fx' style='vertical-align: top;'>There was an unknown error in the service<br><br>Retry the request. However, retry does not guarantee a successful response
                <br /></td>
        </tr>
        <tr id='PDH9CAJwwdF'>
            <td id='s:PDH9CAJwwdF;PDH9CAZyG1Z' style='vertical-align: top;'>503 SERVICE_UNAVAILABLE
                <br /></td>
            <td id='s:PDH9CAJwwdF;PDH9CAe8xlz' style='vertical-align: top;'>ServiceUnavailable
                <br /></td>
            <td id='s:PDH9CAJwwdF;PDH9CAzg2Fx' style='vertical-align: top;'>The service is currently unable to handle the request, due to a temporary overloading or maintenance<br><br>Retry the request
                <br /></td>
        </tr>
    </tbody>
</table>

***

### Retrying errors

You should immediately retry a request if you receive a response with a 408, 429, 500, or 503 HTTP status code. If you want to retry multiple times, we recommend that you implement an **exponential backoff** approach up to a defined limit, and then log the error and proceed with a manual follow-up and investigation. For example, you can time your retries in the following time spacing: 1s, 2s, 4s, 10s, and 30s. The actual backoff times and limit will depend on your business processes.



