ZUGFeRD vs Factur-X vs XRechnung

Three formats, one continent, two of them are the same thing. A practical comparison of the e-invoicing formats you actually have to choose between in the German and French markets, and how they all relate to EN 16931 and Peppol.

By Peppol Validator · Last updated

Short version

  1. ZUGFeRD 2.x and Factur-X are the same format, jointly developed by Germany (FeRD) and France (FNFE-MPE). Both are PDF/A-3 with an embedded CII XML attachment.
  2. XRechnung is a different beast: a pure XML CIUS on top of EN 16931, maintained by KoSIT, with no PDF wrapper. The German federal administration requires it for B2G e-invoicing.
  3. All three are EN 16931 compliant when used at the right profile. ZUGFeRD/Factur-X have lower profiles (Minimum, Basic WL, Basic) that carry less data than EN 16931 requires; only the EN 16931 profile and the Extended profile are EN 16931 compliant.

Side-by-side comparison

FeatureZUGFeRDFactur-XXRechnung
Maintained byFeRD (Germany)FNFE-MPE (France)KoSIT (Germany)
Document typeHybrid: PDF/A-3 + embedded CII XMLHybrid: PDF/A-3 + embedded CII XMLPure XML (UBL or CII)
Human-readableYes (the PDF)Yes (the PDF)No (XML only)
Machine-readableYes (the embedded CII XML)Yes (the embedded CII XML)Yes (the XML itself)
EN 16931 conformantYes, at the EN 16931 / Extended profilesYes, at the EN 16931 / Extended profilesYes (it is a CIUS on EN 16931)
Lower profiles below EN 16931Minimum, Basic WL, Basic (carry less data than EN 16931 requires)Minimum, Basic WL, Basic (same as ZUGFeRD)Not applicable
Default syntaxCII (UN/CEFACT Cross Industry Invoice)CIIUBL or CII (sender chooses)
Typical use caseB2B in Germany, transition from PDF invoicingB2B in France, transition from PDF invoicingB2G in Germany; B2B German mandate
Suitable for German B2G mandateAt XRechnung profile onlyAt XRechnung profile onlyYes (the canonical format)
Suitable for German B2B mandateYes, at EN 16931 profile or higherYes, at EN 16931 profile or higherYes
Sent over Peppol BIS Billing 3.0Not directly (Peppol BIS is UBL-only)Not directlyYes, via the UBL syntax

ZUGFeRD and Factur-X: one format, two names

ZUGFeRD (Zentraler User Guide des Forums elektronische Rechnung Deutschland) is a hybrid e-invoice format developed in Germany by FeRD (Forum elektronische Rechnung Deutschland). Factur-X is the French name for the same hybrid format, developed by FNFE-MPE (Forum National de la Facture Électronique et des Marchés Publics Électroniques). The two organisations cooperate so that ZUGFeRD 2.x and Factur-X are technically aligned: a file produced under one brand can be consumed under the other.

Both store a CII (Cross Industry Invoice) XML document inside a PDF/A-3 container as an embedded file attachment named factur-x.xml (or, in the XRechnung profile, xrechnung.xml). The PDF carries the visual representation of the invoice for human readers; the XML carries the structured data for machines. A receiver who only has a PDF reader still sees a normal-looking invoice; a receiver with a Factur-X / ZUGFeRD-aware system can extract and book the structured data automatically.

Both define a layered set of profiles: Minimum, Basic WL (Without Lines), Basic, EN 16931 and Extended. The lower profiles intentionally omit data that EN 16931 requires (for example, full line items in Basic WL). Only the EN 16931 profile and the Extended profile are EN 16931 compliant. If you are subject to a mandate that requires EN 16931, you need at least the EN 16931 profile.

ZUGFeRD 1.0 is an older, pre-EN 16931 version with a different data model, and is not interchangeable with the current versions. New implementations should target ZUGFeRD 2.x / Factur-X.

XRechnung: pure XML, German CIUS on EN 16931

XRechnung is the German national e-invoicing CIUS (Core Invoice Usage Specification) on top of EN 16931. It is maintained by KoSIT (Koordinierungsstelle für IT-Standards) and is the format the German federal administration accepts for B2G e-invoicing through the central platforms ZRE (Zentrale Rechnungseingangsplattform des Bundes) and OZG-RE.

Unlike ZUGFeRD / Factur-X, XRechnung is a pure structured XML format. There is no PDF wrapper. The XML can be encoded in either of the two official EN 16931 syntaxes: UBL 2.1 (the OASIS Universal Business Language) or CII (UN/CEFACT Cross Industry Invoice). The semantic content is identical between the two encodings; the difference is purely syntactic.

XRechnung adds German-specific business rules on top of EN 16931. For example, it tightens the rules around payment information, leitweg-ID (the German routing identifier for B2G), and certain seller and buyer fields. A document that passes EN 16931 may still fail XRechnung-specific schematron rules if it is missing one of these German-specific fields.

ZUGFeRD / Factur-X also defines an "XRechnung profile" that aligns the embedded CII XML with the XRechnung CIUS rules. A ZUGFeRD/Factur-X file at the XRechnung profile is accepted by the German federal e-invoicing platforms.

Which format does which mandate require?

German B2G (public sector) requires XRechnung. ZUGFeRD / Factur-X is accepted only at the XRechnung profile. A pure PDF is not accepted. See the German e-invoicing reference for the specifics.

German B2B requires a structured electronic invoice that conforms to EN 16931. XRechnung satisfies this directly. ZUGFeRD / Factur-X also satisfy it at the EN 16931 profile or the Extended profile, but not at the lower commercial profiles (Minimum, Basic WL, Basic).

French B2B accepts UBL, CII and Factur-X under the new e-invoicing architecture. All three must conform to EN 16931. See the French e-invoicing reference for the timeline.

Peppol BIS Billing 3.0 (the Peppol invoice profile used in most other European mandates, including Belgium and the Nordics) is UBL only. ZUGFeRD / Factur-X CII payloads cannot be sent directly over a Peppol BIS Billing 3.0 channel. If you need to send through Peppol, convert to UBL.

Validate your German e-invoices

Drop a UBL XRechnung, a CII XRechnung or a Factur-X / ZUGFeRD PDF and check it against EN 16931, the XRechnung CIUS and the relevant Peppol BIS rules. Free, instant, no signup.

Related references

Frequently asked questions

Are ZUGFeRD and Factur-X the same thing?

Almost. ZUGFeRD 2.x and Factur-X are the same hybrid format under two names: a PDF/A-3 file with a CII XML attachment. ZUGFeRD is the German name (maintained by FeRD); Factur-X is the French name (maintained by FNFE-MPE). The two organisations co-developed the format. ZUGFeRD 1.0 was an earlier, pre-EN 16931 version with a different data model, and is no longer current.

Is XRechnung a hybrid PDF format too?

No. XRechnung is a pure structured XML format. There is no PDF wrapper. It is the German national CIUS on top of EN 16931, maintained by KoSIT. XRechnung can be expressed as either UBL or CII XML, depending on which syntax binding the sender chooses.

Which format do I need for the German B2B e-invoicing mandate?

Germany's B2B mandate requires structured electronic invoices that conform to EN 16931. XRechnung satisfies this directly. ZUGFeRD / Factur-X also satisfy it, but only at the EN 16931 (or higher) profile, because the lower ZUGFeRD profiles (Minimum, Basic WL, Basic) intentionally carry less data than EN 16931 requires. A pure PDF or a ZUGFeRD Minimum file is not enough on its own for the mandate.

Which format do I need for German B2G (public sector)?

For invoices to the German federal administration, XRechnung is the required format and the federal e-invoicing platform (ZRE / OZG-RE) accepts it. ZUGFeRD/Factur-X documents are accepted only at the XRechnung profile (a specific CIUS-aligned profile), not at the lower commercial profiles.

Which format do I need in France?

France's reform accepts UBL, CII and Factur-X as the three structured formats for B2B e-invoicing under the new architecture (PPF / PDP). All three must conform to the European EN 16931 semantic model. Factur-X is widely used in France for the same reason ZUGFeRD is widely used in Germany: it is human-readable as a PDF and machine-readable through the embedded CII XML.

Can I send a ZUGFeRD/Factur-X file over the Peppol network?

The standard Peppol BIS Billing 3.0 profile is UBL only. CII (and therefore the CII payload inside Factur-X / ZUGFeRD) is not part of the default Peppol BIS profile. You can validate Factur-X / ZUGFeRD files for EN 16931 compliance using a Factur-X validator, but if your trading partner expects a Peppol delivery, you typically convert to UBL and send through Peppol BIS Billing 3.0.