Universal Commerce Protocol’s fourth release, tagged v2026-08-25, added a new policies[] array to Cart, Checkout, Catalog and Order responses. The release notes describe it as a way to carry “return, refund, and warranty terms” to a shopping agent. Read the schema itself, and it’s exactly that β€” two named policy types, and shipping isn’t one of them.

What shipped

v2026-08-25 is UCP’s first release since April and its most disruptive: 143 commits across 263 files, per the GitHub release. Grocery becomes a fully specified vertical (location search, fractional quantities, timezone-aware hours); Food and Lodging get groundwork; buyer consent moves from four fixed boolean fields to a reverse-DNS-keyed map with per-segment opt-ins; and signing keys move to a canonical keys[] JWK Set on every profile, published specifically to support Web Bot Auth interop. Any integration built against the April spec has real rework ahead of it on consent and key handling.

The policy snapshot, read from the schema

The new Policy type attaches to a response via a policies[] array (already wired into cart.json and the catalog, checkout, and order schemas), each entry carrying a type, a human-readable description, and an optional JSONPath applies_to that scopes it to specific line items or products.

type is drawn from an open, reverse-DNS vocabulary, but the specification’s Policies section lists exactly two well-known values:

Well-known type Covers
dev.ucp.shopping.policy.return Return terms
dev.ucp.shopping.policy.warranty Warranty terms

No dev.ucp.shopping.policy.shipping type exists in this release. A business can mint a custom type in its own domain (com.example.policy .shipping), but a platform isn’t obligated to recognize or surface one it doesn’t already model β€” the spec’s own guarantee is that platforms “MUST tolerate unknown type values,” not that they’ll act on them.

Why this doesn’t close the FAQ gap

This log flagged on August 19 and again on August 31 that Shopify’s UCP Cart MCP migration left no successor for search_shop_policies_and_faqs β€” the tool an agent calls mid-conversation to answer an arbitrary shipping, return, or warranty question. The August 25 release doesn’t fill that gap; it solves a different problem.

search_shop_policies_and_faqs is a query: an agent asks a question and gets an answer, on demand, about anything the merchant has documented. policies[] is a snapshot: a fixed set of terms a business chooses to attach to a specific cart, checkout, catalog, or order response, in a fixed vocabulary that β€” as of this release β€” doesn’t include shipping. An agent can’t ask a UCP-conformant store “do you ship to a PO box?” and get an answer from this field; it can only read whatever return or warranty terms the merchant already decided to attach to that exact response.

What this means for your store

  • If you migrated to UCP Cart MCP, populate policies[] now for return and warranty terms β€” it’s the one structured channel an agent is guaranteed to see attached to the cart or order it’s already looking at, rather than a page it has to go find.
  • Don’t treat it as your FAQ surface. Shipping questions, damage claims, and anything outside return/warranty still need a page an agent can read independently β€” a linked policy url, or a structured llms.txt β€” because this field won’t carry them.
  • Re-check consent and signing-key integrations against this tag, not April’s. The consent schema is a breaking change (boolean fields β†’ keyed map), and profile keys now live under keys[] specifically to make Web Bot Auth interop possible.

FAQ

Does UCP’s new policy snapshot answer shipping questions?

No. The policies[] array added in the v2026-08-25 release names exactly two well-known types β€” dev.ucp.shopping.policy.return and dev.ucp.shopping.policy.warranty β€” in both the JSON schema and the specification’s Policies section. Shipping isn’t a defined type, and the field is a fixed snapshot attached to a response, not a query interface an agent can ask an open-ended question against.

Is this the same as Shopify’s search_shop_policies_and_faqs tool?

No. search_shop_policies_and_faqs let an agent ask an arbitrary question and get an answer on demand. UCP’s policies[] is a structured array a business populates ahead of time and attaches to a specific cart, checkout, catalog, or order response, in a closed vocabulary of two policy types. They solve different problems, and one doesn’t substitute for the other.

What changed for merchants already integrated with UCP?

Buyer consent moved from four fixed boolean fields to a reverse-DNS-keyed map with per-segment opt-ins, and signing keys moved to a canonical keys[] JWK Set on every profile document β€” both breaking changes from the April 2026 baseline. A store that integrated against that earlier spec during its Shopify UCP Cart MCP migration should re-validate both before assuming conformance still holds.

Sources

A protocol that ships a structured field named after the gap it’s supposed to close, but scopes it to two of the dozen things an agent might ask about, is exactly the kind of capability-versus-conformance mismatch AgentReady’s scan is built to catch before it costs a merchant an agent’s checkout.