Guide · Odoo 17, 18 and 19

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.

Take the compliance check

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.

ObligationLarge and mid-sized companiesSMEs and micro-businesses
Receive electronic invoices1 September 20261 September 2026
Issue electronic invoices1 September 20261 September 2027
E-reporting (transactions and payments)1 September 20261 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).

NeedIn Odoo
Receive vendor billsAutomatic import, several times a day, as drafts
Issue B2B customer invoicesSent in UBL format through Odoo's platform
Formats accepted on receiptFactur-X, UBL and CII
E-reporting (consumers, cross-border)Report sent automatically, tracked in a dedicated menu
Point of salePoint of sale e-reporting module
Public-sector invoicesChorus 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.
    'Send via French electronic invoicing' window: identifier (SIREN), legal representative's email, Pilot Phase option and 'Validate Registration (Production)' button.
  7. 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.
    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.

  1. 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).
    Customer record, Sales & Purchase tab, Misc section: 'Company ID' field (SIREN, hidden here).
  2. 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.

  1. 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.

  2. 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.
    Invoice 'Send' window: the French e-invoicing option stays greyed out, with 'Partner is not in the annuaire', until the customer is registered.
  3. 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.
    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.
Vendor bill list: a bill received through the network, as a draft, with a 'Done' status in the E-Invoicing column.
Vendor bill list: a bill received through the network, as a draft, with a 'Done' status in the E-Invoicing column.

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:

StatusMeaning
ReadyReady to be submitted
SentSubmitted, awaiting confirmation
CompletedProcessed successfully
ErrorSubmission failed, automatically resubmitted within 5 to 7 days
An e-reporting report for a ten-day period (21 to 30 September): Transaction type, Ready, Error, Sent and Completed statuses, Invoices button.
An e-reporting report for a ten-day period (21 to 30 September): Transaction type, Ready, Error, Sent and Completed statuses, Invoices button.

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.

  1. 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.

  2. 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.

  3. 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.

SymptomLikely causeFix
Module not foundOdoo 16 or earlierUpgrade to Odoo 17 or later
Customer not in the directorySIREN missing, wrong, or customer not registered yetFix the Company ID, then contact the customer
Invoice not "Ready to send"Line without tax or with several taxesOne tax per line
Status does not changePeriodic check not run yetFetch E-invoicing Status on the journal
No vendor bill receivedRegistration not effective yet (next day) or fetch pendingWait a day, then Fetch E-invoicing Documents
Cannot reset to draftB2B invoice already sentIssue 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.

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.