XRechnung or ZUGFeRD: the difference and when to use which

Not competitors but two shells for the same data. The question is never which is better, but what the other side accepts.

The question is almost always put the wrong way round. XRechnung and ZUGFeRD are not competitors you pick between like two programs — they are two wrappings of the same data. Both satisfy the e-invoicing obligation. What differs is the shell, and who asks for which shell.

On the left the hybrid file: a PDF/A-3 with a visible page and XML inside. On the right the plain XML file with no visible page. Below, the shared basis EN 16931
The difference is in the shell, not the content: underneath both sits the same standard with the same field numbers.

The difference in one table

XRechnungZUGFeRD / Factur-X
What you getan XML filea PDF file with XML inside
Visible pagenoneyes, opens like any PDF
SyntaxUBL or CIICII
Relation to the standardCIUS — a narrowingCIUS; in the EXTENDED profile also an extension
Who typically asks for itpublic authoritiesbusinesses among themselves
Maintained byKoSIT, German federal and state governmentsFeRD (Germany), FNFE-MPE (France)

What XRechnung is

XRechnung is the German standard for structured invoicing with public administration: a core invoice usage specification (CIUS) of EN 16931 that narrows the core model and makes mandatory a few fields the standard leaves optional. The best-known example is the Leitweg-ID in BT-10, which addresses the authority.

On versions: version 3.0 has applied since 1 February 2024 and, according to its maintainers, stays in force until at least 31 July 2027. A pre-release of XRechnung 4.0 was published in September 2026; the final version is expected in spring 2027. The publishing rhythm has moved from two releases a year to one main release.

Which version a file is, the file says itself — in BT-24. For XRechnung 3.0 the identifier reads urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0. Up to version 2.3 it read urn:xoev-de:kosit:standard:xrechnung_2.3: the namespace changed with 3.0, and that is exactly what older tools trip over.

What ZUGFeRD is

ZUGFeRD packs the same data differently: a PDF/A-3 file that shows the readable invoice page and carries the XML as an attachment. Click the file and you see an invoice; read it in and you get data. In France the same format is called Factur-X.

ZUGFeRD has profiles — from the stripped-down MINIMUM to EXTENDED. For the obligation, ZUGFeRD counts from version 2.0.1 except MINIMUM and BASIC WL: those two lack mandatory items and do not count as an e-invoice.

And there is a bridge between the two worlds: ZUGFeRD has a profile called XRECHNUNG. Such a file is a PDF with a visible page whose embedded XML follows the XRechnung rules and carries their identifier in BT-24. Where an authority wants XRechnung but accepts PDF attachments, this is the variant that satisfies both sides.

When to use which

Your situationWhat makes sense
Invoicing a German public authorityXRechnung; the address is the Leitweg-ID, the route usually their invoice portal
Invoicing a businessZUGFeRD — the other side can read it even if their software cannot yet import it
Customer names no formatZUGFeRD in the EN 16931 profile; it is the version that gets stuck nowhere
Customer insists on XRechnung but wants to see somethingZUGFeRD in the XRECHNUNG profile
Recipient abroad via PeppolUBL — the mandatory syntax there; the access point converts the CII out of ZUGFeRD

The order of questions is always the same: first establish what the other side accepts, then pick the format — not the other way round. A format the recipient cannot process is not a better format.

What both have in common

  • The same field numbers. BT-1 is the invoice number in both, BT-112 the gross total in both — see the structure of the XML.
  • The same business rules. The standard's BR- families apply to both; XRechnung adds its BR-DE- rules on top — see business rules.
  • The same legal standing. Both are e-invoices for the purposes of the obligation; in the hybrid format the structured part prevails.
  • The same retention. What you keep is the structured part, not a printout — see retention.

How the same field looks in both syntaxes

“The same fields” does not mean “the same element names”. The standard hands out numbers, the syntax hands out names — which is exactly where the impression comes from that these are entirely different files. The invoice number, BT-1, sits at:

SyntaxWhere BT-1 sits
CII — that is, in ZUGFeRD and Factur-Xrsm:ExchangedDocument/ram:ID
UBL — as in XRechnung and on the Peppol networkubl:Invoice/cbc:ID

For the bookkeeping this changes nothing: it is BT-1 both times, and the same rule applies both times. In practice it only means that software reading one syntax does not thereby read the other — and that converting between them is renaming, not losing data.

Four misconceptions that keep going around

ClaimHow it actually is
“XRechnung is mandatory for everyone.”What is mandatory is the e-invoice, not a particular format. XRechnung is typically what the administration asks for.
“ZUGFeRD is just a PDF.”The data sits inside it as XML and is the part that governs. The page is the addition, not the core.
“You cannot read an XRechnung.”You need a viewer instead of a PDF reader — but it is readable, and the administration does exactly that.
“You have to commit to one.”Nothing stops you sending XRechnung to authorities and ZUGFeRD to business customers. The data behind them is the same.

What E-Rechnung Pro can do here — and what it cannot

Checking: both. The validator takes PDF and XML and runs the standard's rules plus the German add-ons over them. For an incoming XRechnung that is the shortest route to the question of whether it is clean.

Issuing: ZUGFeRD and Factur-X, in the BASIC, EN 16931 and EXTENDED profiles. The service does not produce XRechnung. If you need one, it comes out of your accounting system — and gets checked here before it goes to the portal.

One detail from practice: validation tools often run the XRechnung rules over every file. A perfectly correct ZUGFeRD invoice then reports rule BR-DE-21 as violated — it demands the XRechnung identifier in BT-24, which naturally is not there. That is not a fault in your file; our report therefore subtracts that message.

Frequently asked questions

Is XRechnung better than ZUGFeRD?

Neither is better. They are two shells for the same data; which one fits is decided by the recipient.

Can I send a ZUGFeRD file to a public authority?

Only if their intake allows it. What they ask for is usually XRechnung — and the ZUGFeRD XRECHNUNG profile is made for exactly this case.

How do I tell what I have received?

By the file extension and by BT-24: an .xml file with the KoSIT identifier is an XRechnung, a PDF with embedded XML is a ZUGFeRD invoice. The validation report names both.

Do I have to prepare for XRechnung 4.0 now?

No. Version 3.0 applies until at least 31 July 2027; in September 2026, 4.0 existed only as a pre-release. It becomes relevant when your software supports it and the recipient asks for it.

Which syntax does an XRechnung use — UBL or CII?

Both are permitted. Which one you get depends on the sender; the field numbers are the same in both.

And XRechnung abroad?

It plays no role there — it is a German standard. Across borders what counts is EN 16931 and, where delivery runs over Peppol, that network's own specification in UBL.

Does a ZUGFeRD invoice in the MINIMUM profile count as an e-invoice?

No. MINIMUM and BASIC WL are excluded — they lack mandatory items. Use EN 16931.

In short

  • Two shells, one content: XRechnung is plain XML, ZUGFeRD a PDF with XML inside.
  • Authorities mostly XRechnung, businesses mostly ZUGFeRD — and the XRECHNUNG profile bridges the two.
  • XRechnung 3.0 has applied since 1 February 2024, until at least 31 July 2027; 4.0 is announced, not in force.
  • BT-24 gives the version away — with 3.0 the namespace in it changed.
  • You do not have to choose: the recipient says what goes where.

Not sure what just landed in your inbox? Upload the file — the report names the format, the profile and every rule that was broken.