NEW WooCommerce plugin is live โ€” Read the install guide โ†’
Insights / Sep 24, 2026

UCP REST API Documentation: The Complete 2026 Implementation Guide

UCP REST API Documentation: The Complete 2026 Implementation Guide

A few months back, a merchant came to us convinced their agentic commerce integration was broken. Agents could read their catalog just fine, but every attempt to place an order died silently. No error, no retry, nothing in their logs. When we pulled apart their setup, the problem was not the product data at all. They had shipped a beautiful UCP manifest and then wired their checkout endpoint to a transport binding the agent never spoke. They had read half of the UCP REST API documentation, implemented the discovery side, and left the transactional side pointing at nothing. This is the single most common failure mode we see, and it is exactly why we wrote this guide the way we did.

If you are here, you probably already know that the Universal Commerce Protocol defines more than one way for an agent to talk to your store. There is a REST binding, there is an MCP (Model Context Protocol) binding, and there is A2A (Agent to Agent) for agent-to-agent negotiation. Most of the confusion we untangle for clients comes down to picking the wrong transport for the job, or assuming the UCP REST API documentation covers a capability that actually lives in a different binding. Our goal in this guide is to give you the concrete, hands-on version: which endpoints exist, how authentication actually works in production, how to test calls before you go live, and where REST is the right choice versus where MCP or A2A earns its keep.

We build this infrastructure for real merchants every week, so this is written from the trenches, not from a spec skim. Where the public docs are thin or ambiguous, we will tell you what we do in practice.

TL;DR

  • REST is your default transport: The UCP REST API documentation describes a stateless, HTTP-based binding that handles discovery, catalog, cart, and checkout for the overwhelming majority of agent interactions. Start here, and only reach for MCP or A2A when REST genuinely cannot do the job.
  • Authentication is where implementations break: UCP REST supports OAuth 2.1 with PKCE, signed request tokens, and scoped API keys for server-to-server calls. Ninety percent of the failed integrations we debug trace back to token scope or clock skew, not endpoint logic.
  • Test the full transaction path, not just discovery: A conformant manifest is not the same as an agent completing a checkout. Validate discovery, cart mutation, and order creation end to end in a sandbox before you trust production traffic.

Getting Started: What the UCP REST API Actually Covers

Before you write a single line of client code, you need a clear mental model of what lives in the REST binding versus what lives elsewhere. In our experience, teams waste days because they assume “the UCP API” is one monolithic thing. It is not. The specification defines a set of capabilities, and each capability can be exposed over one or more transport bindings.

REST binding scope: The UCP REST API documentation covers the request-response interactions that map cleanly to HTTP verbs. Catalog discovery, product detail retrieval, cart creation and mutation, checkout session creation, order placement, and order status all live here. If an agent needs to fetch something or submit a discrete action, REST is the binding.

What REST does not do well: Long-running, stateful negotiations between two autonomous agents, streaming partial results, or bidirectional tool invocation are awkward or impossible over plain REST. That is where MCP and A2A come in, and we cover the tradeoffs in a dedicated section later.

If you are completely new to the protocol itself, start with our definitive guide to what UCP is and then come back here for the transport-level detail. This guide assumes you already understand why machine-readable commerce matters and are ready to implement.

The single most important thing to internalize on day one: the REST binding is your surface area for the transaction. When an agent decides to buy, that decision almost always resolves into a sequence of REST calls. Get that path right and you have covered the revenue-generating core.

  • Map capabilities to bindings: Before coding, write down which of your commerce actions will run over REST, MCP, or A2A. Most stores run everything over REST.
  • Confirm your base URL and version: The UCP REST API documentation namespaces endpoints under a versioned path. Pin to a specific version, never to a floating latest.
  • Locate your UCP manifest first: Your `.well-known/ucp.json` manifest is what agents read to discover your REST endpoints in the first place.
  • Decide on your auth model early: Choose between OAuth 2.1 and scoped keys before you build, because retrofitting auth is painful.
  • Set up a sandbox namespace: Never test cart mutations or order creation against live inventory.

Core Setup: Discovery, the Manifest, and Endpoint Structure

Every UCP REST interaction begins with discovery, and discovery begins with your manifest. An agent that wants to shop your store first fetches `/.well-known/ucp.json`. That document tells the agent which transport bindings you support, where your REST base URL lives, what authentication you require, and which capabilities are available.

What this achieves: The manifest turns your store from an opaque website into a machine-navigable commerce surface. Without it, an agent has to scrape, guess, and fail. With it, the agent reads a contract and knows exactly which endpoints to call.

In practice we see manifests that validate perfectly but point REST clients at endpoints that return 404s. This is the disconnect from our introduction. According to UCP Checker, which independently monitors 22,031+ storefronts, roughly 74 percent pass full UCP validation (16,376 verified), but we want to be blunt: a conformant manifest is not the same as an agent being able to complete a real checkout. That validation number skews heavily to Shopify and measures manifest correctness, not transactional reality. We have personally watched “validated” stores fail every single order attempt because the REST endpoints behind the manifest were never wired up.

Endpoint families in the REST binding: The UCP REST API documentation organizes endpoints into predictable families. Discovery endpoints return capabilities and catalog metadata. Catalog endpoints return products and variants. Cart endpoints create and mutate carts. Checkout endpoints create sessions and finalize orders. Order endpoints return status and history. Each family follows standard REST conventions: `GET` to read, `POST` to create, `PATCH` to mutate, `DELETE` to remove.

Versioning discipline: Pin your integration to an explicit API version in the request path or an `Accept` header. We have been burned by floating versions that changed field names mid-quarter. Every client we ship pins a version and upgrades deliberately.

For a deeper look at how these pieces fit into the overall system, our UCP technical architecture deep dive walks through the layered design that sits beneath these endpoints. If you want to understand how the manifest reshapes product feeds and SEO, our piece on machine-readable commerce covers that angle.

  • Serve your manifest at the well-known path: Agents will not find custom locations. Use `/.well-known/ucp.json` exactly.
  • Return capabilities honestly: Only advertise endpoints that actually work. A phantom capability is worse than an absent one.
  • Use predictable resource paths: Follow the endpoint family conventions so agent clients can navigate without special cases.
  • Pin an API version explicitly: Never rely on a default that can shift under you.
  • Validate manifest and endpoints together: Passing manifest validation proves nothing about whether your checkout endpoint works.

Authentication: The Section Where Most Implementations Fail

We put this early because, in our debugging experience, more UCP REST integrations break on authentication than on any other single cause. The UCP REST API documentation supports several auth methods, and choosing wrong or configuring loosely is where things fall apart.

What authentication methods does UCP REST API support?

OAuth 2.1 with PKCE: This is the recommended path for interactions where an agent acts on behalf of a shopper who has an account or session. PKCE (Proof Key for Code Exchange) protects the authorization flow even on public clients. Tokens are short-lived, typically 15 to 60 minutes, and refresh tokens handle continuity. We recommend a 30-minute access token lifetime as a sane default: long enough to complete a checkout, short enough to limit blast radius if leaked.

Scoped API keys for server-to-server: When your own backend calls the UCP REST endpoints, or when a trusted partner agent operates without a per-user context, scoped keys are simpler and appropriate. Scope them tightly. A key that can read the catalog does not need permission to create orders. We tell every client to issue read-only keys for discovery and separate write-scoped keys for transactions.

Signed request tokens: For high-value checkout operations, the spec supports request signing so the server can verify the request body was not tampered with in transit. We enable this for the order-creation endpoint specifically, because that is where money moves.

Now the part the documentation glosses over. In our experience, ninety percent of authentication failures are not conceptual mistakes; they are operational ones. Clock skew between the agent client and your server invalidates time-bound tokens. Overly broad scopes get rejected by strict validators. Refresh logic that does not handle a 401 gracefully leaves carts orphaned. These are the details that separate a demo from production.

What this achieves: Getting auth right means agents can transact on behalf of shoppers without you ever exposing a credential that lets them do more than the shopper authorized. That is the whole trust model of agentic commerce.

  • Default to OAuth 2.1 with PKCE for shopper-context calls: It is the safest option for delegated authority.
  • Scope every key to a single capability family: Read keys read, write keys write, never both.
  • Set access token lifetime to 30 minutes: Balances checkout completion against exposure.
  • Handle 401 with automatic refresh, then retry once: Orphaned carts are almost always a refresh-logic bug.
  • Synchronize clocks with NTP: A 90-second skew will silently reject valid tokens.
  • Sign the order-creation request: Tamper protection where it matters most.

Implementation Steps: From Zero to a Working Checkout

Here is the sequence we follow when we build a UCP REST integration for a merchant, in order. Treat this as your runbook.

Step one, publish and validate the manifest. Serve `/.well-known/ucp.json`, list your REST binding and base URL, and run it through a validator. What this achieves: agents can now discover you. But remember, this is only the front door.

Step two, implement discovery and catalog reads. Build the `GET` endpoints that return your capabilities and product data. Test them with a plain HTTP client before any agent touches them. What this achieves: you confirm agents can read what they need to make a purchase decision.

Step three, wire up cart creation and mutation. Implement `POST` to create a cart and `PATCH` to add, update, and remove line items. This is where state starts to matter. Each cart needs a stable identifier the agent carries across calls. What this achieves: the agent can assemble an order incrementally.

Step four, build the checkout session and order endpoints. Implement the `POST` that converts a cart into a checkout session, capture shipping and payment context, and finalize with the order-creation call. Apply request signing here. What this achieves: the agent can actually complete the purchase, which is the entire point.

Step five, implement order status. Build the `GET` endpoints agents poll to confirm fulfillment. What this achieves: the agent can report back to the shopper that the order shipped.

Step six, connect authentication end to end. Now layer OAuth or scoped keys across every write endpoint and re-test the full path with real tokens. What this achieves: you close the security model without having debugged auth and business logic simultaneously, which is a nightmare we avoid deliberately.

How do I implement UCP REST API in my application?

The honest answer is that you implement it in exactly the order above, and you do not skip step six by leaving auth for last as an afterthought. The most reliable pattern we use is to build the happy path unauthenticated in a sandbox first, prove the transaction logic works, and only then wrap authentication around it. Trying to debug a failing checkout when you cannot tell whether the problem is your business logic or your token scope is how teams lose a week.

If you are on a major platform, much of this is done for you. Our Shopify UCP integration guide and our WooCommerce UCP integration guide cover the platform-specific shortcuts. If you are weighing whether to build this yourself, our UCP hub versus custom integration comparison lays out the tradeoffs honestly.

  • Build in the order above: Manifest, discovery, cart, checkout, status, then auth.
  • Prove logic before layering auth: Sandbox the happy path unauthenticated first.
  • Use stable cart identifiers: The agent carries these across every mutation.
  • Sign order creation, not everything: Signing every call adds latency for little gain.
  • Re-test the whole path after adding auth: Auth changes behavior in ways unit tests miss.

Testing: How to Validate UCP REST API Calls Before Production

Testing is not optional and it is not the manifest validator. This is the section we wish more teams read before they call us.

How do I test UCP REST API calls?

Start with a stateless HTTP client. Use `curl`, Postman, or an equivalent to hit each endpoint directly with a valid token. What this achieves: you isolate whether the endpoint itself works before an agent’s added complexity clouds the picture. We keep a saved Postman collection for every merchant that exercises the full path in sequence.

Then simulate the agent transaction end to end. Fetch the manifest, read a product, create a cart, add a line item, create a checkout session, and place an order, all in one scripted run against a sandbox. What this achieves: this is the test that catches the failure from our introduction. If your scripted run cannot place an order, no real agent will either.

Test authentication failure modes explicitly. Send an expired token, a wrong-scope token, and a tampered signed request, and confirm you get clean, correct error codes back. What this achieves: agents rely on precise error responses to retry intelligently. A vague 500 where a 401 belongs breaks the agent’s recovery logic.

Load-test the read path. Discovery and catalog endpoints get hammered by agents comparison-shopping across many stores. We aim for p95 latency under 300 milliseconds on catalog reads, because slow discovery pushes agents toward faster competitors.

We tell clients bluntly: passing manifest validation is table stakes, not a finish line. The number that matters is your successful-checkout rate in the sandbox, not whether a validator gave you a green checkmark. This is the same lesson behind why WooCommerce stores risk falling behind without proper UCP: a half-implemented integration looks fine until an agent actually tries to buy.

  • Test each endpoint in isolation first: Isolate endpoint bugs from agent-flow bugs.
  • Script the full transaction path: Manifest to order in one run, against sandbox.
  • Exercise every auth failure mode: Expired, wrong-scope, and tampered requests each get a distinct code.
  • Hold catalog reads under 300ms p95: Slow discovery loses agent traffic.
  • Track sandbox checkout success rate: This, not validation, is your readiness metric.

A conformant UCP manifest tells an agent you exist; a working REST checkout path is the only thing that lets it actually buy from you. In our experience, that gap is where almost every failed integration lives.

Ship Agent-Ready Commerce Without the Guesswork

Everything in this guide is buildable in-house, and plenty of teams do it. But we built UCPhub’s platform precisely because wiring the REST binding, layering the right authentication, and proving the full checkout path end to end is where most merchants stall for weeks. Our Universal Commerce Protocol infrastructure handles the manifest, the REST endpoints, and the transaction plumbing so your store is not just validated but genuinely transactable by agents. If you want the transactional core done right the first time, talk to our team and we will show you where your current setup would break before an agent finds out for you.

REST vs MCP vs A2A: Choosing the Right Transport Binding

This is the section closest to the heart of what most teams get wrong, so we will be opinionated. The three transport bindings are not competitors; they are tools for different jobs. Picking the wrong one is the architectural mistake we correct most often.

REST, the transactional workhorse: Use REST for everything that fits a request-response shape. Discovery, catalog, cart, checkout, order status. It is stateless, cacheable, universally supported, and it is what agents reach for first when they intend to buy. Our take: for the vast majority of merchants, REST is 95 percent of what you need, and you should not overcomplicate your architecture chasing the other two.

MCP, for tool invocation and context: The Model Context Protocol shines when an agent needs to invoke your store as a tool inside a reasoning loop, with structured, bidirectional context. Think of an assistant that is helping a shopper compare options across a conversation and needs to call back into your systems repeatedly with rich context. MCP handles the tool-calling semantics that plain REST makes clumsy. What this achieves: it lets an agent treat your store as a first-class capability inside its own reasoning, not just a set of URLs.

A2A, for agent-to-agent negotiation: A2A (Agent to Agent) is the binding for autonomous negotiation between two agents, for example a shopper’s agent negotiating terms, bundles, or availability with a merchant’s agent. It is stateful and conversational by design. Most merchants do not need A2A yet, but the direction of travel matters, which we explore in what happens when AI agents become the primary shoppers.

The mistake we see: teams read about MCP and A2A, decide their store must support all three from day one, and never finish the REST checkout path that would actually earn revenue. Our advice is unambiguous: ship rock-solid REST first, add MCP when a real agent partner needs tool semantics, and consider A2A only when agent-to-agent negotiation is a live requirement, not a hypothetical.

For the broader strategic context on standards, our comparison of UCP versus custom AI integrations explains why betting on the protocol beats bespoke point solutions.

  • Default to REST for all transactions: It covers the revenue path completely.
  • Add MCP for tool-style reasoning loops: When an agent calls your store repeatedly with rich context.
  • Reserve A2A for real negotiation: Do not build it speculatively.
  • Do not support all three prematurely: Finish REST before you touch the others.
  • Advertise only the bindings you actually serve: A manifest lying about MCP support breaks agents that trust it.

The DISCOVER Framework: A Repeatable Path to a Production-Ready UCP REST Integration

We use a five-step framework internally that keeps merchants from shipping the half-built integrations we keep describing. We call it DISCOVER because discovery is where it starts and where the discipline pays off.

Step one, Declare your capabilities honestly. Publish a manifest that advertises only endpoints that work. What this achieves: agents build a correct mental model of your store and never call a phantom endpoint.

Step two, Implement the transaction core. Build discovery, cart, checkout, and order endpoints in that order, unauthenticated in sandbox. What this achieves: you prove the money path works before any auth or transport complexity clouds your debugging.

Step three, Secure with scoped authentication. Layer OAuth 2.1 or scoped keys across write endpoints, with 30-minute tokens and tight scopes. What this achieves: agents transact on delegated authority without ever holding more power than the shopper granted.

Step four, Verify the full path end to end. Script a run from manifest to placed order against sandbox, and track successful-checkout rate. What this achieves: you replace the false comfort of manifest validation with a real transactional readiness signal.

Step five, Extend to MCP or A2A only on demand. Add other bindings when a concrete partner or negotiation requirement appears. What this achieves: your architecture stays lean and your team stays focused on what earns revenue.

  • Declare only working endpoints: No phantom capabilities in the manifest.
  • Implement the money path first: Discovery to order before anything else.
  • Secure with tight scopes: One capability family per key.
  • Verify with a scripted full run: Track checkout success, not validation.
  • Extend deliberately: MCP and A2A only when demanded.

Optimization: Making Your UCP REST API Fast and Reliable

Once the path works, optimization is what keeps agents choosing your store over faster competitors. Agents comparison-shop at machine speed, and latency is a ranking factor in their decisions.

Cache aggressively on the read path: Catalog and discovery responses change infrequently. Set sensible cache headers and serve from a CDN edge where possible. What this achieves: you shave hundreds of milliseconds off the reads agents perform most, which directly improves your odds of winning the agent’s purchase decision. We have seen this connect straight to agentic commerce conversion rate improvements.

Keep mutation endpoints tight and idempotent: Cart and order mutations should be idempotent so a retried request never double-charges or duplicates a line item. Use idempotency keys on the order-creation endpoint without exception. What this achieves: agents retry aggressively, and idempotency is the only thing standing between an aggressive retry and a duplicate order.

Return rich, precise errors: Agents recover based on your error codes. A 409 conflict, a 422 validation error, and a 429 rate limit each trigger different agent behavior. Vague errors force agents to give up. What this achieves: agents self-heal instead of abandoning carts.

Rate limit generously but deliberately: Set limits high enough that legitimate agent shopping is never throttled, but present so a runaway client cannot exhaust your capacity. Return `Retry-After` on 429s so well-behaved agents back off correctly.

  • Cache reads at the edge: Sub-300ms discovery wins agent traffic.
  • Make every mutation idempotent: Idempotency keys on order creation are non-negotiable.
  • Return precise HTTP error codes: Agents recover from specific codes, not vague ones.
  • Set Retry-After on rate limits: Let well-behaved agents back off correctly.
  • Monitor p95 latency continuously: A creeping read path silently loses sales.

Common Mistakes to Avoid

We have cleaned up enough broken integrations to catalog the recurring failures. Avoiding these puts you ahead of most stores we audit.

Mistake one, treating manifest validation as done: We keep saying it because it keeps happening. A green validator badge means your document is well-formed, not that an agent can buy anything. Test the transaction, always.

Mistake two, wiring the manifest to dead endpoints: The exact failure from our introduction. Your manifest advertises a checkout endpoint that returns 404 or points at the wrong binding. Validate manifest and endpoints together.

Mistake three, over-broad API keys: A single key with full access is a breach waiting to happen and a scope-rejection waiting to break checkout. Split read and write, always.

Mistake four, ignoring clock skew: Time-bound tokens die silently on skewed clocks. Run NTP. We have lost hours to this and now check it first.

Mistake five, building MCP and A2A before REST is solid: Chasing every binding leaves the revenue path unfinished. Finish REST first.

Mistake six, non-idempotent order creation: An aggressive agent retry becomes a duplicate charge. Idempotency keys, no exceptions.

Mistake seven, vague error responses: A generic 500 where a 401 or 422 belongs breaks agent recovery. Return the specific code every time.

  • Never trust validation as proof of readiness: Test the real transaction.
  • Never advertise dead endpoints: Manifest and endpoints validated together.
  • Never issue over-broad keys: One capability family per key.
  • Never skip NTP: Clock skew kills tokens silently.
  • Never chase MCP or A2A before REST is solid: Revenue path first.
  • Never ship non-idempotent mutations: Retries must be safe.

Advanced Tips for Teams Running UCP REST at Scale

Once you are past a working integration, these are the practices we apply for merchants with real agent traffic.

Version your endpoints for graceful migration: Run two API versions in parallel during any breaking change so agents on the old version keep transacting while new ones adopt the update. Deprecate on a published schedule, never abruptly.

Instrument per-binding metrics: Track REST checkout success separately from any MCP or A2A traffic. When something degrades, you want to know instantly which transport is affected. We alert on any drop below a 98 percent sandbox checkout success rate.

Pre-warm inventory and pricing caches: Agents hit discovery in bursts. Pre-warming your cache before predictable traffic spikes keeps p95 latency flat under load.

Sign and verify at the order boundary only: Do not add signing overhead to reads. Concentrate cryptographic verification where money moves, keeping the read path fast.

For the strategic picture of where all this is heading, our analyses of UCP versus ACP for the agentic web and the future of UCP agentic commerce put the transport-binding decisions in this guide into a longer arc.

  • Run parallel API versions during migrations: No agent gets stranded on a breaking change.
  • Track checkout success per binding: Know instantly which transport degraded.
  • Pre-warm caches before traffic bursts: Keep p95 flat under agent load.
  • Concentrate signing at the order boundary: Fast reads, secure writes.
  • Alert below 98 percent checkout success: Catch regressions before agents do.

Measuring Success: 30, 60, and 90 Day KPIs

Here is how we measure whether a UCP REST integration is actually working, on the timeline we use with merchants.

  • Day 30, manifest and discovery live: Your manifest validates, discovery and catalog reads return correct data, and p95 read latency is under 300ms. This is your foundation, not your finish line.
  • Day 30, sandbox checkout proven: A scripted full-path run places orders successfully in sandbox at least 95 percent of the time. If it does not, nothing else matters yet.
  • Day 60, authentication hardened in production: OAuth or scoped keys are live across all write endpoints, auth failure modes return correct codes, and zero orphaned carts trace to refresh-logic bugs.
  • Day 60, live agent transactions flowing: Real agents are completing checkouts in production, and your per-binding metrics show REST checkout success above 98 percent.
  • Day 90, latency and idempotency at scale: Read-path p95 stays under 300ms during traffic bursts, and idempotency keys have prevented any duplicate orders under retry load.
  • Day 90, agentic conversion trending up: Your agentic checkout conversion is measurable and improving, the outcome that justifies the whole build.
  • Ongoing, validation rate is not your KPI: Track successful checkouts, not validator badges. A conformant manifest is not the same as a completed sale.

If you are just getting started, prioritize one thing above all: get a scripted full-path checkout working in sandbox before you touch authentication or worry about MCP and A2A. Everything else is decoration on top of a transaction path that either works or does not. If instead you are auditing an integration that already exists, do the opposite of trusting the green validator badge; run the full scripted transaction against your live sandbox and watch specifically for the dead-endpoint and clock-skew failures that hide behind a passing manifest. The teams we help fastest are the ones who bring us a failing checkout script rather than a passing validation report.

Next Steps:

  • Write and run a scripted manifest-to-order test against your sandbox this week, and record its success rate.
  • Audit your API keys and split any that carry both read and write scope into separate, tightly scoped credentials.
  • If your checkout path is failing or you want it audited before agents find the gaps, contact our team for a transaction-path review.

Frequently Asked Questions

How do I implement UCP REST API in my application?

Implement it in strict order: publish and validate your manifest, build discovery and catalog reads, wire up cart creation and mutation, build checkout sessions and order creation, add order status, and only then layer authentication across your write endpoints. We deliberately build the happy path unauthenticated in a sandbox first so we can prove the transaction logic works in isolation before auth complexity enters the picture.

The reason we insist on this order comes from cleaning up integrations built the other way. When teams add authentication before their business logic is proven, a failing checkout gives them no way to tell whether the problem is a token scope or a broken order endpoint. Separating those concerns turns a week of guessing into an afternoon of fixes.

If you are on a mainstream platform, a large portion of this is handled for you. Our Shopify and WooCommerce integration guides cover the platform-specific shortcuts, and if you would rather not build the plumbing at all, our platform handles the manifest, endpoints, and transaction path directly.

Where can I find UCP REST API endpoint documentation?

The canonical endpoint documentation lives in the official UCP specification, which defines the endpoint families for discovery, catalog, cart, checkout, and orders along with the request and response schemas. Your own store’s specific endpoints are advertised in your `/.well-known/ucp.json` manifest, which points agents at your versioned REST base URL.

In practice, we treat the public spec as the contract and the manifest as the store-specific instantiation of that contract. The spec tells you what a cart mutation should look like; your manifest tells an agent where your cart endpoint actually lives. Both matter, and a mismatch between them is exactly the failure mode we opened this guide with.

Because the spec evolves, always pin your integration to an explicit API version rather than a floating latest. We have been burned by field renames in floating versions, so every client we ship targets a specific, deliberately chosen version and upgrades on our schedule, not the spec’s.

What authentication methods does UCP REST API support?

The UCP REST binding supports OAuth 2.1 with PKCE for interactions where an agent acts on behalf of a shopper, scoped API keys for server-to-server and trusted-partner calls, and signed request tokens for high-value operations like order creation. We default to OAuth 2.1 with PKCE for delegated shopper authority because it gives the agent exactly the authority the shopper granted and nothing more.

For our own backend calls and trusted partner agents, we use tightly scoped keys, splitting read access from write access so a discovery key can never create an order. On the order-creation endpoint specifically, we add request signing so the server can verify the request body was not tampered with in transit, because that is where money moves.

The subtlety the documentation understates is operational. Most authentication failures we debug are not conceptual; they are clock skew invalidating time-bound tokens, overly broad scopes getting rejected, or refresh logic that does not handle a 401 gracefully. Run NTP, scope tightly, set a 30-minute token lifetime, and handle 401 with an automatic refresh and single retry, and you will avoid the vast majority of auth problems.

How do I test UCP REST API calls?

Start by hitting each endpoint in isolation with a stateless HTTP client like curl or Postman using a valid token, which lets you confirm the endpoint itself works before an agent’s added complexity clouds the picture. Then script the entire transaction path, from fetching the manifest through placing an order, and run it against a sandbox namespace so you never touch live inventory.

The single most valuable test is that scripted full-path run, because it catches the failure most teams miss: a validated manifest wired to a checkout endpoint that cannot actually place an order. If your script cannot complete a sandbox checkout, no real agent will either, no matter what your validator says.

Beyond the happy path, test your authentication failure modes explicitly by sending expired, wrong-scope, and tampered requests and confirming each returns the correct HTTP code. Agents rely on precise error codes to retry intelligently, so a vague 500 where a 401 or 422 belongs quietly breaks agent recovery. Finally, load-test your read path and hold catalog reads under 300 milliseconds p95, because slow discovery pushes comparison-shopping agents toward faster stores.

What is the difference between UCP REST, MCP, and A2A transport bindings?

REST is the transactional workhorse for request-response interactions: discovery, catalog, cart, checkout, and order status. It is stateless, cacheable, and universally supported, and for the vast majority of merchants it covers roughly 95 percent of what agents actually need. When an agent decides to buy, that decision resolves into a sequence of REST calls.

MCP, the Model Context Protocol, is for tool invocation inside an agent’s reasoning loop, where the agent needs bidirectional, richly structured context and treats your store as a first-class capability it calls repeatedly. A2A, Agent to Agent, is for stateful negotiation between two autonomous agents, such as a shopper’s agent negotiating terms with a merchant’s agent.

Our strong opinion is that you should ship rock-solid REST first, add MCP only when a real agent partner needs tool semantics, and consider A2A only when agent-to-agent negotiation is a live requirement. The most common architectural mistake we correct is teams trying to support all three from day one and never finishing the REST checkout path that would actually earn revenue.

Is a validated UCP manifest enough to start receiving agent orders?

No, and this is the point we hammer hardest. A validated manifest proves your document is well-formed and advertises your capabilities correctly; it proves nothing about whether an agent can actually complete a purchase. According to UCP Checker, which monitors 22,031+ storefronts, roughly 74 percent pass full validation, but that figure skews heavily to Shopify and measures manifest correctness, not transactional reality.

We have personally watched stores that passed validation fail every single order attempt because the REST endpoints behind the manifest were never wired up or pointed at the wrong binding. Validation is the front door; the transaction path is the house. An agent that reads a perfect manifest and then hits a 404 on checkout simply abandons the purchase and moves to a competitor.

The metric that actually matters is your successful-checkout rate in a sandbox, ideally 95 percent or higher before you go live and 98 percent or higher in production. Track that, not the validator badge, and you will be measuring the thing that produces revenue.

How should I handle API versioning to avoid breaking agent integrations?

Pin your integration to an explicit API version in the request path or an Accept header, and never rely on a floating latest that can change field names under you mid-quarter. We learned this the hard way when a floating version renamed fields and quietly broke a client’s catalog parsing, so every integration we ship now targets a deliberately chosen version.

When you need to make a breaking change, run two API versions in parallel so agents on the old version keep transacting while newer ones adopt the update. Deprecate the old version on a published schedule with clear advance notice, never abruptly, because an agent stranded on a removed version simply stops buying from you.

This discipline matters more in agentic commerce than in traditional web integration because agents do not read changelogs or send you support tickets. They just fail silently and route around you. Graceful, scheduled version migration is how you keep that from costing you sales.

Sources

ready when you are

Make your store
UCP-native today.

install in < 5 min ยท no credit card ยท cancel anytime