The French e-invoicing mandate: a developer checklist (Sept 2026)
France's B2B e-invoicing reform is not a proposal anymore — it has a fixed start date. If you build or maintain invoicing for a company that sells to other French businesses, here's what actually changes, and what to check in your pipeline before it does.
The dates that matter
- From 1 September 2026: every French business, regardless of size, must be able to receive e-invoices.
- From 1 September 2026: large and mid-size companies (ETI) must issue e-invoices for their domestic B2B transactions.
- From 1 September 2027: small businesses join the issuing obligation.
Receiving is the trap most teams miss: even if your own company is small enough to get an extra year on issuing, you still have to be able to receive a structured invoice from a large supplier starting September 2026.
How invoices actually move: the PDP model
France dropped the idea of a single free government exchange portal handling delivery. Instead, invoices travel through a Plateforme Agréée (PA/PDP) — a certified private platform your company (or your software) connects to. The state keeps a directory role (tracking who's registered, collecting e-reporting data) but the actual document exchange is PDP-to-PDP. Practically: pick a PA, or make sure the software you build plugs into one, since format compliance alone doesn't get an invoice delivered.
The checklist
- Pick a format. France accepts Factur-X (hybrid PDF + CII, good when a human-readable copy matters), or plain UBL/CII XML. There is no country-specific proprietary schema like Italy's or Poland's — French invoices stay inside the EN 16931 / UBL-CII family.
- Get the seller identifier right. The SIREN must appear in
CompanyIDwithschemeID="0002"— one of the most common BR-FR failures is a missing or wrongly-schemed SIREN. - Add the mandatory French payment mentions. Late-payment
penalties, recovery costs and discount terms are required invoice notes
(BT-22, with
PMT/PMD/AABprefixes) — generic EN 16931 leaves these optional, France doesn't. - Don't forget e-reporting. B2C sales and cross-border transactions aren't e-invoiced the same way, but their transaction and payment data still has to be reported to the tax administration ("e-reporting") — a separate obligation from the invoice itself.
- Validate against the
frprofile before you connect to a PA, not after. All 61 official BR-FR rules (AFNOR XP Z12-012 / FNFE-MPE) are checkable ahead of time:
curl -X POST "$BASE/v1/validate/ubl?profile=fr" \ -H "Content-Type: application/xml" --data-binary @invoice.xml
Test before you integrate a PA. Every BR-FR rule we check comes with a plain-English explanation and a fix — run your invoices through the free validator first, so the errors you debug are yours, not a black box on the other side of a platform integration.
Where to go deeper
We keep a dedicated page tracking the reform in more detail, including all 61 BR-FR codes and sample Factur-X files: Plateforme Agréée: a developer's guide, plus a ready-to-download sample Factur-X invoice and the full error code reference for every BR-FR rule.
Keep reading
Want to try this against a real invoice?
Every example above calls the same API you can call today — validate for free, or read the full reference.