Commerce Studio B2B extensions for UCP
Draft, version 2026-10-19, for the Universal Commerce Protocol 2026-08-25.
UCP lets AI agents shop and check out on a buyer's behalf. It was designed around consumer checkout. Business buying adds what these extensions cover:
- company accounts and roles;
- contract price lists;
- payment on account against a credit limit;
- purchase orders;
- approval before an order is placed;
- quotes negotiated with a sales rep;
- reordering.
Commerce Studio's gateway, Callisto, implements them on BigCommerce B2B Edition. We're publishing them so that any business or agent can implement them too.
The extensions
| Extension | Extends | Adds | Spec |
|---|---|---|---|
ai.commercestudio.b2b.account |
checkout, cart | b2b_account: company, buyer role, ship-tos, spend limit |
account |
ai.commercestudio.b2b.pricing |
checkout, cart | b2b_pricing: price list, contract vs list price per line, savings |
pricing |
ai.commercestudio.b2b.terms |
checkout | b2b_terms: credit limit, credit available, PO requirement |
terms |
ai.commercestudio.b2b.approval |
checkout | Action ai.commercestudio.b2b.approval: who approves, why, until when |
approval |
ai.commercestudio.b2b.quote |
cart, checkout | b2b_quote: request, negotiate and accept a seller's quote |
quote |
ai.commercestudio.b2b.reorder |
order | b2b_reorder: an order's lines at today's prices and stock, ready for a new cart |
reorder |
ai.commercestudio.b2b.purchase_order |
payment handler | Pay on account with a PO number | purchase-order-handler |
Net terms themselves use UCP's own dev.ucp.common.payment.terms. These extensions add only what UCP doesn't carry yet.
Design rules
- Compose, don't fork.
- Each extension composes onto a UCP capability with
allOf, per UCP's Extension Schema Pattern. - Each adds one root field, or for approval, one Action type.
- Nothing goes inside the
ucpmember, and there are no new checkout statuses.
- Each extension composes onto a UCP capability with
- Opt-in.
- A platform negotiates an extension by listing it in its profile.
- A platform that doesn't never sees the extension's fields, and still gets a valid standard UCP response at the right prices.
- UCP fields stay authoritative. The price the buyer pays is in
line_items[].item.priceandtotals. Extension fields explain it; they never contradict it. - The business decides. Prices, credit, approval and quoted prices are the business's to set. An agent's target price is a request; the agent never approves its own order.
- Money is integer minor units, like all UCP amounts. Times are RFC 3339.
Names, schemas and versions
- Names. These are under Commerce Studio's reverse domain,
ai.commercestudio.b2b.*. - Schemas. These are served from a name-aligned origin, as UCP's authority binding requires:
https://b2b.commercestudio.ai/ucp/schemas/{name}.json, e.g. account.json. Platforms must not accept them from any other host. - Versions are dates (
YYYY-MM-DD) and advance independently of UCP's. This draft is2026-10-19, and each schema'srequiresstates the UCP version it builds on. - Changes within a version only add optional fields, message codes or enum values. Platforms should ignore fields they don't recognise, as UCP requires for Action config.
Status
These are drafts. They're implemented and verified end to end on BigCommerce B2B Edition, on Commerce Studio's Wildleaf demo store with fictional companies. Each spec's last section notes how Callisto implements it there.
Where UCP has an open proposal for the same need, we follow its field names so we can move to it if it's adopted. For example, quotes follow ucp#929.
We intend to publish these specs under the Apache License 2.0. Feedback is welcome: commercestudio.ai.