Zum Inhalt springen
E-Invoicing formats UBL, CII, ZUGFeRD and Factur-X compared

UBL, CII, ZUGFeRD, Factur-X: E-Invoicing Formats Finally Explained

Daniel Gorski
Daniel Gorski 21. Juli 2026
5 Min. Lesezeit

UBL? CII? ZUGFeRD? Factur-X? Anyone diving into e-invoicing for the first time drowns in acronyms.

The good news: there's no chaos behind them – just a surprisingly logical system. You only need to know which format follows which concept.

These formats get confused with each other all the time, even though they pursue completely different ideas. The single most important distinction: UBL and CII are pure XML data formats, while Factur-X and ZUGFeRD are hybrid formats made of PDF plus XML.

The Overview at a Glance

Format What is it? Contains PDF? XML standard
UBL XML invoice format ❌ No UBL
CII XML invoice format ❌ No UN/CEFACT CII
Factur-X PDF + embedded XML ✅ Yes CII
ZUGFeRD 2.x PDF + embedded XML ✅ Yes CII

Looks manageable at first glance – and it is. Let's walk through the four formats one by one.

UBL (Universal Business Language)

  • Developed by OASIS
  • An XML format for many business documents (invoices, orders, delivery notes, etc.)
  • Widespread across many European countries

Used, for example, by:

  • Peppol BIS Billing
  • Denmark
  • Norway
  • Belgium
  • The Netherlands
  • Parts of the UK market

Example:

<Invoice>
    <cbc:ID>12345</cbc:ID>
    ...
</Invoice>

CII (Cross Industry Invoice)

  • Developed by UN/CEFACT
  • Also an XML invoice format
  • Especially widespread in Germany and France
  • EN16931-compliant

Example:

<rsm:CrossIndustryInvoice>
    ...
</rsm:CrossIndustryInvoice>

ZUGFeRD

ZUGFeRD is not an XML format of its own.

It consists of:

  • a PDF/A-3
  • an embedded XML file

Since ZUGFeRD 2.x, this XML is always a CII file.

So:

PDF
 └── embedded XML
      └── CII

The recipient can either:

  • read the PDF, or
  • import the XML automatically.

That's the whole charm of the hybrid format: human-readable and machine-readable in a single file.

Factur-X

Factur-X is essentially the French sibling of ZUGFeRD.

More precisely: Factur-X and ZUGFeRD 2.x use the exact same technical specification.

They differ mainly in name and marketing:

  • France → Factur-X
  • Germany → ZUGFeRD

Technically, they are compatible.

Here, too:

PDF/A-3
 └── embedded CII XML

Why Do UBL and CII Exist at All?

The European standard EN16931 does not mandate a specific XML format.

It only defines:

  • which fields must be present
  • which business rules apply
  • which calculations must be correct

For the actual implementation, EN16931 allows two XML syntaxes:

  • UBL
  • CII

Both can describe the very same invoice. That's exactly why two worlds live side by side – not out of whim, but because the standard permits it.

What Does Germany Use?

Common in Germany today:

  • XRechnung → mostly CII, sometimes UBL
  • ZUGFeRD → always CII
  • Factur-X → always CII

What Does Peppol Use?

Peppol BIS Billing uses by default:

  • UBL

That's why many European e-invoicing platforms build on UBL.

Overview

                    EN16931

        ┌───────────────┴───────────────┐
        │                               │
      UBL XML                       CII XML
        │                               │
        │                         ┌─────┴─────┐
        │                         │           │
     Peppol                   ZUGFeRD     Factur-X
                                 │           │
                          PDF/A-3 + XML  PDF/A-3 + XML

Practical Bonus: Embedding ZUGFeRD XML via a Report Extension

So much for the theory. But how does such a hybrid format actually come to life in Business Central? Simple: you extend your own report. The following report extension automatically attaches the ZUGFeRD XML to the posted sales invoice on PDF export – turning an ordinary PDF into exactly that PDF/A-3 with embedded CII XML we talked about above:

reportextension 50000 "PTE Posted Sales Invoice" extends "Standard Sales - Invoice"
{
    trigger OnPreRendering(var RenderingPayload: JsonObject)
    begin
        AddXMLAttachmentforZUGFeRDExport(RenderingPayload);
    end;

    local procedure AddXMLAttachmentforZUGFeRDExport(var RenderingPayload: JsonObject)
    var
        ExportZUGFeRDDocument: Codeunit "Export ZUGFeRD Document";
    begin
        if CurrReport.TargetFormat() <> ReportFormat::PDF then
            exit;

        if not ExportZUGFeRDDocument.IsZUGFeRDPrintProcess() then
            exit;

        ExportZUGFeRDDocument.CreateAndAddXMLAttachmentToRenderingPayload(Header, RenderingPayload);
    end;
}

The magic sits in the OnPreRendering trigger: the XML is only embedded when it's genuinely a ZUGFeRD print process in PDF format (CurrReport.TargetFormat() = ReportFormat::PDF). Otherwise the report stays untouched. That's the kind of elegance we live for – a few lines of AL, and your standard invoice suddenly speaks ZUGFeRD.

For the compiler to resolve the Export ZUGFeRD Document codeunit, your app needs a dependency on Microsoft's E-Document for Germany app. Add the following entry to the dependencies array in your app.json:

{
	"id": "fdeb586e-beff-49d8-947d-1e73ce980b34",
	"name": "E-Document for Germany",
	"publisher": "Microsoft",
	"version": "27.0.0.0"
}

The BEYONDIT Take: Concept Beats Acronym

Once you grasp the concept, the acronyms lose their sting. Just remember these two axes:

  1. Pure XML (UBL, CII) or hybrid PDF + XML (ZUGFeRD, Factur-X)?
  2. Which XML syntax sits inside – UBL or CII?

Everything else follows from that. ZUGFeRD and Factur-X are technically identical. Peppol thinks in UBL. Germany thinks in CII. And above it all sits EN16931, which permits both syntaxes.

This is exactly where theory turns into practice – and exactly where we love to dig in. If you want to not just receive XML invoices but actually make them readable, our open-source E-Invoice Viewer for Business Central is the companion you're looking for. And if you want to set up XRechnung and ZUGFeRD cleanly in Business Central, we've written a step-by-step guide for exactly that.

These formats aren't rocket science – you just have to slot them into place once.

Wondering which format is the right one for your customers, public authorities, or European partners? We've untangled plenty of these knots already – let's talk.

beyondit
tech
e-invoice
zugferd
factur-x
ubl
cii
e-invoicing
E-Invoicing-Formate UBL, CII, ZUGFeRD und Factur-X im Vergleich

UBL, CII, ZUGFeRD, Factur-X: Die E-Invoicing-Formate endlich verständlich erklärt

UBL, CII, ZUGFeRD oder Factur-X – diese E-Invoicing-Formate werden ständig verwechselt. Wir erklären den Unterschied zwischen reinen XML-Formaten und Hybridform

Weiter lesen: UBL, CII, ZUGFeRD, Factur-X: Die E-Invoicing-Formate endlich verständlich erklärt
Weiter lesen: UBL, CII, ZUGFeRD, Factur-X: Die E-Invoicing-Formate endlich verständlich erklärt
E-Invoicing formats UBL, CII, ZUGFeRD and Factur-X compared

UBL, CII, ZUGFeRD, Factur-X: E-Invoicing Formats Finally Explained

UBL, CII, ZUGFeRD or Factur-X – these e-invoicing formats get confused all the time. We break down the difference between pure XML formats and hybrid PDF-plus-X

Weiter lesen: UBL, CII, ZUGFeRD, Factur-X: E-Invoicing Formats Finally Explained
Weiter lesen: UBL, CII, ZUGFeRD, Factur-X: E-Invoicing Formats Finally Explained