GoBD invoice numbers for Shopify: the real requirement
Last updated 18 September 2026
The short answer: Shopify's order number was never built to be your invoice number, and a merchant who notices gaps after a deleted or edited order is not looking at a bug. They are looking at an invoice-numbering requirement Germany already enforces today, separate from and years ahead of the 2027 e-invoicing mandate.
Two different rules, and merchants usually only hear about one
"GoBD" gets used as a catch-all for German invoicing compliance, but the numbering question actually rests on two separate rules with two separate authors.
- §14(4) no. 4 UStG is the invoice-content rule: every invoice needs "a sequential number, using one or more numeric series, assigned once by the issuer, to identify the invoice." It requires the number be continuous and assigned once. On its own wording it does not say the series can never contain a gap.
- GoBD's completeness and traceability principle, the BMF's bookkeeping guidance under §146(1) AO, is what actually deals with gaps: a business's records must let every transaction be followed from origin to conclusion without a break. A gap in a number sequence is not automatically a violation; an unexplained gap is. Auditors accept a gap they can trace to a reason. They do not accept one nobody can account for.
The distinction matters in practice. Chasing an absolutely gapless sequence is the wrong goal, and it pushes a system toward allocating numbers at the worst possible moment, before an order is even known to be invoiceable. The real target is few gaps, and every one of them explained.
Why Shopify's order number does not clear either rule
Shopify's order number identifies an order, not an invoice, and under German law the two stop being the same thing once your store issues real invoices rather than order confirmations. Three specific ways it fails:
- It is not assigned once. A retried failed payment, a split POS sale or a cancelled and reopened checkout can all leave more than one order-adjacent record behind a single purchase a customer experienced as one event.
- Deleted or test orders leave silent gaps. An order removed from the admin, a test order, a duplicate, a fraud cancellation, disappears from the sequence with nothing written down anywhere to explain why the number is missing.
- There is no separate series for corrections. A refund, a cancellation and a genuine sale all sit inside the same order-number sequence, which is exactly the mixing GoBD's traceability principle exists to prevent.
What a compliant sequence actually needs
Four properties, each traceable back to one of the two rules above:
| Property | Why |
|---|---|
| Assigned once, at a fixed point | §14(4) no. 4 UStG requires einmalig vergeben. A number that could be reissued or reused later was never "assigned once". |
| No annual reset | The year is not part of the identifying key, so restarting at 1 every January is a discontinuity, not a feature. |
| Every gap carries a stored reason | GoBD's traceability principle: a gap you can explain is fine, one you cannot is the finding. |
| Corrections run their own series | A credit note is a different document type (type code 381 rather than 380 for an invoice). Mixing the two series makes neither one continuous. |
How Zeppol allocates a number
Zeppol assigns the number at the moment an invoice is approved for sending: after every check (VAT, mandatory fields, buyer data) has already passed, and before the document itself is built. That ordering is deliberate. Allocating earlier would burn a number on every order that turns out blocked or skipped. Allocating later would mean sending a document whose own printed number was never actually part of what got validated.
- Draft, blocked, held and skipped invoices consume no number. Only an invoice that reaches approved status holds one.
- The one case that does create a gap is an approved invoice that is later voided: rare, deliberate, and exactly the kind of gap an auditor expects an explanation for. Zeppol stores one of six reason codes against it: the order was cancelled or refunded after numbering, you voided it yourself, validation failed after the number was allocated, a duplicate was caught, or the invoice was reissued.
- Credit notes run their own series, separate from invoices, so a refund's paperwork never breaks the invoice sequence. Zeppol does not raise credit notes automatically in this version. You raise the correction yourself; keep it in that separate series rather than the invoice one.
- Your prefix is yours to set once, during onboarding, and it locks after the first number is issued. A sequence you can renumber after the fact is not a sequence.
This is documented in full on when Zeppol invoices, the page the numbering behaviour itself is built from.
Does this apply before the 2027 mandate?
Yes, today, regardless of format. §14(4) UStG's invoice-content requirements, including the sequential number, already apply to any invoice a business issues for a taxable domestic supply, on paper or as a PDF, years before the e-invoicing mandate changes the format. The 2027 and 2028 dates in Germany's e-invoicing mandate change how an invoice is transmitted and structured, not whether it needs a defensible number today.
Read on
- When Zeppol invoices: the full numbering policy, and the rest of the workflow it sits inside.
- Germany's 2027 mandate: the sending obligation, deadlines and thresholds.
- DATEV for Shopify: where invoice numbering meets the bookkeeping handoff.
- Shopify VAT for Germany: the other half of a compliant invoice.
Frequently asked questions
Is Shopify's order number a valid invoice number under German law?
Not on its own. §14(4) no. 4 UStG requires a number assigned once to identify the invoice, and Shopify's order number can be duplicated across sales channels, skipped by deleted orders, and reused in ways an invoice number cannot be.
Does GoBD require a completely gapless invoice number sequence?
No. It requires that transactions stay traceable without a break, so a gap you can explain with a stored reason is acceptable. An unexplained gap is the actual finding, not the gap itself.
Does this apply only once the 2027 e-invoicing mandate starts?
No. The sequential-number requirement in §14(4) UStG already applies to every invoice a business issues today, on paper or as a PDF. The 2027 and 2028 dates change the format and transmission, not the numbering rule.
What happens to the number when an order is refunded or cancelled?
If the invoice had not yet been numbered, nothing: draft, blocked, held and skipped invoices never consume a number. If it had already been approved and numbered, voiding it creates a gap with a stored reason, and the correction itself runs in its own separate series.
Can Zeppol issue the credit note for me?
Not automatically in this version. Zeppol marks a refunded order rather than issuing a credit note for it; you raise the correction yourself, in its own number series, separate from invoices.
This guide is general information for Shopify merchants, not tax or legal advice. Confirm your own numbering setup with a qualified tax adviser. Sources: §14(4) UStG on gesetze-im-internet.de, the GoBD (BMF letter of 28 November 2019, consolidated with the amendments of 11 March 2024 and 14 July 2025) on completeness and traceability, and Zeppol's own invoice numbering policy, retrieved and current on 18 September 2026.
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.