Checkout Capability - A2A Binding
Checkout Capability - A2A Binding
Section titled “Checkout Capability - A2A Binding”This document specifies the Agent2Agent Protocol (A2A) binding for Checkout Capability.
Transport Discovery
Section titled “Transport Discovery”Businesses that support A2A transport must specify the agent card endpoint as
part of services in UCP Profile at /.well-known/ucp. This allows capable
platforms to interact with the business services over A2A Protocol.
{ "ucp": { "version": "2026-01-11", "services": { "dev.ucp.shopping": [ { "version": "2026-01-11", "spec": "https://ucp.dev/2026-01-11/specification/overview", "transport": "a2a", "endpoint": "https://example-business.com/.well-known/agent-card.json" } ] } }}Shopping Agent Profile Advertisement
Section titled “Shopping Agent Profile Advertisement”Shopping platforms interacting with the business agent must send their profile
URI as UCP-Agent request headers with every request.
UCP-Agent: profile="https://agent.example/profiles/v2025-11/shopping-agent.json"Content-Type: application/jsonHeader Mapping Reference
Section titled “Header Mapping Reference”| Header Name | Description |
|---|---|
UCP-Agent | Shopping platform application profile URI. |
X-A2A-Extensions | UCP Extension URI (specified below). |
A2A Interactions
Section titled “A2A Interactions”The A2A Protocol provides a strong foundation for inter-agent communication. A2A extensions enable communication between agents with structured data types. This enables businesses to build AI applications to leverage UCP data types for communication with platforms.
The URI for UCP A2A extension:
https://ucp.dev/2026-01-11/specification/reference
Businesses supporting UCP must advertise the extension and any optional capabilities in their A2A Agent Card to allow platforms to activate the extension.
An example:
{ "extensions": [ { "uri": "https://ucp.dev/2026-01-11/specification/reference", "description": "Business agent supporting UCP", "params": { "capabilities": { "dev.ucp.shopping.checkout": [ {"version": "2026-01-11"} ], "dev.ucp.shopping.fulfillment": [ { "version": "2026-01-11", "extends": "dev.ucp.shopping.checkout" } ] } } } ]}Agent2Agent Negotiation
Section titled “Agent2Agent Negotiation”The business agents can leverage A2A Message objects for allowing interaction
with shopping agents/platforms. The A2A Message object returned by the agent
will return structured data in DataPart objects within the message. Platforms
must pass the business agent generated contextId for subsequent turns in a
session to preserve the current context.
Business agents may also leverage A2A Task objects for scenarios where
applicable. In such scenarios, the business agent will return Task objects
with appropriate payload for interaction with the platforms. Platforms must pass
the server generated taskId along with the contextId for subsequent turns
until the task is completed.
Request Idempotency
Section titled “Request Idempotency”Business agents must leverage the messageId sent as part of the A2A Message
to detect duplicate messages from platform retries.
Checkout Functionality
Section titled “Checkout Functionality”The Checkout capability allows consumers to manage items in a checkout session
and complete the purchase process. The checkout object MUST be returned as
part of a DataPart object with key a2a.ucp.checkout.
Request format: Agentic applications can accept natural language input from users interacting with the agent to identify the user’s intent, negotiate with the user to capture any required information and then invoke the appropriate tools to perform the operation.
Examples:
- Natural language input
{ "message": { "role": "user", "parts": [ { "type": "text", "text": "add Pixel 10 Pro to my checkout" } ], "messageId": "69da8f87-991b-479e-80dc-ed92fcb57cbe", "kind": "message", "contextId": "aad14abc-4082-4748-84ca-4afff85aedfa" }}- Structured inputs on user actions
{ "message": { "role": "user", "parts": [ { "type": "data", "data": { "action": "add_to_checkout", "product_id": "PIXEL-10-PRO", "quantity": 1 } } ], "messageId": "e94a8c10-69f4-4c4c-b988-21a298302da6", "kind": "message", "contextId": "aad14abc-4082-4748-84ca-4afff85aedfa" }}Checkout Completion
Section titled “Checkout Completion”When a user is ready to make a payment, payment must be submitted to the
business agent to complete the checkout process. payment is a structured data
type specified as part of UCP. When processing a payment to complete the
checkout, payment must be submitted to the business agent as a DataPart with
attribute name a2a.ucp.checkout.payment. Any associated risk signals should be
sent with attribute name a2a.ucp.checkout.risk_signals.
Upon completion of the checkout process, the business agent must return the
checkout object containing an order attribute with id and permalink_url.
AP2 based Checkout Completion
Section titled “AP2 based Checkout Completion”Business agents can implement AP2 mandates extension that enables secure exchange of user intents and authorizations for Agent-to-Agent payment interactions. Businesses that support AP2 mandates extension for UCP must specify this in the UCP discovery document and the A2A agent card. The AP2 mandates extension is considered implicitly active when a platform and business agent advertise AP2 mandates extension in their respective profiles.
When AP2 mandates extension is enabled, the business agent must create a
detached JWS for the checkout object and must return the generated signature as
part of the DataPart as ap2.merchant_authorization.
When the user confirms the payment on a platform, the user signed checkout and
payment mandate objects must be sent as DataParts to the business agent for
completing checkout. The payment which includes the payment mandate must
be submitted as part of a DataPart with attribute name
a2a.ucp.checkout.payment. Signed checkout mandate must be specified in
the DataPart as ap2.checkout_mandate. Refer to
AP2 Mandates Extension documentation for more details about
verification and processing of the mandates to complete the checkout.