感谢您的访问。此页面目前仅提供英语版本。我们正在开发中文版本。谢谢您的理解。

Manage deferred transactions

You can choose to defer authorizing or capturing payment until after checkout. For example, you might choose to only authorize payment after a back-ordered item becomes available (deferred authorization), or capture payment after an order is shipped (deferred capture).


Deferred authorizations

Prerequisite: You must have a ChargePermissionId for a Charge Permission in the Chargeable state. A Charge Permission in the Chargeable state is created when you call Complete Checkout Session on a Checkout Session with paymentIntent set to Confirm, or if you have not captured the full amount yet that was specified using totalOrderAmount. Note that a Charge Permission in the Chargeable state expires after 180 days.

Call Create Charge to authorize a payment, you can specify whether or not you want to capture payment in the same transaction using CaptureNow. For a one-time Charge Permission, you can create up to 25 Charges as long as the total amount captured does not exceed the amountLimit. The Charge Permission will automatically move to a Closed state, once the amountBalance reaches zero.

If Create Charge returns a 201 response, authorization was either successfully completed or successfully initiated depending on whether canHandlePendingAuthorization was set to true. If Create Charge returns a different HTTP status code, check the request response reasonCode to determine if you should retry Create Charge or ask your buyer to use a different payment method:

  • If reasonCode is SoftDeclined or ProcessingFailure:
  • For all other reasonCode, reengage the buyer and ask them to go through checkout again with a different payment method

Request

Request body

{
    "chargePermissionId": "P21-1111111-1111111",
    "chargeAmount": {
        "amount": "14.00",
        "currencyCode": "USD"
    },
    "captureNow": true, // default is false
    "softDescriptor": "Descriptor",
    "canHandlePendingAuthorization": false //default is false
}

Request parameters

Name
Location
Description
x-amz-pay-idempotency-key
(required)

Type: string
Header
Idempotency key to safely retry requests
chargePermissionId
(required)

Type: string
Body
Charge Permission identifier
chargeAmount
(required)

Type: price
Body
Transaction amount
captureNow

Type: boolean
Body
Boolean that indicates whether or not Charge should be captured immediately after a successful authorization

Default: false
softDescriptor

Type: string
Body
Description shown on the buyer payment instrument statement, if CaptureNow is set to true. Do not set this value if CaptureNow is set to false

The soft descriptor sent to the payment processor is: "AMZ* <soft descriptor specified here>"

The soft descriptor sent to the payment processor is: "AMZ* <soft descriptor specified here>"

Default: "AMZ*<SELLER_NAME> pay.amazon.com"
Max length: 16 characters/bytes
canHandlePendingAuthorization

Type: boolean
Body
Boolean that indicates whether or not merchant can handle pending response

If set to false, you will receive a response within a maximum of 15 seconds in US, EU, and UK regions or 30 seconds in JP region. If set to true, Amazon Pay will process the authorization asynchronously and you will receive a response within 24 hours. See asynchronous processing for more info
merchantMetadata

Type: merchantMetadata
Body
Merchant-provided order details. You can only set this parameter for Charges created using recurring Charge Permission objects
providerMetadata

Type: providerMetadata
Body
Payment service provider (PSP)-provided order details

Only PSPs should use these fields

Sample Code

Response

{
     "chargeId": "S01-5105180-3221187-C056351",
     "chargePermissionId": "S01-5105180-3221187",
     "chargeAmount": {
         "amount": "14.00",
         "currencyCode": "USD"
     },
     "captureAmount": {
         "amount": "14.00",
         "currencyCode": "USD"
     },
     "refundedAmount": {
         "amount": "0.00",
         "currencyCode": "USD"
     },
     "convertedAmount": "14.00",
     "conversionRate": "1.00",
     "softDescriptor": "Descriptor",
     "merchantMetadata": null,
     "providerMetadata": {
         "providerReferenceId": null
     },
     "statusDetails":{
         "state": "Captured",
         "reasonCode": null,
         "reasonDescription": null,
         "lastUpdatedTimestamp": "20190714T155300Z"
     },
     "creationTimestamp": "20190714T155300Z",
     "expirationTimestamp": "20190715T155300Z",
     "releaseEnvironment": "Sandbox"
}

Deferred captures

Prerequisite: You must have a ChargeId for a Charge object in the Authorized state. A Charge in the Authorized state is created when you call Create Charge with captureNow set to False or when you call Complete Checkout Session on a Checkout Session with paymentIntent set to Authorize. Note that a Charge in the Authorized state expires after 30 days.

Capture Charge lets you capture payment for an authorized Charge. Amazon Pay processes capture requests differently, depending on the amount of time between when payment was authorized, and when payment capture is requested.

Charge State
Description
Within 7 days 
Capture request is processed synchronously. Charge will be in a Captured state, see Charge state explanation below for more info.
After 7 days
Capture request is processed asynchronously. Charge will be in a CaptureInitiated state, see Charge state explanation below for more info.
After 30 days
Charge has expired after 30 days in Authorized state. Charge is in a Canceled state and you can no longer capture funds using this Charge

Attempt to create a new Charge if Charge Permission is in a Chargeable state. Otherwise, contact the buyer to have them checkout again or set up an alternative form of payment

Charge state explanation

Charge State
Description
AuthorizationInitiated
Authorization is pending. See Asynchronous processing section for more info.
Authorized
Payment was successfully authorized. See Deferred transactions for more info.
CaptureInitiated
Payment was successfully authorized and capture is pending. See Asynchronous processing section for more info.
Captured
Payment was successfully authorized and captured
Declined
Payment was declined. See Charge declined state reason code for more info. You should reengage the buyer and ask them to go through checkout again.

Request

Request body

{
    "captureAmount": {
        "amount": "14.00",
        "currencyCode": "USD"
    },
    "softDescriptor": "Descriptor"
}

Request parameters

Name
Location
Description
x-amz-pay-idempotency-key
(required)

Type: string
Header
Idempotency key to safely retry requests
chargeId
(required)

Type: string
Path Parameter
Charge identifier
captureAmount
(required)

Type: price
Body
Amount to capture
softDescriptor

Type: string
Body
Description shown on the buyer's payment instrument statement.

The soft descriptor sent to the payment processor is: "AMZ* <soft descriptor specified here>"

The soft descriptor sent to the payment processor is: "AMZ* <soft descriptor specified here>"

Default: "AMZ*<SELLER_NAME> pay.amazon.com"
Max length: 16 characters/bytes

Sample Code

Response

{
     "chargeId": "S01-5105180-3221187-C056351",
     "chargePermissionId": "S01-5105180-3221187",
     "chargeAmount":{
         "amount": "14.00",
         "currencyCode": "USD"
     },
     "captureAmount": {
         "amount": "14.00",
         "currencyCode": "USD"
     },
     "refundedAmount": {
         "amount": "0.00",
         "currencyCode": "USD"
     },
     "convertedAmount": "14.00",
     "conversionRate": "1.00",
     "softDescriptor": "Descriptor",
     "merchantMetadata": null,
     "providerMetadata": {
         "providerReferenceId": null
     },
     "statusDetails":{
         "state": "Captured",
         "reasonCode": null,
         "reasonDescription": null,
         "lastUpdatedTimestamp": "20190714T155300Z"
     },
     "creationTimestamp": "20190714T155300Z",
     "expirationTimestamp": "20190715T155300Z",
     "releaseEnvironment": "Sandbox"
}