Electronic invoicing and Peppol in Odoo
Mandatory in Belgium since 1 January 2026. In France from 1 September 2026.
What the law requires, what Odoo already does for you, and what is left to do on your side.
We have been implementing Belgian accounting in Odoo since 2009. We do not add a tool: we make yours compliant.
An electronic invoice is not a PDF
This is the most common confusion, and an expensive one. A PDF sent by e-mail is a digital invoice. It is not an electronic invoice in the legal sense: the data has to sit in fields a machine can read, in a format that complies with the European standard EN 16931.
Send your invoices through Peppol in a few clicks
This is the invoice you already produce, in the screen you already use. You validate it, you tick Peppol in the send dialog, and it leaves.
Two files go out together: the PDF a human reads, and the structured XML the accounting software of your customer reads. Nobody retypes anything at the other end.
The chatter keeps the proof. It records that the invoice was handed to the Peppol access point, and which files went with it, with the moment it happened.
No export folder, no portal to log into, no second tool to open.
The three formats to know
You never pick one by hand. The country and the profile of your customer decide which format applies.
Peppol BIS Billing 3.0
The UBL reference format in Belgium and across most of Northern Europe.
Factur-X
An ordinary PDF with an XML file embedded inside it. The reference format in France: readable by a human and by a machine, in the same file.
XRechnung, NLCIUS, ZUGFeRD
The German and Dutch national flavours, relevant as soon as you invoice across the border.
Peppol in three minutes
Peppol is not software and not a portal you log into. It is an exchange network, with its own rules and its own directory, a little like e-mail.
The four-corner model. Your invoice leaves your system, passes through your access point, travels to your customer’s access point and lands in their system.
Your Peppol identifier. A number plus a scheme code. In Belgium, it is your company number with the EAS code 0208. In France, it is your SIRET with the code 0009. That is your address on the network, and it is what a customer looks up before sending you anything.
The directory. In Belgium, an SMP tells the Peppol network which access point serves which company. Until your identifier is published there, nobody can send you an invoice, which is the number one cause of “I never received anything” at go-live. France adds a central directory of its own, run by the tax administration and fed by INSEE, where each SIREN declares which approved platform receives its invoices, with finer addressing per SIRET or per department if you need it.
Who must do what, and when
Two calendars, two sets of rules. A Belgian company that also invoices in France is subject to both.
In force since 1 January 2026
Every VAT-registered company established in Belgium must issue and receive structured electronic invoices for its B2B operations. EN 16931 is the standard, carried by default over the Peppol network.
What stays outside the obligation
Invoices to consumers, operations exempted under article 44 of the VAT Code, taxpayers not established in Belgium, and companies in bankruptcy. Deferrals exist for certain special regimes.
1 September 2026: receiving becomes mandatory
Every company must be able to receive an electronic invoice. Large companies and mid-caps must also be able to issue.
1 September 2027: issuing extends to everyone
The obligation to issue reaches SMEs, small businesses and micro-businesses.
Two French specifics
Invoices must travel through an approved platform registered by the administration. On top of that, e-reporting requires you to transmit transaction data that does not appear on a domestic B2B invoice.
What Odoo already does for you
On a recent version, most of the infrastructure is already there. You do not need to buy a third-party platform.
Odoo is a Peppol access point
Registration happens inside Odoo, in the accounting configuration, in two stages: sender first, then receiver once your identifier is published in the directory. No separate contract with an operator.
Odoo is an approved platform in France
Odoo obtained its registration as a Plateforme Agréée. Your French invoices can travel through Odoo itself, with no additional provider in between.
The formats are native
Peppol BIS Billing 3.0, Factur-X, XRechnung, NLCIUS, ZUGFeRD. Odoo picks the expected format from the country and profile of the customer.
Sending starts from the invoice
Each customer carries a sending method: manual, e-mail or Peppol. You validate your invoice as usual and it leaves through the right channel.
Supplier invoices arrive on their own
Once you are a receiver, your suppliers’ invoices are created directly in Odoo with their lines already filled in. No PDF to open, no re-keying.
Everything stays in your accounting
No second tool, no reconciliation between an external platform and your ERP. The flow lives where your entries already live.
What Odoo does not do on its own
The technology is ready. It is your data and your edge cases that are not, yet.
Every point below is something we have had to fix on a live database.
Your customer file
Every recipient needs a valid Peppol identifier: correct company number, country filled in, consistent scheme code.
An incomplete record does not block invoice validation, it makes sending fail one invoice at a time, and your accounting team absorbs it.
Not all your customers are reachable
Some are not registered on the network yet. You need a fallback channel, and above all a rule that decides automatically which one applies to whom.
Processing supplier invoices
Receiving is not enough. What arrives has to land on the right account, the right tax and the right analytic axis. Without mapping rules you have simply replaced data entry with correction.
Your taxes and your chart of accounts
A badly configured VAT rate passes internally but is rejected by EN 16931 validation.
These checks usually surface inherited settings nobody had dared to touch.
Multi-company
Each entity has its own registration, its own identifier and its own configuration.
This is not a global setting.
Edge cases and your own customisations
Credit notes, prepayments, reverse charge, intra-community operations, partial credits, rebilling: each has its own rules in the standard.
And a module that overrides the invoice, which there almost always is, can break generation of the structured file.
That surfaces in testing, not in production.
How Noviat works with you
Four steps, in this order. The first one costs you nothing.
Compliance review, 30 minutes, no commitment
Your Odoo version, your volumes, the countries you invoice, your VAT regime, your specific developments.
You leave with a clear answer: compliant, needs adjusting, or needs migrating, plus an order of magnitude.
Getting the data right
Enriching and checking the customer file, verifying Peppol identifiers, reviewing taxes and the chart of accounts, identifying the customers you cannot reach.
Activation and live testing
Peppol registration, publication in the directory, send and receive tests with real partners, processing rules for incoming supplier invoices.
Support through the switch
Training the accounting team, following the first invoicing cycles, handling rejections.
This is the moment where you win or lose the users’ trust.
Frequently asked questions
The questions that come up in every compliance review, answered plainly.
You can keep it. But you are then maintaining two systems, paying for one of them, and reconciling what left through each.
Since Odoo is itself an access point, the usual outcome is that the platform becomes redundant. Worth checking before you renew the contract.
They keep sending you PDFs, and those keep arriving as they do today. Becoming a receiver does not switch off the old channel.
What matters is knowing which suppliers are on the network, so manual handling shrinks to the ones that genuinely need it instead of staying the default for everyone.
The Belgian obligation covers domestic B2B.
For cross-border operations electronic invoicing remains possible by agreement between the parties, and often desirable, since your foreign customers are moving the same way.
Peppol is the European exchange network, used in Belgium among others. The Plateforme Agréée, formerly PDP, is the French status of an operator registered to issue, receive and report.
The two coexist: a French approved platform can rely on Peppol.
On a recent Odoo with a clean customer file, a few days. If a version migration is needed, count in weeks.
The review exists precisely to decide between the two.
Beyond the penalties set out in each regulation, the immediate risk is commercial: customers subject to the obligation will demand compliant invoices, and your suppliers will stop sending you PDFs.
It is the structured file that has legal value, not its readable rendering.
Your archiving rules have to cover that file.
Bank connectivity in Odoo
Isabel, CODA, PSD2, EBICS or CodaBox: the other half of your financial flows, compared honestly.
Compare the methods
Finance and accounting in Odoo
Belgian accounting, CODA, SEPA, VAT returns and the month-end close, in one place.
Finance in Odoo
Where do you actually stand?
Thirty minutes are enough to know whether your Odoo is compliant, what is left to do, and how long it takes. Odoo partner in Belgium since 2009.