Description
OuiFacture turns your WooCommerce store into a compliant French electronic invoicing machine. Every order automatically gets a legally compliant PDF invoice with an embedded Factur-X XML file (PDF/A-3, profile EN 16931) — the format required by the French e-invoicing reform (réforme de la facturation électronique, échéances 2026–2027).
Automatic. On every order.
Features
- Automatic generation of a Factur-X invoice when the order reaches the status you choose (processing — the default — or completed) — no clicks needed. An order that jumps straight to completed is invoiced then; each order is invoiced exactly once.
- PDF/A-3 with embedded EN 16931 CII XML, validated against the official Factur-X XSD schemas at generation time.
- French legal invoice layout: seller block (raison sociale, forme juridique, capital, RCS, SIRET, TVA), buyer block, line items HT, VAT breakdown by rate, totals HT/TVA/TTC, payment terms, and the mandatory legal mentions (pénalités de retard, indemnité forfaitaire de 40 €, escompte).
- Gap-free sequential numbering (prefix + year + counter, optional yearly reset) — race-safe, numbers are immutable once issued, regeneration never changes the number.
- B2B checkout fields: optional SIRET and intra-community VAT number on the classic checkout, validated (Luhn / FR VAT key) and shown in the admin order screen and in the XML.
- Customer access: download link in My Account Orders, on the order-received page, and optional PDF attachment to the “order completed” email.
- Admin control: metabox on every order with Generate / Regenerate / Download.
- Secure storage: invoices live in a protected uploads folder with unguessable file names and are only served through authenticated endpoints.
- HPOS compatible (High-Performance Order Storage).
- No external calls, no tracking: everything is generated locally on your server.
Compliance notes
- Invoices embed the CII XML at the EN 16931 profile of Factur-X 1.x, validated against the official XSDs before the PDF is written.
- Invoice numbers are sequential and gap-free; a number is only consumed once the invoice files have been written successfully.
- On uninstall, the plugin removes its settings but keeps generated invoices: French law requires you to retain them for 10 years.
Limitations of this version
- The SIRET/VAT checkout fields are only added to the classic (shortcode) checkout. Stores using the block-based checkout still get automatic invoices, but the two B2B fields are not shown there yet — block checkout support is planned.
- Refunds do not produce credit notes (avoirs); the original invoice is kept unchanged, as required (an issued invoice is immutable).
- One VAT category per order line (standard/zero). Margin schemes, VAT exemption reasons and non-EUR specifics beyond currency code pass-through are not handled.
- PDF/A-3 conversion covers embedded file relationships, XMP metadata and output intents as produced by the bundled Factur-X writer; full ISO 19005-3 conformance of exotic source PDFs is not re-verified at runtime.
Screenshots





Installation
- Upload the plugin to
/wp-content/plugins/or install it through the WordPress plugin screen. - Activate it (WooCommerce must be active).
- Go to WooCommerce OuiFacture and fill in your seller identity (raison sociale, SIRET, n° TVA, adresse…). These appear on every invoice.
- Choose the trigger status (default: processing). Done — invoices now generate automatically.
FAQ
-
Is this the format required by the French reform?
-
The plugin produces Factur-X PDF/A-3 invoices with an embedded EN 16931 CII XML — the mixed format retained by the French reform. Transmission through a Plateforme de Dématérialisation Partenaire (PDP) is not included in this version.
-
Where are my invoices stored?
-
In
wp-content/uploads/ouifacture/, protected by an.htaccessdeny rule and random file names. Downloads always go through authenticated endpoints. Note: the.htaccessrule only applies to Apache/LiteSpeed servers — on nginx, add alocationdeny rule for that folder to your server configuration (file names remain unguessable either way). -
Can I regenerate an invoice?
-
Yes, from the order screen. The invoice number and date never change on regeneration (a French invoice number is immutable); only the document content is rebuilt.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“OuiFacture – Facture électronique Factur-X for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “OuiFacture – Facture électronique Factur-X for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.2
- Translations are now served through translate.wordpress.org: the bundled .po/.mo files are no longer packaged and the obsolete
load_plugin_textdomain()call has been removed (not needed since WordPress 4.6). - Housekeeping following the plugin review; no change to invoice generation, numbering or output.
1.0.1
- Plugin display name now ends in “for WooCommerce” (WordPress.org trademark guidelines).
- The default generation trigger is now processing (was completed): invoices are issued as soon as payment is received. Orders that skip straight to completed are still invoiced there, exactly once per order.
- French translation updated.
1.0.0
- Initial release: automatic Factur-X (EN 16931) generation, gap-free numbering, B2B checkout fields, customer downloads, email attachment, HPOS support, French translation.
