Implementation checklist
Pre-implementation
| Check | |
|---|---|
| ☐ | Domain has HTTPS configured |
| ☐ | Google Merchant Center account is active (if using the Google path) |
| ☐ | Product feed exists in a machine-readable format (JSON or XML) |
| ☐ | Payment processor (PSP) integration is already in place |
| ☐ | Policy pages are live: returns, privacy, and shipping |
Capability discovery
| Check | |
|---|---|
| ☐ | /.well-known/ucp is hosted at the domain root |
| ☐ | File is valid JSON — no trailing commas, correct syntax |
| ☐ | Response header is Content-Type: application/json |
| ☐ | File is publicly accessible with no authentication required |
| ☐ | Both product_catalog and checkout capabilities are declared |
Catalog
| Check | |
|---|---|
| ☐ | GET /ucp/products returns valid product objects |
| ☐ | Each product has id, name, description, price, and availability |
| ☐ | Products with multiple options have explicit variant objects |
| ☐ | Prices are in the smallest currency unit (cents, not dollars) |
| ☐ | Availability statuses use the correct enum values |
| ☐ | Product images are absolute HTTPS URLs |
Checkout
| Check | |
|---|---|
| ☐ | POST /ucp/checkout accepts cart items and shipping address, returns shipping options |
| ☐ | POST /ucp/checkout/:id/confirm accepts a payment token and places the order |
| ☐ | Inventory is re-validated at confirmation time (not just at cart creation) |
| ☐ | Structured error responses are returned for payment failure, out-of-stock, and invalid address |
| ☐ | Idempotency keys are supported to prevent duplicate orders |
| ☐ | expires_at is included in the cart creation response |
Post-purchase
| Check | |
|---|---|
| ☐ | GET /ucp/orders/:id returns current order status |
| ☐ | Fulfillment and tracking updates are sent via webhook |
| ☐ | Returns or cancellations endpoint is available (recommended) |
Implementation steps
Implement capability discovery
Start with
/.well-known/ucp. This is the fastest path to partial readiness — even before your catalog and checkout are live, publishing a manifest with your planned endpoints signals to Google and other agents that your domain is UCP-capable.See: UCP capability discoveryExpose your catalog endpoint
Build
GET /ucp/products. Focus on getting the data shape right: explicit variant objects for every product with options, prices in cents, and correct availability enum values. Run the Readiness Score after each iteration.See: Product catalog endpointImplement checkout endpoints
Build cart creation (
POST /ucp/checkout) and order confirmation (POST /ucp/checkout/:id/confirm). Integrate your PSP for payment token processing. Return structured errors for every failure mode.See: Checkout and paymentsAdd post-purchase hooks
Implement
GET /ucp/orders/:id for order status lookups. Configure fulfillment webhooks so customers receive tracking updates inside the AI conversation without leaving it.Testing commands
Run these commands manually to verify each endpoint before using the automated audit:Common errors and fixes
| Error | Likely cause | Fix |
|---|---|---|
/.well-known/ucp returns 404 | File not at domain root, or server blocks .well-known paths | Move file to root domain; add explicit server route |
Content-Type: text/plain | Host defaults to plain text for unknown extensions | Set Content-Type: application/json in server config or use a route handler |
Catalog returns empty products array | Endpoint not wired to your data source | Connect to live inventory and verify query returns results |
| Checkout returns 500 | PSP credentials missing or payment token invalid | Check environment variables; verify PSP test/live mode |
| Price mismatch between catalog and checkout | Prices cached too long or expressed in dollars instead of cents | Reduce cache TTL to 5 minutes; confirm all prices are in smallest currency unit |
| Variant ID not found at checkout | Variant ID in catalog differs from ID passed in checkout | Ensure variant_id in checkout matches id in the variant object from your catalog |
Validation reference
| Check | Tool | API endpoint |
|---|---|---|
| Full readiness audit | Readiness Score | POST /api/audit |
| Manifest generation and validation | Manifest Generator | POST /api/manifest |
| Feed quality check | Built into Readiness Score | — |
| Manifest-only validation | Manifest Generator | POST /api/manifest/validate |
Choose your implementation path
Google Merchant Center
Recommended for most brands. Builds on your existing Merchant Center feed.
Shopify
Native UCP on Shopify — fastest path for Shopify merchants.
Custom or headless
Build UCP endpoints on any backend stack. Full control over data and logic.
Agency rollout
Multi-client playbook for agencies implementing UCP at scale.