Commerce Hard

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:

StageWhat the agent does
DiscoveryFinds a product/service in a catalog
CartBuilds a cart, checks availability
CheckoutPlaces the order and payment
Order managementTracks 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'

Sources