Skip to Content
A finance team preparing an invoicing run

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.

Structured invoice data moving between two systems

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.

The Peppol four-corner model: the invoice leaves your Odoo, passes through your access point, crosses the Peppol network to your customer access point and lands in their system

Who must do what, and when

Two calendars, two sets of rules. A Belgian company that also invoices in France is subject to both.

Belgium

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.

Belgium

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.

France

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.

France

1 September 2027: issuing extends to everyone

The obligation to issue reaches SMEs, small businesses and micro-businesses.

France

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.

What is a PA platform ?


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.

Step 1

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.

Step 2

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.

Step 3

Activation and live testing

Peppol registration, publication in the directory, send and receive tests with real partners, processing rules for incoming supplier invoices.

Step 4

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.

Ask for the compliance reviewHow we work