FacturX
← All articles

Invoice numbering: the French rules you must follow (and how to comply on Shopify)

Published on · FacturX

Sequential invoice numbering

It is one of the first things the French tax administration checks in an audit: invoice numbering. The rules are simple to state, but surprisingly easy to break when you sell online — especially with several stores. Let’s break it down.

What the law says

The French tax code (article 242 nonies A) requires every invoice to carry a unique number, drawn from a chronological and continuous sequence:

  • unique: two invoices can never share a number;
  • chronological: numbers follow issuance order;
  • continuous: no gap in the sequence. A cancelled invoice does not free its number — you issue a credit note, you never delete.

Numbering may include a prefix (year, series…), for example 2026-00042, as long as the sequence stays continuous within the series.

Why it is so easy to get it wrong on Shopify

Shopify numbers orders (#1001, #1002…), not invoices. The two sequences diverge quickly:

  • an order cancelled before payment produces no invoice → gap;
  • test orders, drafts and exchanges create order numbers with no accounting reality;
  • Shopify’s order counter is specific to each store.

Using the order number as your invoice number is therefore risky. You need a dedicated invoicing sequence, incremented only when an invoice is actually issued.

The tricky case: several Shopify stores, one company

Many merchants run several stores (multi-brand, multi-country) under the same legal entity. The continuity rule applies per entity, not per store: if your company sells through three Shopify stores, its invoices must form a single continuous sequence.

Three independent invoicing apps, each with its own counter, produce three parallel sequences — not compliant.

This is exactly why FacturX offers multi-store linking: you link your stores into a single invoicing entity, and every invoice draws its number from the same shared counter, incremented atomically. Store A issues #42, store B issues #43, store A issues #44: continuity guaranteed, hands-free.

Taking over an existing sequence without creating a gap

Migrating from another tool? Your sequence does not restart at 1: it continues. If your last invoice was #1041, the first one issued by the new tool must be #1042.

FacturX handles this scenario with smart sequence initialization: you enter the next number to issue, the app checks that it creates neither a duplicate nor a rollback (it refuses any value below numbers already consumed), and the live preview shows you the next formatted numbers.

Choosing a good numbering format

A readable format makes everyone’s life easier. FacturX lets you compose yours freely with variables:

  • FF-{sequence} → FF-1042: the simplest and most robust;
  • {YYYY}-{sequence} → 2026-1042: the year as prefix, appreciated by accountants;
  • credit notes get their own format (for example CN-{sequence}), as they form a distinct series.

Avoid embedding information that can change (commercial store name, sales channel): an invoice number should stay stable and neutral.

Compliance checklist

  1. A sequence dedicated to invoices, not the Shopify order number;
  2. Continuous and chronological, including across stores of the same entity;
  3. Numbers are reserved at issuance and never reused;
  4. Cancellations go through credit notes, never deletions;
  5. The issued invoice is immutable and kept for 10 years.

FacturX ticks all five boxes by construction. Install it for free and sleep well before your next audit.

Compliant invoices, on autopilot

FacturX automatically generates Factur-X invoices for your Shopify orders, with legal numbering and accounting exports. Free during early access.

Install FacturX