Your file stays put: everything runs in your browser
Does your invoice pass the official validators?
Drop in a Factur-X PDF or a CII XML file. The official schematrons of its profile judge it: EN 16931 (CEN) and Factur-X, or those of the Basic WL, Extended and EXTENDED-CTC-FR profiles, always with the French BR-FR rules of the XP Z12-012 standard. For EN 16931, the SDK also reads it back into a typed object.
Drop a file here
Factur-X PDF or CII XML · it never leaves your machine
Nothing at hand?
Loading…
What this tool checks
The rules of its profile, not another's
Each profile has its own rules: in EXTENDED-CTC-FR, the net price is only required on detail lines. The tool reads the declared profile (BT-24) and applies only the official rule sets of that profile, published by the FNFE-MPE (France_RFE v1.4.0.04). For EN 16931, four judges: the SDK, with the exact path of the offending field, then the CEN, Factur-X and BR-FR schematrons on the XML as it stands. A profile with no official rule set (Minimum, Basic) is not judged.
Three tolerances, stated openly
Three warnings are flagged as tolerated, never hidden: each one pits a PEPPOL or CII rule against a requirement of the French standard. The reason is shown alongside every one of them.
What is still missing
The PDF/A-3 check by veraPDF needs Java, and therefore a server: it does not run here. The SDK passes it in continuous integration on every published version.
A sample invoice to take away
The sample Factur-X PDF is produced by the SDK itself: EN 16931 profile, French statements, PDF/A-3b verified by veraPDF. Its deliberately faulty twin carries four common defects, listed on the PDF page itself, so you can check that a receiving pipeline rejects what it ought to reject.
What gets counted
Your invoice is neither uploaded nor read anywhere but on your own machine. Only a content-free signal is sent on each check: the server answers with nothing at all, and the request leaves a line in two logs: the statistics log, at an already-truncated address, and the short-lived operating log, which keeps the full address. Enough to know whether the tool is used — no cookie, and nothing about your invoice.
The same rules as in CI
The rule sets come from the FNFE-MPE's France_RFE repository, at the pinned commit of version v1.4.0.04, compiled and then executed by Saxon-JS — exactly what judges the SDK on every commit.
This tool is not legal advice and does not replace the accredited platform that will transmit your invoices. XSLT engine: Saxon-JS 2.7 © Saxonica, redistributed unmodified (licence).