Skip to main content

Build the Agentic Commerce Protocol checkout endpoints

Learn about the Agentic Commerce Protocol specification. You can use the Agentic Commerce Protocol (ACP) to enable AI agents to manage commerce transactions between buyers and sellers. This specification defines the methods and data structures for creating, updating, and completing checkout flows. You can find examples for REST integrations below.
Where ACP fitsACP is the transaction layer of StateSet’s agentic commerce offering. For the full conversation‑to‑fulfillment architecture, see Stateset iCommerce Architecture.

Create a Checkout Session

You can create a new Checkout Session with buyer details, line items, and shipping information.

Request

Specify the parameters required for your request. Example request:

Response

The response returns the current state of the checkout from the seller. Possible values: not_ready_for_payment | ready_for_payment | completed | canceled | in_progress | | currency | string | Three-letter ISO currency code, in lowercase. (Required) | | line_items | array | Array of line items in the checkout process. (Required) | | fulfillment_address | hash (optional) | Address where the order will ship. | | fulfillment_options | array | Available shipping and fulfillment options. (Required) | | fulfillment_option_id | string (optional) | ID of the currently selected fulfillment option. | | totals | array | Overview of charges and discounts. (Required) | | messages | array | Array of messages or notifications related to the checkout process. (Required) | | links | array | Array of links related to the checkout process. (Required) | Example response:

Retrieve a Checkout object

To retrieve an existing Checkout Session using its ID, make a request to the appropriate API endpoint with the ID included in the request.

Request

Specify the parameters required for your request. Example request:

Response

The response returns the current state of the checkout from the seller. Possible values: not_ready_for_payment | ready_for_payment | completed | canceled | in_progress | | currency | string | Three-letter ISO currency code, in lowercase. (Required) | | line_items | array | Array of line items in the checkout process. (Required) | | fulfillment_address | hash (optional) | Address where the order will ship. | | fulfillment_options | array | Available shipping and fulfillment options. (Required) | | fulfillment_option_id | string (optional) | ID of the currently selected fulfillment option. | | totals | array | Overview of charges and discounts. (Required) | | messages | array | Array of messages or notifications related to the checkout process. (Required) | | links | array | Array of links related to the checkout process. (Required) | Example response:

Update a Checkout Session

You can update an existing Checkout Session by modifying line items, shipping address, or fulfillment options.

Request

Specify the parameters required for your request. Example request:

Response

The response returns the current state of the checkout from the seller. Possible values: not_ready_for_payment | ready_for_payment | completed | canceled | in_progress | | currency | string | Three-letter ISO currency code, in lowercase. (Required) | | line_items | array | Array of line items in the checkout process. (Required) | | fulfillment_address | hash (optional) | Address where the order will ship. | | fulfillment_options | array | Available shipping and fulfillment options. (Required) | | fulfillment_option_id | string (optional) | ID of the currently selected fulfillment option. | | totals | array | Overview of charges and discounts. (Required) | | messages | array | Array of messages or notifications related to the checkout process. (Required) | | links | array | Array of links related to the checkout process. (Required) | Example response:

Complete a Checkout

You can complete the checkout process by processing the payment and creating an order.

Request

Specify the parameters required for your request. Example request:

Response

The response returns the current state of the checkout from the seller. Possible values: not_ready_for_payment | ready_for_payment | completed | canceled | in_progress | | currency | string | Three-letter ISO currency code, in lowercase. (Required) | | line_items | array | Array of line items in the checkout process. (Required) | | fulfillment_address | hash (optional) | Address where the order will ship. | | fulfillment_options | array | Available shipping and fulfillment options. (Required) | | fulfillment_option_id | string (optional) | ID of the currently selected fulfillment option. | | totals | array | Overview of charges and discounts. (Required) | | messages | array | Array of messages or notifications related to the checkout process. (Required) | | links | array | Array of links related to the checkout process. (Required) | Example response:

Cancel a Checkout

You can cancel an existing Checkout Session if necessary.

Request

Specify the parameters required for your request. Example request:

Response

The response returns the current state of the checkout from the seller. Possible values: not_ready_for_payment | ready_for_payment | completed | canceled | in_progress | | currency | string | Three-letter ISO currency code, in lowercase. (Required) | | line_items | array | Array of line items in the checkout process. (Required) | | fulfillment_address | hash (optional) | Address where the order will ship. | | fulfillment_options | array | Available shipping and fulfillment options. (Required) | | fulfillment_option_id | string (optional) | ID of the currently selected fulfillment option. | | totals | array | Overview of charges and discounts. (Required) | | messages | array | Array of messages or notifications related to the checkout process. (Required) | | links | array | Array of links related to the checkout process. (Required) | Example response:

Data structures

This section outlines the data structures involved in the checkout process.

Buyer

The buyer is an individual who initiates the purchase.

Item

The Item is a product or service that the buyer requests to purchase, along with its quantity.

LineItem

The LineItem includes provides about the item added to the checkout, including the amount.

Address

The Address provides the buyer’s shipping or billing address.

PaymentData

The PaymentData provides the buyer’s payment details, including the tokenized value and the payment provider.

Total

The Total provides a summary of the overall total. Possible values: items_base_amount | items_discount | subtotal | discount | fulfillment | tax | fee | total | | display_text | string | The display text for the total. (Required) | | amount | integer | The amount of the total. (Required) |

FulfillmentOption

Fulfillment options are either shipping or digital. See ShippingFulfillmentOption and DigitalFulfillmentOption for specific implementations.

ShippingFulfillmentOption

The ShippingFulfillmentOption defines the parameters for shipping fulfillment options, including the carrier information and delivery times. Possible values: shipping | | id | string | Unique identifier for the shipping fulfillment option. (Required) | | title | string | The title of the shipping fulfillment option. (Required) | | subtitle | string (optional) | The subtitle of the shipping fulfillment option. | | carrier | string (optional) | The carrier of the shipping fulfillment option. | | earliest_delivery_time | string (optional) | The earliest delivery time of the shipping fulfillment option (ISO 8601 format). | | latest_delivery_time | string (optional) | The latest delivery time of the shipping fulfillment option (ISO 8601 format). | | subtotal | integer | The subtotal of the shipping fulfillment option. (Required) | | tax | integer | The tax of the shipping fulfillment option. (Required) | | total | integer | The total of the shipping fulfillment option. (Required) |

DigitalFulfillmentOption

The DigitalFulfillmentOption defines the parameters for digital fulfillment options, including the title and pricing information. Possible values: digital | | id | string | Unique identifier for the digital fulfillment option. (Required) | | title | string | The title of the digital fulfillment option. (Required) | | subtitle | string (optional) | The subtitle of the digital fulfillment option. | | subtotal | integer | The subtotal of the digital fulfillment option. (Required) | | tax | integer | The tax of the digital fulfillment option. (Required) | | total | integer | The total of the digital fulfillment option. (Required) |

PaymentProvider

The PaymentProvider defines the seller’s supported payment provider and available methods. Possible values: stripe | | supported_payment_methods | array | The payment methods allowed by the seller. (Required) Possible values: card |

Message

Messages are either informational or error messages.

InfoMessage

The InfoMessage represents informational messages, detailing the type and content. Possible values: info | | param | string (optional) | RFC 9535 JSONPath to the component of the Checkout Session that the message references. | | content_type | enum (optional) | The type of content of the message. Possible values: plain | markdown | | content | string | The content of the message. |

ErrorMessage

The ErrorMessage represents error messages, detailing the type and code. Possible values: error | | code | enum | The code of the error. Possible values: missing | invalid | out_of_stock | payment_declined | requires_sign_in | requires_3ds | | param | string (optional) | RFC 9535 JSONPath to the component of the Checkout Session that the message references. | | content_type | enum (optional) | The type of content of the message. Possible values: plain | markdown | | content | string | The content of the message. |

Error

The Error defines the parameters related to errors occurring during the checkout process. Possible values: invalid_request | request_not_idempotent | processing_error | service_unavailable | | code | string | The implementation-defined error code. (Required) | | message | string | The message of the error. (Required) | | param | string (optional) | RFC 9535 JSONPath to the component of the Checkout Session that the message references. | The Link defines the parameters for links related to policies and agreements. Possible values: terms_of_use | privacy_policy | seller_shop_policies | | url | string | The URL of the link. (Required) |

Order

The Order provides the result of the checkout process and offers details to the buyer for order lookup.

Event

The Event defines the parameters for events related to order creation and updates. Possible values: order_created | order_updated | | data | hash | Event data containing order information. (Required) |

OrderEventData

The OrderEventData includes data related to order events. Possible values: created | manual_review | confirmed | canceled | shipped | fulfilled | | refunds | array | List of refunds that have been issued for the order. (Required) |

Refund

The Refund defines the parameters for managing refunds associated with completed orders. Possible values: store_credit | original_payment | | amount | integer | The amount of the refund. (Required) |