Guide
ZUGFeRD vs Factur-X vs XRechnung: What Is the Difference?
Last updated October 6, 2026
People say "e-invoice" and mean three different things: a PDF with data hidden inside, an XML file with no picture at all, or an invoice that travels over a network. ZUGFeRD, Factur-X and XRechnung are the names you meet most in Germany and France, and they overlap enough to confuse anyone who just received one. This guide separates them and shows how to tell which one a file is.
The common ground: EN 16931
EN 16931 is the European standard for the semantic content of an electronic invoice: which pieces of information exist (seller, buyer, lines, VAT, totals, payment) and what they mean. It was written to support the European directive on electronic invoicing in public procurement. The standard names two syntaxes in which the content can be written: UN/CEFACT Cross Industry Invoice (CII) and OASIS Universal Business Language (UBL). A format that follows EN 16931 uses one of these.
ZUGFeRD and Factur-X: the hybrid
A hybrid invoice is a PDF that people can read, with a machine-readable XML invoice attached inside it. Germany's forum FeRD publishes it as ZUGFeRD, and France's forum FNFE-MPE as Factur-X. Since ZUGFeRD 2.1 the two are one technical format with two names. The latest joint release was published on 10 June 2026 as ZUGFeRD 2.5 / Factur-X 1.09, and ZUGFeRD 2.5.2 is effective from 1 September 2026. The XML inside is a Cross Industry Invoice.
The PDF part is a PDF/A-3 file, the archive flavour of PDF that allows attachments. The XML is attached with a relationship to the document and usually named factur-x.xml. The PDF's metadata carries a small block that names the profile, so a program can see what to expect before opening the XML.
The five profiles
| Profile | What the XML carries |
|---|---|
| MINIMUM | The essentials only: parties, invoice number and date, totals. No lines. |
| BASIC WL | "Without lines": more header data, VAT breakdown, payment; still no line items. |
| BASIC | Adds invoice lines. |
| EN 16931 | The full semantic model of the standard. |
| EXTENDED | Adds fields beyond the standard for sector or industry needs. |
The profile is written in the XML as a specification identifier, for example urn:factur-x.eu:1p0:minimum or, for the EN 16931 profile, urn:cen.eu:en16931:2017. The identifier says "family 1p0", not the release number, so you cannot tell ZUGFeRD 2.5.2 from an earlier release by reading the XML.
XRechnung: XML only, for German public bodies
XRechnung is the German national specification (a "CIUS": core invoice usage specification) of EN 16931. It is a pure XML invoice with no PDF part, maintained by KoSIT, and can be written in CII or UBL syntax. It adds German rules on top of the standard, for instance a mandatory buyer reference, usually the Leitweg-ID that routes an invoice to the right public body. Its identifier names the version, for example urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0. An XRechnung can also be carried inside a PDF; the attachment is then often called xrechnung.xml.
Where Peppol and Poland fit
Peppol BIS Billing 3.0 is another EN 16931 customization, in UBL syntax, used on the Peppol network. Poland's KSeF structured invoice (FA(3), valid from 1 February 2026) is a national format with its own schema and is not a CII or UBL document; see the KSeF guide.
How to tell which one you have
- It is a PDF with an attachment named like
factur-x.xmland PDF/A-3 metadata: a hybrid invoice, ZUGFeRD or Factur-X. - It is XML with a
CrossIndustryInvoiceroot and an identifier containingxrechnung: XRechnung in CII syntax. The same identifier in a UBLInvoice: XRechnung in UBL syntax. - It is UBL with a customization identifier containing
peppol.eu:2017:poacc:billing:3.0: Peppol BIS Billing 3.0.
The E-Invoice Format Detector applies exactly these rules and shows which signals it used. To get the XML out of a hybrid PDF use the ZUGFeRD / Factur-X XML Extractor; to read it, the XRechnung Viewer.
What a check can and cannot tell you
A tool that reads the files in your browser can tell you what a file says it is, whether the container is shaped as expected, and whether the amounts add up. It cannot say that an invoice is legally valid or will be accepted: that depends on the countries involved, the recipient's rules and the date. Obligations to issue or receive e-invoices differ by country and change, so check the official sources for your case. The Factur-X / ZUGFeRD Validator reports a technical result of the checks it runs and lists what it did not run.