Frequently asked questions


Q: Are there limits to how many API requests I can make within a certain period of time?

Yes. Amazon Pay APIs have throttling limits to protect against burst traffic and ensure service availability. Requests that are throttled will return a 429 HTTP status code, see error handling for information on how to handle throttled requests.

Q: How do I avoid accidentally sending duplicate charges?

Amazon Pay requires an idempotency key for POST requests. Subsequent requests using the same key will return the saved response of the first request. This allows you to safely retry API requests that may have been disrupted during transit. See idempotency for more info.

Q: Why is Complete Checkout Session returning an AmountMismatch error response?

The Complete Checkout Session request chargeAmount must match the Checkout Session object chargeAmount. If there is a mismatch between the values, make sure you call Update Checkout Session once the final checkout total has been calculated before redirecting to amazonRedirectUrl.

Q: Why is Complete Checkout Session returning an InvalidCheckoutSessionStatus error response?

You tried to call Complete Checkout Session with a Checkout Session that is in a state where that operation is not allowed. The Checkout Session object is either in a Completed or Canceled state:

  • Completed: Complete Checkout Session has already been successfully requested
  • Canceled: Checkout was not successful because the buyer abandoned checkout, payment was declined, or you did not confirm checkout within 24 hour by calling Complete Checkout Session. Note that the payment intent was not finalized

Buyer experience FAQs

Q: What happens if the buyer has a bad internet connection and fails to return to my site after getting redirected to amazonRedirectUrl?

Since you did not confirm that the buyer successfully returned to your site by calling Complete Checkout Session, the paymentIntent was not finalized and the buyer will not be charged. Any authorized payments will be released in 24 hours.

Getting started FAQs

Q: Do I need to register for a different Amazon Pay merchant account for access to Sandbox versus Live environment?

No. You can use the same account for access to both environments. Note that you can also register for an account that only has access to the Sandbox environment and enable Live access at a later time. See get set up for integration for more info.


Q: How do I verify the source of an IPN?

You do not have to verify the source of IPNs because you will always retrieve transaction data by calling Amazon Pay APIs after you receive the IPN message. Your communication with Amazon Pay APIs is secured using the authorization header of the GET request.

Q: I’m upgrading from an older version of Amazon Pay checkout. Do I need to handle IPNs differently?

Yes. IPNs for this version of Amazon Pay checkout have a different message schema with less transaction details for improved security. You must make a GET API call for the transaction specified in the message to determine transaction state. You can identify IPNs for this version of Amazon Pay checkout by checking if IPN Message.NotificationVersion equals “v2”. See upgrading to Checkout v2 for more info.

Recurring use-case FAQs

Q: Will Amazon Pay charge the buyer automatically for each billing cycle?

No. Amazon Pay does not offer billing management. You are responsible for calling Create Charge for each billing cycle.

Q: Can a subscriber cancel their subscription through Amazon Pay? How will I be notified?

Yes. A subscriber can close their Charge Permission by visiting You will be notified via IPNs when a Charge Permission is closed.