Skip to Content

Peppol in Odoo: what still goes wrong in Belgian small businesses, from customer records to supplier bills

​ October 16, 2026 by
z80, Sebastien Schmets

Since 1 January 2026, a VAT-registered Belgian business invoicing another VAT-registered business in Belgium has had to send a structured e-invoice, which in practice means the Peppol network. Ten months on, most small firms have "switched Peppol on" somewhere, yet when I open an Odoo database the same problems keep turning up: invoices that never leave, supplier bills still arriving as PDFs, credit notes done by hand.

Here's what I check, in order. I'm not an accountant or a tax adviser, so for your own case, talk to your accountant. The rules quoted come from the official efacture.belgium.be site.

The rule in short

The legal basis is the law of 6 February 2024, which amended the Belgian VAT Code. "Structured" means a file the customer's software reads without anyone retyping it. The reference format is Peppol BIS Billing 3.0 in UBL, following the European standard EN 16931. Another compliant format is allowed if both sides agree.

For an invoice covered by the mandate, the PDF is no longer the legal invoice. Attaching one as a courtesy is still fine. Out of scope: private customers, transactions exempt under article 44 of the VAT Code, and foreign suppliers with no permanent establishment in Belgium. And a business that only sells to consumers still has to be able to receive structured invoices from its Belgian suppliers.

End of the grace period, and the fines

The FPS Finance allowed three months of tolerance in early 2026, provided you had taken steps in good time. It ended on 31 March; a narrower one for self-billing ran until 30 June. The fine created for the reform targets not having the technical means to issue and receive structured invoices: 1,500 euros the first time, 3,000 the second, 5,000 after that, with at least three months between two findings.

On the customer side, deducting VAT on an invoice covered by the mandate normally requires the structured version. There's an exception when the substantive conditions are met; with a regular supplier, I wouldn't count on it.

In Odoo, switching on is the easy bit

Registration sits in the Accounting (or Invoicing) settings, Peppol section: identifier scheme 0208, which is your company number from the Crossroads Bank for Enterprises (KBO/BCE), then that same number as the endpoint. Activation usually goes through within a day, and Odoo acts as the access point itself. One trap: a company number can only have one active registration for receiving. If your accountant or an old tool already registered you elsewhere, Odoo asks you to deregister with that provider first. Until you do, they're the ones receiving.

Customer records first

Peppol finds your customer through their company number. No need to ask for a "Peppol ID": in Belgium the KBO number with the 0208 prefix is enough. Odoo prefills the identifier from the contact, and a Verify button shows whether the customer is found on the network (in version 19 it needs developer mode). With no number, or a mistyped one, the invoice stays on your side.

A customer list built from years of spreadsheet imports often holds duplicates and numbers full of dots and spaces. The public KBO search shows whether a business is VAT-registered. The Peppol directory takes a search for "0208:" followed by the number; it shows who can receive, and says nothing about who can send.

Then supplier bills

The rule cuts both ways, and the inbound side is where the real time saving is. Odoo checks for incoming Peppol documents several times a day and creates draft vendor bills, in the purchase journal you picked or in the Documents app. That only pays off if each supplier is mapped to the right accounts and taxes; otherwise you swap data entry for corrections.

A Belgian supplier still emailing PDFs? The FPS says you're in principle entitled to refuse the invoice. In practice, a short email asking when they're moving to Peppol often does the job. Keep a PDF route for foreign suppliers.

When Odoo marks a Peppol invoice as "Done", it has reached the customer's access point. What happens after that, Odoo can't see.

Cases worth testing once

I'd run each of these once on a real customer or supplier:

  • credit notes, which follow the same route as the invoice they correct;
  • down payments and recurring invoices;
  • attachments: a delivery note that backs up an invoice travels inside the same file, not in a separate email;
  • any till system or industry tool that issues its own invoices. Decide which of the two sends over Peppol.

Archiving

The structured file you receive is the invoice. That's what you keep, along with a readable version (a PDF or a viewer) whose content can't be altered. For VAT, the retention period went back from ten years to seven under the law of 18 December 2025. Your accountant can tell you whether other rules ask for longer.

The tax break, and what comes next

For tax periods 2024 to 2027, sole traders and small companies can deduct 120% of their e-invoicing subscriptions and of consultancy fees for implementation. Advice on choosing the software isn't covered, and neither is depreciation. A Peppol surcharge on an existing subscription has to appear as a separate line on the invoice.

After that comes e-reporting: invoice data sent to the tax authority in near real time, from both sides. The federal coalition agreement schedules it for 2028; the Council of Ministers approved a preliminary draft law on 18 July 2026, and nothing has been voted yet.

Where to start this week

Export the customers who have no company number. Send an invoice to a customer you know well and ask whether it landed in their software. Count the Belgian supplier bills still arriving as PDFs. If that number isn't close to zero, a setting needs fixing, on your side or the supplier's.

If you're only just moving off spreadsheets, I covered that step in this piece on invoicing from Excel.

If you'd like someone to go through your Odoo customer records and Peppol settings with you: info@z80.be, +32 494 111 041, www.z80.be.

The right to disconnect in a Belgian SME: what the law requires from 20 workers, and how to make it hold when the boss emails at 10 pm