Fetch live spec: Web-search site:ucp.dev specification checkout-a2a and fetch the page for the exact message structure, DataPart keys, and Agent Card format.
Also review Google's A2A protocol spec for the underlying transport: https://google.github.io/A2A/
A2A (Agent-to-Agent) is a protocol for autonomous inter-agent communication. UCP's A2A binding lets a Platform agent talk to a Business agent using structured messages rather than REST calls.
/.well-known/ucp profile under services.dev.ucp.shopping.a2a.endpoint.DataPart objects. Business agent responds with checkout state in DataPart objects.UCP-Agent header and X-A2A-Extensions header referencing the UCP spec version.KeyDirectionPurposea2a.ucp.checkoutBothCheckout session dataa2a.ucp.checkout.payment_dataPlatform → BusinessPayment credentials for completiona2a.ucp.checkout.risk_signalsPlatform → BusinessOptional risk signalsap2.merchant_authorizationBusiness → PlatformMerchant's JWS detached content signature for AP2 mandate flowap2.checkout_mandatePlatform → BusinessSD-JWT+kb credential proving user-authorized agent checkout
Messages use A2A's standard format:
messageId: Unique ID (used for idempotency)contextId: Session/conversation IDkind: "message"role: "user" (from platform) or "agent" (from business)parts: Array of TextPart and DataPart objectsCheckout data is carried in DataPart with the appropriate key.
The Business agent uses messageId to detect duplicate requests. Task tracking uses taskId with contextId.
Before implementing, fetch the latest sample A2A Business Agent from https://github.com/Universal-Commerce-Protocol/samples (look for the a2a/ directory) to see the reference pattern.