Product Data and Transports
5.1 Product Data Structure
UCP uses JSON to describe products. All monetary amounts follow ISO 4217 minor currency units:5.2 Required and Optional Fields
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique product identifier |
name | string | Yes | Product name |
price.amount | integer | Yes | Price in ISO 4217 minor currency units |
price.currency_code | string | Yes | ISO 4217 currency code |
availability | string | Yes | in_stock / out_of_stock / preorder |
images | array | Yes | At least one product image |
description | string | No | Product description |
brand | string | No | Brand name |
category | string | No | Product category |
sku | string | No | Stock Keeping Unit |
gtin | string | No | Global Trade Item Number |
variants | array | No | Variant list (for multi-option products) |
compare_at_price | object | No | Original / strikethrough price |
url | string | No | Product page URL |
5.3 Variant Management
Products with multiple options (color, size, material, etc.) use thevariants array:
- Each variant has its own
id,sku,price, andavailability - The
attributesobject defines option attributes as key-value pairs - AI agents can present all available options when displaying a product
- Variants can have different prices (e.g., larger sizes at a premium)
5.4 Four Transport Mechanisms
UCP product data can be delivered to AI agents via four transport mechanisms, each suited to different integration scenarios.REST Transport (OpenAPI 3.x)
The most traditional server-to-server integration approach. Merchants provide a REST API conforming to the OpenAPI 3.x specification:MCP Transport (OpenRPC / JSON-RPC 2.0)
An AI-native transport mechanism. UCP exposes catalog tools via the MCP protocol, defined using OpenRPC schemas. Three standard tools are provided: search_catalog — Search the product catalogA2A Transport (Agent Card Specification)
Designed for multi-agent collaboration scenarios. Merchants publish an Agent Card that enables other AI agents to discover and connect with them. Agent Cards follow Google’s Agent-to-Agent protocol specification. Applicable scenarios include: a shopping agent invoking a payment agent, a price-comparison agent querying multiple merchant agents simultaneously, and similar patterns.Embedded Transport (OpenRPC Schema)
A transport mechanism for embedded scenarios that uses only the OpenRPC schema (without the full MCP protocol). Suitable for merchants embedding an AI shopping assistant within their own website.5.5 Transport Comparison
| Transport | Schema Format | Authentication | Use Case | Implementation Complexity |
|---|---|---|---|---|
| REST | OpenAPI 3.x | API Key / OAuth | Server-to-server, platform integration | Low |
| MCP | OpenRPC (JSON-RPC 2.0) | MCP auth | Direct AI application integration | Medium |
| A2A | Agent Card Spec | Inter-agent auth | Multi-agent collaboration | Medium |
| Embedded | OpenRPC schema | In-page auth | Embedded AI assistants | Low |
5.6 Price Format Specification
UCP uses integers to represent prices (ISO 4217 minor currency units), avoiding floating-point precision issues:| Currency | currency_code | Exponent | Representation of $59.00 or equivalent |
|---|---|---|---|
| US Dollar | USD | 2 | 5900 |
| Euro | EUR | 2 | 5900 |
| Japanese Yen | JPY | 0 | 59 |
| Kuwaiti Dinar | KWD | 3 | 59000 |
5.7 Search and Filtering
UCP defines standardized search and filter parameters:| Parameter | Type | Description |
|---|---|---|
query | string | Full-text search keyword |
category | string | Category filter |
price_min | integer | Minimum price (minor currency units) |
price_max | integer | Maximum price (minor currency units) |
availability | string | Stock status filter |
brand | string | Brand filter |
limit | integer | Results per page (recommended max: 50) |
offset | integer | Offset for pagination |
sort | string | Sort order (price_asc, price_desc, relevance) |
Next chapter: Security and Authentication — RFC 9421 signatures, JWK keys, mTLS, and Content-Digest