France's B2B e-invoicing mandate begins September 2026. From that date, large enterprises and ETIs must both send and receive structured e-invoices through a certified Plateforme Agréée (PDP) or the PPF. Factur-X is one of three accepted formats, and the most practical choice for businesses that want to maintain a human-readable invoice alongside the structured XML layer. Validating your Factur-X files before submission ensures they will be accepted by the PDP and not silently rejected after transmission. Read our complete guide to the 2026 mandate →
What the Factur-X validator checks
A Factur-X file has three distinct compliance layers. Our validator runs all three automatically: a file must pass every layer to be accepted by a Plateforme Agréée, the PPF, or your trading partner's accounting system.
CII D16B XSD schema - validates the embedded XML against the UN/CEFACT Cross-Industry Invoice D16B schema. Catches structural errors (missing required elements, incorrect data types in monetary amounts, malformed date formats, and namespace declaration errors) before the business rule check runs.
EN 16931 Schematron: 200+ business rules - this is where most rejections originate. The rules check VAT arithmetic consistency (BR-CO-14: invoice total VAT must equal the sum of all VAT category amounts), category-specific constraints (BR-S-08: standard-rate lines must carry a rate greater than zero), mandatory fields (BR-01: specification identifier, BR-06: seller name), and payment rules (BR-61: IBAN required when payment means code is 30 or 58). The detected profile (MINIMUM, BASIC WL, BASIC, EN 16931, or EXTENDED) determines which rules are mandatory versus optional.
PDF/A-3b conformance - validates the outer PDF container against ISO 19005-3 archival requirements: embedded fonts, an ICC colour profile, correctly structured XMP metadata declaring the Factur-X version and profile, and the AFRelationship=Alternative declaration on the XML attachment. A PDF that fails PDF/A-3b will be rejected by French Plateformes Agréées regardless of XML validity: this layer is invisible in standard PDF viewers, which is why so many files fail here unexpectedly.
Common Factur-X validation errors, and what they mean
These are the rule violations we see most frequently. If your file fails, one of these is likely the cause.
BR-01 - Specification identifier missing
The GuidelineSpecifiedDocumentContextParameter/ID element is absent or empty. Every Factur-X file must declare its EN 16931 profile identifier (e.g. urn:factur-x.eu:1p0:en16931). Without it the validator cannot determine which profile rules to apply and rejects the file immediately.
BR-CO-14 - VAT total does not match VAT breakdown
The invoice total VAT amount does not equal the sum of all VAT category breakdown amounts. This fires when rounding differences between line-level and header-level VAT create a discrepancy of even one cent. Fix by computing header VAT totals from the breakdown, not independently.
BR-S-08 - Standard-rate VAT line has zero rate
An invoice line declares VAT category code S (standard rate) but carries a 0% rate. If zero-rate is intended, use category code Z (zero-rated) or E (exempt) instead.
BR-AE-05 - Reverse charge line has non-zero VAT rate
When VAT category AE (reverse charge / autoliquidation) is used, the VAT rate must be exactly zero: the buyer is responsible for reporting the tax.
PDF/A-3b - Embedded fonts missing
One or more fonts are referenced externally rather than embedded. Regenerate the PDF with font embedding enabled, or use GetFacturX to produce a compliant PDF/A-3b directly.
PDF/A-3b - XMP metadata block absent or malformed
The PDF does not contain the Factur-X XMP extension metadata block, or the block uses an incorrect namespace. Without it, Plateformes Agréées cannot identify the file as Factur-X and will treat it as a plain PDF.
Going deeper on Factur-X compliance
New to Factur-X? Our guide covers what the format is, who the 2026 mandate affects, which profile to choose, and how to avoid the most common compliance mistakes. Read: Factur-X mandatory in 2026, everything French businesses need to know →