Checkout icon

AI agent integration with Agentic Commerce Suite

Integrate with the Adyen Agentic Commerce Suite API to enable your AI agent platform to execute transactions with Adyen merchants.

The Adyen Agentic Commerce Suite API acts as a bridge between your AI agent platform and our merchants. This enables your agents to execute transactions on behalf of shoppers who use your AI agents. You communicate with Adyen through our API endpoints, and you do not communicate directly with merchants. Adyen handles the communication with our merchants and the downstream complexity of orchestrating stock validation, tax calculation, shipping, and payment authorization. We make the relevant information visible to your agents.

Requirements

Requirement Description
Integration type This guide is for an integration using the OpenAI Agentic Commerce Protocol (ACP).
User role Make sure that your Adyen credential has the following user role:
  • Commerce Suite API
.
Setup steps Before you begin, make sure that you have:

How it works

Use the following base URL for the endpoints in the agentic commerce checkout lifecycle.

The path parameter {companyAccount} is the Adyen account of the merchant the shopper makes the transaction with.

Environment Base URL
Test https://commerce-suite-test.adyen.com/commerce-suite/acp/v1/{companyAccount}
Live https://commerce-suite.adyen.com/commerce-suite/acp/v1/{companyAccount}

The agentic commerce checkout lifecycle consists of up to five phases.

# Phase Method Endpoint Requirement
1 Create Session POST /checkout_sessions Mandatory
2 Get Session GET /checkout_sessions/{sessionId} Optional
3 Update Session POST /checkout_sessions/{sessionId} Mandatory
4 Complete Session POST /checkout_sessions/{sessionId}/complete Mandatory
5 Cancel Session POST /checkout_sessions/{sessionId}/cancel Optional

See Sequence diagrams for visual representations of the flows.

Authentication

The Adyen Agentic Commerce Suite uses Bearer token authentication. Pass your Adyen API key as the Bearer token in the Authorization header. Your API key must have the Commerce Suite API role.

Never expose your API key in a URL query string, or in agent-readable context. All calls must originate from your secure agent backend or token vault infrastructure.

1. Create Session

Initializes a new checkout session with a list of items and optional buyer and fulfillment information. Adyen calls the merchant's backend to validate stock and compute real-time totals, then returns the authoritative session state to your agent.

Method and endpoint: POST /checkout_sessions

Creates a new checkout session. Returns HTTP 200 with line items, fulfillment options, totals, and a payment_provider block identifying the merchant's PSP and accepted payment methods.

Request body

Parameter Type Required Description
currency string (ISO 4217) · exactly 3 chars Required 3-letter settlement currency code, for example, USD, EUR, GBP.
items AcpItem[] Required Items to add to the session. Each item requires an id and quantity ≥ 1.
buyer AcpBuyer Buyer contact details: email, first_name, last_name, phone_number.
fulfillment_address AcpAddress Shipping address. Required for physical goods where tax or shipping varies by location.
fulfillment_option_id string Pre-select a fulfillment option if already known.
affiliate_attribution AcpAffiliateAttribution Affiliate attribution data for tracking referral sources. Includes provider, token, publisher_id, campaign_id, and touchpoint. See AcpAffiliateAttribution.

Response

Identical to AcpCheckoutSessionResponse plus a required payment_provider object.

Status codes

HTTP Meaning Description
200 OK Session created. Use the returned id for all subsequent calls.
422 Unprocessable Business logic prevented creation (for example, out of stock). Inspect messages[].

2. (Optional) Get Session

Retrieves the current authoritative state of a session. Use this to re-sync totals after an async event or verify status before confirming payment with the shopper.

Method and endpoint: GET /checkout_sessions/{sessionId}

No request body. Returns the full AcpCheckoutSessionResponse for the given session ID.

Path parameters

Parameter Type Required Description
companyAccount string Required Your Adyen company account identifier.
sessionId string Required The id returned from the Create Session call.

Status codes

HTTP Meaning Description
200 OK Session found and returned.
404 Not Found Session ID does not exist or has expired.

3. Update Session

Updates an existing session with new items, address, buyer details, or a fulfillment selection. Each update re-triggers Adyen's call to the merchant's live calculator, ensuring your agent always has accurate totals.

Method and endpoint: POST /checkout_sessions/{sessionId}

Returns the full updated AcpCheckoutSessionResponse. Only fields present in the request body are applied.

Request body

This endpoint uses a dedicated AcpUpdateCheckoutSessionRequest schema. Unlike Create Session, no fields are required — include only what needs to change.

Parameter Type Required Description
currency string (ISO 4217) Must match the currency set at session creation if provided.
items AcpItem[] Replaces the entire item list.
buyer AcpBuyer Updated buyer contact information.
fulfillment_address AcpAddress Updated shipping address. Triggers recalculation of tax and shipping costs.
fulfillment_option_id string ID of the fulfillment option the shopper selected from fulfillment_options[] in the session response.

Call Update Session whenever the shopper changes their delivery address, selects a shipping tier, or modifies cart quantity. The response line_items[].total, fulfillment_options[].total, and totals[] are always authoritative — present these to the shopper before proceeding to Complete.

Status codes

HTTP Meaning Description
200 OK Session updated. Response contains the latest authoritative state.
422 Unprocessable Update rejected by merchant logic (for example, item now out of stock). Inspect messages[].

4. Complete Session

Finalizes the session by submitting the payment token from your agent's Token Vault. Adyen validates the token, optionally calls the merchant's commit endpoint for a pre-authorization risk check, executes payment authorization, and returns the result — including the created order object on success.

Method and endpoint: POST /checkout_sessions/{sessionId}/complete

Submits payment data and triggers authorization. Returns AcpCompleteSessionResponse — the full session state plus an order object on successful authorization.

Request body

Parameter Type Required Description
payment_data AcpPaymentData Required Payment token and provider. Must include provider (for example, adyen) and token — the PSP transaction token from your vault's delegate_payment call.

Example request

Success response

Present order.permalink_url to the shopper as their confirmation link. order.id is the unique order identifier — use it for post-purchase communication and support queries.

Status codes

HTTP Meaning Description
200 OK Authorization executed. order present on success; messages[] contains details on declined authorization.

5. (Optional) Cancel Session

Cancels an active session that has not been completed. Call this when the shopper abandons checkout or your agent cannot proceed. Signals the merchant to release any reserved inventory.

Method and endpoint: POST /checkout_sessions/{sessionId}/cancel

No request body required. Returns AcpCheckoutSessionResponse with status: "canceled".

Status codes

HTTP Meaning Description
200 OK Session canceled. Response contains the final session state with status: "canceled".

Testing

Use the sandbox environment to test end-to-end before going live. The sandbox uses the same API spec and schemas as production.

Use the following base URL for all sandbox requests besides Delegate Payment:

https://commerce-suite-test.adyen.com/commerce-suite/acp/v1/{companyAccount}

Sandbox endpoints

Operation Method Path
Create Session POST /checkout_sessions
Get Session GET /checkout_sessions/{sessionId}
Update Session POST /checkout_sessions/{sessionId}
Complete Session POST /checkout_sessions/{sessionId}/complete
Cancel Session POST /checkout_sessions/{sessionId}/cancel
Delegate Payment POST https://pal-test.adyen.com/paltokenization/servlet/Recurring/Agentic/acp/v1/agentic_commerce/delegate_payment

The delegate_payment endpoint is part of our tokenization domain, not the Commerce Suite domain. It handles raw PSP credential material on behalf of the agent's Token Vault. Authenticate with Authorization: Bearer exactly as you would for all other Commerce Suite calls.

Recommended test sequence

To verify your integration, follow these steps:

  1. Create a session.

    Make a POST /checkout_sessions request with your test API key in the Authorization: Bearer header. Note the returned id (for example, cs_test_abc123).

  2. Update with address and fulfillment selection.

    Make a POST /checkout_sessions/cs_test_abc123 request. Confirm that status is ready_for_payment and that the totals are finalized.

  3. Delegate payment through the Token Vault.

    Make a POST /delegate_payment request with your test API key in the Authorization: Bearer header. Capture the returned psp_transaction_token.

  4. Complete the session.

    Make a POST /checkout_sessions/cs_test_abc123/complete request.

    Confirm that status is completed and order.id is present.

Test product catalogue

The Adyen test merchant exposes the following 10 products. Use these id values in the items[] array of any Create or Update Session request. Quantity must be ≥ 1.

Product ID Name Price Category
01 Polo shirt 50.00 Clothing
02 Headphones 50.00 Electronics
03 Sunglasses 50.00 Accessories
04 Boots 50.00 Footwear
05 Event ticket 50.00 Tickets
06 Backpack 50.00 Accessories
07 Joypad 50.00 Electronics
08 Food delivery 50.00 Food
09 Handbag 50.00 Accessories
10 Sneakers 50.00 Footwear

Sequence diagrams

The two diagrams below show the full lifecycle for both integration patterns. In both cases your agent's calls to Adyen are identical — the difference is entirely in how Adyen and the merchant orchestrate payment authorization on the back end.

Standard flow

Adyen executes payment authorization on behalf of the agent. The agent's Token Vault calls delegate_payment to obtain a PSP token, which the agent then submits via /complete. Adyen handles the rest.

CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgQWdlbnQgYXMgQUkgQWdlbnQKICAgIHBhcnRpY2lwYW50IFZhdWx0IGFzIFRva2VuIFZhdWx0CiAgICBwYXJ0aWNpcGFudCBBZHllbgogICAgcGFydGljaXBhbnQgTWVyY2hhbnQKCiAgICByZWN0IHJnYigyNDUsIDI0NSwgMjQ1KQogICAgTm90ZSBvdmVyIFNob3BwZXIsIE1lcmNoYW50OiBTdGFnZSAxLiBDcmVhdGUgY2hlY2tvdXQKICAgIFNob3BwZXItPj5BZ2VudDogIkJ1eSB0aGVzZSBoZWFkcGhvbmVzIgogICAgQWdlbnQtPj5BZHllbjogW0FDUF0gUE9TVCAvY2hlY2tvdXRfc2Vzc2lvbnMKICAgIEFkeWVuLT4+TWVyY2hhbnQ6IFBPU1QgL2FnZW50aWMvc2Vzc2lvbnMve2lkfQogICAgTWVyY2hhbnQtLT4+QWR5ZW46IDIwMCBzdGF0dXM6ICB0b3RhbHMsIHN0b2NrLCBzaGlwcGluZwogICAgQWR5ZW4tLT4+QWdlbnQ6IDIwMTogU2Vzc2lvbiBJRCArIHRvdGFscwogICAgQWdlbnQtLT4+U2hvcHBlcjogRGlzcGxheSBvcmRlciBzdW1tYXJ5CiAgICBlbmQKCiAgICByZWN0IHJnYigyNDUsIDI0NSwgMjQ1KQogICAgTm90ZSBvdmVyIFNob3BwZXIsIE1lcmNoYW50OiBTdGFnZSAyLiBEZWxlZ2F0ZSBwYXltZW50ICYgdG9rZW5pemF0aW9uCiAgICBTaG9wcGVyLT4+QWdlbnQ6ICJQYXkgbm93IgogICAgQWdlbnQtPj5WYXVsdDogSW5zdHJ1Y3QgZGVsZWdhdGVfcGF5bWVudAogICAgVmF1bHQtPj5BZHllbjogW0FDUF0gL2RlbGVnYXRlX3BheW1lbnQKICAgIEFkeWVuLS0+PlZhdWx0OiBwc3BfdHJhbnNhY3Rpb25fdG9rZW4KICAgIFZhdWx0LS0+PkFnZW50OiBwc3BfdHJhbnNhY3Rpb25fdG9rZW4KICAgIGVuZAoKICAgIHJlY3QgcmdiKDI0NSwgMjQ1LCAyNDUpCiAgICBOb3RlIG92ZXIgU2hvcHBlciwgTWVyY2hhbnQ6IFN0YWdlIDMuIENvbXBsZXRlICYgYXV0aG9yaXplCiAgICBBZ2VudC0+PkFkeWVuOiBbQUNQXSAvY2hlY2tvdXRfc2Vzc2lvbnMve2lkfS9jb21wbGV0ZQogICAgQWR5ZW4tPj5NZXJjaGFudDogUE9TVCAvYWdlbnRpYy9zZXNzaW9ucy97aWR9L2NvbW1pdAogICAgTWVyY2hhbnQtLT4+QWR5ZW46IDIwMCBTVUNDRVNTCiAgICBOb3RlIG92ZXIgQWR5ZW46IEV4ZWN1dGUgQXV0aAogICAgQWR5ZW4tPj5NZXJjaGFudDogUE9TVCAvYWdlbnRpYy9zZXNzaW9ucy97aWR9L2ZpbmFsaXplCiAgICBNZXJjaGFudC0tPj5BZHllbjogMjA0IEFDSzogdHJpZ2dlciBmdWxmaWxsbWVudAogICAgQWR5ZW4tLT4+QWdlbnQ6IDIwMCBzdGF0dXM6IGNvbXBsZXRlZCwgb3JkZXJ7fQogICAgQWdlbnQtLT4+U2hvcHBlcjogIk9yZGVyIGNvbmZpcm1lZCEiCiAgICBlbmQKCiAgICByZWN0IHJnYigyNDUsIDI0NSwgMjQ1KQogICAgTm90ZSBvdmVyIFNob3BwZXIsIE1lcmNoYW50OiBTdGFnZSA0LiBQb3N0LXB1cmNoYXNlCiAgICBNZXJjaGFudC0+PkFkeWVuOiBQT1NUIC9ldmVudHMgKHRyYWNraW5nIGluZm8pCiAgICBBZHllbi0+PkFnZW50OiBQdXNoIHRyYWNraW5nIHRvIEFnZW50CiAgICBBZ2VudC0tPj5TaG9wcGVyOiAiWW91ciBwYWNrYWdlIGlzIG9uIHRoZSB3YXkhIgogICAgZW5kCg==

Advanced flow

The agent's /complete call is identical to the standard flow. The difference: Adyen delivers the payment token to the merchant, who then calls POST /payments directly and triggers order fulfillment in a single synchronous step.

CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgQWdlbnQgYXMgQUkgQWdlbnQKICAgIHBhcnRpY2lwYW50IFZhdWx0IGFzIFRva2VuIFZhdWx0CiAgICBwYXJ0aWNpcGFudCBBZHllbgogICAgcGFydGljaXBhbnQgTWVyY2hhbnQKCiAgICByZWN0IHJnYigyNDUsIDI0NSwgMjQ1KQogICAgTm90ZSBvdmVyIFNob3BwZXIsIE1lcmNoYW50OiBTdGFnZSAxLiBDcmVhdGUgY2hlY2tvdXQKICAgIFNob3BwZXItPj5BZ2VudDogIkJ1eSB0aGVzZSBoZWFkcGhvbmVzIgogICAgQWdlbnQtPj5BZHllbjogW0FDUF0gUE9TVCAvY2hlY2tvdXRfc2Vzc2lvbnMKICAgIEFkeWVuLT4+TWVyY2hhbnQ6IFBPU1QgL2FnZW50aWMvc2Vzc2lvbnMve2lkfQogICAgTWVyY2hhbnQtLT4+QWR5ZW46IDIwMDogdG90YWxzLCBzdG9jaywgc2hpcHBpbmcKICAgIEFkeWVuLS0+PkFnZW50OiAyMDE6IFNlc3Npb24gSUQgKyB0b3RhbHMKICAgIEFnZW50LS0+PlNob3BwZXI6IERpc3BsYXkgb3JkZXIgc3VtbWFyeQogICAgZW5kCgogICAgcmVjdCByZ2IoMjQ1LCAyNDUsIDI0NSkKICAgIE5vdGUgb3ZlciBTaG9wcGVyLCBNZXJjaGFudDogU3RhZ2UgMi4gRGVsZWdhdGUgcGF5bWVudCAmIHRva2VuaXphdGlvbgogICAgU2hvcHBlci0+PkFnZW50OiAiUGF5IG5vdyIKICAgIEFnZW50LT4+VmF1bHQ6IEluc3RydWN0IGRlbGVnYXRlX3BheW1lbnQKICAgIFZhdWx0LT4+QWR5ZW46IFtBQ1BdIC9kZWxlZ2F0ZV9wYXltZW50CiAgICBBZHllbi0tPj5WYXVsdDogcHNwX3RyYW5zYWN0aW9uX3Rva2VuCiAgICBWYXVsdC0tPj5BZ2VudDogcHNwX3RyYW5zYWN0aW9uX3Rva2VuCiAgICBlbmQKCiAgICByZWN0IHJnYigyNDUsIDI0NSwgMjQ1KQogICAgTm90ZSBvdmVyIFNob3BwZXIsIE1lcmNoYW50OiBTdGFnZSAzLiBDb21wbGV0ZSAmIGF1dGhvcml6ZSAobWVyY2hhbnQtZXhlY3V0ZWQpCiAgICBBZ2VudC0+PkFkeWVuOiBbQUNQXSAvY2hlY2tvdXRfc2Vzc2lvbnMve2lkfS9jb21wbGV0ZQogICAgQWR5ZW4tPj5NZXJjaGFudDogUGF5bWVudCB0b2tlbiArIHNlc3Npb24gZGF0YQogICAgTWVyY2hhbnQtPj5BZHllbjogUE9TVCAvcGF5bWVudHMgKHBzcF90b2tlbikKICAgIEFkeWVuLS0+Pk1lcmNoYW50OiBQYXltZW50IHJlc3VsdCAoQXV0aG9yaXNlZCkKICAgIE5vdGUgb3ZlciBNZXJjaGFudDogVHJpZ2dlciBmdWxmaWxsbWVudAogICAgTWVyY2hhbnQtLT4+QWR5ZW46IDIwNCBBQ0s6IHBheW1lbnQgcmVzdWx0CiAgICBBZHllbi0tPj5BZ2VudDogMjAwIHN0YXR1czogY29tcGxldGVkLCBvcmRlcnt9CiAgICBBZ2VudC0tPj5TaG9wcGVyOiAiT3JkZXIgY29uZmlybWVkISBSZWY6IG9yZF8uLi4iCiAgICBlbmQKCiAgICByZWN0IHJnYigyNDUsIDI0NSwgMjQ1KQogICAgTm90ZSBvdmVyIFNob3BwZXIsIE1lcmNoYW50OiBTdGFnZSA0LiBQb3N0LXB1cmNoYXNlCiAgICBNZXJjaGFudC0+PkFkeWVuOiBQT1NUIC9ldmVudHMgKHRyYWNraW5nIGluZm8pCiAgICBBZHllbi0+PkFnZW50OiBQdXNoIHRyYWNraW5nIHRvIEFnZW50CiAgICBBZ2VudC0tPj5TaG9wcGVyOiAiWW91ciBwYWNrYWdlIGlzIG9uIHRoZSB3YXkhIgogICAgZW5kCg==

Session statuses

Every response contains a status field. Evaluate this field on every call.

Status Category Agent action
not_ready_for_payment Active Session has blocking errors. Surface messages[] to the shopper and resolve before proceeding.
ready_for_payment Active All data valid and totals confirmed. Prompt shopper to confirm, then call Complete Session.
in_progress Active Session is actively being processed. Await the next status transition before taking further action.
completed Terminal Payment authorized and order created. Present order.permalink_url and order.id to the shopper.
canceled Terminal Session explicitly canceled. Do not reuse this session ID.

Error codes

When the merchant rejects a request (HTTP 422), the session response contains a messages[] array with structured error objects. Surface these to the shopper as appropriate.

HTTP Reason code Phase Agent handling
200 Any Valid. Proceed to the next step.
422 OUT_OF_STOCK Create / Update / Commit Item unavailable. Offer alternatives or remove from cart.
422 PARTIAL_STOCK Create / Update / Commit Only X of Y units available. Offer reduced quantity.
422 INVALID_ADDRESS Create / Update / Commit Delivery to this address unsupported. Prompt for alternative.
422 RISK_REJECTED Commit only Merchant fraud engine blocked. Do not expose risk details. Offer alternative payment method.
422 PRICE_MISMATCH Commit only Price changed since last fetch. Re-fetch session and present updated totals for shopper re-confirmation.

AcpMessage object

All session responses include a required messages[] array. Each entry follows the AcpMessage schema.

Schema Reference

Endpoint:

Environment Base URL
Test https://commerce-suite-test.adyen.com/commerce-suite/acp/v1/{companyAccount}
Live https://commerce-suite.adyen.com/commerce-suite/acp/v1/{companyAccount}

All request and response objects follow these standardized schemas.

AcpItem

Parameter Description
id string Merchant's product or SKU identifier.
quantity integer Units requested. Must be ≥ 1.

AcpLineItem

Returned in all session responses. Represents a resolved cart line with merchant-computed pricing.

Parameter Description
id string Unique identifier for this line item within the session.
item AcpItem The underlying item reference (id and quantity).
base_amount integer (int64) Pre-tax unit price × quantity in minor currency units, for example, 34900 = $349.00.
discount integer (int64) Discount applied to this line in minor currency units. 0 if no discount applies.
subtotal integer (int64) Line subtotal after any adjustments, before tax, in minor currency units.
tax integer (int64) Tax amount for this line in minor currency units.
total integer (int64) Final line total (subtotal + tax) in minor currency units.

AcpAddress

Parameter Description
line_one string · max: 256 Primary street address.
line_two string · max: 256 Secondary address line (apartment, suite, unit).
city string · max: 256 City name.
state string · min: 1 State or province code.
country string · exactly 2 chars ISO 3166-1 alpha-2 country code, for example, US, GB, NL.
postal_code string · max: 20 ZIP or postal code.
name string · max: 256 Optional. Recipient name for the address.

AcpBuyer

Parameter Description
email string Buyer's email address.
first_name string Buyer's first name.
last_name string Buyer's last name.
phone_number string Buyer's contact phone number.

AcpPaymentData

Parameter Description
provider string · minLength: 1 Payment provider identifier. Use adyen for Adyen-issued tokens.
token string · minLength: 1 PSP transaction token from your vault's delegate_payment call.
billing_address AcpAddress Optional. Billing address associated with the payment instrument. If omitted, the fulfillment_address is used for billing.

AcpPaymentProvider

Returned in Create Session response.

Parameter Description
provider string Always "adyen" for this integration.
merchant_id string Adyen merchant account identifier for the connected merchant.
supported_payment_methods string[] Accepted payment methods (e.g., ["scheme", "googlepay"]).

AcpFulfillmentOption (discriminated union)

AcpFulfillmentOption is a discriminated union keyed on type. The base object only requires type. Use the subtype schemas based on the value of type.

Base

Parameter Description
type string Discriminator field. Determines which subtype schema applies. Values: shipping, digital.

AcpFulfillmentOptionShipping (type: shipping)

Parameter Description
id string Unique identifier. Pass as fulfillment_option_id in Update or Create Session.
type string Must be shipping.
title string Human-readable shipping option name.
subtotal integer (int64) Fulfillment subtotal before tax in minor currency units.
tax integer (int64) Tax on the fulfillment option in minor currency units.
total integer (int64) Total fulfillment cost (subtotal + tax) in minor currency units.
carrier string Optional. Carrier name, for example, UPS, DHL, FedEx.
subtitle string Optional. Additional description, for example, "Delivered in 5–7 business days".
earliest_delivery_time string (date-time) Optional. ISO 8601 timestamp for earliest expected delivery.
latest_delivery_time string (date-time) Optional. ISO 8601 timestamp for latest expected delivery.

AcpFulfillmentOptionDigital (type: digital)

Parameter Description
id string Unique identifier.
type string Must be digital.
title string Human-readable option name.
subtotal integer (int64) Fulfillment subtotal before tax.
tax integer (int64) Tax amount.
total integer (int64) Total cost (subtotal + tax).
subtitle string Optional. Additional description.

AcpTotal

Parameter Description
type string Total type (e.g., "subtotal", "tax", "total").
amount integer Amount in minor currency units.
display_text string Localized label for display (e.g., "Order Total").

AcpOrder

Included in AcpCompleteSessionResponse when authorization succeeds.

Parameter Description
id string Unique order identifier. Present to the shopper as their order reference.
checkout_session_id string The originating checkout session ID for correlation.
permalink_url string Permanent URL to the merchant's order details page. Share with the shopper for tracking and support.

AcpMessage

All responses include a required messages[] array. Evaluate it on every response, not only on error HTTP codes.

Parameter Description
code string Machine-readable reason code, for example, OUT_OF_STOCK, PRICE_MISMATCH, INVALID_ADDRESS, RISK_REJECTED.
content string Human-readable message text. Surface to the shopper when type is error.
content_type string Format of content. Either plain or markdown.
type string Message category. Either error (agent must act) or info (informational notice).
path string Optional. JSON path identifying the specific field that triggered the message, for example, items[0].

AcpLink

All session responses include a required links[] array of merchant policy and support URLs.

Parameter Description
type string Link category, for example, terms_of_service, return_policy, privacy_policy.
url string The fully-qualified URL.

AcpUpdateCheckoutSessionRequest

Dedicated schema for the Update Session endpoint. All fields are optional — include only what needs to change.

Parameter Description
currency string (ISO 4217) · exactly 3 chars Currency. Must match the session currency if provided.
items AcpItem[] Replaces the entire item list.
buyer AcpBuyer Updated buyer contact information.
fulfillment_address AcpAddress Updated shipping address.
fulfillment_option_id string ID of the selected fulfillment option.

AcpAffiliateAttribution

Optional affiliate attribution object for tracking referral sources at session creation. Include this to credit publishers, influencers, or campaign sources.

Parameter Description
provider string · minLength: 1 Attribution provider namespace identifier, for example, impact.com, partnerize.
token string Optional. Opaque provider-issued attribution token for fraud-resistant validation.
publisher_id string Optional. Provider-scoped affiliate or publisher identifier.
campaign_id string Optional. Provider-scoped campaign identifier.
creative_id string Optional. Provider-scoped creative identifier.
sub_id string Optional. Provider-scoped sub-tracking identifier.
touchpoint string (enum) Optional. Attribution touchpoint. Either first (session creation) or last (session completion).
source AcpAffiliateAttributionSource Optional. Context about where the attribution originated (type + optional url).
issued_at string (date-time) Optional. ISO 8601 timestamp when the attribution token was issued.
expires_at string (date-time) Optional. ISO 8601 timestamp when the attribution token expires.
metadata object Optional. Arbitrary key-value metadata for additional attribution context.