Skip to content

Universal Commerce Protocol · extension

B2B purchasing

com.chatcommerce360.shopping.b2b version 2026-09-24 extends dev.ucp.shopping.checkout and dev.ucp.shopping.order (UCP 2026-08-25 or later) with what a business buyer's purchasing process needs and a consumer checkout doesn't carry.

Fields

One b2b object on checkout and order responses. Amounts are minor units.

{
  "b2b": {
    "po_number": "PO-7731",
    "cost_center": "CC-ICU-2",
    "tax_exemption": {
      "applied": true,
      "certificate": { "number": "TX-RESALE-0042", "kind": "resale", "region": "TX" }
    },
    "approval": {
      "status": "required",
      "threshold": 500000,
      "required_approvals": 2,
      "on_complete": "pending_approval"
    }
  }
}

Approval behavior

When approval is required, on_complete says what Complete Checkout does, per the business's policy: pending_approval places the order and returns a completed checkout whose order awaits approval (the order webhook reports the decision); escalate returns requires_escalation with a continue_url so a person submits the order on the storefront. The policy applies whether or not a platform negotiates this extension; the extension makes it visible.

Discovery and negotiation

Businesses declare the extension in their profile; platforms that want the fields declare the same version. Its fields are read and returned only when the extension is in the negotiated intersection.

"com.chatcommerce360.shopping.b2b": [{
  "version": "2026-09-24",
  "spec": "https://chatcommerce360.com/ucp/specification/b2b",
  "schema": "https://chatcommerce360.com/ucp/schemas/shopping/b2b.json",
  "extends": ["dev.ucp.shopping.checkout", "dev.ucp.shopping.order"]
}]

Schema

JSON Schema (2020-12), composed onto the UCP base schemas with allOf under $defs["dev.ucp.shopping.checkout"] and $defs["dev.ucp.shopping.order"]: https://chatcommerce360.com/ucp/schemas/shopping/b2b.json