UCP (Universal Commerce Protocol): the full purchase cycle for an agent
What UCP (Google + Shopify/Visa/…) is, why it's broader than x402/MPP, how to declare support, and how we verify it.
Updated:
What it is
UCP (Universal Commerce Protocol) is an open standard for AI-agent commerce from Google (with Shopify, Etsy, Wayfair, Target, Walmart and 20+ endorsers including Visa, Mastercard, Stripe). Unlike x402 and MPP (payment only), UCP covers the whole cycle: discovery → cart → checkout → order management.
Why it matters for AI agents
When an agent gets “order a delivery,” it needs a standard way to run the full scenario autonomously:
| Stage | What the agent does |
|---|---|
| Discovery | Finds a product/service in a catalog |
| Cart | Builds a cart, checks availability |
| Checkout | Places the order and payment |
| Order management | Tracks status, handles returns |
Transports are REST and JSON-RPC; it works with the AP2/A2A/MCP agent stacks and powers checkout in Google AI Mode and Gemini.
How to declare support
In ai-agent.json:
{ "payments": { "ucp": "https://api.example.com/ucp" } }
Or via a Link header:
Link: <https://api.example.com/ucp>; rel="ucp-endpoint"
Full integration means implementing UCP endpoints for each stage. Docs:
developers.google.com/merchant/ucp.
Common mistakes
- No declaration in
ai-agent.json/Link — the agent can’t find support. - Payment only, with no discovery/cart/order — that’s not full UCP.
- A broken endpoint at the declared URL.
How to verify
The UCP check is informational (doesn’t affect the score). The scanner looks for
a declaration: a payments.ucp field in /.well-known/ai-agent.json, or a Link
header with rel="ucp-endpoint". The real commerce flow isn’t tested.
curl -s https://example.com/.well-known/ai-agent.json | jq '.payments.ucp'
curl -sI https://example.com/ | grep -i 'ucp-endpoint'