XRechnung or ZUGFeRD?
Both formats are e-invoices in Germany, and every business must be able to receive both. Which one you send depends on how your invoices are created and what your customers ask for.
The difference
| XRechnung | ZUGFeRD | |
|---|---|---|
| What it is | a plain XML file | a PDF (PDF/A-3) with an embedded XML file |
| Syntax | UBL or CII | CII |
| Published by | KoSIT, on behalf of the federal and state governments | FeRD (Forum elektronische Rechnung Deutschland) |
| Human-readable | only with a viewer | yes, as a PDF |
| Additional German rules | yes (BR-DE), e.g. the mandatory buyer reference | only in the XRECHNUNG profile |
| Public-sector buyers | common, with a Leitweg-ID | usually only in the XRECHNUNG profile |
Both implement the European standard EN 16931. For ZUGFeRD from version 2.0.1, every profile except MINIMUM and BASIC WL counts as an e-invoice. The XML always prevails; the visible PDF must not contradict it. The deadlines are covered under e-invoicing mandate.
What this means for Stripe invoices
Stripe creates a PDF for every invoice with number, amounts and a payment page, but no XML. There are two ways to an e-invoice:
- Replace the Stripe PDF: a service creates its own ZUGFeRD PDF. It usually gets its own invoice number, and you have to turn off Stripe's invoice emails so your customer does not receive two invoices with different numbers.
- Add to the Stripe PDF: BelegDock leaves Stripe's PDF unchanged and creates an XRechnung with the same number and the same amounts. Your customer gets both in one email: the PDF to read, the XML for their accounting.
A ZUGFeRD PDF would have to replace the Stripe PDF, because the XML sits inside the PDF itself. That is why BelegDock creates an XRechnung in UBL format for Stripe invoices. It also meets the stricter German rules public-sector buyers require, and the official KoSIT validator checks it before it is sent.
When ZUGFeRD is the better choice
- Your customers have no incoming-invoice system yet and want a single file they can read now and process automatically later.
- You do not issue invoices in Stripe but, for example, from a shop. For that, BelegDock's invoice API offers either an XRechnung or a ZUGFeRD PDF in the EN 16931 profile.
You can test whether a file meets the rules with the free e-invoice validator.
Sources
- XRechnung and versions and bundles (KoSIT, German)
- ZUGFeRD (FeRD)
- § 14 UStG (German)
This page is a summary, not tax or legal advice.
Set up your invoice emails.
Create your free account, connect Stripe and design your template. The first 10 real documents each month are free.
