Does Your German Online Shop Have to Send E-Invoices?
Germany has required every domestic business to receive e-invoices since January 2025, and issuing starts in 2027. What both dates mean for an online shop.
If your German shop sells to other businesses, it will have to send them structured e-invoices — from 1 January 2027 if your prior-year turnover was above EUR 800,000, and from 1 January 2028 otherwise. There is a second obligation that is not in the future at all: since 1 January 2025 every domestic business has had to be able to receive a structured EN 16931 e-invoice, with no threshold and no exemption for small shops. Sales to private customers sit outside both, so your consumer checkout does not change. The practical questions for a shop owner are therefore which of the two dates is yours, what your checkout asks a business buyer, and what happens when that buyer cannot be reached.
This page is for the owner or store manager of an online shop registered in Germany that sells at least partly to businesses. It stays on Germany and on the shop's own flow. The mandate in general, the format comparison and the cross-border picture each have their own page and are linked where they belong.
Does the German e-invoicing rule apply to my online shop?
If you invoice other businesses, yes — and part of it applies even if you do not.
Germany is phasing in mandatory structured business-to-business e-invoicing under the Growth Opportunities Act (the Wachstumschancengesetz). It separates two obligations that are easy to run together and should not be:
- Receiving structured e-invoices has been compulsory for every domestic business since 1 January 2025. No turnover threshold, no phase-in, no e-commerce exception. It applies to you as a business that buys things.
- Issuing them is phased by size: 1 January 2027 for businesses with more than EUR 800,000 of prior-year turnover, and 1 January 2028 for all remaining domestic businesses.
Nothing in that obligation exempts a sale because it happened through a website rather than an account manager. An invoice to a business is an invoice to a business. Germany B2B e-invoicing 2025–2028: XRechnung and ZUGFeRD sets out the mandate itself — the phases, the formats and a readiness checklist.
Two things narrow it usefully. Consumer sales are not in it: a sale to a private customer produces no e-invoice and nothing about that order changes. And the public-sector route is a different thing again — invoices to German federal and state authorities are XRechnung addressed on a Leitweg-ID, a routing identifier rather than a company number. If your shop does not sell to public authorities, that part is not your problem; Germany's country page covers it if it is.
Which date is mine, 2027 or 2028?
Your prior-year turnover decides it, and the year being measured is running now.
More than EUR 800,000 in the previous year puts you in the first phase, from 1 January 2027. At or below it puts you in the second, from 1 January 2028. A shop at EUR 900,000 is caught in 2027, not 2028. Because the test looks at the year before, the figure that settles your 2027 obligation is your 2026 turnover — the one you are earning while reading this.
For a shop near the line, prepare for the earlier date. Being wrong in that direction costs twelve months of readiness you would have needed anyway; being wrong the other way means missing a statutory deadline.
What has to change at checkout?
One field, and it should only ever be shown to a business buyer.
A structured invoice has to be addressed to somebody. For a German business that address is the
USt-IdNr. — the German VAT identification number — carried under Peppol identifier scheme
9930. It is not a free-text company name, and it is not something you can infer from the
delivery address.
So the checkout collects that number from business buyers and checks it before the order is paid — an invalid identifier discovered at invoicing time is a problem you find out about after the customer has left. On both of our storefront apps this is one optional field that follows the language of your site: on WooCommerce e-invoicing in Germany the buyer types their USt-IdNr. and the plugin checks it against the Peppol network as they type, saying whether an e-invoice can reach them; the Wix app puts the same field in place from one button in Settings.
Your own identifier is registered for you. Set-up registers the store's USt-IdNr. on GoRoute's SMP and the Peppol directory under scheme 9930, so responses and incoming documents can find you — which is also, quietly, how you satisfy the 2025 receiving obligation rather than only the issuing one.
Everything else the buyer sees is unchanged. Your theme, your payment provider and your order flow stay as they are. What changes is what happens after payment completes.
XRechnung, ZUGFeRD or Peppol — what is my shop actually sending?
All three names describe the same European core, and only one of them is a decision you have to make.
EN 16931 is the European semantic standard: the fields an invoice must carry and what each one means. Germany accepts two national profiles of it.
- XRechnung is pure structured XML — a CIUS, or national narrowing, of EN 16931. It is mandatory for invoices to German federal public-sector buyers and fully valid for business-to-business.
- ZUGFeRD 2.1 is a hybrid: a human-readable PDF/A-3 with the structured XML embedded inside the same file. A person reads the PDF; software processes the data. It is technically aligned with France's Factur-X.
Peppol is not a third format — it is a way of delivering one. A shop issuing over Peppol sends Peppol BIS Billing 3.0, which is the same EN 16931 core in UBL. Keep the two ideas apart and the rest of this gets simpler: what a Peppol Access Point is explains the delivery half in one page.
The choice is per buyer, and it belongs to the access point rather than to your store. Your shop raises the sale; the access point produces the document in the profile that buyer can accept, validates it against the German rules, and delivers it. That division also means your store stays current when the rules move, without a plugin update.
What happens when the business buyer is not on the Peppol network?
You are told so on the order, and unlike Belgium, there is a compliant way forward.
This is the point where the German answer and the Belgian answer genuinely differ, and reading one across to the other is the mistake worth avoiding. Germany has no central platform to file through and does not prescribe a transport network: the obligation is about the document being structured and EN 16931-compliant. ZUGFeRD exists precisely for this case — a readable PDF with the structured data inside it, which survives being emailed. Belgium, by contrast, does not accept a PDF by email as a business-to-business invoice at all, which is why the Belgian version of this page tells a shop owner the opposite.
In our storefront apps a failed lookup is stated in words on the order, together with the identifier that was tried, and the PDF sits on the order page for you to send. It is never a silent failure, and it never blocks the checkout.
Delivery over the network is still better for both of you — it lands in their accounting software rather than an inbox, and the acknowledgement comes back to your order — but that is a commercial conversation rather than a compliance emergency.
One boundary, stated plainly. This page does not say what German non-compliance costs. Our sources — the country page and the Federal Ministry of Finance material behind it — set out the dates, the formats and the obligations, and they do not carry a penalty schedule. A figure quoted second-hand is how a wrong number spreads, so there is no figure here.
How do refunds and cancellations work?
A refund is a credit note that references the original invoice and travels the way the invoice did.
Online retail has habits a manual invoicing process never had to survive, and each has one correct answer that is not intuitive if you have only ever issued PDFs.
- A refund raises a credit note, not a deletion and not a replacement invoice. You refund in your shop exactly as you always have, and the document follows automatically.
- A cancelled order before delivery is the same shape of problem with the same answer.
- A duplicate is not a second invoice. A double-clicked checkout or a gateway retry must return the original document rather than minting a new one. One sale, one invoice, ever.
- A refused document has to be visible — explained on the order in words and retried where retrying helps, never silently dropped.
Underneath all four sits one rule: the structured document is the legal invoice, so the ordinary corrections your shop already performs now have to produce ordinary corrections on the network too. Archiving follows the same logic — German retention is judged against the GoBD principles for auditable records, and what you keep is the structured document, not a screenshot of it.
What this looks like on WooCommerce and on Wix
Both are live, both cover Germany, and both are free to start.
- WooCommerce. The GoRoute plugin is on the WordPress plugin directory and works with WordPress 6.0+ and WooCommerce 8.0+, including High-Performance Order Storage and the block checkout. Issuing hooks the payment-complete event, so Mollie, Stripe, PayPal, bank transfer and cash on delivery all behave identically: paid business order in, e-invoice out. Set-up is about ten minutes, with no developer and no API key to paste. The detail is on WooCommerce e-invoicing in Germany; the plugin itself is at wordpress.org/plugins/goroute-e-invoicing-for-woocommerce; and the view across every country it supports is on the WooCommerce Peppol plugin page.
- Wix. The GoRoute app is on the Wix App Market and requires Wix Stores. Germany is one of its seller countries. It adds the checkout field, issues on payment, and writes the invoice number, the channel and the delivery state onto the Wix order itself. The detail is on Wix e-invoicing, and the listing is at the Wix App Market.
Both are free for the first fifty e-invoices a month, with every feature included, and paid plans above that. Wix plans are bought and billed inside Wix — the charge lands on the Wix bill the merchant already has, and the app never asks for a card. WooCommerce plans are bought from GoRoute inside WordPress. The current ladder lives on each product page rather than in this article, because a price written into a blog post goes stale without anybody noticing.
The access point behind both is GoRoute itself — certified Peppol Access Point POP000991 — so issuing, delivery and delivery status are one service, with one place to look when a document does not land.
What this page does not cover
Penalty amounts. Our German sources set out dates, formats and obligations and do not publish a penalty schedule, so none is stated here.
Your VAT treatment. German rates are 19%, 7% and 0% with reverse-charge and intra-EU handling, and the country page covers how the platform applies them. Whether a given sale is a business-to-business supply is a tax question rather than a document-exchange one.
Any country but Germany. Belgium, France, the Netherlands, Australia and New Zealand each have a different obligation — and a different answer to the "buyer not on the network" case. Belgium vs France vs Germany sets the three side by side.
Related German and storefront guides
- Germany B2B e-invoicing 2025–2028: XRechnung and ZUGFeRD — the mandate itself: the phases, the format comparison and a readiness checklist.
- Belgium vs France vs Germany e-invoicing — three neighbours, three visibly different designs, and how much of your work is reusable.
- Does your Belgian online shop have to send e-invoices? — the same question one border west, where a PDF by email is not an option.
- Receiving your suppliers' e-invoices in Belgium — the receiving half, which Germany has required of every business since January 2025.
- What a Peppol Access Point is — the delivery half, in one page, without the country specifics.
What to do next
Work out today which of the two dates is yours, by looking at your 2026 turnover against EUR 800,000. That single number decides whether you are preparing for January 2027 or January 2028, and almost no shop owner has checked it.
Then install, because the receiving obligation is already live and the checkout field costs you nothing while it waits. On WooCommerce that is the plugin directory; on Wix it is the App Market listing. Recorded walkthroughs of the connectors are on tutorials, the document types, statuses and identifier formats are in the developer documentation, and the German regime in full is on our Germany page. To walk your own checkout and refund flow against these rules with our team, book a session.
Sources: Germany's business-to-business e-invoicing obligation under the Growth Opportunities Act
(Wachstumschancengesetz), with the receive date of 1 January 2025 and the issue dates of 1 January 2027
above EUR 800,000 of prior-year turnover and 1 January 2028 for all remaining domestic businesses, as
set out by the Federal Ministry of Finance, which sets
Germany's e-invoicing rules; the KoSIT XRechnung standard
and FeRD for the two German formats; the
OpenPeppol BIS Billing 3.0 specification for the delivery
profile and the 9930 identifier scheme. Product behaviour — the checkout field, the reachability
check, the credit-note path and the German PDF fallback — is GoRoute's own, described on
the WooCommerce Germany page and
the Wix page. GoRoute operates certified Peppol Access Point POP000991.
Frequently asked questions
- Does an online shop in Germany have to send e-invoices?
- Eventually yes, if it sells to other businesses, and the date depends on your size. Since 1 January 2025 every domestic business — including yours — has had to be able to receive a structured e-invoice. The obligation to issue one starts on 1 January 2027 for businesses with more than EUR 800,000 of prior-year turnover, and on 1 January 2028 for everyone else. Sales to private customers are outside the obligation entirely.
- I only sell to consumers. Does any of this reach me?
- The issuing side does not, because a sale to a private customer raises no e-invoice. The receiving side does. The 2025 receiving obligation has no consumer carve-out and no turnover threshold: it applies to you as a business that buys things, not as a shop that sells them, and your suppliers may already be sending structured invoices.
- When exactly does my shop have to start issuing?
- On your prior-year turnover. More than EUR 800,000 in the previous year means 1 January 2027; at or below it means 1 January 2028. A shop at EUR 900,000 is caught in 2027, not 2028. The test is on the year before, so the number that decides your 2027 date is your 2026 turnover — which is being earned now.
- What do I have to change at checkout?
- One field, shown only to business buyers: their German VAT identification number, the USt-IdNr. That is what the structured invoice is addressed to, under Peppol identifier scheme 9930. Consumers see nothing new, which matters, because for most shops consumer orders are the larger half and compliance should not cost you conversions on them.
- XRechnung or ZUGFeRD — which one does my shop send?
- Both satisfy the mandate, and for a shop the practical answer is that your access point decides per buyer rather than you choosing once. XRechnung is pure structured XML and suits system-to-system delivery; ZUGFeRD is a PDF a person can read with the same structured data embedded inside it, which is why it survives being emailed. A shop that delivers over Peppol is sending Peppol BIS Billing 3.0, which is the same EN 16931 core.
- What if my business customer is not on the Peppol network?
- Germany is more forgiving here than Belgium. The German obligation is about the document rather than the channel — there is no central platform to file through and no prescribed network — so a buyer who cannot be reached on Peppol can still be sent a compliant structured invoice as a ZUGFeRD hybrid by email. In our storefront apps the order says in words that the lookup failed and which identifier was tried, and the PDF is on the order page for you to send.
- How does a refund work under the German rule?
- A refund or cancellation raises a credit note that references the original invoice and travels the way the invoice did. You refund in your shop exactly as you always have and the document follows. What you must not do is delete or quietly re-issue the original invoice.
- What does it cost to fix this on WooCommerce or Wix?
- Both apps are free to start: fifty e-invoices a month with every feature, then paid plans above that. Wix plans are bought and billed inside Wix, on the bill the merchant already has; WooCommerce plans are bought from GoRoute inside WordPress. The current ladder is on each product page rather than here, because a price written into a blog post goes stale without anybody noticing.
Building on Peppol?
GoRoute is a certified Peppol Access Point & SMP. Book a demo or read the docs to get started.