Format decision
XRechnung or ZUGFeRD: the difference and which one you need
Short answer: XRechnung is pure XML, ZUGFeRD/Factur-X is a PDF with embedded XML — both carry the same EN 16931 data. For public-sector recipients (B2G) XRechnung is the established standard. In B2B both are allowed; ZUGFeRD is convenient when the recipient also wants a readable PDF view.
The real difference: packaging, not content
Many look for the "big" difference in the content — there is barely any. Both formats are expressions of the same European standard EN 16931 and carry the same fields (invoice number, parties, lines, VAT, totals). The difference is the form:
- XRechnung — a pure
.xmlfile (UBL or UN/CEFACT CII), no built-in visual view; a German CIUS of EN 16931, the standard for public administration. - ZUGFeRD / Factur-X — a
PDF/A-3with the same data set embedded as CII XML; the PDF is immediately readable, the XML is read by accounting systems.
Which one do I need? The decision
- Invoicing a public authority (B2G)? → XRechnung. It is the established standard for public administration and usually needs a Leitweg-ID for routing. Many bodies also accept ZUGFeRD in the
XRECHNUNGprofile. - Invoicing a business (B2B) that expects a readable view? → ZUGFeRD/Factur-X (COMFORT/EN 16931 or EXTENDED). The recipient sees a normal PDF; their system reads the embedded data set.
- Pure system-to-system processing in B2B? → either format works. Follow the recipient's or their accounting system's preference.
Watch out: not every ZUGFeRD profile meets the mandate
ZUGFeRD has several profiles. Only from COMFORT / EN 16931 (and EXTENDED) does the file carry the full EN 16931 data. The MINIMUM and BASIC-WL profiles are meant for special booking purposes and do not count as a full e-invoice under the B2B mandate. XRechnung is EN 16931-compliant by definition. More in the format comparison ZUGFeRD / XRechnung / EN 16931.
Both count — but only if technically valid
Whether XRechnung or ZUGFeRD: only a file that genuinely meets the EN 16931 structural requirements satisfies the mandate. You cannot tell from the file name — only a technical check can. The free fakturai validator reads XRechnung, ZUGFeRD and Factur-X files and checks them against a KoSIT-aligned accept gate, with no account.
Validate XRechnung or ZUGFeRD for free
What if I want to produce both?
You do not have to commit permanently. fakturai generates a ZUGFeRD/Factur-X or XRechnung file from the same input data depending on the recipient, and checks every output against the same KoSIT-aligned accept gate — so you serve B2G and B2B recipients from one data model. See the structure in the e-invoice example (XML).
What fakturai does not replace
fakturai checks and generates the technical format and structural compliance per EN 16931 with a KoSIT-aligned accept gate. The content and tax correctness of the invoice, proper archiving and accounting treatment remain your responsibility. fakturai is not tax advice and makes no legal, tax or delivery guarantees.
Next step
Free German e-invoice validator · Create an API key
Related: ZUGFeRD vs XRechnung vs EN 16931 · E-invoice example (XML) · Leitweg-ID · German e-invoicing mandate