XRechnung · Shopify basics

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.

In one line: XRechnung is the German rulebook applied to a European e-invoice, delivered as XML. ZUGFeRD is the same data wrapped in a PDF; Peppol is a way to deliver either one.

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:

NameWhat it is
EN 16931The European semantic standardwhat data an invoice must carry. Everything below is built on it.
XRechnungGermany's profile of EN 16931. Pure XML (UBL or CII), machine-only, with extra mandatory German fields. Required for public-sector invoices.
ZUGFeRDA 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.0Another 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:

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:

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:

ElementWhy it matters
Leitweg-IDThe 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 identityLegal 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 metadataUnique number, issue date, currency and invoice type code, in the exact fields the standard defines.
Line itemsQuantity, unit price, net amount and VAT category per line — structured data, not a free-text description.
VAT breakdownTax grouped by rate and category, with the correct code and legal note for reverse charge or exemption.
Totals that reconcileNet, 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:

StepWhat happens
1 · CaptureCollect the buyer's company name, VAT number, and — for public-sector buyers — the Leitweg-ID, at checkout or on the order.
2 · MapTurn the Shopify order into the EN 16931 core fields under the XRechnung profile, including the German mandatory extras.
3 · Get VAT rightDerive net and VAT correctly — including reverse charge for cross-border B2B — and check the buyer's VAT number against VIES.
4 · ValidateRun the file against the XRechnung and EN 16931 business rules so it passes before it is ever sent.
5 · DeliverSend 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.