Before discussing modules and configuration, it is necessary to set the framework. Too many articles on the subject mix the existing B2G obligation since 2020 and the major inter-company reform coming in 2026. These are not the same topics, and the confusion leads to inappropriate technical choices.
The B2G obligation has existed since January 1, 2020. Any company that invoices the State, a local authority, a public establishment, or a public law organization must submit its invoice electronically via the Chorus Pro platform, operated by the AIFE (Agency for the Financial Computing of the State). No exemptions for very small enterprises or independents: if you invoice a town hall, you go through Chorus Pro.
The reform of September 2026 adds another layer. This time it concerns inter-company (B2B) transactions between VAT-registered businesses in France. The official schedule published by the DGFiP: mandatory receipt of electronic invoices for all companies starting from September 1, 2026, and mandatory issuance starting from September 1, 2026, for large companies and mid-sized enterprises, and from September 1, 2027, for SMEs, very small enterprises, and micro-enterprises.
For Chorus Pro, the main new feature can be summed up in one sentence: the platform remains mandatory for exchanges with the public sector and now also serves as the point of issuance for invoices sent by the administrations themselves to their own suppliers or private clients. For a private company invoicing the public sector, the process remains the same as it has been since 2020: the invoice passes through Chorus Pro, either directly or via an approved platform (PA) that the company has chosen to manage all of its electronic invoicing (B2B and B2G combined).
The classic trap in framing is to treat Chorus Pro as an isolated subject when it is a component of the overall electronic invoicing chain. The company that chooses its approved platform for the 2026 reform today must ensure that this PA also manages B2G flows (via Chorus Pro), otherwise it will end up with two tools to maintain instead of one.
Formats to know before configuring Odoo
Electronic invoicing to Chorus Pro is not just about sending a PDF. The file must be structured, meaning machine-readable, in a standardized format. Three formats are currently accepted by Chorus Pro:
Format | Description | Typical use case |
Factur-X | Human-readable PDF with an embedded XML file (CrossIndustryInvoice). Franco-German standard, compliant with the European standard EN 16931. | The most versatile format, readable from both sides. Recommended by default. |
UBL | Universal Business Language, pure XML format. International standard used notably in the Peppol network. | European exchanges, 100% structured environments. |
CII | Cross Industry Invoice, pure XML format. | Specific cases according to the requirements of the receiving administration. |
For almost all cases we see in projects, Factur-X is the right choice. It is a hybrid format that combines the advantages of both worlds: your contact on the administration side can open the PDF normally, and the machine behind it uses the XML to automatically process the invoice. It is also the format best supported natively by Odoo.
Three possible architectures to issue to Chorus Pro from Odoo
This is where the question becomes concrete. Depending on your version of Odoo, your volume of invoices to the public, and your strategy for the 2026 reform, the optimal architecture is not the same. We distinguish three main approaches.
Architecture 1: Native Odoo via Peppol (the path promoted by Odoo SA)
Since versions 17 and 18, Odoo has an integrated Peppol access point. Peppol is the European network for exchanging structured electronic invoices, and Chorus Pro is accessible via this network.
Specifically, in Odoo 17 and 18, issuing to Chorus Pro goes through:
The installation of the module l10n_fr_facturx_chorus_pro (integrated into the France localization).
The activation of the BIS Billing 3.0 format in the electronic billing settings.
The configuration of the EAS Peppol 0009 (SIRET-CODE) and the endpoint 11000201100044, which is the Chorus Pro reference on the Peppol network.
On the invoice, three fields become essential and must be filled in systematically:
Buyer reference: corresponds to the Executing Service in Chorus Pro.
Contract reference: corresponds to the Market Number in Chorus Pro.
Purchase order reference: corresponds to the Legal Commitment in Chorus Pro.
This approach has two major advantages. It is maintained by Odoo SA (thus up to date with each version upgrade), and it natively prepares for the 2026 reform since Peppol is the reference infrastructure for electronic invoicing in Europe. This is the architecture we recommend to clients on Odoo Online (Odoo cloud) or on recent Odoo Enterprise that start on a solid foundation.
Architecture 2: OCA Modules (Odoo Community Association)
The OCA has been maintaining a family of modules dedicated to Chorus Pro since 2018:
l10n_fr_chorus_account (base module)
l10n_fr_chorus_factur-x (Factur-X generation compliant with Chorus Pro specs)
l10n_fr_chorus_ubl (UBL format)
These modules have been pioneers. The very first submission of a Factur-X invoice on Chorus Pro, in 2018, was actually done via Odoo thanks to the work of Akretion and the OCA community. For companies running on Odoo Community or Odoo on-premise, it is a mature, robust, and free option.
Limit to know: OCA modules cannot be installed on Odoo Online (Odoo.com). They only work on self-hosted (on-premise) versions or on Odoo.sh. This is a constraint that eliminates the option for some clients.
Architecture 3: External approved platform connected to Odoo
For companies that are anticipating the 2026 reform overall, a third option is to choose a certified platform (PA) by the DGFiP that manages both B2B and B2G flows via Chorus Pro, and to connect this PA to Odoo via API.
Advantages: a single tool for all electronic invoicing (private and public), a partner that tracks regulatory developments on your behalf, and often additional features (OCR on purchase orders, enriched lifecycle tracking, integrated legally compliant archiving).
Disadvantages: a recurring cost (subscription to the PA), dependence on a third-party provider, and the need to thoroughly validate the quality of the proposed Odoo connector. This option makes particular sense for companies with high B2G volumes or for those that do not want to manage technical complexity in-house.
The method we apply in projects
When a client asks us to set up Odoo Chorus Pro issuance, here is the framework we systematically apply.
1. Map the actual need
Before any technical choice, we ask three questions:
What is the volume of B2G invoices per year? Below 10 to 20 invoices per year to the public sector, the stakes are not the same as for several hundred. For a very low volume, manual submission on the Chorus Pro portal remains a pragmatic option while waiting for the 2026 reform.
What version of Odoo is in place? Odoo Online, Odoo Enterprise on-premise, Odoo Community, Odoo SH: each environment opens or closes certain options.
Has the company already chosen its certified platform for 2026? If yes, the architecture must align. If no, this is an opportunity to ask the question in the right order.
2. Secure reference data
This is the step that is most underestimated, and it generates 80% of rejections in production. Before issuing the first invoice, it is necessary to ensure the reliability of partner records in Odoo: SIRET, exact address, executing service code, legal commitment number. An administration that receives an invoice with an incorrect SIRET or a missing executing service will reject the invoice, and the payment period resets to zero.
Specifically, we impose a quality review of public client records before any technical deployment. It is a thankless task, often entrusted to an intern or an accounting assistant, but it determines whether the billing chain will operate smoothly or not.
3. Test before producing
Chorus Pro offers a testing environment (PISTE) that allows validation of the chain without risking a rejection on a real invoice. We always plan a testing phase on a few real invoices before switching to production. Without this step, problems are discovered when an important invoice is at stake, and that is rarely good timing.
4. Document the process for the accounting team
A well-configured module is useless if the accountant validating the invoices does not know where to enter the executing service or how to resubmit a rejected deposit. Change management on the B2G billing chain is a critical point that is often overlooked. We systematically plan a training session and a concise memo to leave with the team.
5. Anticipate the 2026 reform in architectural choices
This is the point that distinguishes a quality framing from an opportunistic deployment. Today, in May 2026, all technical decisions regarding Chorus Pro must be made with an eye on the inter-company reform: will the platform chosen for Chorus Pro also be the one that manages your B2B flows starting from September 2026 or 2027? If the answer is no, you are building a chain that will need to be redone in eighteen months.
Limits and points of vigilance
The Odoo emission to Chorus Pro works well today, but there are friction areas that need to be known.
OCA and Odoo Online compatibility. If you are on Odoo Online (the cloud of Odoo SA), forget about OCA modules. You are constrained to the native Odoo approach via Peppol, or to an approved external platform. This is not a flaw, it is a platform choice that needs to be integrated from the start.
The tracking of invoice statuses. Chorus Pro returns several statuses throughout the life of an invoice: submitted, received by the service, under validation, validated, rejected, in payment, paid. Depending on the chosen module, the reporting of these statuses in Odoo is more or less automatic. For companies that want real management of their public DSO, this is a structuring choice criterion.
The specific case of construction market invoices. According to announcements from the DGFiP, construction market invoices, legal expense memos, reimbursement requests, and the management of the legal commitments reference framework remain specific modalities to Chorus Pro and cannot be processed via an approved platform. For construction companies responding to public contracts, this means that a portion of invoices will continue to go directly through Chorus Pro, even after September 2026. This is a point to integrate into the architecture, not to discover afterward.
Upcoming sanctions. Starting from September 2026, the administrations themselves will be exposed to the sanctions provided by the reform if they are not compliant, just like private companies. This means that your public clients will accelerate their own upgrades in the coming months, and we can expect stricter compliance requirements regarding the control of received invoices. This is not the time to have a fragile B2G billing chain.
Key takeaways
The issuance of Odoo invoices to Chorus Pro is currently a managed obligation, but the subject goes beyond the purely technical scope with the reform of September 2026. Here are the convictions we hold:
Chorus Pro remains the reference platform for B2G, and this status is confirmed by the DGFiP for the post-2026 period. No risk of pivot.
For new projects on Odoo 17 or 18, the native approach via Peppol and Factur-X is the most robust path. It is maintained, compliant, and aligned with the European trajectory.
OCA modules remain an excellent option on Odoo Community and on-premise, provided that the cost of community support is accepted.
The quality of partner data determines the quality of the billing chain. No technical integration will compensate for incomplete customer records.
Any Chorus Pro decision must be made with the 2026 reform in mind. Choosing an architecture today that does not cover B2B would be a short-sighted decision.
To go further
Compliance with the 2026 reform and the optimization of the electronic billing chain are at the heart of the frameworks we are currently conducting with our clients on Odoo. If you are preparing for compliance or if you are restructuring your public billing chain, this is exactly the type of issue where an integrator's perspective saves time. To discuss this,discover our Odoo integrator approach.