ZUGFeRD — the reference German hybrid format
ZUGFeRD (Zentraler User Guide des Forums elektronische Rechnung Deutschland) is the hybrid PDF/A-3 + embedded CII XML format carried by the Forum elektronische Rechnung Deutschland (FeRD) since 2014. Co-published with FNFE-MPE as Factur-X, it is one of the two canonical B2B formats from 1 January 2025.
History 2014 → 2024
ZUGFeRD predates the European EN 16931 mandate. Its trajectory illustrates the progressive convergence of the German hybrid format toward the European standard:
- 2008-2010 — FeRD founding. The Forum elektronische Rechnung Deutschland is created in 2010 under the auspices of AWV (Arbeitsgemeinschaft für wirtschaftliche Verwaltung), with a BMF mandate to propose a pivot invoice format for the German economy.
- 25 June 2014 — ZUGFeRD 1.0. First stable release, PDF/A-3 + CII XML structure based on UN/CEFACT 2009. Three profiles BASIC / COMFORT / EXTENDED.
- 15 March 2019 — ZUGFeRD 2.0. Major refresh: alignment with EN 16931, co-publication with FNFE-MPE as Factur-X (both formats now structurally identical, only the name differs by national convention). Addition of the MINIMUM profile (for Chorus Pro B2G only).
- 22 March 2021 — ZUGFeRD 2.2. COMFORT profile renamed "EN 16931" to align with the standard vocabulary. BASIC WL (Without Lines) profile added for archiving needs.
- 14 June 2022 — ZUGFeRD 2.3. Factur-X 1.07 compatibility refinements. First real OASIS DocStore upload.
- 17 May 2024 — ZUGFeRD 2.3.2. Current version. Some Schematron fixes, integration of BR-DE-* rules compatible with XRechnung 3.0, Factur-X 1.07.2 update.
The 5 profiles
The profile determines the granularity of structured data carried by the embedded XML and hence the legal validity of the document by context (federal B2G, Wachstumschancengesetz B2B, archiving).
┌──────────────┬────────────┬─────────────┬─────────────────────────────────────┐
│ Profile │ Lines │ EN 16931 │ Typical use │
├──────────────┼────────────┼─────────────┼─────────────────────────────────────┤
│ MINIMUM │ No │ No │ Accounting data only (net/VAT/ │
│ │ │ │ gross totals). NOT valid for B2B │
│ │ │ │ post-2025 UStG. │
├──────────────┼────────────┼─────────────┼─────────────────────────────────────┤
│ BASIC WL │ No │ No │ Without Lines: pure retention, │
│ │ │ │ not valid for B2B. │
├──────────────┼────────────┼─────────────┼─────────────────────────────────────┤
│ BASIC │ Yes │ Yes │ Micro / SME: minimal invoice with │
│ │ (summary) │ (subset) │ lines, valid B2B 2025+. │
├──────────────┼────────────┼─────────────┼─────────────────────────────────────┤
│ EN 16931 │ Yes │ Yes │ Reference profile — full alignment │
│ (COMFORT*) │ │ │ with the European standard. │
├──────────────┼────────────┼─────────────┼─────────────────────────────────────┤
│ EXTENDED │ Yes │ Yes + │ Industry, transport, construction: │
│ │ │ extensions │ advanced fields (serial numbers, │
│ │ │ │ batches, logistics references). │
└──────────────┴────────────┴─────────────┴─────────────────────────────────────┘
* "COMFORT" was the legacy name for EN 16931 profile (up to ZUGFeRD 2.2.0). PDF/A-3 and embedding rules
The ZUGFeRD container is strictly a PDF/A-3 (ISO 19005-3:2012 — Document Management Application: Use of ISO 32000-1 with support for Embedded Files) which permits arbitrary file attachments to the PDF. Three embedding rules are imposed by the ZUGFeRD spec:
- Mandatory file name:
factur-x.xml(lowercase, identical to Factur-X). No other name is accepted by FeRD/FNFE-MPE validators. - Relationship attribute:
AFRelationshipmust equalAlternative(formerlyDatain ZUGFeRD 1.x — deprecated). - MIME type:
application/xmlin theEmbeddedFiledictionary of the PDF. - XMP metadata: the PDF must contain an XMP
fx:namespace declaring the ZUGFeRD profile used (e.g.,fx:ConformanceLevel = "EN 16931").
A PDF embedding an XML but not respecting these rules is NOT a ZUGFeRD under spec. Frequent pitfall when generating the PDF with an arbitrary library (jsPDF, PDFKit) without a dedicated Factur-X wrapper.
Embedded CII XML
The factur-x.xml XML embedded in ZUGFeRD is UN/CEFACT Cross Industry
Invoice (CII) D16B, root namespace
urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100. The
alternate syntax to UBL listed by annex B of EN 16931.
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
<rsm:ExchangedDocumentContext>
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ram:ID>RE-2026-DE-0142</ram:ID>
<ram:TypeCode>380</ram:TypeCode>
<ram:IssueDateTime>
<udt:DateTimeString format="102">20260519</udt:DateTimeString>
</ram:IssueDateTime>
</rsm:ExchangedDocument>
<rsm:SupplyChainTradeTransaction>
<ram:IncludedSupplyChainTradeLineItem>
<ram:AssociatedDocumentLineDocument>
<ram:LineID>1</ram:LineID>
</ram:AssociatedDocumentLineDocument>
<ram:SpecifiedTradeProduct>
<ram:Name>Consulting — EDI architecture</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>1200.00</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
</ram:IncludedSupplyChainTradeLineItem>
</rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice> Three root sections structure the CII document:
- ExchangedDocumentContext: document metadata — ZUGFeRD profile
used via
GuidelineSpecifiedDocumentContextParameter. - ExchangedDocument: invoice header — ID, date, type, free-text notes.
- SupplyChainTradeTransaction: invoice body — lines, trade agreements, deliveries, payments, taxes, totals.
ZUGFeRD vs Factur-X
For the technical community, it is important to understand that ZUGFeRD and Factur-X designate the same technical artefact with two coordinated governances:
| Aspect | ZUGFeRD | Factur-X |
|---|---|---|
| Maintainer | FeRD (Germany) | FNFE-MPE (France) |
| XML structure | UN/CEFACT CII D16B | UN/CEFACT CII D16B (identical) |
| Container | PDF/A-3 | PDF/A-3 (identical) |
| Profiles | 5 (MIN / BASIC WL / BASIC / EN 16931 / EXTENDED) | 5 identical |
| Embedded file name | factur-x.xml | factur-x.xml |
| Legal reference | §14 UStG (Germany) | Order of 7 October 2022 (France) |
| Schematron | FeRD ruleset | FNFE-MPE Schematron + French CIUS |
| Official validator | www.ferd-net.de/validator | services.fnfe-mpe.org |
B2B validity post-Wachstumschancengesetz
For a ZUGFeRD to be recognised as a valid E-Rechnung under amended §14 UStG (from 1 January 2025), three cumulative conditions:
- ZUGFeRD version ≥ 2.0.1 (first EN 16931 alignment). The BMF letter of 15 October 2024 recommends version 2.1.1 or higher for new deployments.
- EN 16931 or EXTENDED profile. MINIMUM and BASIC WL profiles do not carry detailed lines and are therefore invalid for B2B. BASIC profile is borderline — it carries lines but without full tax detail, generally accepted but to be avoided for complex transactions.
- Properly embedded
factur-x.xmlwith relationshipAlternativeand correctfx:XMP metadata.
Cross-links
- Germany hub — full e-invoicing mandate
- Wachstumschancengesetz — legal foundation
- XRechnung — the other canonical B2B format
- FeRD — ZUGFeRD governance
- Factur-X — the French twin of ZUGFeRD
- Factur-X / ZUGFeRD specification (standards)
- FeRD — ZUGFeRD 2.3.2 (official page)
- FNFE-MPE — Factur-X (official page, co-publication)
- ISO 19005-3:2012 — PDF/A-3
- UN/CEFACT CII D16B