The open standard for agentic commerce. Plain-English spec annotations, architecture breakdowns, and practical guidance for developers building on UCP.
The Universal Commerce Protocol (UCP) is an open-source standard that lets AI agents discover products, build carts, negotiate terms, and complete purchases with any merchant. It standardizes the entire commerce lifecycle: discovery, cart, checkout, payment, and post-purchase (orders, fulfillment, returns).
Announced January 11, 2026 at NRF by Google and Shopify, UCP is now backed by 50+ partners including Walmart, Target, Amazon, Visa, Mastercard, Stripe, Adyen, Best Buy, Macy's, Etsy, Wayfair, Booking.com, Marriott, Hilton, DoorDash, and Uber Eats. It is expanding beyond shopping into Lodging and Food.
The spec is published at ucp.dev under Apache License 2.0. Reference implementations include Shopify's UCP Proxy and the UCP CLI.
The core concepts: discovery, governance, negotiation, services, capabilities, and extensions. Start here if you are new to UCP.
Read overview →How UCP fits together: the layered stack, transport options, the trust model, and how agents interact with merchants.
View architecture →The building blocks: checkout, catalog, cart, fulfillment, discounts, identity linking, and how extensions work.
Browse capabilities →How UCP (Google/Shopify) compares to ACP (OpenAI/Stripe) across scope, payments, transport, and maturity.
Compare protocols →UCP standardizes the full journey from product discovery to post-purchase support:
| Stage | What Happens | Key Endpoints |
|---|---|---|
| Discovery | Agent fetches the merchant's /.well-known/ucp profile to learn what capabilities and transports they support |
GET /.well-known/ucp |
| Negotiation | Agent and merchant compute the intersection of their capabilities. Server selects the active set. | Profile headers |
| Catalog Search | Agent searches products across the global catalog or a single merchant's storefront | GET /catalog, GET /products/{id} |
| Cart | Agent builds a cart with line items, applies localization, estimates totals | POST /carts, PUT /carts/{id} |
| Checkout | Cart converts to a checkout session. Buyer info, fulfillment, payment instruments collected. | POST /checkout-sessions, PUT /checkout-sessions/{id} |
| Payment | Agent submits payment via AP2 (Agent Payments Protocol). Merchant's payment handler processes it. | POST /checkout-sessions/{id}/complete |
| Escalation | If the transaction needs human input (e.g. 3DS, address selection), merchant returns a continue_url |
Response: requires_escalation |
| Order | Post-purchase: order confirmation, fulfillment events, tracking, returns, refunds | Webhooks, GET /orders/{id} |
No central UCP server. Merchants publish profiles at /.well-known/ucp. Agents discover capabilities the same way browsers find robots.txt.
Server-selects architecture. The merchant determines active capabilities from the intersection of both parties' declared capabilities. No integration meetings.
Reverse-domain naming (dev.ucp.shopping.checkout) encodes authority. No central registry needed. Vendors use their own namespace for extensions.
Same business logic exposed via REST, MCP (JSON-RPC), A2A, and embedded. Swap the transport without changing the logic.
Capabilities can extend others. Fulfillment extends checkout. Discounts extend checkout and cart. Multi-parent extensions are supported.
Payment-agnostic. UCP delegates to the Agent Payments Protocol (AP2), supporting cards, bank transfers, and stablecoins via any processor.
Every UCP-enabled merchant publishes a JSON profile at /.well-known/ucp. This is the entry point for agent discovery:
{
"ucp": {
"version": "2026-04-08",
"services": {
"dev.ucp.shopping": [
{
"version": "2026-04-08",
"transport": "rest",
"endpoint": "https://shop.example.com/ucp/v1",
"schema": "https://ucp.dev/.../rest.openapi.json",
"spec": "https://ucp.dev/.../overview"
},
{
"version": "2026-04-08",
"transport": "mcp",
"endpoint": "https://shop.example.com/ucp/mcp",
"schema": "https://ucp.dev/.../mcp.openrpc.json"
}
]
},
"capabilities": {
"dev.ucp.shopping.checkout": [...],
"dev.ucp.shopping.fulfillment": [...],
"dev.ucp.shopping.discount": [...],
"dev.ucp.common.identity_linking": [...]
},
"payment_handlers": { ... }
}
}
Both business and platform profiles can be cached by both parties, enabling efficient capability negotiation within the normal request/response flow.
UCP is in early access on Google surfaces (AI Mode in Search, Gemini). Shopify merchants get UCP out of the box. The spec is live but still evolving. Non-Shopify platforms require custom adapters or modules. Payment flow via AP2 is itself pre-production. If you are building on UCP today, expect changes and track the spec version you implement against.
Step-by-step tutorials for implementing UCP on different platforms.
Visit UCP Tutorials →Common errors, troubleshooting guides, and Q&A for UCP developers.
Visit UCP Help →The authoritative specification, hosted at ucp.dev. Our docs annotate and explain it.
Visit ucp.dev →