
Table of Contents
Every business registered in Germany must now accept structured e-invoices. Most of them will receive those invoices in ZUGFeRD format.
If you are a developer building invoicing software, a finance team preparing for compliance, or an international business selling into Germany, this guide covers what you need: every profile, every version, the legal requirements, and how to create a valid ZUGFeRD invoice.
Key Takeaways
- ZUGFeRD is a hybrid e-invoice format that embeds structured XML data inside a human-readable PDF/A-3 document.
- Six profiles exist from Minimum to XRechnung, but only EN 16931 (Comfort), Extended, and XRechnung satisfy Germany's e-invoicing mandate.
- ZUGFeRD 2.3.3 (aligned with Factur-X 1.07.3) is the current stable version as of mid-2025. ZUGFeRD 2.4 has been released, and ZUGFeRD 2.5 launched in May 2026 adding gross invoice support.
- As of January 2025, all German businesses must be able to receive ZUGFeRD e-invoices. By January 2028, every B2B invoice must be issued electronically.
- The ZUGFeRD standard is free to use with no licensing fees or royalties.
What Is ZUGFeRD?
ZUGFeRD stands for "Zentraler User Guide des Forums elektronische Rechnung Deutschland" (the Central User Guide of the Forum for Electronic Invoicing Germany).
It is a hybrid electronic invoice format developed by the FeRD forum under the umbrella of the AWV (Arbeitsgemeinschaft für wirtschaftliche Verwaltung). The first version launched in 2014, with a clear objective: create an invoice format that both humans and machines can read.
Traditional PDFs are readable by humans but not reliably parseable by machines. Pure XML invoices are processed instantly by software but unreadable without a viewer. ZUGFeRD solves this by combining both.
A ZUGFeRD invoice is a PDF/A-3 file with a structured XML file embedded inside it. One document, two layers of information, no data loss between sender and recipient.
How Does ZUGFeRD Work?
Every ZUGFeRD invoice consists of two components packaged into a single file:
- A PDF/A-3 document. The visual invoice. It looks like any standard invoice: line items, totals, tax breakdowns, company details. Any PDF reader can open it.
- An embedded XML file. Inside the PDF, an XML attachment named
factur-x.xmlcontains all the invoice data in a structured, machine-readable format.
The process works like this:
Step 1: Your invoicing system generates the invoice data (seller, buyer, line items, taxes, totals).
Step 2: That data is serialized into a UN/CEFACT Cross-Industry Invoice (CII) XML file.
Step 3: The XML file is embedded as an attachment inside a PDF/A-3 compliant document.
Step 4: The recipient opens the PDF to read it visually, or their software extracts the XML to process it automatically.
The result is zero manual data entry on the receiving end. The system reads the XML, maps the data, and books the invoice without human intervention.
PDF/A-3 is non-negotiable. A regular PDF will not work. ZUGFeRD requires PDF/A-3, an ISO-standardized archival format (ISO 19005-3) that supports file attachments.
ZUGFeRD Profiles Overview
The ZUGFeRD profile determines how much data the embedded XML contains. Higher profiles include more structured data.
| Profile | Data Scope | EN 16931 Compliant? | Use Case |
|---|---|---|---|
| Minimum | Basic header data only (invoice number, date, totals) | No | Internal archival only |
| Basic WL | Header data + line item descriptions (no pricing breakdown) | No | Internal use only |
| Basic | Header + full line items with pricing | No | Simple invoices; does not satisfy the mandate |
| EN 16931 (Comfort) | Full European Standard data set | Yes | German e-invoicing mandate (B2B) |
| Extended | EN 16931 + additional fields | Yes | Complex B2B, international trade |
| XRechnung | CEN EN 16931 mapped to XRechnung CIUS | Yes | German public sector (B2G) |
For ZUGFeRD specifically, only the EN 16931 (Comfort), Extended, and XRechnung profiles satisfy Germany's e-invoicing mandate under the Wachstumschancengesetz.
For most B2B use cases in Germany, the EN 16931 (Comfort) profile is the right choice.
ZUGFeRD Versions
| Version | Year | Key Changes |
|---|---|---|
| ZUGFeRD 1.0 | 2014 | Initial release. Five profiles (Minimum to Extended). CII D10B XML schema. |
| ZUGFeRD 2.0 | 2019 | Aligned with EN 16931. Adopted CII D16B schema. Added Comfort profile. XML renamed to factur-x.xml. |
| ZUGFeRD 2.0.1 | 2020 | Bug fixes and improved validation rules. |
| ZUGFeRD 2.1 | 2020 | Added XRechnung profile for B2G invoicing. |
| ZUGFeRD 2.1.1 | 2021 | Updated XRechnung mapping to version 2.0. |
| ZUGFeRD 2.2 | 2022 | Updated XRechnung mapping to version 2.2. |
| ZUGFeRD 2.3 / 2.3.3 | 2024 / May 2025 | Updated XRechnung mapping to version 3.0. CII D22B schema. |
| ZUGFeRD 2.4 | 2025 | New hybrid standard with enhanced Peppol integration. |
| ZUGFeRD 2.5 | May 2026 | Adds gross invoice support; updated code lists. |
ZUGFeRD 1.0 is not EN 16931 compliant. If your system generates version 1.0 invoices, you are not meeting Germany's e-invoicing requirements. Upgrade to 2.3.3 or later.
ZUGFeRD and Factur-X
ZUGFeRD and Factur-X are the same format.
Since version 2.0, the ZUGFeRD standard and the French Factur-X standard have been technically identical. They share the same XML schema, the same profiles, and the same PDF/A-3 container structure. The only difference is the name.
- A valid ZUGFeRD 2.3 invoice is automatically a valid Factur-X 1.0.07 invoice.
- The embedded XML file is named
factur-x.xmlin both cases (since ZUGFeRD 2.0). - Building support for one means supporting both.
Is ZUGFeRD Legally Required?
For domestic B2B business in Germany, yes.
The Wachstumschancengesetz (Growth Opportunities Act), passed in March 2024, amended Section 14 of the German VAT Act (UStG) to mandate structured electronic invoicing for all domestic B2B transactions.
| Date | Requirement |
|---|---|
| January 1, 2025 | All businesses must be able to receive structured e-invoices |
| January 1, 2027 | Businesses with prior-year revenue above EUR 800,000 must issue structured e-invoices |
| January 1, 2028 | All businesses must issue structured e-invoices |
One detail that catches businesses off guard: not every ZUGFeRD profile qualifies. Only the EN 16931 (Comfort), Extended, and XRechnung profiles meet this requirement.
ZUGFeRD vs XRechnung
| Feature | ZUGFeRD (EN 16931) | XRechnung |
|---|---|---|
| Format | Hybrid PDF/A-3 + embedded XML | Pure XML (no PDF) |
| Human-readable? | Yes, open the PDF | No, requires viewer |
| Machine-readable? | Yes, extract the XML | Yes, it is the XML |
| XML Standard | UN/CEFACT CII | UBL 2.1 or CII |
| EN 16931 Compliant? | Yes (Comfort and above) | Yes |
| B2G Use (Public Sector) | Accepted via XRechnung profile | Required |
- Invoicing a government entity (B2G)? XRechnung is the mandated format.
- Invoicing another business (B2B)? ZUGFeRD with the EN 16931 profile is the practical choice.
- Need both? ZUGFeRD includes an XRechnung profile.
How to Create a ZUGFeRD Invoice
Step 1: Prepare Your Invoice Data
Gather all required fields per the EN 16931 standard:
- Seller information: Name, address, VAT ID (USt-IdNr.)
- Buyer information: Name, address, VAT ID
- Invoice metadata: Invoice number, issue date, due date, currency
- Line items: Description, quantity, unit price, VAT rate, line total
- Tax summary: Total per VAT rate, net total, gross total
- Payment details: IBAN, BIC, payment terms
Step 2: Generate the XML
The XML must conform to the UN/CEFACT Cross-Industry Invoice (CII) schema.
Step 3: Embed XML into PDF/A-3
Use a PDF library that supports PDF/A-3 with file attachments. The XML file must be:
- Named
factur-x.xml - Attached as an AF (Associated File) with relationship
Alternative - Embedded with the correct MIME type (
text/xml)
The Faster Path: Use an API
Building this from scratch is time-consuming and easy to get wrong. The Complyance API handles XML generation, PDF/A-3 embedding, and validation in a single call.
ZUGFeRD Validation
Validation checks three layers:
- PDF/A-3 conformance: Is the PDF container properly formatted per ISO 19005-3?
- XML schema validation: Does the embedded XML match the CII schema?
- Profile and business rule validation: Does the data satisfy all EN 16931 rules?
Validation tools:
- Complyance Validator API: Validates all three layers programmatically.
- KoSIT Validation Tool: Open-source validator maintained by Germany's KoSIT.
- Mustang Library: Open-source Java library for creating and validating ZUGFeRD invoices.
Is ZUGFeRD Free?
The ZUGFeRD standard itself is completely free. No licensing fees, no royalties. What you may pay for: commercial software (like Complyance), ERP integrations, or implementation consulting.
Common Mistakes
| Do | Don't |
|---|---|
| Use EN 16931 (Comfort) or Extended profile for B2B compliance | Use Minimum or Basic and assume you're compliant |
| Generate proper PDF/A-3 containers | Use regular PDF and embed XML manually |
| Name the XML file factur-x.xml | Use custom names |
| Validate every invoice before sending | Skip validation |
| Use ZUGFeRD 2.3.3 or later | Stay on version 1.0 or 2.0 |
The single most common error: using the wrong profile. Only EN 16931 and above satisfy the mandate.
What's Next?
ZUGFeRD is Germany's standard for hybrid B2B e-invoicing, and its adoption will increase as the mandate rolls out through 2028.
Four steps to take now:
- Audit your current invoicing. Are you generating ZUGFeRD with the right profile?
- Test your receiving capability. Can your accounts payable system extract and process embedded XML?
- Set up automated validation. Every invoice should be validated before it leaves your system.
- Choose your implementation path. Build in-house using open-source libraries, or integrate the Complyance API.
Related posts
Frequently Asked Questions
ZUGFeRD stands for "Zentraler User Guide des Forums elektronische Rechnung Deutschland," which translates to the Central User Guide of the Forum for Electronic Invoicing Germany.
Yes. Since ZUGFeRD 2.0, the German ZUGFeRD and French Factur-X standards are technically identical.
For B2B invoicing in Germany, use the EN 16931 (Comfort) profile. For B2G (public sector), use the XRechnung profile.
Receiving ZUGFeRD e-invoices has been mandatory since January 1, 2025. Issuing becomes mandatory for businesses with prior-year revenue above EUR 800,000 from January 2027, and for all businesses from January 2028.
Yes. Any standard PDF reader will display the visual invoice. The embedded XML is available as an attachment for automated processing.
Use a tool that checks three layers: PDF/A-3 conformance, XML schema compliance, and EN 16931 business rules.





















