France

France: what we cover, and what Flux 1 is

Use this page to check the French scope: dates, Factur-X XML, Peppol base rules, Flux 1 and the parts Attestwire does not provide.

The dates, as dates

1 September 2026. Every VAT-registered business established in France must be able to receive e-invoices. No size test. Issuing phases in from the same date for large and mid-size firms, 2027 for the rest. A business with only a French VAT number and no French establishment is outside the receiving obligation.

The DGFiP specifications used below are version 3.2.

What we cover

Factur-X: XML and PDF are separate steps

Factur-X is CII XML inside a PDF/A-3 container. We write the XML. We do not build the container.

Generation returns the CII payload, not a finished Factur-X file. Use a PDF/A-3 library to attach the XML and set the required PDF metadata.

To read an existing file, extractFacturX(bytes) opens a Factur-X or ZUGFeRD PDF and returns its CII XML attachment. This function is in the MIT package. The hosted API and browser checker accept XML, not PDF files.

"DGFiP Flux 1: 0 pass, 22 fail" — and why we publish it

On we ran all eleven committed fixtures against the official French Flux 1 base schemas, in both the Base and the Full profile, from a clean scratch directory. Every one of the 22 fixture × profile combinations failed. An external reviewer's count was confirmed exactly.

There were three possible explanations:

All 22 were profile mismatches. None showed a defective document or D16B/D22B syntax mismatch. The full record lists the 518 paths that the Flux 1 profiles exclude.

Flux 1 is a tax-filing extract, not an invoice format. It is the reduced data set France wants reported, not the document you send your customer. Our fixtures are XRechnung invoices, and an XRechnung invoice is not a Flux 1 extract, which is why they fail a schema that was never asked to accept them.

Two more things the record says out loud. This run is XSD only: the DGFiP ships XML Schema and spreadsheets and no schematron for Flux 1, so there is no French rule id to cite for any failure, and inventing one would put words in the DGFiP's mouth. And the French business rules themselves — 122 of them stated as G1.01-form ids, 42 flagged applicable to Flux 1 — live in an annex spreadsheet as prose, and nothing in this repository implements them.

Read the whole run: commands, checksums, the per-fixture table →

What is explicitly out of scope

Attestwire is not an approved platform and does not transmit invoices. It does not submit to PPF or Chorus Pro and does not provide AS4 or access-point service.

We also cannot confirm a company's approved-platform registration. That information is available only in the DGFiP directory.

Next steps

Mandate dates for other countries and a DGFiP directory walkthrough live at check.attestwire.com, which is free and takes no account. To check a French document right now, paste it into the playground — it runs in your browser and nothing is uploaded.