ZUGFeRD, XRechnung and Factur-X are not competitors but variants of the same idea: transmitting invoice data in a structured, machine-readable way according to the European standard EN 16931. The differences lie in the format (hybrid PDF or pure XML), in national additional rules and in who requires which format.
The formats compared
| ZUGFeRD | Factur-X | XRechnung | Peppol BIS Billing 3.0 | |
|---|---|---|---|---|
| Origin | Germany (FeRD) | France (FNFE-MPE) | Germany (KoSIT) | OpenPeppol (European network) |
| Format | hybrid: PDF/A-3 with embedded XML | hybrid: PDF/A-3 with embedded XML | pure XML (no visual document) | pure XML |
| XML syntax | UN/CEFACT CII (D16B) | UN/CEFACT CII (D16B) | CII or UBL | UBL 2.1 |
| Basis | EN 16931 (profiles MINIMUM to EXTENDED) | EN 16931 (identical to ZUGFeRD 2.x) | EN 16931 + national rules (CIUS) | EN 16931 + Peppol rules (CIUS) |
| Typical use | B2B in Germany | B2B in France, international | B2G (public-sector buyers) | exchange over the Peppol network, B2G and B2B |
ZUGFeRD: the hybrid format
A ZUGFeRD invoice is a PDF/A-3 file with an embedded XML file. People read the PDF, accounting systems read the XML. Since version 2.1, ZUGFeRD is technically identical to Factur-X; the current specification carries both names (ZUGFeRD 2.5.2 / Factur-X 1.09.2). Which fields it contains is determined by the ZUGFeRD profile.
XRechnung: the pure XML format
XRechnung is the German implementation (CIUS) of EN 16931 with additional business rules, for example the Leitweg-ID for addressing authorities. It consists of XML only; a human-readable view is created by the receiving system. Public-sector buyers usually require the XRechnung. With the XRECHNUNG profile, ZUGFeRD offers a variant whose XML meets the XRechnung rules.
EN 16931: the common basis
All three formats implement the semantic data model of EN 16931: around 160 business terms (BT) in 32 groups (BG), such as the invoice number (BT-1) or the seller VAT identifier (BT-31). All fields with their German name, XPath and profile assignment are in the BT/BG explorer.
Legal basis: EN 16931 and two permitted syntaxes
The European basis is Directive 2014/55/EU on electronic invoicing in public procurement. Under Article 7, contracting authorities must receive and process electronic invoices that comply with the European standard EN 16931 – and with any of the syntaxes on the published list.
That list is set out in Commission Implementing Decision (EU) 2017/1870 of 16 October 2017. It names exactly two syntaxes:
| Syntax | Version | Used by |
|---|---|---|
| OASIS Universal Business Language (UBL) | UBL 2.1 (ISO/IEC 19845:2015) | Peppol BIS Billing 3.0, XRechnung (UBL variant) |
| UN/CEFACT Cross Industry Invoice (CII) | D16B | ZUGFeRD, Factur-X, XRechnung (CII variant) |
A ZUGFeRD invoice combines a readable PDF/A-3 with an embedded EN 16931 invoice in CII XML – so it uses one of the two syntaxes listed by the EU. In Germany, ZUGFeRD therefore stands alongside XRechnung and Peppol; in France the same format is known as Factur-X. The Aloaha ZUGFeRD SDK creates CII XML for ZUGFeRD, Factur-X and XRechnung and also reads incoming UBL invoices.
What counts as an e-invoice in Germany?
Since 2025, invoices that comply with EN 16931 count as e-invoices – i.e. XRechnung and ZUGFeRD from version 2.0.1, except for the MINIMUM and BASIC WL profiles. A plain PDF invoice is not an e-invoice. For deadlines and transition rules see the e-invoicing mandate in Germany.
One SDK for all formats
With the Aloaha ZUGFeRD SDK you create ZUGFeRD, Factur-X and XRechnung XML from the same invoice data, embed the XML in an existing or newly created PDF/A-3 and read incoming invoices back – on-premise, for .NET, COM/VB6 and the command line. Getting started: quick start with VB.NET.
Frequently asked questions
Are ZUGFeRD and Factur-X the same?
Technically yes: since ZUGFeRD 2.1 both formats are identical and are specified jointly (currently ZUGFeRD 2.5.2 / Factur-X 1.09.2). Only the name and origin differ.
Is an XRechnung a PDF?
No. The XRechnung is a pure XML format. A ZUGFeRD invoice, on the other hand, is a PDF/A-3 with embedded XML.
Can I invoice German authorities with ZUGFeRD?
Many public-sector buyers require an XRechnung. Whether they accept ZUGFeRD depends on the recipient; the ZUGFeRD profile XRECHNUNG meets the XRechnung rules.
Which syntaxes are permitted for EN 16931 e-invoices?
Commission Implementing Decision (EU) 2017/1870 lists two syntaxes: UBL 2.1, used by Peppol BIS Billing 3.0, and UN/CEFACT Cross Industry Invoice (CII) D16B, used by ZUGFeRD and Factur-X. Under Article 7 of Directive 2014/55/EU, contracting authorities must be able to receive and process EN 16931 invoices in these syntaxes.
Which syntax does ZUGFeRD use?
ZUGFeRD (and the identical Factur-X) uses UN/CEFACT Cross Industry Invoice (CII), version D16B. The CII XML is embedded in a PDF/A-3; XRechnung exists as a CII or UBL variant, and Peppol BIS Billing 3.0 uses UBL 2.1.