fakturai blog

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:

Which one do I need? The decision

  1. 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 XRECHNUNG profile.
  2. 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.
  3. 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

Free validator · Create API key · API docs