It is tempting to put the WooCommerce order number on the invoice and call it done. In many countries that is not a valid invoice number, and it can cause you real problems at tax time. Here is why, and how proper sequential numbering works.
Why the order number isn’t an invoice number
Tax authorities in the EU, the UK, much of Latin America and elsewhere require invoice numbers to be unique and sequential, often gap-free within a series. WooCommerce order numbers fail this on two counts: orders that are cancelled or fail payment leave gaps, and order numbers aren’t guaranteed to march in a clean sequence (plugins, drafts and subscriptions can perturb them). An auditor seeing missing numbers in your invoice series asks where the missing invoices went.
How compliant numbering works
- A dedicated counter. The invoice series has its own counter, independent of order IDs, incrementing only when an invoice is actually issued.
- Assigned once, stored forever. The number is written to the order the first time the invoice is generated, so a reprint or resend never changes it. This is the single most important rule: a number that shifts on reprint is worse than useless.
- A prefix and reset policy. Many businesses use a prefix and reset the sequence yearly (e.g.
2026-0001). Pick a scheme and keep it consistent.
What “sequential” means to an auditor
The word carries more weight than it looks. Most tax authorities want invoice numbers that are sequential and gapless within a series, meaning an auditor can walk 1, 2, 3 through your records with nothing unexplained in between. A gap isn’t a formatting nit; it’s the shape of a deleted or hidden sale, which is exactly what the rule is designed to surface.
That has a practical consequence people miss: you cannot simply skip a number. If an invoice is issued and then cancelled, the number stays used and you account for the reversal; you don’t quietly reissue it. Many jurisdictions also expect the series to reset annually with the year encoded in the number (2026-0001), so each year is its own auditable run.
Where WooCommerce actually breaks this
Out of the box, WooCommerce gives you an order number, and it is not a lawful invoice number for three concrete reasons:
- Order IDs aren’t consecutive. Classic WooCommerce stores orders as posts, sharing one ID counter with every post, page, revision and draft on the site. Order 1041 is often followed by order 1067 because the gap went to autosaves.
- Failed and abandoned orders consume numbers. A customer who bounces at payment still burns an ID, leaving a hole no auditor will accept as an explanation.
- Nothing distinguishes an order from an invoice. An invoice number should be assigned when the invoice is issued (typically at payment or completion), not when a cart is created. Numbering on order creation means unpaid carts take numbers out of your legal sequence.
Refunds need their own series
The detail that catches most stores: a refund is not a negative invoice. In most VAT and GST regimes it’s a credit note: its own document, with its own gapless sequence (CN-2026-0001), referencing the original invoice number it corrects. Dropping a refund into your invoice series, or reusing the original number, produces exactly the kind of inconsistency that turns a routine review into a longer one.
Resetting the series, and when not to
Most jurisdictions permit a per-year series, restarting at 1 each January with the year in the number, so 2026-0001 follows 2025-0417. Some require it. What none of them permit is restarting a series retroactively, or renumbering invoices that have already been issued.
That distinction matters more than it sounds, because a plugin change is the most common way it gets violated by accident. Switching invoicing plugins, or changing the number format mid-year, can silently renumber historical invoices when documents are regenerated on demand, and a customer who now holds a PDF whose number no longer matches your records is a genuine audit problem.
Two safeguards make this survivable. Store the assigned number against the order the moment it is issued, so it is a recorded fact rather than something recomputed later. And if you must change format, start the new scheme at a clean boundary and leave everything before it exactly as issued.
Setting it up in WooCommerce
A good invoice plugin gives you a starting number, an optional prefix, and stores the assigned number on the order. You should be able to reprint an old invoice years later and get the exact same number. If a plugin regenerates the number each time it renders the PDF, treat that as a compliance bug, not a feature.
Rules vary by country; confirm yours with an accountant. But sequential, stable, gap-managed numbering is the safe default almost everywhere, and it should be built in, not an afterthought.
An invoice plugin that gets the details right
Rebel Studios Invoice Documents for WooCommerce puts your tax breakdown, tax ID and totals on a clean PDF, assigns stable sequential invoice numbers stored on the order, and attaches to your order emails automatically. Free, with bulk printing in Pro.
Related reading: showing VAT/GST/sales tax on invoices and why invoices don’t render Arabic / RTL text, and bulk-printing a whole day’s invoices at once.
