Norm
What is EN 16931? The European e-invoice norm explained
Short answer: EN 16931 is the European norm that defines the semantic data model of an electronic invoice — which fields an invoice must contain and how they are structured, independent of the file format. It permits two XML syntaxes (UBL 2.1 and UN/CEFACT CII) and is the common basis on which XRechnung and ZUGFeRD/Factur-X build.
Definition: what EN 16931 specifies
EN 16931 (in full, EN 16931-1) is the European norm for electronic invoicing. It does not describe a file format — it describes the semantic model of the core invoice: a standardised list of named data fields with fixed meaning. This makes it unambiguous across Europe what, for example, "invoice total", "tax rate" or "delivery date" mean — regardless of which software creates or processes the invoice. That shared semantics is exactly what makes e-invoices automatically processable and interoperable across borders.
Important: EN 16931 is a norm, not a single format. XRechnung, ZUGFeRD and Factur-X are the concrete expressions of it. For the broader picture see What is a German e-invoice?
Where EN 16931 comes from: EU Directive 2014/55/EU
The starting point is EU Directive 2014/55/EU on electronic invoicing in public procurement. It tasked the European standardisation body CEN with producing a common semantic data model for e-invoices — the result is the norm EN 16931. Member states derive their national implementations from it; in Germany that is chiefly XRechnung and the formats permitted in B2B. The German mandate timeline is covered in the German e-invoicing mandate.
Business Terms (BT) and Business Groups (BG)
The data model gives every field a unique identifier — this is the core reason EN 16931 invoices are machine-readable without ambiguity:
- Business Terms (BT) — individual data fields with a fixed ID, e.g. the invoice number (BT-1), the invoice date (BT-2) or the amount due for payment. Each BT has a defined meaning and data type.
- Business Groups (BG) — groups that bundle related fields, such as a complete invoice line or the seller's details.
This semantic layer is syntax-independent: the same BT exists in both the UBL and the CII representation, just at a different place in the XML. What a compliant XML looks like is shown in the e-invoice example (XML).
The two permitted syntaxes: UBL 2.1 and UN/CEFACT CII
EN 16931 separates the what (semantics) from the how (syntax) and permits exactly two XML syntaxes for the representation:
- UBL 2.1 — the OASIS Universal Business Language.
- UN/CEFACT CII — the Cross Industry Invoice.
Both express the same data model. An invoice in UBL and the same invoice in CII are semantically equivalent — only the XML structure differs. XRechnung permits both syntaxes; ZUGFeRD/Factur-X uses CII in its embedded XML.
How XRechnung and ZUGFeRD build on EN 16931
EN 16931 is the norm; XRechnung and ZUGFeRD are its German expressions — in two different ways:
- XRechnung is a CIUS (Core Invoice Usage Specification): a national restriction of EN 16931 that adds German mandatory fields and rules (e.g. the Leitweg-ID for B2G). See What is XRechnung?
- ZUGFeRD/Factur-X are profiles that embed the EN 16931 CII XML inside a PDF/A-3 — hybrid PDF and XML. See What is ZUGFeRD?
How the three relate is explored in ZUGFeRD, XRechnung and EN 16931; for the direct format comparison see XRechnung vs ZUGFeRD.
The business rules: BR, BR-CO and national BR-DE
A valid data model alone is not enough — the fields must also be consistent with each other. EN 16931 defines business rules for that:
- BR — content rules, e.g. that certain mandatory fields must be present.
- BR-CO — calculation and consistency rules (Co = calculation), e.g. that line, tax and total sums add up arithmetically.
- BR-DE — national rules Germany adds for XRechnung (e.g. extra mandatory details). Common violations are explained in XRechnung validation errors (BR-DE).
Only the combination of a correct data model and satisfied business rules makes a file a technically compliant EN 16931 invoice.
Is my file EN 16931 compliant? Check it for free
A file can be valid XML and still violate EN 16931 — a missing mandatory BT, a broken BR-CO calculation rule, an unmet BR-DE requirement. Whether a file really meets the data model and the business rules is only shown by a technical check with a KoSIT-aligned accept gate. The free fakturai validator reads XRechnung, ZUGFeRD and Factur-X files and checks them in one step against EN 16931 — no account needed.
Check a file against EN 16931 for free
What fakturai does not replace
fakturai checks the technical format and structural compliance per EN 16931 with a KoSIT-aligned accept gate. The content and tax correctness of the invoice, proper archiving and accounting treatment remain your responsibility. fakturai is not tax advice and makes no legal, tax or delivery guarantees.
Next step
Free German e-invoice validator
Related: What is a German e-invoice? · What is XRechnung? · What is ZUGFeRD? · ZUGFeRD, XRechnung and EN 16931