Step 5: Set purchase details and confirm the purchase
Before you can request payment, you need to set and confirm the order using the orderReferenceId provided in the AddressBook or Wallet widget step.
- Make a call to the SetOrderReferenceDetails API. In the request, set the following attributes in the OrderReferenceAttributes:
- Amazon Order Reference ID
- Order Total (the order amount and currency code)
Ensure that the Amazon Order Reference ID is a unique value. For more information, see Handling errors from Amazon Pay API calls.Optional but strongly recommended:
- Store Name
- Seller Order ID
- Seller Note
Setting the Store Name and Seller information affects the details that appear in: buyer emails and account status, information that is returned to you in IPN messages, and Settlement and Transaction reports.
- Make a call to the ConfirmOrderReference API. If the SetOrderReferenceDetails API call was successful, confirm the Order Reference object by making a call to the ConfirmOrderReference API call.
This step informs Amazon that the buyer has placed the order on your site. If the call to ConfirmOrderReference was successful, the Order Reference object is set to an Open state and Amazon will send the buyer a Payment initated email to confirm that they have initiated payment for a purchase using Amazon Pay. If the response returns a constraint, make attempts to remedy it. For example, in the case of a PaymentPlanNotSet constraint, inform the buyer that they must make a different payment selection. You can do this either by showing an on-screen message or by redirecting the buyer to an appropriate page to make the selection.
Note: The Payment initiated email is not sent in two cases:
- When the merchant cancels the transaction (CancelOrderReference) within 5 minutes of confirmation (ConfirmOrderReference).
- When OrderReference is closed within 5 minutes of confirmation of the OrderReference (ConfirmOrderReference).
- Make a call to the GetOrderReferenceDetails. After you successfully confirm the order reference, you should call the GetOrderReferenceDetails API to get the remaining buyer information, like name and shipping address, to ensure that you have retrieved the latest address.
Note: You must implement error handling with your API calls, and you must test the results of the API response. For more information, see Handling errors.
Order reference constraints
Amazon Pay might not always allow all payment methods for a given transaction. Depending on various factors, some payment methods might not be available. To determine the available payment methods, the amount of the transaction must be passed to the SetOrderReferenceDetails operation.
To ensure that only allowed payment methods are shown to a buyer, Amazon Pay requires that you set the OrderTotal using the SetOrderReferenceDetails operation before showing the Wallet widget, as described in the Displaying read-only AddressBook and Wallet Widgets section. Performing this operation enables Amazon Pay to determine which payment methods are allowed for this Order Reference.
If you set the OrderTotal after the buyer has chosen the payment method from the Wallet widget, you must inspect the result of the SetOrderReferenceDetails operation for the presence of the PaymentMethodNotAllowed constraint. If this constraint is returned, it means that the payment method chosen by the buyer is not allowed for this Order Reference, and you will not be able to confirm the Order Reference until this constraint is resolved. To resolve this constraint, re-render the Wallet widget and request the buyer to choose a different payment method.