What is Factur-X / ZUGFeRD?

Factur-X (called ZUGFeRD in Germany) is a hybrid e-invoice: a human-readable PDF/A-3 document with a structured CII XML invoice embedded as an attachment. One file is both a readable PDF and machine-processable data. France makes B2B e-invoicing mandatory from September 2026.

Open a Factur-X / ZUGFeRD file in the viewer → See every business term, a visual preview and the raw XML.

Country
France 🇫🇷 + Germany 🇩🇪
Syntax
CII XML embedded in PDF/A-3
Version
Factur-X 1.0 / ZUGFeRD 2.x

Key facts

What "hybrid" means

Factur-X (called ZUGFeRD in Germany) is a hybrid e-invoice: one PDF/A-3 file that is both a human-readable document and machine-processable data. The visible page is a normal PDF an accountant can read; attached inside the same file is a structured CII D16B XML invoice a system can parse automatically. The recipient chooses which they consume - the two always describe the same invoice.

The embedded XML is named factur-x.xml (or zugferd-invoice.xml in older ZUGFeRD), and the PDF/A-3 format is what permits a machine-readable attachment to travel inside an archival PDF. The profile is declared in the PDF’s XMP metadata.

Factur-X and ZUGFeRD are the same standard

Factur-X is the French name; ZUGFeRD is the German name. Factur-X 1.0 and ZUGFeRD 2.x are the same Franco-German specification, developed jointly by FNFE-MPE (France) and FeRD (Germany). A file produced as ZUGFeRD 2.x is readable as Factur-X and vice versa. Where they appear to differ is profile naming, not the underlying structure.

Profiles: how much data the file carries

Factur-X / ZUGFeRD defines several profiles. The profile decides how many EN 16931 fields the embedded XML carries - which directly determines whether a conversion to another format is lossless. Picking too small a profile is the most common cause of data loss when converting away from Factur-X.

Factur-X / ZUGFeRD profiles by data carried
ProfileData carriedSafe conversion source?
MINIMUM~15-20 header fields (totals only)No - lossy, avoid
BASIC WLHeader + totals, no invoice linesNo - no line detail
BASICCore fields including lines, reducedPartial
EN 16931 (COMFORT)Full EN 16931 semantic setYes
EXTENDEDEN 16931 + vendor extensionsYes

Why the embedded XML is CII, not UBL

The XML inside a Factur-X PDF is UN/CEFACT CII D16B, one of the two EN 16931 syntaxes. This matters when the target is PEPPOL: the PEPPOL network accepts UBL only, so a Factur-X invoice must be transcoded from CII to UBL before it can be sent over PEPPOL. Because both syntaxes express the same EN 16931 model, the business data is preserved - only the XML wrapper changes.

France’s e-invoicing mandate

France is rolling out mandatory B2B e-invoicing, with Factur-X as one of the accepted formats alongside UBL and CII through the Public Invoicing Portal (PPF) and partner platforms. The hybrid PDF is attractive in France and Germany because it gives smaller businesses a document they can still read while satisfying the structured-data requirement. See the Facturus guide to the French 2026 mandate for the current schedule.

Frequently asked questions

Is Factur-X the same as ZUGFeRD?
Yes - Factur-X 1.0 and ZUGFeRD 2.x are the same Franco-German hybrid PDF/A-3 + CII standard, under a French and a German name.
Which Factur-X profile should I use?
EN 16931 (COMFORT) carries the full semantic invoice. Avoid MINIMUM and BASIC WL as conversion targets - they drop invoice lines and most fields.
Is the data in a PDF or in XML?
Both. A Factur-X file is a PDF/A-3 with a structured CII XML invoice embedded inside it. Humans read the PDF page; systems read the embedded XML.
Can I send Factur-X over PEPPOL?
Not directly. PEPPOL is UBL-only, and the Factur-X XML is CII. Transcode it to UBL (PEPPOL BIS) first - Facturus does this for you.
Is ZUGFeRD valid as an EN 16931 e-invoice?
Yes, from the BASIC profile upward the embedded XML conforms to EN 16931. MINIMUM and BASIC WL do not carry enough data to be full EN 16931 invoices.

Convert Factur-X / ZUGFeRD

Do more with Facturus