Until this week, an AI agent buying through the Universal Commerce Protocol (UCP)
could only buy a product one way: once, at its price. On November 10, 2026 the UCP
spec repository merged the Purchase Options extension
(dev.ucp.shopping.purchase_options, PR #890).
It lets a store list “buy once” and “subscribe” side by side on a product variant, lets
the agent pick one, and records the chosen terms on the order. For merchants who sell
replenishment products, it is the first standard way to sell a subscription to an agent.
The extension is on the spec’s main branch. It is not yet in a dated release: the
newest UCP tag is
v2026-08-25.
The gap it closes
The spec states the problem plainly: “Today a variant has one price and one way to buy
it. A Business that also sells the same coffee on a monthly plan has no way to say so in
its catalog, a Platform has no way to choose, and a checkout has no way to know which
was chosen.” The same gap shows up on Shopify today, whose /buy agent links
don’t support selling plans yet.
How it works
purchase_options[]appears on a catalog variant and on a cart or checkout line. Each option has anid, atitleand apricefor the current purchase.selected_purchase_option_idis what the agent sends to choose one. The store’s response is authoritative: the agent must re-render prices, totals and policies from it.schedulesmake an option a subscription. Each schedule carries a buyer-facingdescription, the order’stotals, and optionally an ISO 8601interval(P1M,P30D), astarts_atand anends_at.- The safe default. The first option is the default. Where a one-time option is listed, the default must be one without schedules: “a buyer is never enrolled in recurring orders because a Platform did not choose.”
- Subscribe and save is a price, not a discount. The saving is simply the
subscription option’s lower
price. A free trial is an option with apriceof0. - The order keeps a snapshot. The order line carries the selected option as it stood at checkout, and the store must not change it later.
The disclosure is the store’s job
When a line resolves to a subscription, the store must attach a
dev.ucp.shopping.policy.subscription policy that states until when orders recur, how
the buyer cancels (with any notice period or minimum commitment) and where they manage
it. It must also send a disclosure message stating what each recurring order costs,
whether tax and shipping are added, how often orders are placed, the first date, and
how to cancel.
The agent, in turn, must show that disclosure next to the line before completing,
unless the buyer authorized the terms in advance, for example with a signed AP2 mandate.
If it can’t, it hands the buyer off through continue_url. Payment is strict too: a
subscription checkout uses exactly one instrument the store can charge after completion,
even when today’s total is 0.
What this means for your store
- Write schedule descriptions as full sentences. The spec requires each one to be a complete statement an agent can render verbatim: price, cadence, start and end.
- Put cancellation terms behind a URL. The policy should link to the full terms.
This builds on the same
policies[]primitive as the UCP return policy extension. - Subscription-only products vanish for older agents. An agent that has not
negotiated the extension must not see a variant it can’t buy normally: the store omits
it from search and returns
item_unavailable. Keeping a one-time option keeps the product reachable. - Management is not covered yet. Pause, modify and cancel operations are explicitly out of scope and left to “a separate capability”.
FAQ
Can AI agents buy subscriptions through UCP?
Yes, once a store and an agent both support the Purchase Options extension, merged into the UCP spec on November 10, 2026. The store lists one-time and subscription options on a variant, and the agent selects one by its id. The extension is on the spec’s main branch and not yet in a dated release.
Can an AI agent sign a shopper up to a subscription by default?
No. Under the UCP Purchase Options extension, when a one-time option is listed, the default option must be one without recurring orders. The agent must also show the store’s subscription disclosure before completing, unless the buyer authorized those terms in advance, for example through an AP2 mandate.
Can a shopper cancel a UCP subscription through the agent?
Not through this extension. Status, pause, modification and cancellation are out of scope and left to a separate capability. The store’s subscription policy must state how to cancel and where the subscription is managed, and the order’s permalink leads to the store’s own order page.
Sources
- UCP spec, Purchase Options extension (at the merge commit)
- UCP repository, merge commit 5f42601, “add purchase options extension and subscription policy (#890)”, November 10, 2026
- UCP schema, subscription_schedule.json
- UCP repository, release tags (latest: v2026-08-25)
Recurring revenue is a transaction too: an agent that can’t read your subscription terms can’t buy them.