Invoice Numbering: A System That Won't Break
June 25, 2026 · 5 min read
Invoice numbers feel like the least important part of the document - until there's a gap in the sequence during a tax audit, or two invoices accidentally share the same number, and suddenly it's the only thing that matters. A good system is boring by design: it just needs to never break.
The one rule that actually matters
Every invoice number must be unique and used exactly once. That's the entire requirement underneath most countries' invoicing rules, and nearly every numbering problem traces back to violating it - reusing a number after voiding an invoice, or restarting the sequence somewhere it shouldn't have.
Sequential, not random
Many jurisdictions specifically require invoice numbers to be sequential, or at least to reveal gaps clearly if some are missing - because a gap-free, ascending sequence is what makes an invoice trail auditable. Random IDs or UUIDs look modern but actively work against this; an auditor can't tell whether five invoices are missing or simply weren't issued sequentially in the first place.
A format that scales without renaming anything later
A common, low-maintenance pattern: a short prefix plus an incrementing number - INV1001, INV1002, and so on. Simple enough to read at a glance, and it never needs to change format as your volume grows, unlike date-based schemes that get awkward once you're sending more than one invoice a day.
If you invoice through multiple businesses or brands, a prefix per business (ACME-1001, SIDE-1001) keeps the sequences independent without either one needing to know about the other.
What to do with a mistake
Never delete or reuse a number, even for an invoice sent by accident. Void it instead - issue a credit note or mark it cancelled, but let the number stay retired. A visible gap with a documented reason is completely normal and audit-safe; a missing number with no explanation is what raises questions.
What breaks this system in practice
- Numbering manually in a spreadsheet, where a copy-pasted row silently duplicates a number
- Switching invoicing tools mid-year without carrying the sequence forward
- Multiple people issuing invoices for the same business without a shared counter
Every one of these is a coordination problem, not a numbering-scheme problem - the fix is having exactly one source of truth for "what's the next number," not a cleverer format.
InvoiceCraft assigns each invoice number automatically and sequentially the first time you send it, so there's one counter, it never resets by accident, and gaps only ever happen for a documented reason.
