Factur-X PDF/A-3b EN 16931

Factur-X Validator

Check compliance with EN 16931 and the 2026 French mandate instantly.

Drag and drop your invoices here, or click to browse.

Why Validate with Get FacturX?

Catch compliance issues before they reach your clients or Chorus Pro.

Full EN 16931 Compliance Check

We validate your invoices against the complete European e-invoicing standard.

XML & PDF/A-3b Verification

Both the embedded XML and the PDF archival standard are inspected.

Chorus Pro Ready

Ensure your invoices pass Chorus Pro validation before submission.

Submit to PPF on Success

When your invoice passes validation, we can forward it to the Portail Public de Facturation automatically, no extra steps required.

How It Works

Validate your Factur-X invoices in three simple steps.

Step 1

Upload Your Invoice

Drag and drop your Factur-X PDF or XML file into the validator. We accept both embedded PDF and standalone XML.

Step 2

Automatic Validation

We check your invoice against the full EN 16931 rule set, verify PDF/A-3b conformance, and inspect the embedded XML structure.

Step 3

Get Your Report

See a detailed pass/fail report with specific error messages and field-level guidance so you can fix issues before submission.

Frequently Asked Questions

Everything you need to know about validating Factur-X invoices.

We validate against the full EN 16931 European e-invoicing standard, including all Factur-X profiles (Minimum through Extended) and ZUGFeRD 2.x compatibility.
Yes. You can upload standalone Factur-X XML files or complete PDF/A-3b invoices with embedded XML. Both are fully supported.
You'll receive a detailed report listing every rule violation, the affected field, and a clear description of how to fix each issue.
Basic validation is free for up to 10 invoices at a time. Premium users unlock advanced strictness levels, Chorus Pro-specific rules, and batch processing.
Yes. Our validator includes Chorus Pro-specific rules so you can be confident your invoices will be accepted on the platform.
Yes. Once your invoice passes all compliance checks, premium users can have it sent to the Portail Public de Facturation automatically, so you go from validation to submission without leaving the page.
An error is a blocking violation: the file is non-compliant and will be rejected by a Plateforme Agréée or trading partner's accounting system. A warning is an advisory finding that does not block compliance but indicates a best-practice deviation. Your file can pass validation with warnings but not with errors.
Validation against EN 16931 Schematron is a necessary condition, not a sufficient one. The PPF and Chorus Pro also apply platform-specific rules, for example, the correct PDP routing identifier for the recipient. We recommend running validation in strict mode before any PPF submission.
The MINIMUM profile satisfies the technical EN 16931 requirement but does not include invoice line items. For standard B2B invoices where the recipient expects line positions, use the EN 16931 profile. Most Plateformes Agréées accept MINIMUM but your trading partners may require a richer profile.
Yes. ZUGFeRD 2.x and Factur-X 1.x are technically identical formats: both embed CII XML inside a PDF/A-3b container. Our validator accepts both and applies the correct profile rules automatically based on the declared specification identifier.
Accounting systems perform their own import checks beyond EN 16931 Schematron: they verify the embedded XML filename, the AFRelationship attribute value, and the XMP metadata block structure. Our validator checks all of these layers, so import failures are caught before the file leaves your workflow.

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 →

Ready for 2026 e-invoicing?

Make every invoice compliant, in one message

Sign up to unlock unlimited tools, selectable compliance profiles and every premium feature.

EN 16931 & PDF/A-3b compliant Results in seconds No installation Data never stored
3 free uses per day · No card required