Back to Blog

June 26, 2026

Odoo 19 Connects Belgian Tax Filing to the Intervat API and Moves Vehicle Deductions Into the Chart of Accounts

Odoo overhauls its Belgian accounting localization for version 19 with direct Intervat API configuration in settings, a restructured fiscal categories system replacing the old disallowed expenses model, and vehicle tax deductibility rates now managed directly through the Chart of Accounts.

Diagram showing Odoo Belgium Intervat API integration and fiscal categories in the chart of accounts

Belgian tax compliance has always been one of the more demanding localization targets for ERP software. Between Intervat submissions, disallowed expense tracking, and vehicle-specific deductibility rules that change based on fuel type and CO2 emissions, the regulatory surface area is significant. Odoo has just shipped a round of changes to its Belgian localization for version 19 that rethinks how several of these systems work under the hood.

The headline changes: Intervat tax filing now has its own dedicated configuration section in settings with API connectivity options. The old “disallowed expenses” concept has been restructured into a cleaner “fiscal categories” model. And vehicle tax deductibility percentages, which used to live in their own corner of the system, are now managed directly through the Chart of Accounts.

Intervat Gets a Proper Settings Panel

Intervat is Belgium’s electronic tax return filing system, operated through the MyMinFin portal. Previously, configuring Intervat in Odoo meant hunting through various settings pages and hoping you had the right module installed. Version 19 gives it a proper home.

Open the Accounting app, navigate to Configuration, then Settings, and scroll to the Taxes section. There’s now a dedicated Intervat configuration area where you select a server mode (test or production), enter your VAT number, and optionally specify an accounting firm if you’re filing through one. It’s the kind of straightforward setup screen that should have existed from the start.

The underlying module, l10n_be_intervat, handles the Intervat and MyMinFin API integration. It sits alongside the corel10n_be package, the l10n_be_coda module for bank statement imports, and the newerl10n_be_fiscal_categoriesmodule for fiscal category data. The documentation now includes a comprehensive table listing all eight Belgian localization modules and what each one does — a reference that has been conspicuously absent until now.

Disallowed Expenses Become Fiscal Categories

This is the change that will affect how Belgian accountants think about expense tracking in Odoo. The old model used “disallowed expenses categories” as standalone entities that you’d configure separately and then link to expense records. It worked, but it created an additional layer of abstraction that didn’t map cleanly to how Belgian tax law actually defines non-deductible business costs.

Version 19 replaces this with “fiscal categories” — business costs that are not fully tax-deductible, managed through rates attached directly to accounts in the Chart of Accounts. Instead of maintaining a parallel system of disallowed expense categories, you now set deductibility rates where they belong: on the accounts themselves.

The practical difference is fewer configuration steps and less mental overhead. When you look at an account in the chart, you can see its fiscal category and deductibility rate in one place. You don’t need to cross-reference a separate categories list to understand what percentage of an expense is deductible.

Vehicle Deductions Move Into the Chart of Accounts

Belgium’s vehicle tax deductibility rules are notoriously granular. Deduction percentages vary by vehicle type, fuel source, and CO2 emissions. A diesel company car from 2020 gets a different rate than an electric one from 2024. Tracking this per vehicle while keeping it tied to the right accounting entries has always been fiddly.

Odoo 19 handles this by attaching deductibility rates directly to accounts when those accounts are assigned to a fiscal category. If a vehicle’s expenses flow through a specific account, the deductibility rate follows from the account’s fiscal category assignment. The Fleet module must be installed to see vehicle-level tax deductibility in vehicle models, but the underlying accounting logic lives in the chart.

For vendor bills, the Vehicle Split feature lets you apply per-vehicle deductibility rates at the line level. And in the Fiscal Report, a new Vehicle Split filter provides granular expense tracking broken down by individual vehicle. This means you can pull a report that shows exactly how much of your fleet expenses are deductible, broken down by car, without exporting anything to a spreadsheet.

A Cleaner Module Architecture

Beyond the feature changes, the documentation now clearly lays out the eight modules that make up the Belgian localization stack. The core l10n_be package handles the chart of accounts and base tax structure. l10n_be_intervat adds the tax filing API. l10n_be_coda manages bank statement imports in the CODA format. l10n_be_fiscal_categoriesprovides the fiscal category data that powers the deductibility system.

Having this architecture documented in one place matters because Belgian users often install modules piecemeal, hitting cryptic errors when a dependency is missing. If you’re running Odoo 19 with Belgian accounting, the recommendation is straightforward: install the full localization stack and configure Intervat in Settings. The module boundaries are cleaner now, but they still depend on each other in ways that aren’t obvious until something breaks.

For Belgian businesses running Odoo, these changes simplify a tax compliance workflow that has been unnecessarily complex. Fiscal categories replace a confusing abstraction. Intervat gets the settings panel it deserved. And vehicle deductions finally live where accountants expect to find them — in the chart of accounts, not in a side menu three clicks away.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.