UBL vs CII vs Factur-X

Europe standardised the semantic model of an electronic invoice with EN 16931 but stopped short of a single file format. UBL, CII and Factur-X are the three concrete answers. This page is a practical comparison of all three.

By Peppol Validator · Last updated

Why there are multiple e-invoice formats

Europe standardised the semantic model of an electronic invoice with EN 16931. The standard defines what data an e-invoice must contain, but it does not prescribe a single file format. Instead, it provides two official syntax bindings: UBL 2.1 and UN/CEFACT CII. On top of these, hybrid formats like Factur-X and ZUGFeRD combine CII XML with PDF for human readability.

This article compares all three approaches so you can determine which format applies to your situation.

The three formats at a glance

UBL 2.1CIIFactur-X / ZUGFeRD
Maintained byOASISUN/CEFACTFNFE-MPE (FR) + FeRD (DE)
XML structureInvoice root, cac: and cbc: namespacesCrossIndustryInvoice root, ram: namespaceCII XML embedded in PDF/A-3
EN 16931 bindingYes (official)Yes (official)Yes (via CII XML)
Human-readableNo (XML only)No (XML only)Yes (PDF + XML)
Peppol compatibleYes (required)NoNo
File extension.xml.xml.pdf

UBL 2.1 (Universal Business Language)

UBL is an OASIS standard that defines XML schemas for common business documents including invoices, credit notes, orders and despatch advice. Version 2.1 is the syntax binding for EN 16931 and the format required by the Peppol network.

Structure

A UBL invoice uses a clear namespace separation:

  • cbc: (CommonBasicComponents) for simple fields like cbc:ID, cbc:IssueDate, cbc:InvoiceTypeCode
  • cac: (CommonAggregateComponents) for complex structures like cac:AccountingSupplierParty, cac:InvoiceLine
<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:ID>INV-2026-001</cbc:ID>
  <cbc:IssueDate>2026-03-30</cbc:IssueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cac:AccountingSupplierParty>
    <!-- supplier details -->
  </cac:AccountingSupplierParty>
</Invoice>

When to use UBL

  • Peppol network: All Peppol invoices must use UBL 2.1. If you exchange invoices through Access Points, this is your format.
  • Public procurement in many EU countries: Belgium, the Netherlands, Italy (FatturaPA uses its own XML, but Peppol uses UBL), and the Nordic countries all use UBL via Peppol.
  • Broad ecosystem: UBL has the widest support among accounting software, ERP systems, and Access Point providers.

Validate your UBL invoices with the UBL Validator.

CII (Cross-Industry Invoice)

CII is part of the UN/CEFACT standard library. It is the second official EN 16931 syntax binding. While less common than UBL in the Peppol world, CII has strong adoption in the DACH region (Germany, Austria, Switzerland) and France.

Structure

CII uses a single ram: namespace (Resource Address Model) with a hierarchical structure:

<rsm:CrossIndustryInvoice
    xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
    xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">
  <rsm:ExchangedDocument>
    <ram:ID>INV-2026-001</ram:ID>
    <ram:IssueDateTime>
      <udt:DateTimeString format="102">20260330</udt:DateTimeString>
    </ram:IssueDateTime>
  </rsm:ExchangedDocument>
</rsm:CrossIndustryInvoice>

Key differences from UBL

  • Date format: CII uses YYYYMMDD with a format="102" attribute. UBL uses ISO 8601 (YYYY-MM-DD) directly.
  • Nesting: CII nests data more deeply. Supplier information sits inside rsm:SupplyChainTradeTransaction > ram:ApplicableHeaderTradeAgreement > ram:SellerTradeParty. In UBL, it is cac:AccountingSupplierParty > cac:Party.
  • Fewer document types: CII handles invoices and credit notes through the TypeCode field within the same schema. UBL has separate schemas for Invoice and CreditNote.

When to use CII

  • XRechnung (Germany): XRechnung supports both UBL and CII. Many German implementations choose CII because of UN/CEFACT's popularity in the region.
  • Factur-X / ZUGFeRD: If you need a hybrid PDF+XML format, the embedded XML is always CII.
  • French e-invoicing: France's Chorus Pro platform for B2G invoicing accepts CII alongside UBL and Factur-X.

Validate your CII invoices with the Factur-X / CII Validator.

Factur-X / ZUGFeRD

Factur-X is a Franco-German hybrid format that embeds a CII XML file inside a PDF/A-3 document. ZUGFeRD 2.x is technically the same format under a different name. Factur-X is the term used in France; ZUGFeRD is the term used in Germany. See the dedicated ZUGFeRD vs Factur-X vs XRechnung comparison for the German-market angle.

How it works

A Factur-X invoice is a valid PDF/A-3 file with an embedded XML attachment named factur-x.xml (or xrechnung.xml for the XRechnung profile). The PDF serves as the visual representation for humans. The XML contains the structured data for automated processing.

Profiles

Factur-X defines several profiles that determine how much data the XML contains:

ProfileData in XMLUse case
MinimumInvoice number, date, amounts, seller/buyer IDsArchival, basic automation
Basic WLAbove + line items without detailsSimple invoices
BasicAbove + full line item detailsStandard B2B
EN 16931Full EN 16931 compliant dataCross-border, regulatory compliance
ExtendedEN 16931 + additional fieldsComplex invoices with extra data

For EN 16931 compliance, you need at least the "EN 16931" profile.

When to use Factur-X

  • French B2B e-invoicing mandate: Starting in 2026, France requires structured e-invoicing for B2B transactions. Factur-X is one of the accepted formats alongside UBL and CII.
  • German e-Rechnung: Germany's B2B e-invoicing mandate (mandatory for reception from January 2025, sending phased in 2027–2028) accepts ZUGFeRD / Factur-X at the EN 16931 profile or higher.
  • Transition scenarios: When you need to send structured e-invoices to partners who still expect PDFs, Factur-X lets both sides get what they need from a single file.

Validate your Factur-X invoices with the Factur-X Validator.

How EN 16931 ties everything together

EN 16931 is the semantic standard. It defines the meaning and rules for invoice data at an abstract level. The syntax bindings (UBL and CII) are concrete implementations.

An invoice that passes EN 16931 business rule validation in UBL format contains the same semantic information as one in CII format. The business rules (BR-*) check the same things in both formats. Only the technical rules (UBL-* or CII-SR-*) differ because they validate format-specific constraints.

This means:

  • A UBL invoice and a CII invoice can carry identical business information.
  • Converting between formats is possible without data loss (at the EN 16931 core level).
  • Validation against EN 16931 business rules applies equally to both.

Country requirements

CountryFormatMandate
BelgiumUBL (Peppol)B2B mandatory from January 2026
NetherlandsUBL (Peppol)B2G mandatory since 2017
GermanyUBL, CII, or ZUGFeRDB2B reception mandatory from January 2025
FranceUBL, CII, or Factur-XB2B mandatory from September 2026 (large/mid), September 2027 (SME)
ItalyFatturaPA (national format)B2B mandatory since 2019
NordicsUBL (Peppol)B2G mandatory; Norway B2B from January 2028
Australia / NZUBL (Peppol PINT)B2G encouraged

Which format should you choose?

Use UBL if:

  • You send invoices via the Peppol network.
  • Your trading partners are in countries that primarily use Peppol (Belgium, Netherlands, Nordics).
  • You want the broadest software compatibility.

Use CII if:

  • You operate in Germany or Austria and your partners expect CII.
  • You need to create Factur-X / ZUGFeRD documents (the embedded XML is always CII).
  • You submit to platforms that specifically request CII.

Use Factur-X / ZUGFeRD if:

  • You need a human-readable PDF alongside machine-readable data.
  • You are transitioning from PDF invoicing and want backward compatibility.
  • Your partners in France or Germany expect this format.

When in doubt, start with UBL via Peppol. It has the widest reach and is the direction Europe is heading with cross-border e-invoicing.

Validate any format

Drop a UBL, CII or Factur-X / ZUGFeRD file and check it against EN 16931 and the relevant Peppol BIS rules. Free, instant, no signup.