formats7 min read

German E-Invoice Formats: XRechnung, ZUGFeRD & Peppol BIS Explained

Complete guide to German e-invoice formats. XRechnung (UBL & CII), ZUGFeRD 2.x profiles, Peppol BIS 3.0 โ€” which format is mandatory, when to use each, and how to validate compliance.

By EU E-Invoicing HubPublished: 14 April 2026Updated: 18 April 2026

German E-Invoice Formats: XRechnung, ZUGFeRD & Peppol BIS Explained

Germany's e-invoicing mandate accepts three main electronic invoice formats: XRechnung, ZUGFeRD 2.x, and Peppol BIS Billing 3.0. They all comply with the European standard EN 16931, but they work differently and suit different use cases.

This guide explains what each format is, when to use it, and how to make sure your implementation is actually compliant.


The European Foundation: EN 16931

All three German formats are implementations of the same European standard: EN 16931:2017+A1:2019 (CEN/TC 434). This standard defines the semantic data model for electronic invoices โ€” the mandatory and optional fields, their data types, and business rules.

EN 16931 has two syntax bindings:

  • UBL 2.1 (Universal Business Language) โ€” XML format widely used in the Nordics, UK, and Peppol network
  • ISO 20022 CII (Cross-Industry Invoice) โ€” XML format used in ZUGFeRD and some XRechnung variants

Both syntaxes are legally equivalent. The format you choose affects your technical implementation but not your legal compliance, as long as the document validates against EN 16931 rules.


Format 1: XRechnung

XRechnung is Germany's national implementation of EN 16931. It's maintained by KoSIT (Koordinierungsstelle fรผr IT-Standards) and is the format required for all invoices to federal government agencies (Bundesbehรถrden).

What Is XRechnung?

XRechnung is a pure XML format โ€” there is no human-readable visual layer. The file is entirely structured data, readable by machines and e-invoicing systems but not directly by humans without a viewer or rendering tool.

XRechnung comes in two syntax variants:

Variant File type Based on
XRechnung UBL .xml (UBL 2.1 schema) UBL Invoice 2.1
XRechnung CII .xml (CII D16B schema) ISO 20022 CII

Both are valid XRechnung. The difference is the XML structure. Most German businesses use UBL; ZUGFeRD uses CII.

XRechnung Specific Fields

Beyond the EN 16931 base requirements, XRechnung adds several German-specific mandatory fields:

  • Leitweg-ID (BT-10, Buyer Reference): Required for B2G invoices. This is the routing identifier assigned by the public sector entity you're invoicing. Without a valid Leitweg-ID, your invoice will be rejected by government portals.
  • Buyer Reference (BT-10): For B2B, this is often a purchase order number or contract reference required by the buyer.

Current Version

XRechnung 3.0 (since February 2024) is the current mandatory version. Draft XRechnung 3.1 is under review for 2026.

Validation

Official validator: KoSIT Validator โ€” downloadable from GitHub (itplr-kosit), also accessible via the ecosio online wrapper.


Format 2: ZUGFeRD 2.x

ZUGFeRD (Zentraler User Guide des Forums elektronische Rechnung Deutschland) is a hybrid PDF/XML format. A ZUGFeRD invoice is a normal PDF invoice with an embedded XML file inside it.

How ZUGFeRD Works

A ZUGFeRD invoice is a PDF/A-3 document that contains:

  1. The visible PDF โ€” a human-readable invoice layout, identical to what you'd print
  2. The embedded XML โ€” a machine-readable CII XML file containing all the structured data

This makes ZUGFeRD "dual-use": humans can read the PDF, systems can process the XML. It's particularly useful during the transition period when not all recipients have moved to pure XML processing.

ZUGFeRD Profiles โ€” THIS IS CRITICAL

Not all ZUGFeRD profiles are compliant with Germany's e-invoicing mandate. There are six profiles:

Profile EN 16931 Compliant? Mandate Compliant? Use Case
MINIMUM โŒ โŒ Internal archiving only
BASIC WL โŒ โŒ Partial data, not invoice
BASIC โŒ โŒ Simplified invoices
EN 16931 โœ… โœ… Standard business invoices
EXTENDED โœ… โœ… Additional industry fields
XRECHNUNG โœ… โœ… Full XRechnung in ZUGFeRD container

โš ๏ธ Warning: If your software generates ZUGFeRD "BASIC" or "MINIMUM" profile, it does NOT meet the German mandate requirements. Always verify which profile your tool generates.

Current Version

ZUGFeRD 2.3.2 is the current version (maintenance release, March 2026). ZUGFeRD 2.x is also aligned with Factur-X (the French equivalent), so a ZUGFeRD 2.x EN 16931 invoice is also a valid Factur-X invoice and vice versa.

Validation

  • FeRD tools: ferd-net.de โ€” free ZUGFeRD viewer and validator
  • Mustang Project: Open-source Java library with validation support
  • KoSIT Validator: Also validates the XML component of ZUGFeRD files

Format 3: Peppol BIS Billing 3.0

Peppol (Pan-European Public Procurement Online) is an international e-invoicing network that uses a standardised message format and secure routing infrastructure. Peppol BIS Billing 3.0 is the invoice format used within the Peppol network โ€” it's based on UBL 2.1, same as XRechnung UBL.

When Is Peppol Relevant for Germany?

For B2G invoicing: Germany's ZRE and OZG-RE federal portals accept Peppol BIS 3.0 as one of their input formats. If you use a Peppol Access Point, you can submit invoices to federal agencies via the Peppol network.

For B2B cross-border invoicing: Peppol is widely used in the Netherlands, Belgium, France, Nordic countries, and Singapore. If you regularly invoice EU partners, Peppol connectivity simplifies the technical exchange.

For future B2B in Germany: Peppol BIS 3.0 is one of the accepted formats for the German B2B mandate (alongside XRechnung and ZUGFeRD EN 16931). It's not required but is a valid choice.

Peppol vs. XRechnung

Aspect Peppol BIS 3.0 XRechnung
Format UBL 2.1 UBL 2.1 or CII
Transmission Peppol network (via AP) Direct or via portal
B2G (Germany) Accepted by ZRE/OZG-RE Required format
B2B cross-border Yes, widely used Germany-specific
Cost Requires AP subscription Portal submission is free

Which Format Should You Use?

For B2G Invoicing (Government)

โ†’ XRechnung is the standard. You need a valid Leitweg-ID from the recipient. Most government portals also accept Peppol BIS 3.0 if you use a Peppol AP.

For B2B Invoicing (Standard Business-to-Business)

โ†’ ZUGFeRD 2.x (EN 16931 profile) is often the easiest for the transition period, because your customers can still read the PDF while systems process the XML. Once your trading partners have full e-invoice processing, XRechnung UBL is equally valid.

For API-Driven or High-Volume B2B

โ†’ XRechnung UBL is clean and simple โ€” pure XML, no PDF overhead. Good for system-to-system integration.

For Cross-Border EU Invoicing

โ†’ Peppol BIS 3.0 if your recipients are in Peppol-enabled countries. ZUGFeRD EN 16931 is also accepted in France (Factur-X) and is understood in some other EU markets.


Validation Checklist

Before your first live invoice, run these checks:

  • Document validates against KoSIT Validator (XRechnung) or FeRD tools (ZUGFeRD)
  • ZUGFeRD profile is EN 16931 or EXTENDED (not MINIMUM, BASIC WL, or BASIC)
  • All mandatory EN 16931 fields are present and correctly formatted
  • Leitweg-ID (BT-10) is populated for B2G invoices
  • Buyer Reference (BT-10) is included if required by your trading partner
  • Tax information (VAT rate, category, amounts) sums correctly
  • IBAN/payment details are in the correct BankTransfer or payment block fields
  • DATEV export works correctly with your Steuerberater's system (if applicable)

Common Mistakes

1. Using ZUGFeRD BASIC profile and claiming mandate compliance. The BASIC profile lacks mandatory fields required by EN 16931. Always check which profile your software generates.

2. Missing or invalid Leitweg-ID for B2G invoices. The Leitweg-ID must match the exact identifier assigned by the public authority. Even a single character difference causes rejection.

3. XRechnung generated but not validated. Some tools claim XRechnung support but produce files that fail KoSIT validation. Always validate the output, not just the claim.

4. Using XRechnung 2.x instead of 3.0. Since February 2024, XRechnung 3.0 is required. Version 2.x is no longer accepted.

5. Sending ZUGFeRD to recipients who need pure XML. Some large corporations and public agencies require pure XRechnung and will reject ZUGFeRD. Check your trading partner's requirements.


Resources


Last updated: April 2026. Format specifications based on XRechnung 3.0, ZUGFeRD 2.3.2, and Peppol BIS 3.0.

germanyformatsxrechnungzugferdpeppolen16931ublcii