Factur-X for WooCommerce: How to Comply with France's September 2026 Mandate
France's B2B e-invoicing mandate goes live September 1, 2026 for large and mid-sized companies. This guide covers Factur-X 1.07, the PA platform model, profiles, validation, and the French legal fields WooCommerce stores need to configure.
From September 1, 2026, every large and mid-sized French business must issue B2B invoices in a structured electronic format — transmitted through an Accredited Platform (PA, formerly PDP). Factur-X is the format most French stores will use. This guide explains what Factur-X is, what the mandate actually requires, and how to generate compliant invoices from WooCommerce — practically, today.
What is Factur-X?
Factur-X is France's national standard for electronic invoicing.
Like Germany's ZUGFeRD, it's a hybrid format: a single PDF/A-3
file that contains both a human-readable PDF rendering and a
machine-readable XML attachment named factur-x.xml. Recipients
without automated processing read the PDF; recipients with an ERP
or finance system parse the embedded XML.
Factur-X is maintained by the FNFE-MPE consortium (Forum National de la Facture Électronique et des Marchés Publics Électroniques). It aligns with the European EN 16931 norm and is technically compatible with ZUGFeRD — both formats wrap CII (Cross Industry Invoice) XML in a PDF/A-3 envelope. A correctly-built EN 16931 file is valid as both a Factur-X and a ZUGFeRD invoice. The current version is 1.07 (May 2025), which is the version mandated for the 2026 rollout.
France's B2B e-invoicing mandate timeline
The mandate has been re-scheduled twice and faced a parliamentary challenge — but in April 2025 the National Assembly rejected a proposed one-year postponement. The dates are now firm:
- September 1, 2026 — receive (all): every VAT-registered French business must be able to receive structured e-invoices.
- September 1, 2026 — issue (large + mid): large companies (over 5,000 employees or €1.5B turnover) and mid-sized companies (250-4,999 employees) must issue e-invoices for B2B transactions.
- September 1, 2027 — issue (SMB): small and medium-sized businesses (under 250 employees) join the mandate.
For B2G (selling to public administrations), Chorus Pro continues to be the channel and has been mandatory for several years.
How transmission works: the PA platform
France does not allow direct B2B invoice transmission. Every invoice flows through an Accredited Platform — the Plateforme Agréée (PA), previously called PDP. The path is:
- Seller generates the Factur-X file.
- Seller's PA receives, validates, and forwards.
- Buyer's PA receives and delivers to the buyer.
- Both PAs report metadata to the French tax authority (DGFiP).
PAs are accredited by the DGFiP. The role of a tool like invoice9 is to generate a compliant Factur-X file — the merchant contracts a PA separately for transmission. This separation matters: a generation tool that doesn't produce a schematron-valid file will be rejected at the PA layer, no matter how good the PDF looks.
Factur-X profiles
Factur-X defines five conformance profiles, in increasing order of structured-data richness:
- Minimum: header-level totals only. Rare for B2B.
- Basic WL (without lines): header + tax breakdown, no line items. Niche.
- Basic: with line items. The minimum for typical B2B commerce.
- EN 16931 (Comfort): aligned with the European norm. Recommended for most WooCommerce B2B stores.
- Extended: for industry-specific cases (logistics references, complex allowances).
Choose EN 16931 unless you have a specific reason not to — it's the broadest interoperability profile and is what most French PAs accept by default.
Required French invoice fields
Beyond the EN 16931 baseline, French law requires a few specifics:
- Numéro de TVA intracommunautaire — the seller's VAT identifier (e.g., FR12345678901).
- SIRET / SIREN — the seller's establishment and legal-entity identifiers.
- Mention de TVA — a legal text matching the seller's tax regime. For a micro-entrepreneur: "TVA non applicable, art. 293 B du CGI". For standard regimes, no mention is needed but cross-border reverse-charge text must be present where applicable.
- Date format: human-readable PDF uses DD/MM/YYYY; the embedded XML uses ISO 8601 (YYYY-MM-DD).
How WooCommerce stores generate Factur-X
A compliant Factur-X file requires three things, and most generic PDF-invoice plugins for WooCommerce only do the first:
- EN 16931-compliant CII XML with the right French CIUS fields.
- A PDF/A-3 wrapper — not a regular PDF. PDF/A-3 is a specific archival profile that allows arbitrary file attachments; standard PDFs will be rejected by the schematron.
- The XML embedded as a PDF/A-3 attachment named
factur-x.xmlwith the correct AFRelationship (Alternative) and metadata.
invoice9 generates the CII XML, renders the PDF via Typst with a PDF/A-3 output profile, and embeds the XML with the correct metadata — all in one pipeline. The merchant sees a single Factur-X 1.07 file attached to the order email and downloadable from the customer's account page.
Validation: schematron rules
Factur-X validates against a layered schematron:
- EN 16931 base schematron: the European norm rules.
- Factur-X profile schematron: profile-specific constraints (Minimum vs Basic vs EN 16931 vs Extended).
- French CIUS: France-specific business rules layered on top of EN 16931.
invoice9 validates every generated file before returning it. If a required field is missing or malformed, you get a structured error you can fix in your plugin settings — not a silent failure that the PA rejects three days later.
Common pitfalls
- SIRET missing when SIREN is supplied. Both are required for full identification of a French establishment.
- Wrong "mention de TVA" for the tax regime. Auto-entrepreneurs must include art. 293 B CGI; standard regimes must not.
- Cross-border intra-EU B2B not flagged as reverse-charge. EN 16931 has specific tax-category codes for this; getting it wrong causes downstream tax-reporting errors.
- Currency code formatted as €. The XML requires the ISO 4217 code (EUR), not the symbol.
- Plain PDF instead of PDF/A-3. Most generic invoice plugins skip the PDF/A-3 step. The file looks fine to a human but fails Factur-X schematron validation.
Getting started: a 6-step checklist
- Confirm your scope. Are you in the September 2026 wave (large
- mid) or September 2027 wave (SMB)?
- Pick a plugin that generates Factur-X 1.07 natively — not all do. Ask specifically about PDF/A-3 wrapping and schematron validation.
- Configure your French legal data: SIRET, SIREN, VAT ID, tax regime, mention de TVA. invoice9 has a dedicated French settings panel.
- Generate a sample invoice and run it through a Factur-X schematron validator (FNFE-MPE publishes test tools).
- Contract a PA for transmission. The DGFiP maintains the official accredited list. invoice9 generates the file; the PA delivers it.
- Test end-to-end with a known buyer before the mandate date — most rejection issues surface only on the receiving end.
Frequently asked questions
Can a non-French B2B store use Factur-X?
Yes. Factur-X is a freely-usable format and is increasingly preferred for cross-border B2B invoicing into France. If you have French B2B customers, generating Factur-X for them (even when not mandated for your country) makes their accounting workflow easier.
Is plain PDF still allowed after September 2026?
Not for in-scope B2B transactions. Plain PDF is treated as unstructured and is no longer a compliant invoice for businesses in the mandate's scope.
What if I haven't contracted a PA yet?
You can't transmit. invoice9 will still generate a valid Factur-X file, but the actual delivery to the buyer goes through your PA. Contracting a PA early is the longest-lead-time item in the rollout.
What's the difference between Factur-X and ZUGFeRD?
Same family, different governance. Factur-X is governed by the French FNFE-MPE; ZUGFeRD by Germany's FeRD. Both wrap CII XML in PDF/A-3, both align with EN 16931, and a correctly-built EN 16931 file is technically valid under both.
How does Factur-X compare to PEPPOL?
Factur-X is a format (how the invoice is structured); PEPPOL is a network (how invoices are transmitted). France's PA framework runs alongside PEPPOL — some PAs use PEPPOL as underlying transport. The two are complementary, not competing.
I sell on both Shopify and WooCommerce. Do I need different setups?
invoice9 ships on both. The same template format and the same e-invoice library powers both stores, so a buyer who orders across channels gets visually identical, format-equivalent Factur-X invoices.
Try invoice9 for WooCommerce
Factur-X 1.07. ZUGFeRD 2.x. XRechnung. PEPPOL. Drag-drop template editor. EU-hosted (Frankfurt). From $5/month.
See plugin →