Back to blog
2 February 20269 min read

Odoo for Accounting in Belgium: VAT, Compliance, and Setup

Belgium has some of the most complex tax and accounting regulations in Europe. Between three VAT rates, CODA bank files, structured communications, intra-community reporting, and the Belgian chart of accounts, setting up accounting software correctly is not trivial.

The good news: Odoo has strong Belgian localization, built by a Belgian company. The less good news: you still need to configure it properly. This guide walks you through everything you need to know about running Odoo Accounting for a Belgian business.

Belgian VAT (BTW) in Odoo

Belgium uses three standard BTW rates: 21% (the standard rate for most goods and services), 12% (reduced rate — certain food, social housing, restaurant services), and 6% (reduced rate — basic necessities, water, pharmaceuticals, books, renovations on dwellings over 10 years old). There is also a 0% rate for specific exempt transactions.

Odoo's Belgian localization comes with preconfigured tax codes for all these rates. Each tax code is linked to the correct boxes on the Belgian VAT return (BTW-aangifte). When you create invoices and register purchases, the system automatically calculates the BTW and maps it to the right declaration box.

VAT Return (BTW-aangifte) and Intervat

Odoo can generate the periodic BTW-aangifte — either monthly or quarterly, depending on your filing obligation. The report maps your transactions to the official grid boxes (rooster 00 through 71 for output and input, and boxes 81-83 for purchases).

The generated report can be exported as an XML file that is compatible with Intervat, the Belgian tax authority's electronic filing platform. This means you do not need to manually enter figures — you export from Odoo, upload to Intervat, and submit.

Important: while Odoo generates the data, you should always review the report with your accountant before submission. Tax codes need to be correctly assigned to every transaction for the report to be accurate.

Intra-Community VAT (IC Listing)

If you sell goods or services to businesses in other EU member states, you need to file an intra-community listing (intracommunautaire opgave). Odoo tracks these transactions separately and can generate the IC listing report for submission via Intervat.

For this to work correctly, your EU customers must have valid VAT numbers in Odoo, and you must use the correct intra-community tax codes when invoicing. Odoo can validate EU VAT numbers through the VIES system, which helps catch errors before they become compliance issues.

CODA Bank File Imports

CODA (Coded Statement of Account) is the standard electronic bank statement format used by Belgian banks. Instead of manually entering bank transactions, you download CODA files from your bank and import them into Odoo.

Odoo parses the CODA file and creates bank statement lines automatically. The reconciliation engine then matches these transactions against open invoices and bills. It uses structured communications, partner references, and amount matching to suggest matches.

  • Supported by all major Belgian banks — KBC, BNP Paribas Fortis, Belfius, ING, Crelan, and others
  • Automatic matching based on structured communication codes
  • Handles multiple transactions per file with proper sequencing
  • Supports CODA files for multiple bank accounts

Tip: set up a daily or weekly routine for CODA imports. The more frequently you import, the more current your books are, and the easier reconciliation becomes.

Structured Communications (Gestructureerde Mededeling)

The Belgian structured communication format — those familiar +++xxx/xxxx/xxxxx+++ codes on invoices — is a powerful tool for payment reconciliation. When a customer pays using the structured communication on their invoice, the bank records this code in the CODA file.

Odoo generates structured communications automatically for customer invoices and uses them during bank reconciliation to match payments to the correct invoice. This makes the reconciliation process significantly faster and more reliable than matching on amount alone.

The system generates compliant 12-digit codes with the correct modulo-97 check digit. You can configure whether to use Odoo's built-in sequence or your own numbering scheme.

Belgian Chart of Accounts

Odoo includes the Belgian Minimum Normalized Chart of Accounts (Minimum Algemeen Rekeningenstelsel / Plan Comptable Minimum Normalisé). This is the standard chart of accounts that Belgian companies are required to use.

The chart follows the Belgian classification with class 1 through 7 accounts. When you install the Belgian localization, the chart is set up automatically with the correct account numbers and groupings. You can add additional sub-accounts as needed for your specific business.

Make sure your chart of accounts is properly configured before you start entering transactions. Changing account structures after the fact requires re-mapping transactions and can be very time-consuming.

Annual Accounts and Financial Reporting

Belgian companies must file annual accounts with the National Bank of Belgium (NBB/BNB) in XBRL format. Odoo generates the standard Belgian financial reports — balance sheet (balans), profit and loss statement (resultatenrekening), and supporting annexes.

While Odoo can produce the underlying financial reports, the actual XBRL filing is typically handled by your accountant or fiduciary using specialized software. The data from Odoo serves as the foundation, but the final filing process usually involves your external accountant's tools.

Multi-Currency and Euro Considerations

While Belgium uses the euro, many Belgian businesses trade with partners outside the eurozone — importing from China, exporting to the UK post-Brexit, or dealing with Swiss suppliers. Odoo handles multi-currency transactions with automatic exchange rate updates.

Exchange rate differences are handled through dedicated gain and loss accounts. Odoo can automatically pull daily exchange rates from the European Central Bank, ensuring your conversions are always current.

Working with Your Accountant or Fiduciary

Most Belgian SMEs work with an external accountant (boekhouder) or fiduciary (fiduciaire). Odoo supports this workflow through several approaches. You can give your accountant direct access to your Odoo instance with appropriate permissions. You can export data in standard formats for them to work with. Or you can use the Accounting Firms mode, which provides features specifically designed for accountants managing multiple client databases.

The best approach depends on your accountant's willingness to work in Odoo. Some Belgian accounting firms have embraced Odoo, while others prefer to receive data exports and work in their own tools. Discuss this with your accountant before implementation to avoid surprises.

Common Setup Mistakes

Belgian accounting in Odoo is powerful, but several common mistakes can cause problems:

  • Wrong tax codes — assigning the incorrect BTW rate or tax grid to transactions will produce an inaccurate VAT return
  • Skipping the chart of accounts review — the default chart works for most companies, but you may need adjustments for your industry
  • Not configuring structured communications — without these, bank reconciliation becomes manual and error-prone
  • Ignoring the fiscal year lock date — always lock periods after they have been reviewed and filed to prevent accidental changes
  • Forgetting intra-community setup — if you trade within the EU, missing IC tax codes will create compliance issues

Getting Expert Help

Belgian accounting compliance is not something to get wrong. Incorrect BTW filings can result in fines, and a poorly configured chart of accounts creates problems that compound over time. If you are setting up Odoo accounting for a Belgian company — or migrating from another system — working with someone who knows the Belgian specifics is strongly recommended.

Through odoone, you can connect with senior Odoo consultants who have hands-on experience with Belgian accounting implementations. They understand CODA, structured communications, BTW reporting, and the nuances of Belgian fiscal requirements. Rates start at €80/hour with a free approval cycle, so you can make sure your consultant knows Belgian accounting inside out before you commit.

Need help with your Odoo project?

Get matched with a senior, local Odoo consultant. Free approval cycle, money-back guarantee.

Get Matched