Skip to content

Agentic Commerce

Create a new checkout session.

POST /v1/checkout_sessions

Auth: Access token (Bearer).

Request body

FieldTypeRequiredDescription
currencystring?No
line_itemsarray<object>?No
capabilitiesobjectNoACP capability negotiation object. Agents declare what they support on the request; the seller returns the intersection in the response so the agent knows what is available.
external_referencestring?No
json
{
  "currency": "string",
  "line_items": [
    {}
  ],
  "capabilities": {
    "interventions": {}
  },
  "external_reference": "string"
}

Responses

StatusDescription
201The request was successful but does not return any results.
400The request failed validation, the error object will contain further information.
401The request was successful but does not return any results.
403The authorization header does not contain the correct type or you do not have access to this resource.
422The request payload is invalid, the error object will contain further information.
429Too many requests are being sent concurrently or rate limiting has taken effect.
500An unexpected error occurred, the error object will contain further information.

Response body

FieldTypeRequiredDescription
successbooleanNoGets a value indicating whether the operation was successful.
resultobjectNoA full ACP checkout session as returned by the API and stored (serialised) in the cache.
json
{
  "success": true,
  "result": {
    "id": "string",
    "status": "string",
    "currency": "string",
    "merchant_reference": "string",
    "merchant_name": "string",
    "line_items": [],
    "totals": {},
    "capabilities": {},
    "messages": [],
    "order": {},
    "created_at": "string",
    "expires_at": "string"
  }
}

Update an existing checkout session.

POST /v1/checkout_sessions/{checkoutSessionId}

Auth: Access token (Bearer).

Parameters

NameInRequiredDescription
checkoutSessionIdpathYesThe checkout session identifier.

Request body

FieldTypeRequiredDescription
line_itemsarray<object>?No
capabilitiesobjectNoACP capability negotiation object. Agents declare what they support on the request; the seller returns the intersection in the response so the agent knows what is available.
json
{
  "line_items": [
    {}
  ],
  "capabilities": {
    "interventions": {}
  }
}

Responses

StatusDescription
200The request was successful but does not return any results.
400The request failed validation, the error object will contain further information.
401The authorization information provided is not valid, authentication is required to access this resource.
403The authorization header does not contain the correct type or you do not have access to this resource.
404The request was successful but does not return any results.
422The request payload is invalid, the error object will contain further information.
429Too many requests are being sent concurrently or rate limiting has taken effect.
500An unexpected error occurred, the error object will contain further information.

Response body

FieldTypeRequiredDescription
successbooleanNoGets a value indicating whether the operation was successful.
resultobjectNoA full ACP checkout session as returned by the API and stored (serialised) in the cache.
json
{
  "success": true,
  "result": {
    "id": "string",
    "status": "string",
    "currency": "string",
    "merchant_reference": "string",
    "merchant_name": "string",
    "line_items": [],
    "totals": {},
    "capabilities": {},
    "messages": [],
    "order": {},
    "created_at": "string",
    "expires_at": "string"
  }
}

Retrieve the current state of a checkout session.

GET /v1/checkout_sessions/{checkoutSessionId}

Auth: Access token (Bearer).

Parameters

NameInRequiredDescription
checkoutSessionIdpathYesThe checkout session identifier.

Responses

StatusDescription
200The request was successful but does not return any results.
400The request failed validation, the error object will contain further information.
401The authorization information provided is not valid, authentication is required to access this resource.
403The authorization header does not contain the correct type or you do not have access to this resource.
404The request was successful but does not return any results.
422The request payload is invalid, the error object will contain further information.
429Too many requests are being sent concurrently or rate limiting has taken effect.
500An unexpected error occurred, the error object will contain further information.

Response body

FieldTypeRequiredDescription
successbooleanNoGets a value indicating whether the operation was successful.
resultobjectNoA full ACP checkout session as returned by the API and stored (serialised) in the cache.
json
{
  "success": true,
  "result": {
    "id": "string",
    "status": "string",
    "currency": "string",
    "merchant_reference": "string",
    "merchant_name": "string",
    "line_items": [],
    "totals": {},
    "capabilities": {},
    "messages": [],
    "order": {},
    "created_at": "string",
    "expires_at": "string"
  }
}

Complete a checkout session by applying a payment method and creating an order.

POST /v1/checkout_sessions/{checkoutSessionId}/complete

Auth: Access token (Bearer).

Parameters

NameInRequiredDescription
checkoutSessionIdpathYesThe checkout session identifier.

Request body

FieldTypeRequiredDescription
payment_dataobjectNoPayment credentials passed by the agent at completion time.
buyerobjectNoBuyer identity supplied at checkout completion.
json
{
  "payment_data": {
    "token": "string",
    "provider": "string",
    "type": "string"
  },
  "buyer": {
    "first_name": "string",
    "last_name": "string",
    "email": "string"
  }
}

Responses

StatusDescription
200The request was successful but does not return any results.
400The request failed validation, the error object will contain further information.
401The authorization information provided is not valid, authentication is required to access this resource.
403The authorization header does not contain the correct type or you do not have access to this resource.
404The request was successful but does not return any results.
422The request payload is invalid, the error object will contain further information.
429Too many requests are being sent concurrently or rate limiting has taken effect.
500An unexpected error occurred, the error object will contain further information.

Response body

FieldTypeRequiredDescription
successbooleanNoGets a value indicating whether the operation was successful.
resultobjectNoA full ACP checkout session as returned by the API and stored (serialised) in the cache.
json
{
  "success": true,
  "result": {
    "id": "string",
    "status": "string",
    "currency": "string",
    "merchant_reference": "string",
    "merchant_name": "string",
    "line_items": [],
    "totals": {},
    "capabilities": {},
    "messages": [],
    "order": {},
    "created_at": "string",
    "expires_at": "string"
  }
}

Cancel a checkout session.

POST /v1/checkout_sessions/{checkoutSessionId}/cancel

Auth: Access token (Bearer).

Parameters

NameInRequiredDescription
checkoutSessionIdpathYesThe checkout session identifier.

Responses

StatusDescription
200The request was successful but does not return any results.
400The request failed validation, the error object will contain further information.
401The authorization information provided is not valid, authentication is required to access this resource.
403The authorization header does not contain the correct type or you do not have access to this resource.
404The request was successful but does not return any results.
422The request payload is invalid, the error object will contain further information.
429Too many requests are being sent concurrently or rate limiting has taken effect.
500An unexpected error occurred, the error object will contain further information.

Response body

FieldTypeRequiredDescription
successbooleanNoGets a value indicating whether the operation was successful.
resultobjectNoA full ACP checkout session as returned by the API and stored (serialised) in the cache.
json
{
  "success": true,
  "result": {
    "id": "string",
    "status": "string",
    "currency": "string",
    "merchant_reference": "string",
    "merchant_name": "string",
    "line_items": [],
    "totals": {},
    "capabilities": {},
    "messages": [],
    "order": {},
    "created_at": "string",
    "expires_at": "string"
  }
}

Tokenize a card for delegated, allowance-bounded use by an AI agent.

POST /v1/agentic_commerce/delegate_payment

The returned vault token (vt_...) is passed to POST /checkout_sessions/{id}/complete.

Auth: Access token (Bearer).

Request body

FieldTypeRequiredDescription
payment_methodobjectNoCard payment method to tokenize.
allowanceobjectNoConstraints on how the delegated payment method can be used.
billing_addressobjectNoBilling address.
risk_signalsarray<object>?No
metadataobject?No
json
{
  "payment_method": {
    "type": "string",
    "number": "string",
    "expiry_month": 0,
    "expiry_year": 0,
    "cvc": "string",
    "name": "string"
  },
  "allowance": {
    "reason": "string",
    "max_amount": 0,
    "currency": "string",
    "checkout_session_id": "string",
    "merchant_id": "string",
    "expires_at": "string"
  },
  "billing_address": {
    "name": "string",
    "line_one": "string",
    "line_two": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "postal_code": "string"
  },
  "risk_signals": [
    {}
  ],
  "metadata": {}
}

Responses

StatusDescription
200The request was successful but does not return any results.
400The request failed validation, the error object will contain further information.
401The request was successful but does not return any results.
403The authorization header does not contain the correct type or you do not have access to this resource.
422The request payload is invalid, the error object will contain further information.
429Too many requests are being sent concurrently or rate limiting has taken effect.
500An unexpected error occurred, the error object will contain further information.

Response body

FieldTypeRequiredDescription
successbooleanNoGets a value indicating whether the operation was successful.
resultobjectNoResponse from POST /agentic_commerce/delegate_payment.
json
{
  "success": true,
  "result": {
    "id": "string",
    "created": "string",
    "expires_at": "string"
  }
}

Get active products in ACP feed format.

GET /v1/acp/products

Optionally filter by merchant and/or free-text search query.

Auth: Access token (Bearer).

Parameters

NameInRequiredDescription
qqueryNoOptional free-text search query matched against product name, description, and category.

Responses

StatusDescription
200The request was successful but does not return any results.
400The request failed validation, the error object will contain further information.
401The authorization information provided is not valid, authentication is required to access this resource.
403The authorization header does not contain the correct type or you do not have access to this resource.
422The request payload is invalid, the error object will contain further information.
429Too many requests are being sent concurrently or rate limiting has taken effect.
500An unexpected error occurred, the error object will contain further information.

Response body

FieldTypeRequiredDescription
successbooleanNoGets a value indicating whether the operation was successful.
resultobjectNoResponse wrapper for the product feed endpoint.
json
{
  "success": true,
  "result": {
    "version": "string",
    "products": [],
    "total": 0
  }
}

Payments for Africa