What UCP reaches
UCP's checkout capability is a narrower contract than the Sessions API. This page says exactly where the edges are and what to use instead — so you find out here rather than three days into an integration.
How to read this
AgentAgentEscalatesEscalatesrequires_escalation with a continue_url that resumes where you left off.ElsewhereElsewhereCoverage
Every row of the Sessions checkout surface, and where it lands.
PassesAgentGift cardsAgentMembershipsEscalatesPhysical productsEscalatesGifting a productElsewherepurchaseProduct on the public GraphQL API.Class registrationAgentWaivers & intake formsEscalatesWaitlistsEscalatesrequires_buyer_review and a link.Choosing a spotEscalatesAppointment bookingElsewherebookActivityTime on the public GraphQL API.League & team sign-upElsewhereRegistering a child or guestElsewhereCard paymentAgentFree checkoutAgentDiscount & gift-card codesAgentSales taxAgent3-D SecureEscalatesPaying with an existing passElsewhereregisterForActivity with a productPurchase.The buyer’s saved cardsElsewhereRefunds & cancellationsElsewherecancel abandons an unfinished checkout; it never reverses a completed order. Cancelling a registration is cancel_registration on the public MCP server, and refunds are the business's to issue.Browsing what’s for saleElsewhereReading past ordersElsewheremy_registrations on the public MCP server.Order lifecycle eventsElsewhereShape of a checkout
Constraints that come from how Sessions sells, not from the protocol.
One line itemQuantity is always 1Passes need a linked identityAnonymous checkout is a business settingPaid checkout needs Stripe onboardingParts of UCP not implemented
The spec is broader than what Sessions advertises. Nothing here is announced in the manifest, so a conformant agent already knows not to try — this is for humans planning an integration.
Cart capabilitydev.ucp.shopping.cart. Checkout sessions are the only container.Fulfillment capabilityDiscount capabilityOrder capabilityGET /orders/<id> and no UCP-shaped lifecycle webhook.Message signingsigning_keys is advertised empty rather than populated with a key nothing signs with.Embedded (ECP) transportA2A transportrest, mcp, and embedded are advertised.Localized messagesAccept-Language. Product and session names come back in the business's own content.Reaching the rest
Everything marked Elsewhere is reachable today — just not through this capability. The public GraphQL API is the full surface the Sessions website itself uses, and the public MCP server wraps its most common tasks as agent tools.
create_checkout — the ids are the same.The full public schema is documented field by field. Public GraphQL API