Odoo invoicing compliance in Belgium: the 2026 checklist

Maxime VanderhaeghePublished 8 min read

In short — Since January 1st, 2026, B2B invoices between VAT-registered Belgian businesses must be sent over the Peppol network in a structured format. In Odoo, compliance rests on three pillars: an operational Peppol registration, partner records with valid VAT numbers, and sequential, continuous, chronological invoice numbering. This article details the 12 checks to run on your instance.

Since January 1st, 2026, structured electronic invoicing has been mandatory for B2B transactions between VAT-registered businesses in Belgium. For the thousands of Belgian SMEs running on Odoo, Odoo invoicing compliance in Belgium is no longer just an accountant's concern: it is a matter of configuration, data quality and operational discipline. A poorly configured Odoo instance can issue non-compliant invoices for months without anyone noticing — until an audit. This article covers what is required under Belgian law, where Odoo has you covered, where it does not, and gives you an actionable checklist to verify your own instance.

What does the Belgian e-invoicing mandate require?#

The headline fact is simple: since January 1st, 2026, B2B invoices between Belgian VAT-registered businesses must be issued as structured electronic invoices, transmitted over the Peppol network in the Peppol BIS format.

The key word is structured. A PDF sent by email is not a structured invoice. Neither is a digitally signed PDF. A structured invoice is an XML file conforming to a standardized schema that your customer's accounting software can ingest and process automatically, with no re-keying. The PDF remains useful as a human-readable representation, but it is no longer the document that counts for B2B exchange.

In practice, in Odoo, this means two things:

Your Peppol setup must be operational. Odoo includes a Peppol access point (depending on your version and hosting mode, through Odoo itself or via a third-party access point provider). If your company is not registered on the network, your invoices go out as PDFs by email like before — and you are outside the legal framework with no visible error message.

The quality of your partner records determines whether invoices can be sent at all. To route an invoice over Peppol, Odoo needs the recipient's identifier — in practice, their company number or VAT number, correctly entered on the customer record. A record with no VAT number, a badly formatted number, or an outdated one means an invoice that does not go out, or goes out through a non-compliant channel. Your compliance therefore depends directly on the cleanliness of your partner database — something many SMEs have been putting off for years.

For the exact scope of the obligation and edge cases (foreign customers, exempt businesses, B2C operations), the rules have nuances: have your situation validated by your accountant or tax advisor.

Odoo invoicing compliance in Belgium: which invoice mentions are mandatory?#

Independently of Peppol, a Belgian invoice must carry a set of mandatory mentions. They existed before 2026 and are still required. The main ones:

  • Your VAT number in the BE format followed by your company number, plus the VAT number of your VAT-registered customer.
  • Your company number (CBE/KBO) and the RPM/RPR mention indicating the enterprise court with jurisdiction over your registered office.
  • Your IBAN, so the customer can pay into the right account.
  • The issue date and a sequential invoice number, unique and continuous.
  • Payment terms: due date, and where applicable any early-payment discount or late-payment penalties provided for in your general terms.

On top of that come the substantive elements: full identity of both parties, description of the goods or services, taxable base, VAT rate and amount per rate, total payable.

The point most people underestimate: Odoo does not check all of this for you by default. Odoo will happily print an invoice with no IBAN if your journal has no bank account attached. It will print an invoice without the RPM/RPR mention if you never added it to your company footer. It will validate an invoice for a customer whose VAT field is empty. The software does what it is told; compliance depends on the configuration someone did (or did not do) on installation day — often years ago, often by someone who is no longer around.

What are the most common Odoo pitfalls?#

In the field, the non-compliance issues found in Belgian Odoo instances are almost always the same.

Sequence gaps#

Belgian rules require numbering that is sequential, continuous and chronological. The classic trap: a user deletes a validated invoice instead of cancelling it with a credit note. The result is a hole in the sequence (INV/2026/0041 then INV/2026/0043), which will have to be justified in an audit. Odoo can restrict deletion, but many instances run with overly broad access rights inherited from the implementation phase.

Broken chronological order#

Backdating an invoice — validating it in June with a May date to "get it into the right month" — breaks the chronology of the sequence: an invoice with a higher number carries an earlier date than the previous one. It is a common practice at period close, and it is exactly the kind of anomaly an auditor spots in minutes with a simple sort.

Drafts left lying around#

A draft invoice carries no definitive number and does not exist for tax purposes. January drafts still unvalidated in June mean revenue not declared in the right period, shifted VAT, and a sequence that will be built out of order when someone finally validates them in bulk.

Customer records without a valid VAT number#

Before Peppol, a missing VAT number on a customer record was a problem with the mentions on the invoice. Since 2026, it is also a routing problem: no valid identifier, no structured delivery. Badly formatted numbers, numbers of deregistered entities, duplicate records with contradictory data — all of that used to go unnoticed. Not anymore.

Misconfigured journals#

Several sales journals created over the years, with overlapping sequences or inconsistent prefixes; a journal with no linked bank account (and therefore invoices without an IBAN); a test journal used in production. Journal configuration is the foundation of your numbering — and it is the screen nobody opens again after go-live.

The 2026 checklist#

Here are the checks to run on your Odoo instance. Each item can be verified concretely, with no custom development.

  1. Verify your Peppol registration: is your company registered as a sender on the network, and is the default sending mode for customer invoices the structured channel (not PDF by email)?
  2. Audit your own company record: VAT number, company number, RPM/RPR mention with the competent court, full address, bank account.
  3. Check your invoice footer: generate an invoice PDF and verify line by line that every mandatory mention is present.
  4. Review your sales journals: a clear sequence prefix per journal, no overlap, a bank account attached to each one.
  5. Hunt for sequence gaps: sort this year's invoices by number and look for holes. Every hole should have a documented explanation.
  6. Verify chronology: in that same sort by number, dates must be ascending. Any inversion signals backdating.
  7. List old drafts: filter invoices in draft state with a date more than a few days old, and deal with them (validate, or deliberately delete before numbering).
  8. Audit your B2B customers' VAT numbers: field filled in, valid format, and ideally checked against the VIES database.
  9. Lock down deletion: restrict deletion rights on validated invoices, and enforce credit notes as the only cancellation path.
  10. Enable period locking: once a VAT return is filed, the period should be locked to prevent any backdated entries.
  11. Test a real Peppol delivery to a customer (or your accountant) and confirm proper receipt in their software.
  12. Document the procedure: who validates invoices, who can issue a credit note, who monitors Peppol rejections — so compliance survives departures and holidays.

Do this exercise once, seriously, and you will have an honest snapshot of your situation. The problem is the following month: compliance is not a state, it is a process.

How do you automate the checks?#

Everything above can be verified by hand. But nobody re-runs this audit every week — and it is precisely between two audits that sequence gaps appear, drafts pile up, and a new customer gets created without a VAT number.

That is exactly what the UpBoard Finance agent is for. Connected to your Odoo in read-only mode, it continuously runs the checks on this list: detecting sequence holes and chronology breaks, draft invoices past the normal delay, partner records without a valid VAT number, invoices issued without the expected mentions. Instead of an annual audit, you get permanent monitoring, with alerts at the moment the anomaly is still easy to fix — not six months later in front of an auditor.

The simplest starting point: the free UpBoard scan analyzes your Odoo instance and surfaces the invoicing anomalies already present in your data, in a few minutes. No commitment, no writes to your ERP, and an immediate picture of where you really stand against the checklist above. And if you want the full overview of running Odoo in Belgium — localization, filings, e-invoicing — our Odoo Belgium page brings it all together.

Conclusion#

The 2026 Peppol mandate turned a paperwork topic into a data topic: in Belgium, your invoicing compliance now depends directly on the quality of your Odoo configuration and your partner records. The good news is that all of it is verifiable — and automatable. Run the checklist once, then let an agent run it for you, every day — which is exactly what UpBoard.ai, the layer of specialized AI agents for Odoo, does with its read-only Finance agent. Start with the free scan: fifteen minutes to find out where you actually stand.

See what your Odoo data has to tell you

A 30-minute demo on your own data — leave with your first quantified opportunities.