Factur-X France
France DGFiP Factur-X: EN 16931 hybrid PDF/A-3 with embedded CII XML, SIREN/TVA validation, Plateforme Agreee (PDP) + e-reporting, BYOK
France Factur-X
EN 16931 hybrid PDF/A-3 with embedded Cross Industry Invoice (CII) XML — ready for the 1 September 2026 French B2B reform
Generate Factur-X invoices in Odoo: a single PDF that is both
human-readable and machine-readable, carrying a UN/CEFACT
Cross Industry Invoice XML embedded inside a PDF/A-3 as
factur-x.xml. Route every document through your certified
Plateforme Agreee (PDP) and follow its lifecycle statuses.
Five conformance levels
Emit MINIMUM, BASIC WL, BASIC, EN 16931 (COMFORT) or EXTENDED. The EN 16931 profile carries the full line detail, parties, VAT breakdown and totals the French mandate expects.
PDF/A-3 embedding
The CII XML is attached as factur-x.xml with the mandatory
Associated-Files (/AF) relationship and the Factur-X XMP
metadata packet (DocumentType, ConformanceLevel, Version) a receiver or
PDP inspects.
Real SIREN / SIRET / TVA validation
INSEE Luhn check digits on the 9-digit SIREN and 14-digit SIRET (with the documented La Poste exception), and the DGFiP intracommunautaire TVA control key recomputed and matched against the SIREN on the company and partners.
Plateforme Agreee (PDP) connector
Deposit the Factur-X document, poll the mandated lifecycle statuses (Deposee / Recue / Refusee / Encaissee) and transmit the e-reporting feed — B2C, cross-border and payment status — the DGFiP requires alongside e-invoicing.
Business-rule validation
A French rule set layered on the engine's EN 16931 core checks the seller SIREN and TVA, the B2B buyer identifier, EUR currency, line VAT categories and credit-note referencing before anything is sent.
Bring-your-own-key
Your PDP API token and the sandbox / production endpoints live on the connection record, never in the module. They are transmitted only to the Plateforme Agreee you configure — nowhere else.
Guided onboarding
A wizard captures your SIREN, SIRET, default Factur-X profile and PDP credentials, validates the identifiers, derives your intracommunautaire VAT number and leaves the company ready to issue Factur-X invoices. An optional cron drains posted documents to the PDP in batches.
Compatible with Odoo 18, Odoo 19 and Odoo 20.
Disclosure
This module transmits invoice data only to the Plateforme Agreee (PDP) endpoint you configure. Your PDP API token, SIREN and VAT identifiers are stored solely on your own database and are never sent anywhere else.
Screenshots
Factur X Invoice En 16931 Pr
Factur X Crossindustryinvoic
l10n_fr_pdp_routing. Both define the l10n_fr.pdp.config model, and Odoo replaces one definition with the other instead of merging them. If you try, the installation is stopped with a clear error message. Choose one of them for a given database.
Update date: 2026-09-03
User guides (PDF)
Related modules
France e-Reporting
France e-reporting (DGFiP reform, Sept 2026): B2C & international transaction feeds + payment (encaissement) feeds aggregated, validated and submitted via a Plateforme Agréée (BYOK).
France e-Invoice Status
French e-invoicing lifecycle (cycle de vie) statuses: deposited / made available / approved / refused / collected, with a guarded state machine, audit trail, buyer actions, PDP status exchange and partner notifications (reform Sept 2026)
France PDP Routing
France B2B e-invoicing via a certified Plateforme Agréée (PDP): BYOK routing, annuaire lookup, lifecycle statuses and e-reporting feeds (DGFiP reform, Sept 2026)