Note: This is a Developer level doc. If you are unfamiliar with code/templates and resolving potential conflicts, select a WooExpert or DeveloperĀ for assistance. We are unable to provide support for customizations under ourĀ Support Policy.
Pay with AmazonĀ as of version 1.6.0 exposes some functionalities through REST API.
The Pay with Amazon REST API allows you to authorize, capture, and close authorization. The endpoint isĀ /wp-json/wc/v1/orders/<order_id>/amazon-payments-advanced/
.
List of orders paid via Amazon Pay
↑ Back to top_payment_method=amazon_payments_advanced
Ā filter.
GET /wp-json/wc/v1/orders?filter[_payment_method]=amazon_payments_advanced
curl -g -X GET 'https://example.com/wp-json/wc/v1/orders?filter[_payment_method]=amazon_payments_advanced' -u consumer_key:consumer_secret
For CURL request that involves filter query ([]
), you need to specifyĀ -g
Ā (to turn offĀ URL globbing).
JSON response example:
[
{
"id": 132,
"status": "on-hold",
"order_key": "wc_order_57bb41b6eeb32",
"number": 4606,
"currency": "GBP",
...
"amazon_reference": {
"amazon_reference_state": "Open",
"amazon_reference_id": "S02-0312204-2022855",
"amazon_authorization_state": "",
"amazon_authorization_id": "",
"amazon_capture_state": "",
"amazon_capture_id": "",
"amazon_refund_ids": []
},
...
},
...
]
Orders paid via Amazon Pay will haveĀ amazon_reference
Ā on order item.
TheĀ filter
Ā parameter can be used withĀ status
Ā parameter to retrieve list of orders that have been authorized but not captured yet.
curl -g -X GET 'https://example.com/wp-json/wc/v1/orders?filter[_payment_method]=amazon_payments_advanced&filter[amazon_authorization_state]=Open&status=on-hold' -u consumer_key:consumer_secret
Authorize the order
↑ Back to topPOST /wp-json/wc/v1/orders/<order_id>/amazon-payments-advanced/authorize
curl -X GET 'https://example.com/wp-json/wc/v1/orders/123/amazon-payments-advanced/authorize ' -u consumer_key:consumer_secret
JSON response example:
{
"authorized": true,
"amazon_authorization_id": "S02-6972444-9928455-A066187"
}
Possible JSON response with error:
{
"code": "TransactionAmountExceeded",
"message": "OrderReference S02-6972444-9928455 has already been authorized for amount 21.85 GBP. A new Authorization with amount 21.85 GBP cannot be accepted as the total Authorization amount cannot exceed 25.13 GBP.",
"data": null
}
{
"code": "woocommerce_rest_order_invalid_id",
"message": "Invalid order ID.",
"data": {
"status": 404
}
}
Close authorization
↑ Back to topPOST /wp-json/wc/v1/orders/<order_id>/amazon-payments-advanced/close-authorization
curl -X GET 'https://example.com/wp-json/wc/v1/orders/123/amazon-payments-advanced/close-authorization ' -u consumer_key:consumer_secret
JSON response example:
{
"authorization_closed": true
}
Possible JSON response with error:
{
"code": "woocommerce_rest_order_missing_amazon_authorization_id",
"message": "Specified resource does not have Amazon authorization ID",
"data": {
"status": 400
}
}
Capture the order
↑ Back to topPOST /wp-json/wc/v1/orders/<order_id>/amazon-payments-advanced/capture
curl -X GET 'https://example.com/wp-json/wc/v1/orders/123/amazon-payments-advanced/capture ' -u consumer_key:consumer_secret
JSON response example:
{
"captured": true,
"amazon_capture_id": "S02-6972444-9928455-C066187"
}
Possible JSON response with error:
{
"code": "InvalidAuthorizationStatus",
"message": "Authorization S02-6972444-9928455-A066187 is currently in Closed state. Capture can only be requested in Open state.",
"data": null
}
Authorize and capture the order
↑ Back to topPOST /wp-json/wc/v1/orders/<order_id>/amazon-payments-advanced/authorize-and-capture
curl -X GET 'https://example.com/wp-json/wc/v1/orders/123/amazon-payments-advanced/authorize-and-capture ' -u consumer_key:consumer_secret
JSON response example:
{
"authorized": true,
"amazon_authorization_id": "S02-4966596-9591203-A079366",
"captured": true,
"amazon_capture_id": "S02-4966596-9591203-C079366"
}
Possible JSON response with error:
{
"code": "InvalidAuthorizationStatus",
"message": "Authorization S02-6972444-9928455-A066187 is currently in Closed state. Capture can only be requested in Open state.",
"data": null
}
Refund the order
↑ Back to topPOST /wp-json/wc/v1/orders/<order_id>/amazon-payments-advanced/refund
curl -X GET 'https://example.com/wp-json/wc/v1/orders/123/amazon-payments-advanced/refund' \
-u consumer_key:consumer_secret \
-H 'Content-Type: application/json' \
-d '{"amount": "20.00", "reason": "reason for refund"}'
JSON response example:
{
"refunded": true,
"amazon_refund_id": "S02-1228806-5112466-R043423"
}