UCP Checker
UCP for B2B: A Procurement Council Charter, Quotes and Price on Request

UCP for B2B: A Procurement Council Charter, Quotes and Price on Request

Business-to-business buying has been the most argued-about gap in the Universal Commerce Protocol all year. On 14 October it got its first formal proposal for a home. A charter for a B2B Procurement Domain Tech Council names six procurement platforms (SAP, Zip, Lio, Vroozi, Procurify and ORO Labs) and one business, Amazon.

It lands on top of a month of B2B work in the spec repo: a draft quote extension from Google, a request to let catalogs list items with no public price, and a long thread on how terms agreed outside a checkout should enter it. None of it is merged and the charter is awaiting Governing Council review. This post covers what each piece proposes, how they fit together, and what it means for B2B sellers and the agents that buy from them.

What is UCP B2B Procurement?

UCP B2B Procurement is a proposed domain of the protocol for organisations buying from suppliers through agents: requisitions, approvals, purchase orders, invoices and reconciliation. The charter proposes a Domain Tech Council to own it, the same kind of body that already runs lodging, food and payments, and that Stripe proposed last week for local services.

Its problem statement is fragmentation. Each procurement integration today "independently models business identity, buyer eligibility, organization policy, business pricing, requisitions, approvals, purchase orders, post-purchase events, and reconciliation." The charter's pitch is one shared model in its place: participants "implement one shared model, reach multiple counterparties, and contribute to an open roadmap."

What the charter proposes

The charter says procurement reuses UCP's product, price, address, identity, message and order concepts, and adds what consumer shopping doesn't express: "requisitions, organization policy, approval boundaries, purchase orders, cost coding, post-purchase events, and reconciliation." It commits to reusing existing primitives "where their semantics hold" and defining new ones "only where the domain requires them."

The roadmap has three phases:

Phase Scope
1. Procurement-aware discovery and requisition handoff Catalog search and product lookup that know the buying organisation; machine-readable eligibility, policy, business pricing, quantity and delivery signals; keeping the supplier's cart or offer separate from the buyer's requisition and approval; a standard handoff from supplier results into a procurement platform's requisition workflow
2. Requisition through purchase-order acknowledgment Requisition lifecycle and cost coding; approval status, with approval authority staying "with authorized humans and enterprise systems"; PO issuance, supplier acknowledgment, rejection and change requests; buyer and supplier identity and account linking
3. Post-purchase and reconciliation Fulfilment, receipt, returns and substitutions; invoice submission and correction; PO, receipt and invoice matching, including exception triage

One design choice stands out. Phase 1 separates "supplier-side cart or offer state from buyer-owned requisition and approval state." A supplier's cart is the supplier's. The requisition, and who approves it, belongs to the buying organisation's own systems. The agent hands one to the other rather than merging them.

The issue carries the gov:needs-gc-review label. Lodging went the same way: a charter, then a seated council, then a merged booking spec.

The quote extension: a price the business issues

The most concrete B2B piece is #929, a proposal filed on 11 October by Sparsh of Google, with a draft reference implementation in #930. It adds an extension called dev.ucp.common.quote to Cart, Checkout and Order.

A quotation is "a time-bound, immutable price for the line items of a Cart or Checkout." The buyer can propose a price ("I'll pay $150 for these three") or just ask ("quote me 500 units"). The business accepts, declines, defers or answers with its own quotation. The buyer then accepts it by id. No new endpoints: everything travels on the existing create, update and get calls.

The draft's B2B example is a facilities team ordering safety glasses and gloves. The agent proposes a subtotal, and the business answers that a person will review it:

"quote": {
  "status": "pending",
  "message": "Our account team reviews volume requests within one business day.",
  "proposal": {
    "subtotal": 940000,
    "message": "Recurring quarterly order for three sites."
  }
}

The next day the cart comes back quoted, with its own id and expiry:

"quote": {
  "status": "quoted",
  "id": "qt_b2b_41_1",
  "subtotal": 985000,
  "expires_at": "2026-10-18T00:00:00Z",
  "message": "Volume pricing: glasses at $10.50, gloves at $23.00 a box. Valid for 7 days."
}

Once accepted, the business states the agreed price once, as a single totals entry of type: "quote". Line items keep their listed prices, and the entry isn't a discount, so the existing discount rules don't change. The quotation then carries onto the Order.

Three rules set the boundaries:

  • The business sets the price. "Prices are never set by the Platform. A Buyer's proposal is an input the Business evaluates; the only price that applies is the one the Business returns in totals."
  • A quotation can come from outside the cart. A price agreed with a sales team, in a conversation or through a vendor extension "enters the same way: the Buyer names its id and the Business binds it."
  • It's price only. Delivery dates, payment timing and warranty stay with payment terms and fulfilment. Auctions, supplier selection and "how the Business decides" are out of scope.

The proposal asks the Technical Council for one decision first: whether a business's counter-quotation should be expressed as an Offer, the cart-proposal extension in #773, rather than as status: "quoted". The draft says it "should fold into Offer" if that lands with price-only changes.

Price on request: catalogs with no public price

The quote extension covers the step after a price is asked for. #877, filed on 29 September by Evgeny Oleynik of AirShelf, covers the step before: listing a product that has no public price at all.

UCP catalog requires a price on every item. Many B2B sellers can't give one, because "the price depends on the contract, the volume or an NDA." AirShelf built UCP endpoints for two such sellers, an office equipment lessor and a software vendor that shares prices only under NDA. Together they list 318 products and "none has a price we could send." Every workaround breaks something: amount: 0 means free, leaving the price out fails the schema, and offering only ask hides the products from catalog-first platforms. And a vendor extension can't fix it, because "an extension composes with allOf and can add a field but cannot relax a required one."

The thread has converged on a structured pricing mode. Juan Fernández of Shopware sketched it, and Arjun Garg of Intuit built a prototype with four open-vocabulary values:

// A stranger, no price shown
{ "id": "var_sec_suite", "pricing": { "mode": "contract_only" } }

// The entitled buyer, signed in through identity linking
{ "id": "var_sec_suite", "price": { "amount": 45000, "currency": "USD" }, "pricing": { "mode": "buyer_specific" } }

The other two values are public (an ordinary price) and quote_required. A platform that sees a mode it doesn't recognise should show no price, leave the item out of price filters and never treat it as zero. The thread also notes that the same rule has to cover catalog feeds, since feed records are catalog products.

Terms agreed outside the checkout

Behind both proposals sits a broader question, opened by Arjun Garg in discussion #812 on 8 September: "Where should commercial term formation end and UCP transaction execution begin?" A B2B price is often agreed before a cart exists, through an RFQ, a sales team or a procurement award. Something has to carry it into checkout.

Shopware brought the implementation evidence. It runs RFQ and quote flows today as a vendor extension, com.shopware.quote, with request, polling, counter, accept and decline operations. Its UCP profile at sw-ag.dev declares it alongside the standard cart, checkout and identity-linking capabilities. As Juan Fernández put it, for B2B this "is not an edge case. Pricing may depend on buyer identity and contracts, volume tiers, inventory allocation, delivery dates, payment terms, and human approval."

Weston of Facet added the property most replies have since built on, which he called the direction of authority: when an accepted quote reaches checkout, is it "an input the Business reads a price out of, or an assertion the Business must independently re-derive and agree with"? The quote extension takes the first answer, with the business's totals always authoritative.

Garg turned the thread into a formal proposal, #845. It doesn't propose a wire format yet. It asks the council to decide where accepted-term handoff belongs: a reusable extension, domain-specific extensions, shared rules with extension-specific carriers, or no shared abstraction. The quote extension describes itself as one concrete candidate for the second option.

How the pieces fit

Put together, the B2B work maps onto the path a procurement purchase actually takes:

Step Proposal Status
A buyer finds a product with no public price Pricing modes, #877 Open issue, prototype
The buyer signs in and sees their own price Identity linking In the spec today
The buyer asks for a quote, or brings one from sales Quote extension, #929/#930 Draft, not for merge yet
The agreed terms bind to the checkout Term handoff, #845 Open, architectural question
Net-30, deposits or instalments dev.ucp.common.payment.terms Shipped in v2026-08-25
Requisition, approval, PO, invoice B2B Procurement charter, #947 Awaiting Governing Council review

Business identity is the other thread to watch. The charter's second phase covers "buyer and supplier identity", and Amazon's open business identity and directory RFCs work on the same problem from the other side: how a platform knows which business it's talking to. The charter doesn't reference them.

What it means for B2B sellers and agent builders

For B2B platforms and sellers: RFQ, negotiated pricing and approvals are moving from "off-spec" to "under review". If you run quote flows today, the quote draft is the shape to read, and Shopware's com.shopware.quote shows how a vendor extension can run them in the meantime. If your catalog has no public prices, #877 is where that gets decided.

For procurement platforms: the charter lists six of you. If you build requisition or AP tooling and aren't on it, the charter is the place to engage before the council's scope is set.

For AI agent builders: none of this is shippable against yet. The rules already written into the drafts are worth building towards, though: never show a price the business didn't return, never treat a missing price as zero, and refuse to accept a quote in a state you don't recognise.

For businesses selling through a store today: nothing changes. Small-business buyers paying by card already work on ordinary UCP checkout, and net payment terms are expressible since v2026-08-25. Our UCP for B2B page covers what works now.

What we'll watch

  • The Governing Council's decision on the B2B Procurement charter, and whether it becomes a council or a working group.
  • The Technical Council's ruling on #929 versus #773 Offer, and on where #845's term handoff lives.
  • Whether pricing modes from #877 reach a pull request, and how they apply to catalog feeds.
  • The first UCP profile declaring dev.ucp.common.quote, and whether vendor quote extensions such as com.shopware.quote map onto it.

We'll update our UCP for B2B page as each one moves.

FAQ

Does UCP support B2B? Partly. Small-business buying by card works on today's UCP, and net payment terms shipped in v2026-08-25. Quotes, purchase orders, approvals and contract pricing are not in the spec yet. A charter for a B2B Procurement council was filed on 14 October 2026 and is awaiting Governing Council review.

Who is behind the UCP B2B Procurement charter? The charter names SAP, Zip, Lio, Vroozi, Procurify and ORO Labs as platforms and Amazon as a business, committing to the work.

Can an AI agent request a quote through UCP? Not in a standard way yet. Google's draft quote extension (#929, #930) proposes one: the buyer proposes a price or asks for one on the cart or checkout, and the business answers with a time-bound quotation the buyer accepts by id. Some sellers run quotes today through vendor extensions, such as Shopware's com.shopware.quote.

Can a UCP catalog list products without a price? Not today. Every catalog item needs a price. Issue #877 proposes a pricing mode such as quote_required or buyer_specific, so a business can list a product without a public price and a platform knows never to show it as zero.

Does UCP support net-30 payment terms? Yes. Payment terms with schedules shipped in v2026-08-25 as dev.ucp.common.payment.terms, covering net terms, deposits and instalments. They are not yet linked to purchase orders or approvals.

Will UCP support purchase orders and approvals? That's the proposed council's second phase: requisitions, approval status, PO issuance and supplier acknowledgment, with approval authority staying with people and enterprise systems rather than the agent.



About UCP Checker

UCP Checker is the independent validation and observability layer for the Universal Commerce Protocol. We crawl, validate and grade every public UCP manifest we can find, run the merchant directory, the UCP Score, live adoption stats, the vertical guides and the authority-bound vendor map, and track the spec as it evolves so you don't have to — measured from two vantages (what a business declares, and what actually happens when an agent transacts), the same way for everyone, without picking winners.

Sources

Related coverage: UCP for B2B · UCP's payment layer learns negotiated terms · UCP Local Services charter · Amazon's business directory and identity RFCs

Check your domain's UCP status

See if your storefront is ready for agentic commerce in seconds.

Weekly UCP Report

Get the agentic commerce digest every Monday

Real adoption data, ecosystem trends, new spec versions, and the stores that broke or recovered this week. Read by founders and engineers building the next generation of commerce.

Free forever No spam Unsubscribe anytime

View a sample report →

Weekly UCP Report
Issue #54 · Oct 12, 2026
+664
new verified stores
Verified rate
Latest spec
Cart capability