Agentic Commerce
Create a new checkout session.
POST /v1/checkout_sessions
Auth: Access token (Bearer).
Request body
| Field | Type | Required | Description |
|---|---|---|---|
currency | string? | No | |
line_items | array<object>? | No | |
capabilities | object | No | ACP 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_reference | string? | No |
{
"currency": "string",
"line_items": [
{}
],
"capabilities": {
"interventions": {}
},
"external_reference": "string"
}Responses
| Status | Description |
|---|---|
201 | The request was successful but does not return any results. |
400 | The request failed validation, the error object will contain further information. |
401 | The request was successful but does not return any results. |
403 | The authorization header does not contain the correct type or you do not have access to this resource. |
422 | The request payload is invalid, the error object will contain further information. |
429 | Too many requests are being sent concurrently or rate limiting has taken effect. |
500 | An unexpected error occurred, the error object will contain further information. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | Gets a value indicating whether the operation was successful. |
result | object | No | A full ACP checkout session as returned by the API and stored (serialised) in the cache. |
{
"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
| Name | In | Required | Description |
|---|---|---|---|
checkoutSessionId | path | Yes | The checkout session identifier. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
line_items | array<object>? | No | |
capabilities | object | No | ACP 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. |
{
"line_items": [
{}
],
"capabilities": {
"interventions": {}
}
}Responses
| Status | Description |
|---|---|
200 | The request was successful but does not return any results. |
400 | The request failed validation, the error object will contain further information. |
401 | The authorization information provided is not valid, authentication is required to access this resource. |
403 | The authorization header does not contain the correct type or you do not have access to this resource. |
404 | The request was successful but does not return any results. |
422 | The request payload is invalid, the error object will contain further information. |
429 | Too many requests are being sent concurrently or rate limiting has taken effect. |
500 | An unexpected error occurred, the error object will contain further information. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | Gets a value indicating whether the operation was successful. |
result | object | No | A full ACP checkout session as returned by the API and stored (serialised) in the cache. |
{
"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
| Name | In | Required | Description |
|---|---|---|---|
checkoutSessionId | path | Yes | The checkout session identifier. |
Responses
| Status | Description |
|---|---|
200 | The request was successful but does not return any results. |
400 | The request failed validation, the error object will contain further information. |
401 | The authorization information provided is not valid, authentication is required to access this resource. |
403 | The authorization header does not contain the correct type or you do not have access to this resource. |
404 | The request was successful but does not return any results. |
422 | The request payload is invalid, the error object will contain further information. |
429 | Too many requests are being sent concurrently or rate limiting has taken effect. |
500 | An unexpected error occurred, the error object will contain further information. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | Gets a value indicating whether the operation was successful. |
result | object | No | A full ACP checkout session as returned by the API and stored (serialised) in the cache. |
{
"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
| Name | In | Required | Description |
|---|---|---|---|
checkoutSessionId | path | Yes | The checkout session identifier. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
payment_data | object | No | Payment credentials passed by the agent at completion time. |
buyer | object | No | Buyer identity supplied at checkout completion. |
{
"payment_data": {
"token": "string",
"provider": "string",
"type": "string"
},
"buyer": {
"first_name": "string",
"last_name": "string",
"email": "string"
}
}Responses
| Status | Description |
|---|---|
200 | The request was successful but does not return any results. |
400 | The request failed validation, the error object will contain further information. |
401 | The authorization information provided is not valid, authentication is required to access this resource. |
403 | The authorization header does not contain the correct type or you do not have access to this resource. |
404 | The request was successful but does not return any results. |
422 | The request payload is invalid, the error object will contain further information. |
429 | Too many requests are being sent concurrently or rate limiting has taken effect. |
500 | An unexpected error occurred, the error object will contain further information. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | Gets a value indicating whether the operation was successful. |
result | object | No | A full ACP checkout session as returned by the API and stored (serialised) in the cache. |
{
"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
| Name | In | Required | Description |
|---|---|---|---|
checkoutSessionId | path | Yes | The checkout session identifier. |
Responses
| Status | Description |
|---|---|
200 | The request was successful but does not return any results. |
400 | The request failed validation, the error object will contain further information. |
401 | The authorization information provided is not valid, authentication is required to access this resource. |
403 | The authorization header does not contain the correct type or you do not have access to this resource. |
404 | The request was successful but does not return any results. |
422 | The request payload is invalid, the error object will contain further information. |
429 | Too many requests are being sent concurrently or rate limiting has taken effect. |
500 | An unexpected error occurred, the error object will contain further information. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | Gets a value indicating whether the operation was successful. |
result | object | No | A full ACP checkout session as returned by the API and stored (serialised) in the cache. |
{
"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
| Field | Type | Required | Description |
|---|---|---|---|
payment_method | object | No | Card payment method to tokenize. |
allowance | object | No | Constraints on how the delegated payment method can be used. |
billing_address | object | No | Billing address. |
risk_signals | array<object>? | No | |
metadata | object? | No |
{
"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
| Status | Description |
|---|---|
200 | The request was successful but does not return any results. |
400 | The request failed validation, the error object will contain further information. |
401 | The request was successful but does not return any results. |
403 | The authorization header does not contain the correct type or you do not have access to this resource. |
422 | The request payload is invalid, the error object will contain further information. |
429 | Too many requests are being sent concurrently or rate limiting has taken effect. |
500 | An unexpected error occurred, the error object will contain further information. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | Gets a value indicating whether the operation was successful. |
result | object | No | Response from POST /agentic_commerce/delegate_payment. |
{
"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
| Name | In | Required | Description |
|---|---|---|---|
q | query | No | Optional free-text search query matched against product name, description, and category. |
Responses
| Status | Description |
|---|---|
200 | The request was successful but does not return any results. |
400 | The request failed validation, the error object will contain further information. |
401 | The authorization information provided is not valid, authentication is required to access this resource. |
403 | The authorization header does not contain the correct type or you do not have access to this resource. |
422 | The request payload is invalid, the error object will contain further information. |
429 | Too many requests are being sent concurrently or rate limiting has taken effect. |
500 | An unexpected error occurred, the error object will contain further information. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
success | boolean | No | Gets a value indicating whether the operation was successful. |
result | object | No | Response wrapper for the product feed endpoint. |
{
"success": true,
"result": {
"version": "string",
"products": [],
"total": 0
}
}