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

MarketsUS
Processing currenciesUSD
Consumer currenciesUSD
Settlement currenciesUSD
Authentication methodsREDIRECT
Minimum payment amount0.50 USD
Maximum payment amount20,000.00 USD (can vary by customer)
Recurring paymentsYes
Separate capturesNo
RefundFull - Partial - Multiple
Refund validity6 months
ChargebackYes
Sandbox availabilityAmazon 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 FieldRequiredDescription
paymentMethodYAMAZON_PAY
amount.valueYThe amount to be paid in the smallest units of the currency used.
amount.currencyYUSD
consumer.nameYFull name of the consumer.
consumer.countryYThe country where the consumer is shopping.
authenticationSettings: REDIRECT
settings.returnUrl
YAdd 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 FieldRequiredDescription
paymentMethodYAMAZON_PAY
consumer.nameYFull name of the consumer.
consumer.countryYThe country from which the consumer is shopping.
startDateYThe 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 and amount.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 FieldRequiredDescription
amount.valueYThe amount to be paid in the smallest units of the currency used.
amount.currencyYUSD

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.