France e-invoice validator
France_RFE 1.4.0.04Validate a French electronic invoice against the official FNFE-MPE rule packages — UBL, CII or a Factur-X PDF. Every finding carries the rule identifier the artefact itself emitted. Your invoice never leaves your device.
Your document never leaves your device — the file is read and parsed in this browser tab.
Drop an XML document here, or choose a file
Read in your browser. Never uploaded. Up to 12.0 MB.
What this validator runs
The French e-invoicing reform publishes its validation rules as Schematron, maintained by the FNFE-MPE in the France_RFE repository. This tool executes those rule packages unmodified: release 1.4.0.04, pinned to an immutable commit, verified by SHA-256, compiled to an executable form and run by a conformant XSLT 3.0 processor in your browser. No French rule is reimplemented here — reimplementation is how a validator comes to disagree with the standard it claims to apply.
A validation runs in layers, and each reports separately:
- XML Schema — UBL 2.1, or UN/CEFACT CII D22B as the target requires.
- Profile rules — EN 16931, EXTENDED-CTC-FR, or one of the Factur-X profiles.
- French national rules —
BR-FRand their advisory companion, the rules the reform adds on top of the European model.
Validation targets, and why you are sometimes asked
A French invoice is only meaningful against a specific contract: a syntax, a profile, and a version of the rule set. This tool calls that a validation target, and it names seven of them — the ones release 1.4.0.04 actually supplies rules for.
Where the document says enough, the target is chosen automatically. A UBL invoice declaring urn:cen.eu:en16931:2017#conformant#urn.cpro.gouv.fr:1p0:extended-ctc-fr can only be one thing. Where it does not, you are asked — and that is a deliberate refusal rather than a missing feature. A standalone CII file declaring urn:cen.eu:en16931:2017 fits both the France CII profile and the Factur-X EN 16931 profile, and choosing silently would mean reporting findings from rules your document never claimed to follow.
Why the tool will not tell you your CII file is D22B
Every UN/CEFACT release — D16B, D22B and the others — uses the namespace urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100. The release is a property of the schema a document was built against, not something recorded inside the document, so it cannot be read out of your file. The CII viewer says so, and it still does.
What changes here is not the detection but the contract. When you validate against France — EXTENDED-CTC-FR (CII D22B), D22B rules run because that target requires D22B. The result page states this in as many words, and the distinction is kept in the code: the syntax version is a property of the target, and the document is still described as a CII document of undetermined release.
Factur-X PDFs
A Factur-X PDF can be validated directly. The container is opened in your browser, the embedded CII invoice is extracted through the same pipeline the Factur-X viewer uses, and the target is chosen from the container and the invoice together — which is why a PDF usually needs no question asked.
Only the embedded invoice is validated. PDF/A-3 conformance is not checked, because that requires a conformance checker this project does not ship, and a Factur-X file can satisfy every business rule while failing the container requirements. The result says so rather than leaving you to assume.
What a clean result does not mean
This is an independent tool. It is not an official, government or approved validator, and it has no affiliation with the DGFiP, the AIFE or the FNFE-MPE. A clean result means the pinned rule packages found nothing wrong with the document, at the versions named on the page.
Compliance with the reform is larger than one file. It also involves lifecycle statuses returned as CDAR messages, e-reporting of transactions and payments where they apply, transmission through an approved platform, and retention of the original electronic format. None of those is observable in an invoice, and none is checked here. The France page sets out what the reform covers and what this site does and does not validate.
Frequently asked questions
Is this an official French validator?
No. This is an independent tool with no affiliation to the DGFiP, the AIFE or the FNFE-MPE, and it is not an approved platform. What it does is execute the official FNFE-MPE France_RFE rule packages, unmodified, in your browser — the same Schematron the reform publishes, compiled to a form an XSLT processor can run. A passing result means those rules found nothing at the versions shown, which is useful but is not a certification and not a promise that a platform will accept your invoice.
Which rule packages does it run?
France_RFE 1.4.0.04, pinned to an immutable commit and checksummed. Depending on the target you validate against, it runs the profile rules (EN 16931, EXTENDED-CTC-FR, or a Factur-X profile) followed by the French national rules, BR-FR, and their advisory companion. Every finding carries the rule identifier the artefact itself emitted, and the technical details panel names the exact stylesheets that produced it.
How does it know my CII file is D22B?
It does not, and it will not claim to. Every UN/CEFACT release shares the CrossIndustryInvoice:100 namespace, so a CII document does not record which release it was built against. What happens instead is that you — or, for a Factur-X PDF, the container — select a validation target, and that target requires D22B. The rules run because a contract was chosen, not because your file proved anything, and the result page says so in those words.
Why was I asked to choose a target?
Because the evidence was not sufficient to choose one for you. A standalone CII file declaring urn:cen.eu:en16931:2017 fits both the France CII profile and the Factur-X EN 16931 profile; a file declaring nothing fits none in particular. Picking one silently would mean reporting findings from rules your document never claimed to follow.
Can I validate a Factur-X PDF here?
Yes. The PDF is opened in your browser, the embedded CII invoice is extracted, and the target is selected from the container and the invoice together. Only the embedded invoice is validated: PDF/A-3 conformance of the container is not checked, and the result says so.
What is the difference between EXTENDED-CTC-FR and Factur-X EXTENDED?
They are different profiles with different rules, despite the similar names. EXTENDED-CTC-FR is the French CTC extension, identified by urn:cen.eu:en16931:2017#conformant#urn.cpro.gouv.fr:1p0:extended-ctc-fr. Factur-X EXTENDED is the Factur-X profile, identified by urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended. They are modelled as separate targets and validating against the wrong one produces findings, which is exactly what it should do.
Is my invoice uploaded?
No. The rule packages are downloaded to your browser and executed there, in a worker. This tool has no upload step, no storage, and no analytics event carrying anything about your document. Open your browser’s network panel while validating: you will see the pinned rule artefacts being fetched and nothing else.
Does a clean result mean I am compliant with the French mandate?
No. It means the pinned rule packages found nothing wrong with this document. Compliance also involves lifecycle statuses, e-reporting where it applies, transmission through an approved platform, and retention — none of which a file validator can observe. See the France page for what the reform covers and what this site does not check.
Related
- French e-invoicing 2026–2027 Who must receive and issue e-invoices in France, and from when.
- Validating a Factur-X invoice The checks that catch a broken Factur-X before your customer does.
- Factur-X Viewer Extract and read the CII XML embedded in a Factur-X PDF.
- UBL Validator Schema and EN 16931 rule validation for UBL 2.1 invoices.
- France Formats, specifications and local validation for French e-invoicing.
- Factur-X The hybrid PDF/A-3 invoice format used in France and Germany.