Shopify announced UCP support in early 2026 with a gradual rollout plan. If you're waiting for native support, you might be waiting until Q4 2026 or later.
Q1 2026: Beta testing with select Shopify Plus merchants only
Q2 2026: Rollout to all Shopify Plus tier
Q3 2026: Rollout to standard Shopify plans begins
Q4 2026: Full availability expected (maybe)
Translation: If you're on standard Shopify, you're probably waiting 6-9 months minimum.
When it arrives, Shopify's UCP will:
Basically, flip a switch and you're compliant.
Option 1: Third-Party Shopify Apps
Several apps in the Shopify App Store provide UCP now:
How they work:
Option 2: External Proxy Service
Middleware service sits between AI agents and your Shopify store:
Option 3: Wait for Native Support
The risk: Losing 6-12 months of AI-referred traffic to competitors
The cost at $847/day average:
Plus competitors building trust scores you can never catch up to.
They support 4+ million stores - Rolling out infrastructure changes at that scale takes time
They need rock-solid implementation - One bug affects millions of merchants
They're coordinating with payment providers - AP2 integration with Shopify Payments is complex
This is smart engineering but bad timing for merchants who need UCP now.
Eventually no, but there's a migration path:
You don't lose anything by starting with third-party solutions. You lose everything by waiting.
If you're on Shopify Plus ($2,000+/month plans), you'll get native UCP sooner—probably Q2 2026.
If you're on standard Shopify ($29-299/month plans), you're in the later waves—Q3-Q4 2026 at best.
Don't wait. Get compliant today with a third-party app.
Start capturing AI traffic NOW. Build trust with AI platforms while competitors wait. Generate revenue for 6-9 months before native support even arrives.
When Shopify's native support launches, migrate to it if you want. But you'll already have:
The UCP specification changes over time with new features, security patches, and improvements. Your implementation needs to handle updates without breaking.
In your manifest, you declare which UCP version you're using:
{
"version": "1.0",
...
}
AI agents see this and interact with your store using that version's rules.
The good news: AI agents support multiple UCP versions simultaneously.
If you declare version 1.0, agents use 1.0 rules—even if they support 2.0. This prevents breaking changes from disrupting your store.
Example:
Current version: Fully supported, recommended for new implementations
Previous version: Supported for 12 months after new version release
Older versions: May work but not officially supported
Deprecated versions: AI agents will eventually stop accepting them
Example timeline:
Required updates (can't delay):
Optional updates (you decide when):
1. Review changelog at ucp.dev
See what changed, what's new, what breaks backward compatibility
2. Test in staging environment first
Never update production without testing. One broken endpoint = lost revenue.
3. Update manifest version number
Change "version": "1.0" to "version": "2.0" after everything works
4. Update endpoint implementations
Modify responses to match new schemas if required
5. Validate against new specification
Run validators to confirm compliance with updated spec
6. Deploy gradually with monitoring
Watch error rates, response times, conversion rates after update
7. Have rollback plan ready
If something breaks, can you quickly revert to previous version?
Subscribe to update notifications:
Check quarterly:
Set calendar reminder to review ucp.dev changelog every 3 months
Managed solutions (plugins, services):
DIY implementations:
Non-breaking changes (safe):
Your implementation keeps working without modifications.
Breaking changes (require action):
You must update code or manifest won't validate.
UCP follows semantic versioning: Major version bumps (1.0 → 2.0) can break compatibility. Minor versions (1.0 → 1.1) maintain compatibility.
Short-term (first 12 months):
Nothing. Your old version keeps working fine.
Medium-term (12-24 months):
You miss new features competitors have. Fall behind on capabilities.
Long-term (24+ months):
Version deprecated. AI agents stop accepting your manifest. You become non-compliant and invisible again.
Unless you love tracking specifications and updating code, use managed solutions that auto-update for you.
Your time is better spent running your business than managing UCP version migrations.
Most stores use standard REST APIs for UCP. JSON-RPC is a more advanced option for high-volume stores or those needing real-time bidirectional communication.
REST (Standard approach - what most stores use):
JSON-RPC (Advanced approach):
You might benefit from JSON-RPC if:
Stick with REST if:
JSON-RPC request example:
POST /api/ucp/jsonrpc
{
"jsonrpc": "2.0",
"method": "dev.ucp.shopping.checkout",
"params": {
"items": [{"id": "123", "qty": 1}],
"shipping_address": {...}
},
"id": 1
}
JSON-RPC response:
{
"jsonrpc": "2.0",
"result": {
"session_id": "sess_abc123",
"total": 49.99
},
"id": 1
}
1. Single endpoint management
Instead of managing separate URLs for checkout, orders, auth—one endpoint handles everything.
2. WebSocket support
Can upgrade connection for real-time bidirectional communication. Useful for inventory updates, order status changes.
3. Batch requests
Send multiple method calls in one HTTP request, reducing network overhead.
4. Consistent error handling
Standardized error response format across all methods.
1. More complex implementation
Need request parsing, method routing, error code mapping—all manual.
2. Harder to debug
All requests go to same URL. Harder to track which capability is failing in logs.
3. Less tooling support
REST has tons of tools (Postman, curl, browser DevTools). JSON-RPC has fewer.
4. Overkill for most stores
Unless you're high-volume, the added complexity isn't worth it.
Small-to-medium store (REST):
3 endpoints, easy to monitor, works perfectly fine for 500 AI requests/day
High-volume marketplace (JSON-RPC):
50,000 AI requests/day, WebSocket push updates, batch operations—JSON-RPC reduces overhead significantly
For 99% of stores: Use REST.
It's simpler, better documented, easier to debug, and works great even at high volume. Most managed solutions and plugins use REST.
Only consider JSON-RPC if:
Start with REST. You can always add JSON-RPC support later if your volume justifies it. Don't over-engineer at the beginning.
The manifest tells AI agents what you can do. Endpoints are where they go to actually do it—checkout, order tracking, authentication.
1. Must use HTTPS (not HTTP)
AI agents reject non-secure endpoints. Get an SSL certificate if you don't have one.
2. Must be publicly accessible
3. Must return proper HTTP status codes
4. Must include CORS headers
Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Allow-Headers: Content-Type, Authorization
Without these, browsers block AI agent requests for security reasons.
Why CORS exists:
Browsers don't let websites make requests to other domains by default. It's a security feature.
Why UCP needs it:
AI agents run in different domains (chatgpt.com, gemini.google.com). They need permission to call your API.
How to fix it:
Your server must respond to OPTIONS requests (called "preflight") telling the browser "yes, I allow cross-origin requests."
Common CORS mistakes:
Good patterns:
Bad patterns:
Content-Type must be JSON:
Content-Type: application/json
Response body must be valid JSON:
{
"status": "success",
"data": {
"order_id": "12345",
"total": 49.99
}
}
AI agents can't parse HTML or XML. JSON only.
Why rate limiting matters:
Malicious AI agents (or bugs) might spam your API. Protect yourself.
Recommended limits:
Return 429 status when exceeded:
{
"error": "rate_limit_exceeded",
"retry_after": 60
}
AI agents will back off and retry later.
WooCommerce:
Extend REST API with custom endpoints. Use WooCommerce authentication.
Shopify:
Create custom app with API access. Use Shopify's proxy system.
Custom platform:
Add routes in your framework (Express, Django, Laravel, etc.)
Before going live:
1. Test with curl:
curl -X POST https://yourstore.com/api/ucp/checkout \
-H "Content-Type: application/json" \
-d '{"items": [{"id": "123", "qty": 1}]}'
2. Check CORS in browser console:
Open DevTools Network tab, look for OPTIONS requests, verify CORS headers
3. Validate response JSON:
Use JSONLint to confirm responses match expected schema
4. Load test:
AI traffic is bursty. Test with 100+ simultaneous requests
Track these metrics:
Set up alerts when error rates spike.
Works in Postman, fails with AI agents:
Usually CORS. Postman doesn't enforce CORS, browsers do.
Works with one AI, fails with another:
Different AI agents have different timeout tolerances. Optimize response times.
Works sometimes, fails others:
Load balancing issues or database connection limits. Check infrastructure.
Identity linking uses OAuth 2.0 to connect AI assistants with customer accounts on your store—enabling personalized shopping without exposing passwords or sensitive data.
With customer authorization, AI agents can:
Customer: "ChatGPT, reorder my last purchase from Best Running Shoes"
1. AI needs account access
"To access your order history, I need permission to connect with your account"
2. Customer authorizes connection
Gets redirected to your store's login page, signs in, approves AI access
3. Your store returns access token
AI agent receives token proving customer authorized the connection
4. AI uses token for authenticated requests
Can now access order history, saved addresses, etc. on customer's behalf
5. Customer can revoke access anytime
In account settings: "Disconnect ChatGPT" removes AI agent access
AI never sees your password
Customer logs in on YOUR website, not in the AI interface. AI only gets an access token.
Granular permissions (scopes)
You control exactly what AI can access:
Token expiration
Access tokens expire after 1-2 hours. Refresh tokens last 30 days. Customer must reauthorize periodically.
Easy revocation
Customer can disconnect AI access instantly. Revoking permission invalidates all tokens.
You need to build:
Use PKCE (Proof Key for Code Exchange)
Prevents authorization code interception attacks. Required by modern OAuth specs.
Set appropriate token lifetimes
Access tokens: 1-2 hours (short-lived for security)
Refresh tokens: 30 days (longer for convenience)
Log all authenticated actions
Track what AI agents do with customer accounts for audit trails and dispute resolution.
Show active connections in account settings
"Connected AI Assistants: ChatGPT (last used 2 days ago)" with [Disconnect] button
On authorization screen, clearly show:
Follow data protection laws:
Without identity linking:
Customer: "Reorder my usual coffee beans"
AI: "I don't have access to your order history. Can you tell me which product?"
Customer: "Never mind, I'll do it manually"
With identity linking:
Customer: "Reorder my usual coffee beans"
AI: "Reordering Colombian Dark Roast, 2 lbs, same as last month. Confirm?"
Customer: "Yes"
Done in 10 seconds.
Priority order:
Identity linking is powerful but not required to start. Get compliant with checkout first, add OAuth later.
Most e-commerce platforms already have OAuth:
You're often just adapting existing OAuth to work with UCP, not building from scratch.
The order capability lets AI assistants retrieve order status, tracking info, and history without customers having to log into your website.
Customer asks AI: "Where's my order from Best Running Shoes?"
AI agent:
Customer gets answer instantly without opening browser, logging in, or hunting for tracking numbers.
For each order, return:
Use these exact status strings:
AI agents rely on these to give accurate responses. Custom status names confuse them.
Stale data breaks trust:
Customer: "Where's my order?"
AI: "Still processing"
Customer checks manually: "It was delivered 2 days ago!"
Result: Customer loses trust in both your store AND the AI assistant.
Solution: Keep order data synchronized with your shipping provider. Update status within minutes, not hours.
Polling (AI agents request updates):
Webhooks (you push updates to AI platforms):
Start with polling. Add webhooks later for competitive advantage.
Never expose order details without authentication:
Redact sensitive information:
Support order revocation:
Customers should be able to revoke AI access to their order history in account settings.
Order not found:
Return clear "no order found" response instead of 404 error. AI can explain to customer.
Multiple orders for same customer:
Support filtering by date range or order ID. AI might ask "show orders from last month."
Partial shipments:
If order ships in multiple packages, return tracking for each package separately.
Returns and refunds:
Include return status and refund processing info when applicable.
Reduces support ticket volume:
"Where's my order?" is the #1 customer service question. AI agents answer it automatically.
Improves customer experience:
Instant answers via AI vs logging in, finding order number, checking tracking manually.
Builds AI trust scores:
Stores that provide accurate real-time updates get higher reliability ratings from AI platforms.
If you're just starting out:
Don't try to implement all three at once. Master each before adding the next.
The checkout capability is the money-maker. It lets AI agents create shopping carts, calculate totals, and complete purchases on behalf of customers.
The AI agent can:
1. Customer asks AI to buy something
"Order me running shoes under $100"
2. AI agent creates checkout session
Sends POST request to your checkout endpoint with product IDs, quantities, shipping address
3. Your system calculates total
Product price + tax + shipping = total amount
4. AI agent authorizes payment
Using Agent Payments Protocol (AP2), customer authorizes the charge
5. Your system processes payment
Charges the payment method, confirms order
6. AI agent receives confirmation
Gets order ID, tracking info, receipt—passes it to customer
Incoming requests must include:
Your response must include:
1. Not handling out-of-stock scenarios
AI agent tries to buy item that's sold out. Your endpoint crashes or returns unclear error. AI marks you as unreliable.
Solution: Return clear "item unavailable" response with alternative suggestions
2. Tax calculation errors
Calculating wrong tax rate for customer's region. Could be illegal, definitely breaks trust.
Solution: Use proper tax APIs (Stripe Tax, TaxJar, Avalara) for accurate calculations
3. Failing under load
Your endpoint works fine for 10 requests/hour but crashes when 100 AI agents hit it simultaneously.
Solution: Load test before going live. AI traffic is bursty—prepare for spikes
4. Not validating payment authorizations
Processing orders without properly verifying AP2 payment mandates. Opens you to fraud.
Solution: Always validate cryptographic signatures on payment authorizations
Never store sensitive payment data
Use tokenization. Never log full credit card numbers. AI agents send payment tokens, not raw card data.
Validate everything
Don't trust any data from AI agents. Validate addresses, check inventory, verify payment authorization.
Rate limiting
Protect against malicious AI agents trying to overwhelm your system. Limit requests per IP/token.
Audit logging
Log all transactions for dispute resolution. Include timestamps, AI agent ID, actions taken.
Before going live, test:
AI agents are unforgiving. One broken checkout experience and they might avoid your store permanently.
You don't need to rebuild checkout from scratch. Most implementations:
The UCP endpoint just translates between AI agent requests and your platform's existing checkout.
They tell AI agents exactly what your store can do—from browsing products to completing checkout to tracking orders.
dev.ucp.shopping.checkout
Lets AI agents create shopping carts and complete purchases. This is the most important one—without it, AI agents can't buy from you.
What it enables: Add items to cart, calculate tax, process payment, receive order confirmation
dev.ucp.shopping.order
Lets AI agents check order status and tracking info.
What it enables: "Where's my order?" queries, delivery tracking, order history
dev.ucp.common.identity_linking
Lets AI agents connect to customer accounts using OAuth.
What it enables: Personalized recommendations, saved addresses, order history, one-click checkout
In your manifest, list only what you've ACTUALLY implemented:
"capabilities": [ "dev.ucp.shopping.checkout", "dev.ucp.shopping.order" ]
Then map each to its endpoint:
"endpoints": {
"dev.ucp.shopping.checkout": "https://yourstore.com/api/ucp/checkout",
"dev.ucp.shopping.order": "https://yourstore.com/api/ucp/orders"
}
1. Only declare what actually works
AI agents will TEST every capability you declare. If you claim to support checkout but your endpoint returns 404, you get blacklisted.
It's better to support just one capability perfectly than three capabilities poorly.
2. Use exact capability names from the spec
AI agents won't try to guess what you meant. Typos = rejected.
3. Every capability needs a working endpoint
You can't declare a capability without providing the URL where AI agents can actually use it:
❌ Declaring "checkout" but no endpoint URL ❌ Endpoint returns 500 errors ❌ Endpoint requires authentication when it shouldn't ✅ Endpoint returns valid responses matching schema
Phase 1 (Week 1): Just Checkout
Phase 2 (Week 2-3): Add Order Tracking
Phase 3 (Month 2): Identity Linking
Don't try to implement everything at once. One perfect capability beats three broken ones.
Scenario: You declare "checkout" capability but your endpoint doesn't actually work.
What happens:
AI platforms share reliability data. One failure can hurt you across multiple AI assistants.
The UCP spec is evolving. Future capabilities might include:
Early adopters who master current capabilities will be ready to add new ones as they're released.
Start with checkout only. Get compliant fast. Add more capabilities later as you grow.
Perfect execution of one capability is infinitely better than broken implementation of all three.
AI agents validate your JSON against strict schemas. Even one misplaced comma, and they reject your entire store. No exceptions, no mercy.
1. Field names are case-sensitive
2. Strings must use double quotes
3. No trailing commas
4. All URLs must use HTTPS
5. Arrays need brackets even for single items
Missing commas between fields:
❌ {
"version": "1.0"
"merchant": {...}
}
✅ {
"version": "1.0",
"merchant": {...}
}
Extra comma after last field:
❌ {
"version": "1.0",
"merchant": {...},
}
✅ {
"version": "1.0",
"merchant": {...}
}
Forgetting quotes on field names:
❌ {
version: "1.0"
}
✅ {
"version": "1.0"
}
Fail any step? Rejected. No partial credit.
Human developers can look at messy JSON and figure out intent. AI agents can't take risks with customer money:
So they validate everything exactly against the spec.
Even though it seems helpful, you CANNOT add comments:
❌ {
// Store configuration
"version": "1.0",
"merchant": {...} /* merchant info */
}
✅ {
"version": "1.0",
"merchant": {...}
}
JSON spec doesn't support comments. Adding them breaks parsing.
Use these tools to catch errors:
Don't guess if it's valid. Test before deploying.
Your JSON file must be UTF-8 encoded. Other encodings can cause invisible characters that break parsing even though the JSON "looks fine" to human eyes.
Symptoms: JSON validator says it's valid but AI agents reject it.
Unless you're a developer who loves debugging JSON syntax errors at 2am, use managed solutions that generate valid JSON automatically.
They handle:
Your time is worth more than fighting JSON syntax issues.
It tells AI assistants everything they need to know: who you are, what you can do, and how to interact with you.
1. Version
Which UCP spec you're using (currently "1.0")
2. Merchant Info
3. Capabilities Array
List of features you support (like "dev.ucp.shopping.checkout")
4. Endpoints Object
Maps each capability to its API endpoint URL
5. Supported Payment Methods
Array of payment types you accept (credit_card, paypal, etc.)
6. Supported Currencies
Array of currency codes (USD, EUR, GBP, etc.)
AI agents trust stores more when these are filled out.
{
"version": "1.0",
"merchant": {
"id": "store_abc123",
"name": "Best Running Shoes",
"domain": "bestrunningshoes.com",
"contact_email": "support@bestrunningshoes.com"
},
"capabilities": [
"dev.ucp.shopping.checkout"
],
"endpoints": {
"dev.ucp.shopping.checkout": "https://bestrunningshoes.com/api/ucp/checkout"
},
"supported_payment_methods": ["credit_card", "paypal"],
"supported_currencies": ["USD", "CAD"]
}
1. Invalid JSON syntax
AI agents are picky. One syntax error = entire manifest rejected.
2. Wrong capability names
3. HTTP instead of HTTPS
AI agents reject non-secure endpoints for security reasons.
4. Declaring capabilities you don't actually have
AI agents test your capabilities. False advertising = instant blacklist.
Merchant ID: Can't change once set (AI agents track your history)
Domain: Must exactly match where manifest is hosted
Capabilities: Only declare what you've fully implemented
Endpoint URLs: Must return 200 status and valid responses
Currency codes: Must follow ISO 4217 (three-letter codes)
Unlike humans who can interpret messy data, AI agents need perfect structure. They're making buying decisions on behalf of real people with real money—they can't afford to guess or assume.
One invalid field might mean:
So they reject anything that doesn't match the spec exactly.
Managed solutions and plugins generate valid manifests automatically. You don't have to memorize these rules or hand-code JSON—the tools handle validation for you.