A leading product engineering company, creating adaptive software solutions to improve operations, providing businesses with expert development services from across domain.
A leading product engineering company, creating adaptive software solutions to improve operations, providing businesses with expert development services from across domain.
The Agentic Commerce Protocol gives you a feed and five checkout endpoints. UCP gives you a discovery profile and capability negotiation. What each costs.

Two standards now want your catalogue and your checkout. OpenAI's Agentic Commerce Protocol and Google's Universal Commerce Protocol are usually described as rivals doing the same thing, and they are not. They ask for different artefacts, they put the integration in different places, and a team that scopes one by reading about the other will be wrong about the effort in both directions.
Both are worth understanding now, because the expensive part of either is the part you should be fixing anyway.
ACP is prescriptive. You publish a product feed and you implement a checkout API to OpenAI's shape.
The feed specification names nine required fields per item: a stable item_id unique per item or variant, title, description, url pointing at the product page with the variant selected where possible, brand, seller_name, image_url showing that variant, price in major currency units, and availability restricted to in_stock, out_of_stock, pre_order, backorder or unknown. Feeds go in OpenAI's JSONL format or a Google-compatible tab or comma delimited file. Product and image URLs must be publicly accessible, and stock status is submitted with each row.
The checkout specification is a five-endpoint REST contract: create a session, update it for address, shipping or item changes, complete it, cancel it, and read it back. Every response carries the full cart state — items, pricing, taxes and fees, shipping, discounts, totals, status. Every endpoint receives an Idempotency-Key header you must honour and echo. You emit order_created and order_updated events to OpenAI's webhook, signed with HMAC using merchant-specific keys.
Payments are the part teams worry about and the part that is least disruptive. The specification's own instruction is to keep payments where they are: use your current provider and settlement processes, and integrate Delegated Payments only if applicable. Under delegated payments you receive an encrypted token naming a provider — Stripe, Adyen or Braintree — and apply your normal authorisation and capture flow. Nothing about your ledger changes.
UCP, announced at NRF in January 2026 and co-developed with Shopify, Etsy, Wayfair, Target and Walmart, is a negotiation framework rather than a fixed API.
The centre of it is a discovery document. You publish a profile at /.well-known/ucp declaring your protocol version, services, capabilities, payment handlers and signing keys in JWK format. The specification requires that profiles be served over HTTPS and that responses include a Cache-Control header with public and a max-age of at least sixty seconds.
From there it diverges sharply from ACP. Services are transports, and four are defined: REST, MCP, agent-to-agent, and an embedded protocol. Capabilities are feature modules that can extend other capabilities. Businesses must compute the intersection of platform and business capabilities, and must include a ucp field in every response naming the version used and the active capabilities. Webhooks are signed per RFC 9421 rather than with a bearer HMAC. Payments route through AP2, a separate protocol in which an agent presents a cryptographically signed mandate — non-repudiable evidence that a specific user authorised a specific transaction — rather than a session token.
Read side by side, the two are answering different questions. ACP asks how a shopping conversation completes a purchase, and hands you the sequence. UCP asks how an arbitrary agent discovers what a business can do and then negotiates a transport, with payment authorisation delegated to a protocol designed for machine consent.
That difference has consequences for how you plan. An ACP integration is a bounded, testable piece of work: five endpoints, a feed, a webhook, conformance checks on schema, error codes, rate limits and webhook delivery. A UCP integration is smaller at the edges and larger in the middle, because capability negotiation means your responses have to describe themselves, and because signing keys and mandate verification pull in cryptographic handling most storefronts do not have today.
Neither specification, incidentally, states a response-time requirement. Secondary coverage repeats a figure that agent-facing endpoints must answer within 200 milliseconds; it does not appear in either specification we read, and we have cut it rather than pass it on. Be fast anyway — an agent comparing three merchants will not wait — but do not size an engineering programme around a number nobody can source.
There is also a governance difference worth raising before anyone signs anything. Under ACP the relationship is bilateral: OpenAI holds your feed, calls your endpoints, and signs its webhooks with keys it issued you. Under UCP the merchant publishes signing keys and any conforming agent can discover and transact, which is more open and correspondingly harder to reason about. Deciding who may transact with you, and on what evidence, is a policy question your finance and legal people will want answered, and it is easier to answer before the integration than after it.
Here is the part that decides whether either integration succeeds, and it has nothing to do with agents.
Both protocols expose your catalogue to a consumer that cannot be charmed. A human shopper forgives a stale availability flag, a missing brand, a photograph of the wrong colourway — they look at the page and work it out. An agent takes the field at face value, recommends the item, and puts the customer into a checkout for something you cannot ship. That failure is not attributed to your data. It is attributed to you.
So the honest first question is not which protocol to adopt. It is whether your availability field is true right now, on every variant, at the moment it is read. Most mid-market catalogues we review fail that test somewhere: stock synced on a nightly job, variants inheriting the parent's status, discontinued lines still marked in stock because nobody owns the retirement process. Every one of those is a returned order and a refund today and an agent-driven incident tomorrow.
Pricing has the same property. ACP wants the price in major currency units, which sounds trivial until a promotion engine that computes discounts at render time meets a feed generated from the base table. The agent quotes one number and the basket shows another, and the shopper abandons at the only moment that counts.
The related failure is identity. ACP wants a stable item_id unique per variant. If your product IDs are regenerated by an export, or if the same SKU appears twice under different identifiers, agent-side deduplication will make choices on your behalf that you will not enjoy.
None of this is exotic to fix. It is a synchronisation job and an ownership question — who is accountable for a product record being true — and both are cheaper now than they will be once an agent is quoting your catalogue to a customer in a conversation you never see.
For most mid-market merchants, the sequence is the same regardless of which protocol wins.
availability reflects reality. This is the work that carries into either protocol and improves paid performance in the meantime.The strategic read is that agentic commerce is doing to product data what mobile did to page weight: taking something teams had tolerated as imperfect and making it load-bearing. The merchants who benefit will not be the ones who integrated first. They will be the ones whose catalogue was already true. If you want a view on where yours stands, that assessment is part of how we approach e-commerce builds, and the integration work afterwards is the easy half.
The Agentic Commerce Protocol is OpenAI's standard for letting shoppers buy from a merchant inside ChatGPT. Merchants publish a structured product feed and implement five REST checkout endpoints covering session creation, updates, completion, cancellation and retrieval, plus order webhooks.
UCP is a negotiation framework rather than a fixed API. Merchants publish a profile at /.well-known/ucp declaring services, capabilities, payment handlers and signing keys, then negotiate capabilities per request across REST, MCP, agent-to-agent or embedded transports.
Nine per item: item_id, title, description, url, brand, seller_name, image_url, price in major currency units, and availability restricted to in_stock, out_of_stock, pre_order, backorder or unknown. Feeds use OpenAI's JSONL format or a Google-compatible delimited file.
No. OpenAI's checkout specification says to keep payments where they are, using your current provider and settlement processes, and to integrate Delegated Payments only if applicable. Under delegated payments you receive an encrypted token and apply your normal authorisation and capture flow.
Neither the OpenAI feed nor checkout specification states a latency requirement, despite a 200 millisecond figure circulating in secondary coverage. Speed still matters commercially, because an agent comparing merchants will not wait, but no published number should anchor your engineering plan.
ACP is usually the more bounded starting point, because it is a conventional REST contract with idempotency and order webhooks your team already understands. UCP is better treated as a platform decision, since Shopify and similar platforms may supply the profile and negotiation layer.
Ready to take the first step towards unlocking opportunities, realizing goals, and embracing innovation? We're here and eager to connect.
11th Floor, O-Hub, Chandaka Industrial Estate, Infocity, Bhubaneswar, Odisha 751024
Level 4, 11 York Street Sydney Startup Hub Sydney, NSW – 2000
30 N. Đinh Nghệ, Phước Mỹ Sơn Trà, Đà Nẵng / Da Nang City – 550000
Level 25, AIDP Business Tower, Dubai Marina, United Arab Emirates
50 Beauchamp Street, Wellington, WGN 5028, New Zealand