{
"ucp": {
"version": "2026-01-23",
"services": {
"dev.ucp.shopping": [
{
"version": "2026-01-23",
"spec": "https://ucp.dev/specification/overview",
"transport": "rest",
"endpoint": "https://business.example.com/ucp/v1",
"schema": "https://ucp.dev/2026-01-23/services/shopping/rest.openapi.json"
},
{
"version": "2026-01-23",
"transport": "mcp",
"endpoint": "https://business.example.com/ucp/mcp"
},
{
"version": "2026-01-23",
"transport": "a2a",
"endpoint": "https://business.example.com/.well-known/agent-card.json"
}
]
},
"capabilities": {
"dev.ucp.shopping.checkout": [{ "version": "2026-01-23" }],
"dev.ucp.shopping.discount": [{ "version": "2026-01-23", "extends": "dev.ucp.shopping.checkout" }],
"dev.ucp.shopping.fulfillment": [{ "version": "2026-01-23", "extends": "dev.ucp.shopping.checkout" }]
},
"payment_handlers": {
"com.google.pay": [{ "id": "gpay_merchant_handler", "version": "2026-01-23" }]
}
},
"signing_keys": [{ "kid": "business_2025", "kty": "EC", "crv": "P-256", "use": "sig", "alg": "ES256" }]
}
Use HTTPS endpoints and avoid trailing slashes on base endpoints. Spec and schema origins must match namespace authority.