XRechnung for Shopify: what it is and how to send one
Last updated 16 August 2026
If a German buyer has asked you for an XRechnung, they are not asking for a nicer PDF. They are asking for a structured XML file that follows Germany's official e-invoice profile and passes a strict set of validation rules. This is a plain-English explainer for Shopify merchants: what XRechnung is, how it differs from ZUGFeRD and Peppol, and what it actually takes to produce one from a Shopify order.
What XRechnung actually is
XRechnung is Germany's national e-invoice format — formally a CIUS ("Core Invoice Usage Specification") of the European standard EN 16931, maintained by KoSIT. In plain terms: it takes the European invoice data model and tightens it with German rules about which fields are mandatory and what they must contain.
The important part for a merchant: an XRechnung is pure XML. There is no PDF, no logo, nothing designed for a human to read. It is a file a computer parses and validates — and if it fails the rules, it comes straight back.
XRechnung vs ZUGFeRD vs Peppol
These three names get used as if they were alternatives to each other. They aren't — they sit at different layers, and a German B2B invoice usually involves more than one:
| Name | What it is |
|---|---|
| EN 16931 | The European semantic standard — what data an invoice must carry. Everything below is built on it. |
| XRechnung | Germany's profile of EN 16931. Pure XML (UBL or CII), machine-only, with extra mandatory German fields. Required for public-sector invoices. |
| ZUGFeRD | A hybrid format: a normal PDF with EN 16931 XML embedded inside, so a person and a machine read the same file. Common in ordinary B2B — see ZUGFeRD for Shopify. |
| Peppol BIS Billing 3.0 | Another profile of EN 16931, in UBL — the document shape used on the Peppol network. |
| Peppol (the network) | Not a format at all — the delivery route. An XRechnung can be sent over Peppol, through a German portal, or by email. |
When a Shopify merchant needs XRechnung
Three situations put XRechnung on your roadmap:
- You invoice German public bodies. XRechnung has been compulsory for invoices to German federal authorities since 2020. A PDF is simply not accepted.
- You sell B2B in Germany. Since 1 January 2025 German businesses must be able to receive structured e-invoices, and the obligation to send them phases in across 2027–2028. XRechnung is one of the two formats in everyday use — see our guide to the 2027 mandate.
- A large buyer asks for it. Enterprise and public-adjacent buyers often standardise on XRechnung because it drops into their accounting system with no re-typing.
Can Shopify produce an XRechnung on its own?
No. Shopify is excellent at taking orders, but it has no native XRechnung support. Out of the box it cannot:
- map an order into the EN 16931 core fields under the XRechnung profile,
- carry the German-specific mandatory fields — the Leitweg-ID, buyer reference, and seller contact details XRechnung insists on,
- validate the file against the XRechnung and EN 16931 rules before it goes out, or
- deliver it over Peppol or into a German portal and track what happened to it.
A Shopify order-confirmation PDF looks like an invoice to a person and like nothing at all to a validator. That's the gap an e-invoicing app fills.
What an XRechnung has to get right
XRechnung is validated, not merely formatted — the file is checked against a published rule set and rejected outright if it fails. The parts that catch merchants out:
| Element | Why it matters |
|---|---|
| Leitweg-ID | The routing ID a public-sector buyer gives you. Mandatory on public-sector XRechnungen, carried in the buyer reference field — wrong or missing means rejected. |
| Seller & buyer identity | Legal names, addresses and VAT numbers (USt-IdNr.), plus a named contact and email for the seller — XRechnung requires more here than the bare European core. |
| Invoice metadata | Unique number, issue date, currency and invoice type code, in the exact fields the standard defines. |
| Line items | Quantity, unit price, net amount and VAT category per line — structured data, not a free-text description. |
| VAT breakdown | Tax grouped by rate and category, with the correct code and legal note for reverse charge or exemption. |
| Totals that reconcile | Net, VAT and gross must add up to the cent, or the validation rules reject the invoice. |
How a Shopify store sends an XRechnung
You don't hand-build the XML. A purpose-built app maps each order into a compliant document and delivers it. The flow:
| Step | What happens |
|---|---|
| 1 · Capture | Collect the buyer's company name, VAT number, and — for public-sector buyers — the Leitweg-ID, at checkout or on the order. |
| 2 · Map | Turn the Shopify order into the EN 16931 core fields under the XRechnung profile, including the German mandatory extras. |
| 3 · Get VAT right | Derive net and VAT correctly — including reverse charge for cross-border B2B — and check the buyer's VAT number against VIES. |
| 4 · Validate | Run the file against the XRechnung and EN 16931 business rules so it passes before it is ever sent. |
| 5 · Deliver | Send it the way the buyer expects — over a Peppol Access Point, into a portal such as ZRE / OZG-RE, or by email — and track the outcome. |
The part everyone underestimates: VAT correctness
An XRechnung is checked to the cent. If net, VAT and gross don't reconcile, the invoice is rejected — and a rejected invoice that was legally required is a sale that hasn't been billed. Getting clean figures out of Shopify is harder than it looks: whether your prices include or exclude tax changes how net and VAT are derived, rounding across many lines can leave you a cent out, and selling to a VAT-registered business in another EU country usually means reverse charge — 0% VAT with the right category code and legal note on the face of the invoice. Producing valid XML is only half the job; the numbers inside it have to be right too.
Frequently asked questions
What is XRechnung?
Germany's official e-invoice format — a national profile (CIUS) of the European standard EN 16931, published by KoSIT. It's pure structured XML with no PDF, mandatory for invoices to German federal public bodies since 2020, and one of the formats used under the German B2B mandate.
Can Shopify create an XRechnung invoice?
No. Shopify's order confirmations and PDF invoices aren't structured e-invoices — they don't carry the required EN 16931 fields, can't apply the German rules, and aren't validated. You add XRechnung output with an app that maps the order into a compliant XML document.
What's the difference between XRechnung and ZUGFeRD?
Both carry an EN 16931 invoice, packaged differently. XRechnung is pure XML, machine-only, and what public bodies require. ZUGFeRD is hybrid — a PDF with the XML embedded, so a person and a machine read the same file. Which you send depends on the buyer; many German merchants need both.
Do I need XRechnung for my Shopify store?
Yes if you invoice German public-sector buyers, where it's been compulsory since 2020. For German B2B, receiving structured invoices has been required since 1 January 2025 and sending phases in across 2027–2028, with XRechnung one of the accepted formats.
How do I send an XRechnung from Shopify?
Capture the buyer's company details, VAT number and (for public bodies) Leitweg-ID; map the order to the EN 16931 fields under the XRechnung profile; get the VAT right including reverse charge; validate against the rules; then deliver over Peppol, through a portal such as ZRE or OZG-RE, or by email.
What is a Leitweg-ID?
The routing identifier a German public-sector buyer gives you so the invoice reaches the right authority. It's mandatory on a public-sector XRechnung and travels in the buyer reference field — missing or wrong means rejection. Ordinary company-to-company invoices don't need one.
This guide is general information for Shopify merchants, not legal or tax advice. Rules, mandates and thresholds vary by country and change over time — confirm your obligations with a qualified tax adviser.
E-invoices from your Shopify B2B orders
Zeppol turns every B2B order into an EN 16931 document, checks it against the EU and the German rules, and sends it over Peppol or by email. Join the list and I'll be in touch before the deadline.