Skip to main content
ACP requires three primary endpoints that map directly to stages in the checkout state machine. Every field, error code, and latency requirement in this reference is enforced by ACP-compatible agents — return unexpected shapes and the agent will not be able to relay accurate information to the user.

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.
Example request:

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.
Example response:
Error responses:

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.
Example request:

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.
Example response:

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.
Example request:

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.
Example response:
Error responses:

Latency requirements

If your complete endpoint exceeds 5 seconds, some ACP-compatible agents will time out and retry — potentially without an idempotency key. Always implement idempotency on complete to prevent duplicate orders.

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 code and a human-readable message
  • expires_at is returned on checkout creation
  • Order confirmation includes order_id and estimated_delivery
  • Response times are within the limits above
  • Idempotency keys prevent duplicate orders on retry

ACP end-to-end implementation

State machine and full validation checklist.

ACP instant checkout UX patterns

UX patterns and failure state handling.