EN 16931 · Shopify basics

EN 16931 for Shopify: the standard behind XRechnung, ZUGFeRD and UBL

Last updated 26 July 2026

Once you start looking into EU e-invoicing, one code keeps appearing: EN 16931. It sits underneath XRechnung, ZUGFeRD, UBL and Peppol — the standard they all point back to. This is a plain-English explainer for Shopify merchants: what EN 16931 actually is, how those other names relate to it, and what it takes for a store to produce a compliant invoice.

What EN 16931 actually is

EN 16931 is a European standard that defines the "core" of an electronic invoice — the list of data fields a compliant e-invoice must carry, and exactly what each one means. Think seller and buyer identifiers, VAT numbers, line items, tax breakdown, totals, payment terms: EN 16931 says which of these are required, how they relate, and the rules the numbers must satisfy.

It was created under the EU's Directive 2014/55/EU, originally to make public-sector (B2G) invoicing interoperable across Europe, and has since become the backbone of the wider B2B e-invoicing mandates now rolling out. The key idea: an e-invoice is not a PDF you look at — it is structured data a computer reads, in a shape everyone agrees on.

In one line: EN 16931 is the shared blueprint for what a European e-invoice contains. XRechnung, ZUGFeRD, UBL and Peppol are all different ways of packaging that same blueprint.

How XRechnung, ZUGFeRD and UBL fit in

This is where most people get tangled. These names sit at different layers — they are not competing alternatives to EN 16931, they are built on top of it:

NameWhat it is
EN 16931The underlying semantic standardwhat data an invoice contains and the rules it must follow.
UBL / CIIThe two permitted XML syntaxes EN 16931 can be written in — how the data is laid out in a file. UBL (OASIS) is the most common; CII is UN/CEFACT's equivalent.
XRechnungA German profile (CIUS) of EN 16931 — the national rules that tighten the standard for German public bodies. Pure XML.
ZUGFeRD / Factur-XA hybrid format: a normal PDF invoice with EN 16931 XML embedded inside it, so a human and a machine can both read the same file. (Factur-X is the French twin.)
Peppol BIS Billing 3.0Another profile of EN 16931, in UBL, designed to travel over the Peppol network.

So if a buyer asks for "an XRechnung" or "a ZUGFeRD invoice" or "UBL," they are all asking for the same thing underneath: an EN 16931-compliant invoice, packaged the way their country or software expects.

Why a Shopify merchant should care

Two forces are pushing EU B2B sellers toward EN 16931:

A PDF invoice generated from a Shopify order looks fine to a human but isn't an EN 16931 e-invoice — it carries none of the required structured fields and can't be validated. That's the gap.

Can Shopify produce an EN 16931 invoice on its own?

No. Shopify is great at taking orders, but it has no native EN 16931 support. Out of the box it can't:

Those capabilities are added with an app or service that sits between your store and the invoice format.

What an EN 16931 invoice has to get right

An EN 16931 document is validated — not just formatted. To pass, a Shopify order has to be turned into a structured invoice that carries, at minimum:

ElementWhy it matters
Seller & buyer identityLegal names, addresses and VAT numbers — and, for delivery over Peppol, participant IDs.
Invoice metadataA unique number, issue date, currency and invoice type code, in the exact fields the standard defines.
Line itemsEach line's quantity, unit price, net amount and VAT category — structured, not free text.
VAT breakdownTax grouped by rate and category, with the right code for reverse charge or exemptions.
Totals that reconcileNet, VAT and gross must add up to the cent, or the invoice is rejected by the validation rules.

How a Shopify store meets EN 16931

You don't retrofit the standard onto Shopify by hand — a purpose-built app maps each order into a compliant document. The flow looks like this:

StepWhat happens
1 · CaptureCollect the buyer's company details and VAT number (plus Peppol ID if you'll send over Peppol) at checkout or on the order.
2 · MapTurn the Shopify order into the EN 16931 core fields, in UBL or CII — the profile your buyer or country needs (XRechnung, ZUGFeRD, Peppol BIS).
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 document against the EN 16931 business rules so it passes before it's ever sent.
5 · DeliverSend it the way the buyer expects — over a Peppol Access Point, by email, or as a ZUGFeRD PDF — and track the outcome.

The part everyone underestimates: VAT correctness

EN 16931 invoices are validated 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 failed sale. Pulling clean figures out of Shopify is trickier than it looks: whether your prices include or exclude tax changes how net and VAT are derived, rounding can leave you a cent off, and selling to a VAT-registered business in another EU country usually means reverse charge — 0% VAT with the correct EN 16931 category code and legal note. Producing the right file format is only half the job; the numbers inside it have to be right too.

Zeppol makes your Shopify orders EN 16931-compliant

Zeppol turns your Shopify orders into EN 16931-valid e-invoices — in the profile your buyers need (Peppol BIS, XRechnung or ZUGFeRD) — gets the VAT right (reverse charge and VIES included), and delivers them over a certified Peppol Access Point with status tracked in your admin. Germany-first, built for the 2027 mandate wave. Join the early-access list.

Frequently asked questions

What is EN 16931?

The European standard that defines the core data model of an e-invoice — the fields a compliant invoice must carry and what they mean. Created under EU Directive 2014/55/EU, it's the common model behind XRechnung, ZUGFeRD and Peppol BIS, expressed in the UBL or CII XML syntax.

Is EN 16931 the same as XRechnung, ZUGFeRD or UBL?

No — different layers. EN 16931 is the semantic standard; UBL and CII are the XML syntaxes it's written in; XRechnung is a German profile of it; ZUGFeRD is a hybrid PDF-plus-XML that embeds it. They're all ways of expressing an EN 16931 invoice.

Can Shopify create an EN 16931 invoice?

No. Shopify's order and PDF outputs aren't structured e-invoices, don't carry the required fields, and aren't validated. You add EN 16931 output with an app that maps the order to a compliant UBL or CII document.

Do I need EN 16931 for my Shopify store?

If you sell B2B in the EU, increasingly yes. Mandates — Germany from 2027–2028 and others under ViDA — require structured invoices built on EN 16931, and many business buyers already expect them. A PDF won't qualify.

What's the difference between EN 16931 and Peppol?

EN 16931 is the invoice format; Peppol is the network that delivers it. Peppol BIS Billing is itself a profile of EN 16931, so a Peppol invoice is an EN 16931 invoice sent over the Peppol network. You usually need both to be compliant end to end.

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.