Checkout icon

AI agent API integration with UCP

Integrate with the Adyen Agentic API to enable your AI agent platform to make transactions with Adyen merchants using the Universal Commerce Protocol (UCP).

View source

The Adyen Agentic API acts as a bridge between your AI agent platform and our merchants. This enables your agents to make 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 Universal Commerce Protocol (UCP). Payment credentials follow the UCP tokenization specification.
User role Make sure that your Adyen credential (API key) for your company account has the following user role:
  • Commerce Suite API

How it works

When a shopper initiates a transaction with your agent platform, the following flow occurs:

  1. The shopper selects items to purchase in your agent platform.
  2. Your agent platform creates a checkout session with Adyen (POST /checkout_sessions).
  3. Adyen validates stock, calculates tax and shipping with the merchant.
  4. Adyen returns the created session with UCP envelope, totals, and fulfillment options.
  5. Your agent platform presents totals and fulfillment options to the shopper.
  6. (Optional) The shopper selects a shipping option or updates their address.
  7. (Optional) Your agent platform updates the session (PUT /checkout_sessions/{sessionId}).
  8. (Optional) Adyen re-validates totals with the merchant and returns the updated session.
  9. The shopper enters payment details.
  10. Your agent platform tokenizes the credentials (POST /handler/tokenize).
  11. Adyen returns a UCP token.
  12. Your agent platform completes the session (POST /checkout_sessions/{sessionId}/complete).
  13. Adyen authorizes the payment and places the order with the merchant.
  14. Adyen returns the completed session with order ID and permalink URL.
  15. Your agent platform presents the order confirmation and tracking link to the shopper.
CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgQWdlbnQgYXMgWW91ciBhZ2VudCBwbGF0Zm9ybQogICAgcGFydGljaXBhbnQgQWR5ZW4gYXMgQWR5ZW4gKENvbW1lcmNlIFN1aXRlIEFQSSkKICAgIHBhcnRpY2lwYW50IE1lcmNoYW50IGFzIE1lcmNoYW50CgogICAgU2hvcHBlci0+PkFnZW50OiBTZWxlY3RzIGl0ZW1zIHRvIHB1cmNoYXNlCiAgICBOb3RlIG92ZXIgQWdlbnQsQWR5ZW46IENyZWF0ZSBzZXNzaW9uCiAgICBBZ2VudC0+PkFkeWVuOiBQT1NUIC9jaGVja291dF9zZXNzaW9ucwogICAgTm90ZSBvdmVyIEFkeWVuLE1lcmNoYW50OiBWYWxpZGF0ZSAmIHJlc29sdmUKICAgIEFkeWVuLT4+TWVyY2hhbnQ6IFZhbGlkYXRlIHN0b2NrLCBjYWxjdWxhdGUgdGF4ICYgc2hpcHBpbmcKICAgIE1lcmNoYW50LS0+PkFkeWVuOiBSZXNvbHZlZCB0b3RhbHMgJiBmdWxmaWxsbWVudCBvcHRpb25zCiAgICBBZHllbi0tPj5BZ2VudDogU2Vzc2lvbiBjcmVhdGVkIChVQ1AgZW52ZWxvcGUsIHRvdGFscywgZnVsZmlsbG1lbnQpCiAgICBOb3RlIG92ZXIgQWdlbnQsU2hvcHBlcjogUHJlc2VudCBvcHRpb25zCiAgICBBZ2VudC0+PlNob3BwZXI6IFByZXNlbnQgdG90YWxzICYgZnVsZmlsbG1lbnQgb3B0aW9ucwoKICAgIHJlY3QgcmdiKDI0MCwgMjQwLCAyNDApCiAgICAgICAgTm90ZSBvdmVyIFNob3BwZXIsTWVyY2hhbnQ6IE9wdGlvbmFsOiBVcGRhdGUgc2Vzc2lvbgogICAgICAgIFNob3BwZXItPj5BZ2VudDogU2VsZWN0cyBzaGlwcGluZyBvcHRpb24gLyB1cGRhdGVzIGFkZHJlc3MKICAgICAgICBOb3RlIG92ZXIgQWdlbnQsQWR5ZW46IE9wdGlvbmFsOiBVcGRhdGUgc2Vzc2lvbgogICAgICAgIEFnZW50LT4+QWR5ZW46IFBVVCAvY2hlY2tvdXRfc2Vzc2lvbnMve3Nlc3Npb25JZH0KICAgICAgICBBZHllbi0+Pk1lcmNoYW50OiBSZS12YWxpZGF0ZSB0b3RhbHMKICAgICAgICBNZXJjaGFudC0tPj5BZHllbjogVXBkYXRlZCB0b3RhbHMKICAgICAgICBBZHllbi0tPj5BZ2VudDogVXBkYXRlZCBzZXNzaW9uIChhdXRob3JpdGF0aXZlIHRvdGFscykKICAgIGVuZAoKICAgIFNob3BwZXItPj5BZ2VudDogRW50ZXJzIHBheW1lbnQgZGV0YWlscwogICAgTm90ZSBvdmVyIEFnZW50LEFkeWVuOiBUb2tlbml6ZQogICAgQWdlbnQtPj5BZHllbjogUE9TVCAvaGFuZGxlci90b2tlbml6ZQogICAgQWR5ZW4tLT4+QWdlbnQ6IFVDUCB0b2tlbgoKICAgIE5vdGUgb3ZlciBBZ2VudCxBZHllbjogQ29tcGxldGUgc2Vzc2lvbgogICAgQWdlbnQtPj5BZHllbjogUE9TVCAvY2hlY2tvdXRfc2Vzc2lvbnMve3Nlc3Npb25JZH0vY29tcGxldGUKICAgIEFkeWVuLT4+TWVyY2hhbnQ6IEF1dGhvcml6ZSBwYXltZW50ICYgcGxhY2Ugb3JkZXIKICAgIE1lcmNoYW50LS0+PkFkeWVuOiBPcmRlciBjb25maXJtZWQKICAgIEFkeWVuLS0+PkFnZW50OiBTZXNzaW9uIGNvbXBsZXRlZCAob3JkZXIgSUQsIHBlcm1hbGluayBVUkwpCiAgICBOb3RlIG92ZXIgQWdlbnQsU2hvcHBlcjogT3JkZXIgY29uZmlybWF0aW9uCiAgICBBZ2VudC0+PlNob3BwZXI6IE9yZGVyIGNvbmZpcm1hdGlvbiAmIHRyYWNraW5nIGxpbmsK

Integration steps

Use the following base URL for the endpoints in the agentic commerce checkout lifecycle, besides the tokenize phase.

The path parameter {companyAccount} is your Adyen company account identifier.

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

The agentic commerce checkout lifecycle consists of six phases:

  1. Create session: Initialize a checkout session with items, shopper, and fulfillment details.
  2. Get session (optional): Get the current state of the session to synchronize the total payment amount or verify its status.
  3. Update session (optional): Update items, address, buyer details, or fulfillment selection and recalculate totals.
  4. Tokenize: Exchange the shopper's payment credentials for a single-use UCP token.
  5. Complete session: Submit the payment token and trigger authorization.
  6. Cancel session (optional): Cancel an active session and release reserved inventory.

Authentication

The Adyen Agentic Commerce Suite uses Bearer token authentication.

In the Authorization header of your requests, pass your Adyen API key as the bearer token. Your API key must have the Commerce Suite API role. Session operations also require UCP HTTP Message Signatures (RFC 9421) for request integrity and origin verification.

Header Required Description
Authorization Required Your Adyen API key as a bearer token.
Content-Type Required application/json.
UCP-Agent Required Your agent platform profile URL.
Signature Required The RFC 9421 signature over the covered components.
Signature-Input Required Signature metadata: covered components, algorithm, key ID.
Idempotency-Key Required A unique key to prevent duplicate requests.
Content-Digest Conditionally required Required for POST and PUT requests.
SHA-256 digest of the request body.

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

UCP envelope

Every session response includes a required ucp object. You must read it for every response your server receives.

It advertises the protocol version, session status, supported capabilities, and the payment_handlers map your agent uses to tokenize. Each handler entry exposes the merchant identifier and the payment methods it accepts.

Create session

Initialize a new checkout session with a list of items, optional buyer, context, and fulfillment details.

Make a POST /checkout_sessions request, including the following parameters:

Parameter Type Required Description
line_items UcpLineItemRequest[] Required The items to purchase. Each entry requires an item and quantity of 1 or more.
currency String (ISO 4217) The three-letter settlement currency code, for example, USD, EUR, GBP. If omitted, Adyen resolves it from context or the merchant default.
buyer UcpBuyer The buyer's contact details and consent flags.
context UcpContext The shopper context: country, region, postal code, language, currency hint, and eligibility.
fulfillment UcpFulfillment The fulfillment methods, destinations, and group selections.
discounts UcpDiscountsRequest The discount or promo codes to apply at session creation.
attribution Object Free-form attribution metadata. Adyen stores it but does not echo it in the response.
signals Object Free-form context signals that Adyen forwards to the merchant.

Adyen does the following:

  1. Makes a request to the merchant's server to validate stock and calculate total amounts in real-time.
  2. Sends the session data to your agent.

The success HTTP 201 response includes the following:

Parameter Description
id The unique session identifier. Use this for subsequent requests for this session.
status Current session status.
currency Settlement currency code.
line_items Line items with pricing and tax details.
totals Subtotal, tax, fulfillment, and total amount.
payment Payment instruments state.
links A UcpLink array with links to merchant policy or support URLs.
ucp The UCP envelope with protocol version, capabilities, and payment handlers.
fulfillment Available fulfillment methods with options and costs.
messages A UcpMessage array with informational or warning messages.
discounts A UcpDiscountsResponse object with applied and submitted discount codes.
buyer Echoed buyer details.

Possible HTTP status codes

HTTP Meaning Description
201 Created Session created. Use the returned id for all subsequent requests for this session. Read status and messages[].
422 Unprocessable An error in business logic prevented the session from being created. For example, one of the items in the order is out of stock. Get more information from messages[].

(Optional) Get session

Get the current state of the session to synchronize the total payment amount or verify its status.

Make a GET /checkout_sessions/{sessionId} request with the following path parameters:

Parameter Type Required Description
sessionId String Required The id from the Create session response.

No request body is required.

The success HTTP 200 response returns the full session state, identical to the Create session response.

Possible HTTP status codes

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

(Optional) Update session

Update an existing session with new buyer details, fulfillment selection, discounts, or line items. Each update triggers Adyen to make a request to the merchant's live calculator, so your agent always has accurate totals.

Make a PUT /checkout_sessions/{sessionId} request. This endpoint uses full-replacement semantics. Send the complete desired state. The request replaces the session's mutable fields rather than patching individual keys. Always re-send line_items.

Parameter Type Required Description
line_items UcpLineItemRequest[] Required Replaces the entire item list.
currency String (ISO 4217) Must match the currency set at session creation.
buyer UcpBuyer Updated buyer contact information.
fulfillment UcpFulfillment Updated fulfillment selection. Triggers recalculation of tax and shipping costs.
discounts UcpDiscountsRequest The discount codes to apply or update. Replaces any previously submitted codes.

Make this request to update the session whenever the shopper changes their delivery address, selects a shipping option, modifies their shopping cart, or applies a discount code. The response line_items[].totals, fulfillment, and totals[] are always authoritative. Show these values to the shopper before completing the session.

The success HTTP 200 response returns the full updated session state, identical to the Create session response.

Possible HTTP status codes

HTTP Meaning Description
200 OK Session updated. The response contains the latest authoritative state.
409 Conflict Session cannot transition to the requested state. Re-fetch and reconcile.
422 Unprocessable An error in merchant logic rejected the update. For example, an item is now out of stock. Get more information from messages[].

Tokenize payment credential

Before you complete the session, exchange the shopper's raw card credential for a single-use UCP token. The token is bound to a specific checkout session and merchant, and it does not expose raw card data.

Endpoint:

Environment URL
Test https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/handler/tokenize
Live https://commerce-suite-live.adyen.com/commerce-suite/ucp/v1/handler/tokenize

To bind the token to the merchant, use the checkout_id from the session and the identifier from ucp.payment_handlers[*].config.merchant_id.

Make a POST /handler/tokenize request, including the following parameters:

Parameter Type Required Description
binding.checkout_id String Required The checkout session id to bind the token to.
binding.identity.access_token String Required The public merchant identifier to bind the token to.
credential.type String Required The credential type. Value: card.
credential.card_number_type String Required The type of card number. Possible values: fpan, network_token.
credential.number String (12–19 digits) Required The shopper's card number.
credential.expiry_month Integer (1–12) Required The card expiry month.
credential.expiry_year Integer Required The card expiry year (four digits).
credential.cryptogram String Conditionally required Required when card_number_type is network_token.
The cryptogram provided with network tokens.
credential.eci_value String The Electronic Commerce Indicator, for network tokens.
credential.cvc String (3–4 digits) The card security code.
credential.name String The cardholder name.
session_context UcpSessionContext Device and network context:
  • ip_address
  • user_agent
  • accept_language
  • device_fingerprint
  • session_id

The success HTTP 200 response includes the following:

Parameter Type Description
token String The single-use UCP token. Submit this as payment.instruments[].credential.token in the Complete session request.

The token is single-use and valid for one hour. If the token expires before you complete the session, make a POST /handler/tokenize request again to get a fresh token.

Possible HTTP status codes

HTTP Meaning Description
200 OK Token issued.
401 Unauthorized Invalid or missing API key, or the API key does not have the Commerce Suite role.
403 Forbidden Your platform is not authorized to tokenize for this merchant. Confirm the merchant has opted in to your platform.
422 Unprocessable Request body validation failed. Get more information from the error message.

Complete session

Finalize the session. Submit the tokenized payment instrument.

Make a POST /checkout_sessions/{sessionId}/complete request, including the following parameters:

Parameter Type Required Description
payment.instruments[].handler_id String Required The handler id from ucp.payment_handlers, for example, adyen.
payment.instruments[].credential.token String Required The UCP token returned by the tokenization handler.
payment.instruments[].credential.type String Required Credential type of the token.
payment.instruments[].type String Required Instrument type, for example, card.
payment.instruments[].selected Boolean Required Set to true to charge this instrument.
signals map Completion-time signals, for example, device fingerprint or user agent.

Adyen does the following:

  1. Validates the token.
  2. Executes authorization with the merchant.
  3. Returns the session state, including the order object on success.

The success HTTP 200 response includes the status. What you do depends on the status.

Completed

If the response includes status: completed, show the following information to the shopper:

Parameter Description
order.id The unique order identifier. Use for post-purchase communication and support queries.
order.permalink_url Permanent URL to the merchant's order details page. Present to the shopper as their confirmation link.

Requires escalation

If the response includes status: requires_escalation, do the following:

  1. Show the continue_url to the shopper to finish the required action (for example, 3D Secure 2 authentication).
  2. Make repeated requests to Get session until the status changes.

Possible HTTP status codes

HTTP Meaning Description
200 OK Authorization executed. order present on success. If authorization is declined, get more information from messages[].
409 Conflict Session is not in a completable state (for example, incomplete). Resolve blocking messages first.
422 Unprocessable Payment or merchant validation failed. Get more information from messages[].

(Optional) Cancel session

Cancel an active session that has not been completed. Use this when the shopper abandons checkout or your agent cannot proceed. Adyen tells the merchant to release any reserved inventory.

Make a POST /checkout_sessions/{sessionId}/cancel request with the following path parameter:

Parameter Type Required Description
sessionId String Required The id from the Create session response.

No request body is required.

The success HTTP 200 response returns the final session state with status: canceled.

Possible HTTP status codes

HTTP Meaning Description
200 OK Session canceled. The response contains the final session state with status: canceled. Do not reuse the session id.
409 Conflict Session already terminal (completed or canceled) and cannot be canceled.

Test and go live

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

Test environment endpoints

Phase Method Endpoint URL
Create session POST https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/{companyAccount}/checkout_sessions
Get session GET https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/{companyAccount}/checkout_sessions/{sessionId}
Update session PUT https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/{companyAccount}/checkout_sessions/{sessionId}
Tokenize POST https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/handler/tokenize
Complete session POST https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/{companyAccount}/checkout_sessions/{sessionId}/complete
Cancel session POST https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/{companyAccount}/checkout_sessions/{sessionId}/cancel

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.

  2. Update with fulfillment selection.

    Make a PUT /checkout_sessions/{sessionId} request. Confirm that status is ready_for_complete and that the totals are finalized.

  3. Tokenize payment credentials.

    Make a POST /handler/tokenize request with the checkout_id and the merchant_id from the UCP envelope. Capture the returned token.

  4. Complete the session.

    Make a POST /checkout_sessions/{sessionId}/complete request with the token. Confirm that status is completed and order.id is present.

Go live

In your live environment, use the live endpoints.

Session statuses

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

Status Category Agent action
incomplete Active Missing required information or unresolved issues. Resolve using Update session.
ready_for_complete Active All data valid and totals confirmed. Prompt the shopper to confirm, then make a Complete session request.
requires_escalation Active The buyer must complete a step in a browser (for example, 3D Secure 2 authentication). Show continue_url to the shopper and poll Get session.
complete_in_progress Active Completion in progress. Wait for 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.

Messages and error handling

Session responses include a messages[] array of structured objects. Read it on every response, not only on error HTTP codes. An HTTP 200 can still carry warnings or buyer-input prompts. Errors that prevent a response body follow the UCP error envelope.

Error envelope

Message severity

Severity Agent handling
recoverable Transient or auto-resolvable. Retry the operation or re-fetch the session.
requires_buyer_input Blocking. Collect the missing input from the shopper (address, fulfillment, discount) and make an Update session request.
requires_buyer_review Blocking. Show the detail to the shopper to review and confirm before proceeding.
unrecoverable Terminal for this session. Do not retry. Start a new session if appropriate.

Common error codes

HTTP Code Description
401 unauthorized Caller not authorized. Check the API key and Commerce Suite role.
404 not_found Session does not exist or has expired.
409 invalid_state Session cannot transition to the requested state.
422 merchant_validation_failed Merchant response missing required fields, or business rule rejected the request.
500 configuration_error Merchant configuration missing or invalid. Contact your Adyen account team.

Schema reference

The schema reference below shows all the available endpoints and objects you can use for this integration.

Endpoints

Adyen Agentic API:

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

Tokenization:

Environment Endpoint URL
Test https://commerce-suite-test.adyen.com/commerce-suite/ucp/v1/handler/tokenize
Live https://commerce-suite-live.adyen.com/commerce-suite/ucp/v1/handler/tokenize

All request and response objects follow these standardized schemas.

UcpCheckoutSessionRequest

Parameter Type Description
line_items UcpLineItemRequest[] (min 1) Items to purchase.
currency String ISO 4217 currency code.
buyer UcpBuyer Buyer details and consent.
context UcpContext Shopper context.
fulfillment UcpFulfillment Fulfillment selection.
discounts UcpDiscountsRequest Discount codes.
attribution Object Attribution metadata (stored, not echoed).
signals Object Context signals forwarded to the merchant.

UcpCheckoutSessionResponse

Parameter Type Description
id String Session identifier.
status String Session status. See Session statuses.
currency String Session currency.
line_items UcpLineItemResponse[] Resolved cart lines with merchant pricing.
totals UcpTotal[] Order-level totals.
payment UcpPayment Payment instruments state.
links UcpLink[] Legal compliance links.
ucp UcpEnvelope Protocol envelope: version, status, capabilities, payment handlers.
buyer UcpBuyer Echoed buyer details.
fulfillment UcpFulfillment Resolved fulfillment methods and options.
discounts UcpDiscountsResponse Applied and submitted discounts.
messages UcpMessage[] Structured messages. Always evaluate.
order UcpOrder Present once the order is placed.
continue_url String Step-up URL when status is requires_escalation.

UcpCompleteSessionRequest

Parameter Type Description
payment UcpPayment Payment instruments to charge.
signals map Completion-time signals.

UcpLineItemRequest

Parameter Type Description
item UcpItem The item reference.
quantity Integer (min 1) Units requested.
id String Client-assigned line identifier.

UcpLineItemResponse

Parameter Type Description
id String Line identifier within the session.
item UcpItem Resolved item, including merchant price.
quantity Integer Units.
totals UcpTotal[] Per-line totals in minor units.

UcpItem

Parameter Type Description
id String (minLength 1) Merchant product or SKU identifier.
price Integer (int64, min 0) Unit price in minor units (merchant-authoritative).
title String Display title.

UcpBuyer

Parameter Type Description
email String (email, max 256) Buyer email.
first_name String (max 256) Buyer first name.
last_name String (max 256) Buyer last name.
consent UcpBuyerConsent Consent flags forwarded to the merchant.

UcpBuyerConsent

Parameter Type Description
analytics Boolean Analytics consent.
marketing Boolean Marketing consent.
preferences Boolean Preferences consent.
sale_of_data Boolean Sale-of-data consent.

UcpContext

Parameter Type Description
address_country String ISO 3166-1 alpha-2 country/region.
address_region String Region or state.
postal_code String Postal or ZIP code.
currency String Currency hint (resolution order: request → context → merchant default).
language String Preferred language, for example, en-US.
intent String Shopper intent hint.
eligibility String[] Eligibility signals evaluated by the merchant.

UcpFulfillment

Parameter Type Description
methods UcpFulfillmentMethod[] Available or selected fulfillment methods.

UcpFulfillmentMethod

Parameter Type Description
id String Method identifier.
type String Fulfillment type. Possible values: shipping, pickup.
line_item_ids String[] Line items this method covers.
destinations UcpFulfillmentDestination[] Candidate destinations.
selected_destination_id String Chosen destination id.
groups UcpFulfillmentGroup[] Option groups per line-item set.

UcpFulfillmentDestination

Parameter Type Description
id String (minLength 1) Destination identifier.
street_address String Street address.
extended_address String Apartment, suite, unit.
address_locality String City or locality.
address_region String State or region.
address_country String ISO 3166-1 alpha-2 country/region.
postal_code String Postal or ZIP code.

UcpFulfillmentGroup

Parameter Type Description
id String (minLength 1) Group identifier.
line_item_ids String[] Line items in this group.
options UcpFulfillmentOption[] Selectable options for the group.
selected_option_id String Chosen option id.

UcpFulfillmentOption

Parameter Type Description
id String Option identifier. Pass as selected_option_id.
title String Display name, for example, Express.
description String Additional detail.
totals UcpTotal[] Cost of the option in minor units.

UcpDiscountsRequest

Parameter Type Description
codes String[] Discount or promo codes to apply.

UcpDiscountsResponse

Parameter Type Description
codes String[] All submitted codes.
applied UcpAppliedDiscount[] Successfully applied discounts.

UcpAppliedDiscount

Parameter Type Description
amount Integer (int64) Discount amount in minor units.
code String Submitted code.
title String Human-readable discount name.
automatic Boolean true if applied without a code.
method String Allocation method.
eligibility String Eligibility basis.
priority Integer Application priority.
provisional Boolean true if not yet finalized.
allocations UcpDiscountAllocation[] Per-line breakdown (path, amount).

UcpPayment

Parameter Type Description
instruments UcpPaymentInstrument[] Payment instruments.

UcpPaymentInstrument

Parameter Type Description
id String Instrument identifier.
handler_id String Handler from ucp.payment_handlers.
type String Instrument type, for example, card.
selected Boolean Whether this instrument is selected to charge.
credential UcpPaymentInstrumentCredential Tokenized credential.
display UcpPaymentInstrumentDisplay Masked display metadata.
billing_address UcpFulfillmentDestination Billing address for the instrument.

UcpPaymentInstrumentCredential

Parameter Type Description
token String UCP token from the tokenization handler.
type String Credential type.

UcpPaymentInstrumentDisplay

Parameter Type Description
brand String Card brand, for example, visa.
last_digits String Last digits for display.
email String Associated email.
rich_text_description String Formatted description.

UcpEnvelope (ucp)

Parameter Type Description
version String Protocol version.
status String Envelope status, for example, success or error.
capabilities map Supported capabilities keyed by name, for example, checkout.
payment_handlers map Handlers keyed by merchant identifier. See UcpPaymentHandler.

UcpPaymentHandler

Parameter Type Description
id String Handler id, for example, adyen. Use as handler_id at Complete session.
version String Handler version.
config UcpPaymentHandlerConfig Handler configuration.

UcpPaymentHandlerConfig

Parameter Type Description
merchant_id String Merchant identifier to bind at tokenization.
allowed_payment_methods UcpAllowedPaymentMethod[] Accepted methods, each with a type.

UcpTotal

Parameter Type Description
type String Total type, for example, subtotal, tax, shipping, total.
amount Integer (int64) Amount in minor units. For example, 12900 = $129.00.

UcpLink

Parameter Type Description
type String Link type. Possible values: terms_of_service, privacy_policy, return_policy.
url String Absolute URL.

UcpMessage

Parameter Type Description
code String Machine-readable reason code.
content String Human-readable message. Surface when type is error.
type String Message type. Possible values: error, warning, info.
severity String Handling guidance. Possible values: recoverable, requires_buyer_input, requires_buyer_review, unrecoverable.
path String JSON path to the affected field.

UcpOrder

Parameter Type Description
id String Order identifier.
permalink_url String Permanent URL to the merchant order page.

UcpTokenizeRequest

Parameter Type Description
binding UcpBinding Binding context (checkout_id, identity).
credential UcpCredential Card credential to tokenize.
session_context UcpSessionContext Device and network context.

UcpBinding

Parameter Type Description
checkout_id String (minLength 1) Session id this token is bound to.
identity UcpIdentity Participant identity the token is bound to.

UcpIdentity

Parameter Type Description
access_token String (minLength 1) The public merchant identifier.

UcpCredential

Parameter Type Description
type String Credential discriminator. Value: card.
card_number_type String Card number type. Possible values: fpan, network_token.
number String (12–19 digits) Card number.
cryptogram String Required for network_token.
eci_value String (max 2) ECI value for network tokens.
expiry_month Integer (1–12) Expiry month.
expiry_year Integer Expiry year (four digits).
cvc String (3–4 digits) Security code.
name String Cardholder name.

UcpSessionContext

Parameter Type Description
ip_address String Shopper IP address.
user_agent String Shopper user agent.
accept_language String Accept-Language value.
device_fingerprint String Device fingerprint.
session_id String Agent-shopper session id.

UcpTokenizeResponse

Parameter Type Description
token String The UCP token value. Single-use, valid one hour.