Amazon Pay
Amazon Pay is a popular and widely adopted payment solution, particularly in the United States. It enables Amazon customers to use their saved payment and shipping details for secure and convenient payments on third-party sites. Learn more.
Payment Method Properties
Markets | US |
Processing currencies | USD |
Consumer currencies | USD |
Settlement currencies | USD |
Authentication methods | REDIRECT |
Minimum payment amount | 0.50 USD |
Maximum payment amount | 20,000.00 USD (can vary by customer) |
Recurring payments | Yes |
Separate captures | No |
Refund | Full - Partial - Multiple |
Refund validity | 6 months |
Chargeback | Yes |
Sandbox availability | Amazon Pay sandbox |
Make an Amazon Pay Payment
One-time Amazon Pay payments follow our standardized REDIRECT
payment flow. However, we recommend including all relevant settings for any authentication methods you support.
To create an Amazon Pay payment, you'll need to provide the following data at minimum when calling our /v1/payment-charges API:
Data Field | Required | Description |
---|---|---|
paymentMethod | Y | AMAZON_PAY |
amount.value | Y | The amount to be paid in the smallest units of the currency used. |
amount.currency | Y | USD |
consumer.name | Y | Full name of the consumer. |
consumer.country | Y | The country where the consumer is shopping. |
authenticationSettings: REDIRECT settings.returnUrl | Y | Add the URL where the consumer should be redirected after they complete the payment. |
Request
POST /v1/payment-charges
{
"paymentMethod": "AMAZON_PAY",
"amount": {
"value": 1000,
"currency": "USD"
},
"consumer": {
"name": "John Smith",
"country": "US"
},
"authenticationSettings": [
{
"type": "REDIRECT",
"settings": {
"returnUrl": "https://www.your-return-page.com/"
}
}
]
}
Response
You'll receive our standard payment charge response (see potential responses in the API Reference)
{
"id": "charge_X0O78tadFHrZCbGhkycPk",
"status": "AUTHENTICATION_PENDING",
// ...
"authenticationMethods": [
{
"type": "REDIRECT",
"details": {
"requestUrl": "https://redirection-target.com",
"requestMethod": "GET"
}
}
]
}
Consumer Authentication
Amazon Pay requires consumer authentication before the payment is authorized and captured.
In response to your charge creation request, you will receive the authenticationMethods
list, which will include an authentication method of type REDIRECT
.
Redirect the consumer to the url specified in the requestUrl
field. The consumer will be taken to Amazon's pages to log in to their account and complete the payment process.
The payment charge will remain in the AUTHENTICATION_PENDING
state until the consumer confirms the payment.
Handling the Payment Result
Once the consumer has confirmed the payment, they are redirected to the returnUrl
provided in the initial payment charge creation request.
After the consumer is redirected back to your site, check the payment status by making a GET /v1/payment-charges/{paymentChargeId}. Use the Status
that you received to display the payment outcome to the consumer.
Webhooks are also sent to inform you of the payment outcome. If the shopper closes the browser and doesn't return to your website, you can rely on webhooks to receive the payment result.
Recurring Payments
Amazon Pay supports recurring payments, and we streamline this process for you with our Payment Agreements API.
Create the Payment Agreement
To set up a recurring agreement for Amazon Pay, you'll need to provide at minimum the following data when calling our /v1/payment-agreements API:
Data Field | Required | Description |
---|---|---|
paymentMethod | Y | AMAZON_PAY |
consumer.name | Y | Full name of the consumer. |
consumer.country | Y | The country from which the consumer is shopping. |
startDate | Y | The date-time from which the recurring agreement is valid. |
You can also include the initialPaymentCharge
object in this agreement creation call to immediately initiate the first payment without making a separate call. If you include this object, you'll need to specify:
- The exact
amount.value
andamount.currency
of the first payment
If you don't include an initialPaymentCharge
during agreement creation, you'll need to make a separate API call to /v1/payment-agreements/{agreement_id}/payment-charges to create the first charge.
Request
POST /v1/payment-agreements
{
"paymentMethod": "AMAZON_PAY",
"startDate": "2025-03-26T20:24:27Z",
"consumer": {
"name": "John Smith",
"country": "US"
},
"authenticationSettings": [
{
"type": "REDIRECT",
"settings": {
"returnUrl": "https://www.your-return-page.com/"
}
}
],
"initialPaymentCharge": {
"amount": {
"value": 1000,
"currency": "USD"
}
}
}
Response
You'll receive our standard payment agreement response (see responses in the API Reference)
{
"id": "agr_gFCDp991mUCjWVypLEvfZ",
"status": "AUTHENTICATION_PENDING",
"paymentMethod": "AMAZON_PAY",
"startDate": "2025-03-26T20:24:27.000Z",
"instrumentId": "instr_hLOqf7bZvyo98kqT4Spio",
"consumer": {
"name": "John Smith",
"country": "US"
},
"authenticationMethods": [
{
"details": {
"requestUrl": "https://redirection-target.com",
"requestMethod": "GET"
},
"type": "REDIRECT"
}
],
"history": [
{
"id": "ahist_8WvsAUIuUR9lYCajdkPsv",
"status": "AUTHENTICATION_PENDING",
"createdAt": "2025-02-19T15:30:08.312Z"
}
],
"initialPaymentChargeId": "charge_QQu5vY0HQYKIvsa7OO6Hx",
"createdAt": "2025-02-19T15:30:08.312Z",
"updatedAt": "2025-02-19T15:30:08.312Z"
}
Redirect the consumer to the url specified in the requestUrl
field. The consumer will be taken to Amazon's pages to log in to their account and complete the payment process. Where they'll be notified that the payment method will be saved for future purchases with this merchant.
If no initialPaymentCharge
is provided, the consumer will only need to complete authentication to establish the recurring agreement, without creating a payment charge.
Once the consumer has confirmed the recurring agreement creation ((and any associated payment), they are redirected to the returnUrl
provided in the initial payment agreement creation request.
After the consumer is redirected back to your site, if required, check the payment status by making a GET /v1/payment-charges/{paymentChargeId}.
You can also check the status of the payment agreement by making a GET /v1/payment-agreements/{agreementId}.
Use the Status
that you received to display the payment outcome to the consumer.
Make Subsequent Recurring Charges
Once you've successfully set up a payment agreement status will transition to ACTIVE
, subsequent payments can be made without consumer interaction.
In your /v1/payment-agreements/{agreement-id}/payment-charges request, you only need to include the following:
Data Field | Required | Description |
---|---|---|
amount.value | Y | The amount to be paid in the smallest units of the currency used. |
amount.currency | Y | USD |
Request
POST /v1/payment-agreements/{agreement-id}/payment-charges
{
"amount": {
"value": 8000,
"currency": "USD"
}
}
Response
You'll receive our standard create charge response (see responses in the API Reference).
{
"id": "charge_sPCYEzinB4CJRL0R9510g",
"paymentMethod": "AMAZON_PAY",
"currency": "USD",
"country": "US",
"instrumentId": "instr_bRs7kwtO3svKNIZ3OXRyp",
"status": "CAPTURED",
"consumer": {
"name": "John Smith",
"country": "US"
},
"authorizations": [
{
"id": "authz_lIjlsFrC1htYa4aXhZ544",
"amount": 8000,
"status": "AUTHORIZED",
"createdAt": "2025-02-19T16:09:28.777Z",
"updatedAt": "2025-02-19T16:09:28.777Z"
}
],
"captures": [
{
"id": "capture_VKmuxFq19NYafzoQhV8aN",
"amount": 8000,
"status": "CAPTURED",
"createdAt": "2025-02-19T16:09:28.777Z",
"updatedAt": "2025-02-19T16:09:28.777Z"
}
],
"refunds": [],
"voids": [],
"createdAt": "2025-02-19T16:09:27.595Z",
"updatedAt": "2025-02-19T16:09:28.777Z"
}
You will receive webhooks for all charges created under a Payment Agreement the same way you would for individual charges.
Updated 18 days ago