French e-invoicing in Odoo: the complete 2026 guide
Since 1 September 2026, every VAT-registered company in France must be able to receive electronic invoices, and issuing extends to every company on 1 September 2027. Odoo is itself an approved platform: you can handle everything from your database, with no extra tool. This guide covers each step, screen by screen: activation, customer records, sending, receiving, e-reporting and public-sector invoices.
Esteban ANTONIO-MOTA · Procedure verified on 23 September 2026
The essentials in 5 points
- Odoo is a registered approved platform: the France - E-Invoicing (Approved Platform) module exists in Odoo 17, 18 and 19.
- Activation happens in Accounting > Configuration > Settings, with identity verification of a legal representative.
- Every business customer needs a SIREN number and must be found in the e-invoicing directory.
- Odoo sends in UBL format and receives Factur-X, UBL and CII; vendor bills arrive as drafts.
- E-reporting (consumers, cross-border) is sent automatically and tracked in Accounting > Reporting > E-reporting.
What are your obligations, and when?
Before setting anything up, check what applies to your company based on its size and customers.
The reform in brief
The French reform requires two things: routing invoices between French businesses through an approved platform, and sending the data of other operations to the tax administration (e-reporting). The timeline depends on company size.
| Obligation | Large and mid-sized companies | SMEs and micro-businesses |
|---|---|---|
| Receive electronic invoices | 1 September 2026 | 1 September 2026 |
| Issue electronic invoices | 1 September 2026 | 1 September 2027 |
| E-reporting (transactions and payments) | 1 September 2026 | 1 September 2027 |
What Odoo handles
Odoo appears on the list of approved platforms published by the French administration: registered since 15 April 2026, among the platforms awaiting their compliance audit report. You do not need third-party software to exchange invoices: everything happens in Odoo (see also what's new in Odoo 19).
| Need | In Odoo |
|---|---|
| Receive vendor bills | Automatic import, several times a day, as drafts |
| Issue B2B customer invoices | Sent in UBL format through Odoo's platform |
| Formats accepted on receipt | Factur-X, UBL and CII |
| E-reporting (consumers, cross-border) | Report sent automatically, tracked in a dedicated menu |
| Point of sale | Point of sale e-reporting module |
| Public-sector invoices | Chorus Pro, through the Peppol network |
Before you start: prerequisites
Gather these items before opening the settings, so you can complete the procedure in one go.
- Odoo 17, 18 or 19: the module does not exist in Odoo 16 and earlier (see our Odoo 19 migration page).
- The France - E-Invoicing (Approved Platform) module installed: it installs with the French accounting localization.
- Your company's SIREN number filled in on its record.
- The email address of a legal representative and an ID document (ID card, passport or residence permit).
- Invoices where each line has a product or a label, and exactly one tax.
Step by step: activate Odoo's approved platform
The settings section and several windows are in English whatever the language of your database: labels are quoted as Odoo displays them.
Step 1. Open the settings
Go to Settings > Accounting (or, from the Accounting app, Configuration > Settings). The French Electronic Invoicing section sits just below the fiscal localization block, before Taxes. Click Activate Electronic Invoicing.
Step 2. Enter the legal representative
In the Send via French electronic invoicing window, enter a legal representative's email, click Authenticate, then Begin authentication.
Step 3. Select your name
In the Accessing the legal representatives of your company window, click Check status, select your name in Please select who you are, then Confirm.
Step 4. Verify your identity
Click Open authentication page, then Receive a code. Enter the 5-digit code received by email and confirm. In the Identity verification window, click Next, then upload your ID with the + icon under Add your document here.
Step 5. Sign the designation form
Review the Attestation de désignation de plateforme agréée (certificate designating the approved platform) with Next, tick both boxes (documents read, terms of use and signature certificate accepted), then click Sign. The signed certificate can then be downloaded.
Step 6. Validate the registration
Back in Odoo, click Refresh. Check that the Identifier field contains your SIREN, then click Validate Registration (Production).
Registration in the e-invoicing directory takes effect the following day.

'Send via French electronic invoicing' window: identifier (SIREN), legal representative's email, Pilot Phase option and 'Validate Registration (Production)' button. Step 7. Set the options
Once registered, the French Electronic Invoicing section shows "Your french e-invoicing ID 0225:…" followed by your SIREN, and the date of registration in the directory. Fill in Contact Email, check Incoming Invoices Journal (set automatically), enable Enable e-reporting & sending of invoices to the PPF if e-reporting applies to you, and choose E-Reporting Periodicity according to your VAT regime.

Settings > Accounting, 'French Electronic Invoicing' section of a registered company: 0225 identifier and SIREN, directory registration date, Contact Email, Incoming Invoices Journal and e-reporting options.
Prepare your customer records
An electronic invoice is routed using the customer's SIREN number. Before the first send, every business customer must be found in the directory. Picture invoicing 80 businesses every month: this is the step that prevents most rejections.
Step 1. Fill in the identifier
In Customers > Customers, open the record. Check that the country is France, then in the Sales & Purchase tab, Misc section, fill in Company ID with the SIREN. Odoo copies it automatically into the France FRCTC Electronic Address of the Accounting tab.

Customer record, Sales & Purchase tab, Misc section: 'Company ID' field (SIREN, hidden here). Step 2. Check the customer in the directory
In the Accounting tab, Customer Invoices section, click Verify. If the customer is registered, Odoo shows Partner is in the annuaire. Set French E-Invoicing as the preferred sending method at the same time.
Send an electronic invoice
Once posted, a French B2B invoice for the network shows Ready to send in the E-Invoicing Status field. To find them all, add that column to the invoice list or apply the E-Invoicing Ready filter.
Step 1. Check the invoice
Make sure the customer is in the directory and that each line has a product or a label, with exactly one tax.
Step 2. Send
Click Send on the posted invoice. In the sending window, make sure French E-Invoicing is enabled, then click Send. Several invoices can also be sent in batches from the list.

Invoice 'Send' window: the French e-invoicing option stays greyed out, with 'Partner is not in the annuaire', until the customer is registered. Step 3. Track delivery
In the Other Info tab, the status changes to Done once the invoice reaches the customer's platform. If an error occurs, details appear in the invoice's chatter. To force an update, use Fetch E-invoicing Status on the sales journal in the dashboard.

Customer invoice list with the 'E-Invoicing Status' column added.
Receive and refuse vendor bills
Odoo checks the network several times a day and imports received bills into the Incoming Invoices Journal, as drafts. They appear in the vendor bills list, ready to be reviewed.
- Confirm: the bill is validated and follows your usual process.
- Cancel: you refuse the bill. In the Send Response window, choose the reason code, add a note for the vendor if needed, then send.
- To fetch without waiting: Fetch E-invoicing Documents on the incoming invoices journal, from the dashboard.

E-reporting in Odoo
E-reporting covers operations that do not go through an e-invoice: sales to consumers, cross-border operations, and French B2B invoices paid in cash. Once invoices are posted, Odoo automatically sends an XML report to the administration (every ten days, according to its documentation).
Reports are available in Accounting > Reporting > E-reporting, with one of these statuses:
| Status | Meaning |
|---|---|
| Ready | Ready to be submitted |
| Sent | Submitted, awaiting confirmation |
| Completed | Processed successfully |
| Error | Submission failed, automatically resubmitted within 5 to 7 days |

The Invoices and Payments buttons of a report list the documents it contains. If you correct an invoice already reported (reset to draft, then post again), Odoo sends the correction automatically. For point of sale sales, the France - E-reporting for POS module installs automatically when the Point of Sale app is present.
Public-sector invoices: Chorus Pro
Invoices to French public bodies go through Chorus Pro, mandatory for these operations since 2020. Odoo sends them through the Peppol network.
Step 1. Prepare Odoo
Install the France - Factur-X integration with Chorus Pro module, register on Peppol and create an account on the Chorus Pro portal if you do not have one. Fill in your company's SIRET.
Step 2. Configure the public customer
On the public body's record, check the country, VAT and SIRET. In the Accounting tab, Customer Invoices section, select the BIS Billing 3.0 format, then the France SIRET identifier with the reference 11000201100044 used by Chorus Pro.
Step 3. Complete the invoice
In the invoice's Other Info tab, fill in the buyer reference (the "service exécutant" in Chorus Pro) and the contract reference (the "numéro de marché").
Common errors and fixes
Most blockers come from a few simple causes.
| Symptom | Likely cause | Fix |
|---|---|---|
| Module not found | Odoo 16 or earlier | Upgrade to Odoo 17 or later |
| Customer not in the directory | SIREN missing, wrong, or customer not registered yet | Fix the Company ID, then contact the customer |
| Invoice not "Ready to send" | Line without tax or with several taxes | One tax per line |
| Status does not change | Periodic check not run yet | Fetch E-invoicing Status on the journal |
| No vendor bill received | Registration not effective yet (next day) or fetch pending | Wait a day, then Fetch E-invoicing Documents |
| Cannot reset to draft | B2B invoice already sent | Issue a credit note |
Setup checklist
Tick each step as you go.
- Odoo 17, 18 or 19
- France - E-Invoicing (Approved Platform) module installed
- Company SIREN filled in
- Legal representative's identity verified
- Designation certificate signed
- Registration validated (effective the next day)
- Incoming invoices journal checked
- E-reporting enabled and periodicity set
- SIREN of every business customer filled in and verified
- First invoice sent and "Done" status confirmed
Frequently asked questions
Which Odoo version do I need for French e-invoicing?
Odoo 17, 18 or 19. The approved platform module does not exist in Odoo 16 and earlier: you then need to upgrade, or to use another approved platform.
Does it work with Odoo Community?
The module is part of the Community code (LGPL license), but it relies on Odoo's online services. Odoo's documentation describes the setup for Odoo Online and Odoo.sh: for an installation on your own servers, check the conditions with Odoo.
Do I also need to register on Peppol?
No. Once registered on the e-invoicing network, you are automatically registered on Peppol, with no separate step.
My customer does not appear in the directory: what should I do?
First check the SIREN in the Company ID field. If it is correct, the customer has probably not designated a platform yet: let them know and keep a record of your steps.
How do I correct an invoice already sent?
For a French B2B invoice already sent, resetting to draft is no longer offered: issue a credit note. For operations covered by e-reporting, Odoo sends the correction automatically when the corrected invoice is posted.
How do I invoice a French public body?
Through Chorus Pro. Install the Chorus Pro integration module, configure the public body's record (BIS Billing 3.0 format, reference 11000201100044) and fill in the service exécutant and numéro de marché on the invoice.
Sources
- Odoo 19 documentation: France localization, e-invoicing
- Odoo l10n_fr_pdp module source code (GitHub)
- impots.gouv.fr: moving to e-invoicing (FR)
- impots.gouv.fr: when does the reform apply to me? (FR)
- DGFiP: start-up practical guide, 1 September 2026 (FR)
- impots.gouv.fr: list of approved platforms (FR)
- French e-invoicing directory
- Chorus Pro portal
Updated on 23 September 2026
Have an Odoo project, or want to put your ERP to work with AI? Let's talk
Activating the approved platform, upgrading to a compatible version, cleaning up customer records: tell us about your situation and we will reply within 24 business hours.