Glossary Term

OASIS UBL (Universal Business Language)

OASIS UBL is the open library of standard XML business documents — invoices, orders, despatch advices, catalogues, and more — published by OASIS as an ISO/IEC standard (19845:2015) and used as the XML syntax behind Peppol BIS, EN 16931, and most European e-invoicing CIUSes.

Quick Facts

Licence
Royalty-free, non-assertion
Used by
Peppol BIS, XRechnung, most EU CIUSes
Full name
OASIS Universal Business Language
Maintainer
OASIS UBL Technical Committee
Namespaces
cbc: (Common Basic), cac: (Common Aggregate)
ISO standard
ISO/IEC 19845:2015 (UBL 2.1)
Current version
UBL 2.4 (UBL 2.1 most widely deployed)
EN 16931 syntax
Yes — one of two binding syntaxes

Definition

What is OASIS UBL?

UBL (Universal Business Language) is an open, royalty-free library of standard XML schemas for electronic business documents. It is published and maintained by OASIS (Organization for the Advancement of Structured Information Standards), a non-profit consortium that produces open standards for security, IoT, energy, content technologies, and emergency management.

UBL covers the full document family of a typical procurement and billing process: orders, order responses, despatch advices, receipt advices, invoices, credit notes, statements, catalogues, transport documents, and more. In e-invoicing, the UBL Invoice and UBL CreditNote schemas are the relevant ones — and they are the XML syntax behind almost every European e-invoicing CIUS, including Peppol BIS Billing 3.0, XRechnung, and several country-specific implementations.

OASIS — The Standards Body

OASIS is one of the longest-established open standards organisations on the internet, formed in 1993 as SGML Open. Its standards are developed in publicly chartered Technical Committees (TCs) with open membership, an open balloting process, and royalty-free intellectual property terms. Other well-known OASIS standards include OpenDocument Format (ODF), SAML, MQTT, and DITA.

The OASIS UBL TC is the technical committee responsible for UBL. It includes representatives from international standards organisations (UN/CEFACT, ISO/TC 154), national e-business initiatives, and large user organisations. The TC works in the open: drafts, meeting minutes, and ballots are published.

UBL's Lineage

UBL grew out of earlier XML business-document efforts (xCBL, ebXML) in the early 2000s. Its key milestones:

  • UBL 1.0 — 2004. First OASIS Standard.

  • UBL 2.0 — 2006. Major expansion of the document library.

  • UBL 2.1 — 2013. The version most widely deployed; adopted as ISO/IEC 19845:2015, giving UBL the status of a formal international standard.

  • UBL 2.2 — 2018. Added e-tendering documents.

  • UBL 2.3 — 2021. Refinements and new logistics document types.

  • UBL 2.4 — 2024. Continued expansion.
  • For e-invoicing purposes, UBL 2.1 remains the working version: EN 16931's UBL syntax binding is defined against UBL 2.1, and Peppol BIS Billing 3.0 also uses UBL 2.1. Newer UBL versions are backwards-compatible at the message level.

    How UBL Schemas Are Built

    UBL is built from a layered model:

    1. Common Basic Components (CBC) — Atomic data items: text, dates, numeric amounts, codes, identifiers. Lives in the cbc: namespace.
    2. Common Aggregate Components (CAC) — Reusable groupings of CBCs and other CACs (e.g. Address, Party, MonetaryTotal). Lives in the cac: namespace.
    3. Document schemas — Top-level documents (Invoice, Order, etc.) assembled from CACs and CBCs. Each document has its own root namespace.

    This layered design is what makes UBL extensible: a new document type can reuse the same cac:Party or cac:Address definitions used everywhere else, ensuring consistency across the document family.

    UBL and EN 16931

    EN 16931 defines the semantic data model for European e-invoices — business terms (BT-1 to BT-160) and business groups (BG-1 to BG-50). It does not define an XML format directly; instead, it specifies two binding syntaxes:

  • OASIS UBL 2.1 (Invoice and CreditNote schemas)

  • UN/CEFACT Cross Industry Invoice (CII) (used by ZUGFeRD and Factur-X)
  • A Peppol BIS or XRechnung invoice is, mechanically, a UBL Invoice document with EN 16931 + Peppol/national Schematron rules layered on top. The mapping from each EN 16931 BT to a UBL XPath is published in the EN 16931 implementation guidelines.

    Why UBL Matters for ERP Vendors

    If you build software that issues, receives, or transforms European e-invoices, you almost certainly produce or consume UBL XML. Practical implications:

  • The schema is large, but you only use a subset — UBL Invoice has hundreds of elements; an EN 16931-conformant invoice uses roughly 100. Build your serialisation around the EN 16931 mapping rather than the full UBL schema.

  • Namespace handling matters — Mixing the Invoice-2 root namespace with cbc: and cac: is non-negotiable; missing namespace declarations are a leading source of XSD failures.

  • Validate against the official XSDs — Don't trust hand-built schemas. Pull UBL-2.1 XSDs from docs.oasis-open.org or the relevant Peppol/EN 16931 distribution.

  • Be careful with optional elements — UBL allows many optional elements that EN 16931 forbids in certain configurations. Schematron is what enforces those EN 16931 rules; XSD will not catch them.

  • Code lists are external — UBL itself defines very few code values. ISO 4217 currencies, UNECE Rec. 20 unit codes, ISO 6523 scheme IDs, and others are referenced by code-list URI and validated by Schematron.
  • Licensing

    UBL is royalty-free. OASIS publishes UBL under a non-assertion IP policy: implementing UBL does not require a licence fee or membership. This is one of the reasons UBL has been widely adopted by national e-invoicing programmes: governments and ERP vendors can ship UBL-based products without negotiating IP terms.

    Where You Encounter UBL in the Wild

  • Peppol BIS Billing 3.0 — UBL 2.1 Invoice and CreditNote, plus Peppol Schematron.

  • XRechnung — UBL 2.1 (Germany also accepts CII).

  • Belgium, Netherlands, Nordic countries — UBL 2.1 + Peppol BIS for B2G.

  • Singapore InvoiceNow, Australia/New Zealand Peppol — UBL 2.1 + Peppol BIS.

  • EN 16931 — Listed UBL 2.1 as one of two valid syntaxes.
  • The other major syntax — UN/CEFACT CII — is used by ZUGFeRD and Factur-X and dominates in the German and French hybrid-PDF context. UBL is the dominant syntax everywhere else in Europe.

    XML Examples

    UBL (Peppol, XRechnung)

    <Invoice
        xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
        xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
        xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
      <cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID>
      <cbc:ID>INV-2026-0001</cbc:ID>
      <cbc:IssueDate>2026-04-30</cbc:IssueDate>
      <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
      <cac:AccountingSupplierParty>
        <cac:Party>
          <cac:PartyName><cbc:Name>ACME Ltd</cbc:Name></cac:PartyName>
        </cac:Party>
      </cac:AccountingSupplierParty>
      <!-- ... -->
    </Invoice>

    Related Content