Endpoint overview
The following endpoints are optional but recommended:
POST /acp/checkout/create
Creates a new checkout session with the selected items. Call this endpoint when the initiate_checkout tool is invoked.
Request parameters
array
required
Array of items to include in the checkout session.
string
required
Unique identifier for the product.
string
Variant identifier — required when the product has size, color, or other options.
integer
required
Number of units to purchase.
object
Destination address. Required if your catalog ships physical goods.
string
Full name of the recipient.
string
Street address line.
string
City.
string
State or province code (e.g.
"CA").string
Postal code.
string
ISO 3166-1 alpha-2 country code (e.g.
"US").string
required
Unique key for this request. Identical keys must return the same response without creating a duplicate session.
Response fields
string
Unique identifier for the checkout session. Pass this to subsequent update and complete calls.
string
Current session state. Always
"pending_confirmation" on creation.array
Echoed item list with resolved names and prices.
string
Product identifier.
string
Variant identifier.
string
Human-readable product and variant label.
integer
Quantity requested.
object
Price per unit with
amount (integer, smallest currency unit) and currency (ISO 4217).object
Sum of item prices before shipping and tax, with
amount and currency.array
Available shipping methods. Each has
id, name, and cost.object
Estimated tax with
amount and currency. May be refined at completion.string
ISO 8601 timestamp when this session expires. Default is 15 minutes from creation.
PATCH /acp/checkout/:id/update
Updates mutable fields on an existing session — most commonly the selected shipping option. Call this after the user chooses a shipping method.
Request parameters
string
The
id of the shipping option selected by the user.Response fields
string
Identifier of the updated session.
string
Current session state. Remains
"pending_confirmation" after a successful update.object
The confirmed shipping selection with
id, name, and cost.object
Updated total including subtotal, selected shipping, and tax, with
amount and currency.POST /acp/checkout/:id/complete
Processes payment and confirms the order. Call this endpoint when confirm_purchase is invoked — only after the user has explicitly confirmed the purchase summary.
Request parameters
object
required
Payment method details from your PSP.
string
required
Payment method type. Use
"card" for Stripe card tokens.string
required
Tokenized payment credential from your PSP. Use
"tok_visa_4242" in staging.string
Shipping option to apply if not already set in a prior update call.
string
required
Unique key for this completion request. Must differ from the key used on create.
Response fields
string
Unique identifier for the confirmed order.
string
Order status.
"confirmed" on success.object
Final charged amount with
amount and currency.string
ISO 8601 date string for expected delivery.
string
Human-readable order reference for customer support.
string
URL to the order receipt page.
Latency requirements
Response validation checklist
Run through this list before going live:- All responses include
Content-Type: application/json - All amounts are in the smallest currency unit (cents for USD)
- Error responses include both
codeand a human-readablemessage -
expires_atis returned on checkout creation - Order confirmation includes
order_idandestimated_delivery - Response times are within the limits above
- Idempotency keys prevent duplicate orders on retry
Related
ACP end-to-end implementation
State machine and full validation checklist.
ACP instant checkout UX patterns
UX patterns and failure state handling.