The blog  ·  2026-07-31

Order, DespatchAdvice, Invoice, ReceiptAdvice: UBL's four are CBV's four

Written for ED-3 — the in-house supply-chain platform team — the platform engineer who wants the standards bridge that costs zero legal review.

One thesis: OASIS UBL 2.3's document library maps one-to-one onto the CBV core four — Order→po, DespatchAdvice→desadv, Invoice→inv, ReceiptAdvice→recadv — with royalty-free schemas included, which makes UBL the cleanest standards bridge in the entire business-document landscape.

Most cross-standard mappings are acts of interpretation: somebody's table, somebody's judgment calls, somebody's maintenance burden when either side revises. Once in a while two vocabularies were simply aimed at the same reality carefully enough that the mapping is a bijection you can read off the document-type names. This is one of those, and it is worth a page precisely because nothing about it is clever. It is also the strongest single piece of evidence for the family's founding claim — every wire format is a dialect of the same vocabulary — because here the correspondence is not argued from mapping tables; two independent standards bodies simply wrote the same four documents down. CBV's authors built their vocabulary from the EDI document types the world already exchanged; OASIS built UBL from the same commercial reality; the bijection is what convergent modeling looks like when both sides did it honestly.

The mapping, all four rows

OASIS UBL — the Universal Business Language — is a library of XML business documents: 92 document types in UBL 2.3, published with runtime XSDs at docs.oasis-open.org/ubl/UBL-2.3.html under OASIS's royalty-free policy. CBV 2.0 §7.3 is GS1's closed vocabulary of business-transaction types for EPCIS events. The commercial cycle's core, side by side:

Four documents, four references, no residue in either direction that the core cycle needs. The other 88 UBL types brush the adjacent CBV vocabulary where you would expect — waybills near bol, returns-related documents near rma — and diverge where UBL models territory (tendering, certificates of origin, customs) that the event record has no business holding. The bridge is the core four, and the core four is complete.

What royalty-free means operationally

Against the licensing landscape this site keeps having to explain — X12's negotiated-partner regime on one side, UNECE's free-of-charge directories on the other — UBL sits at the maximally convenient corner: the schemas are not just free to read but free to redistribute and embed, under the standing OASIS royalty-free commitment rather than anyone's forbearance. The XSDs are vendored in this layer's artifact set with the same digest pins as the UNTDID directories, your legal review has nothing to review, and validator tooling consumes the official schema files rather than a paraphrase.

The compile, worked end to end

A self-authored UBL DespatchAdvice, reduced to its load-bearing elements:

<DespatchAdvice xmlns="urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2">
  <cbc:ID>DES8560001</cbc:ID>
  <cbc:IssueDate>2026-07-28</cbc:IssueDate>
  <cac:OrderReference><cbc:ID>4500123</cbc:ID></cac:OrderReference>
  <cac:DespatchSupplierParty><cac:Party>
    <cbc:EndpointID schemeID="0088">0614141000005</cbc:EndpointID>
  </cac:Party></cac:DespatchSupplierParty>
  <cac:DeliveryCustomerParty><cac:Party>
    <cbc:EndpointID schemeID="0088">0345678000007</cbc:EndpointID>
  </cac:Party></cac:DeliveryCustomerParty>
  <cac:DespatchLine>
    <cbc:DeliveredQuantity unitCode="EA">48</cbc:DeliveredQuantity>
    <cac:Item><cac:StandardItemIdentification>
      <cbc:ID schemeID="0160">00614141123452</cbc:ID>
    </cac:StandardItemIdentification></cac:Item>
  </cac:DespatchLine>
</DespatchAdvice>

Note the identifier posture: the parties' EndpointID values are GLNs under ISO 6523 scheme 0088, and the item is a GTIN under scheme 0160 — GS1 identity carried natively in an OASIS document, the same GLNs and GTINs the barcode layer resolves. The join verb compiles it exactly as it compiles the DESADV:

{ "type": "ObjectEvent", "action": "OBSERVE",
  "bizStep": "shipping", "disposition": "in_transit",
  "quantityList": [
    { "epcClass": "urn:epc:idpat:sgtin:0614141.012345.*",
      "quantity": 48, "uom": "EA" } ],
  "bizTransactionList": [
    { "type": "desadv",
      "bizTransaction": "urn:epc:id:gdti:0614141.00001.DES8560001" },
    { "type": "po",
      "bizTransaction": "urn:epc:id:gdti:0345678.00010.4500123" } ],
  "sourceList": [
    { "type": "owning_party", "source": "urn:epc:id:pgln:0614141.000005" } ],
  "destinationList": [
    { "type": "owning_party", "destination": "urn:epc:id:pgln:0345678.000009" } ] }

— validated against the pinned official EPCIS 2.0 schema before it leaves the tool, superset where the document carries more than the standard models and conformant always. One wire syntax fewer to argue about; zero new semantics invented. The mapping table above is not a feature of this product so much as a fact about two standards — the product's contribution is the compiler that makes the fact executable.

Why this bridge matters more each year

UBL is not a museum piece: it is the payload format of the Peppol network, whose invoice rail is becoming legally load-bearing across the EU and beyond — the next post walks that lane, GLN endpoint scheme and all. Which means the cleanest mapping in the landscape is also the one sitting under the fastest-growing document volume. For a platform team, the conclusion is pleasantly boring: the standards already agree; wire the bridge once, pin the schemas, and let both vocabularies' maintainers keep agreeing on your behalf. If UBL is the bridge your platform crosses, wire it at the door — the onboarding flow asks which document sets are on your wire and in what form you hold your partner guides.


837 words. The access flow is at /get-access/; the family's event door is epcis.dev.