Skip to Content
Accounting
Erwin van der Ploeg Erwin van der Ploeg Published 19 min read

Odoo accounting in the Netherlands: complete, international, and serious

Dutch rules, international scale.

Summarize this article with AI

Want to quickly get to the core and key insights? Open this article in your favorite AI tool.

On this page

Is Odoo suitable for Dutch accounting? Yes. Odoo has a full-fledged Dutch accounting system with a Dutch chart of accounts, Dutch VAT rules, tax return sections, reports, SBR, Digipoort, audit file export, ICP, and support for Peppol.

The doubt is understandable. Odoo is primarily known as an ERP system for sales, inventory, CRM, and projects. Exact and AFAS have been well-known names in the Netherlands for financial administration for years. This sometimes creates the impression that Odoo can create an invoice but does not have a real Dutch accounting system.

That impression is no longer correct.

Odoo is not a simple invoicing program with a foreign chart of accounts. It is a complete ERP system in which accounting is part of daily business operations. That difference is important. Financial information does not only arise at the end of the month, but throughout the sales, purchasing, inventory, and project processes.

In this blog you will read what Odoo accounting in the Netherlands can concretely do, how the Dutch VAT return and Digipoort work, what Odoo does with Peppol and direct debit, and where the boundaries lie. We also compare Odoo with Exact and AFAS.

Odoo accounting Netherlands: what is arranged?

The Dutch accounting in Odoo consists of much more than a translated menu. The Dutch setup includes among other things:

ComponentWhat Odoo supports
Chart of accountsA Dutch chart of accounts with accounts for among others revenue, costs, inventory, bank, cash, and rounding differences
VATDutch VAT rates, VAT codes, tax positions, and tax return sections
ReportsDutch balance sheet, profit and loss account, general ledger reports, and tax reports
VAT returnSections 1a to 5g, including domestic performances, transfer, EU transactions, and imports
ICPA declaration of intra-community supplies and services
SBR and DigipoortCreate an XBRL declaration and send it directly via SBR to the Tax Authorities
Audit fileExport of the financial administration in XAF format, including XAF 3.2
IntrastatDutch CBS reports on goods movements
Electronic invoicingUBL, Dutch invoice formats, Peppol BIS Billing, and NLCIUS
PaymentsSEPA transfers, batch payments, and direct debit
RGSAn RGS chart of accounts can be set up with the help of an Odoo partner

Anyone looking through the source code will see that Dutch accounting consists of several interrelated components. The foundation includes the Dutch chart of accounts, VAT codes, and tax positions. Additional components provide the Dutch reports, SBR, Intrastat, electronic invoices, and other financial processes.

Not every function is therefore in exactly the same app. This is normal in an ERP system. Some components belong to the core accounting, others to additional Odoo apps or Enterprise functionality. In a good setup, it is determined in advance which components are needed.

The Odoo accounting program in daily practice

An Odoo accounting program must do more than just store numbers. It must align with the way a company operates. In Odoo, the financial administration therefore does not start only with the booking of a bank statement.

General ledger, journals, and invoices

Odoo supports the classic financial administration with:

  • general ledger accounts;

  • sales, purchase, bank, and cash journals;

  • journal entries;

  • customer invoices and supplier invoices;

  • credit notes and debit notes;

  • payment terms and payment deadlines;

  • partial payments;

  • payment discounts;

  • recurring entries;

  • deferred expenses and revenues;

  • automatic depreciations;

  • loan overviews and repayment schedules.

You can create invoices manually, but that is often not the most interesting route. A customer invoice can also arise from a sales order, delivery, project, worked hours, subscription, expense report, webshop, or cash register.

That is an important difference from a standalone accounting package. In a standalone package, the financial information is often entered afterwards. In Odoo, the booking occurs at the moment the business process takes place.

A sales order can lead to a delivery and then to a customer invoice. A purchase order can be linked to the receipt of goods and the supplier invoice. Hours on a project can be directly charged. In a subscription, periodic invoices are automatically generated.

Processing supplier invoices

Supplier invoices can arrive in Odoo in various ways. Think of:

  • manually entering;

  • forwarding to a special email address;

  • uploading via Documents;

  • processing with OCR and invoice recognition;

  • receiving via Peppol;

  • importing as UBL or another electronic invoice file.

For purchase invoices, Odoo can work with approval steps. An invoice can first be checked by a responsible person before it is booked or paid.

For companies that purchase a lot, the control between purchase order, receipt, and supplier invoice is also important. Odoo can bring this information together. This way, you not only see that an invoice exists, but also whether the order has actually been placed and the goods have been received.

This prevents a familiar situation: an invoice is paid because the amount looks reasonable, while no one checks whether the delivery was complete.

Banks, files and clearing

Odoo supports automatic bank connections for Dutch banks. In addition, bank transactions can be processed via files. Commonly used formats are:

  • CAMT;

  • OFX;

  • QIF;

  • CSV.

Excel can be used for controlled imports of financial data, such as opening balances, invoices or other administrative data. PDF files are mainly used for supplier invoices and documents. With document recognition, data can be extracted from a pdf.

That distinction is practically relevant. A CAMT file is a structured bank file. A pdf is usually a visual document. Both can enter a financial workflow, but they are not processed in the same way.

After importing bank transactions, payments can be cleared with outstanding customer and supplier invoices. Odoo can automatically search for matches based on amount, payment reference, invoice number, relationship, and other data.

With clearing models and payment rules, you can automate recurring patterns. Think of bank fees, rent payments, interest, fixed subscriptions, or periodic transfers. The better the rules are set up, the less manual work remains.

Payments and direct debit

Odoo supports various payment processes. You can work with:

  • SEPA transfers;

  • batch payments;

  • payment files for suppliers;

  • payment requests;

  • online payments;

  • payment links;

  • QR codes;

  • payment references;

  • automatic direct debit;

  • payment reminders;

  • follow-up of outstanding items.

Automatic direct debit is therefore simply part of the options. With SEPA mandates, customers can give permission to automatically collect amounts. Odoo can collect direct debit payments and process them in a SEPA direct debit batch. Rejections or failed direct debits can also be followed up.

For companies with subscriptions, service contracts, periodic services, or fixed monthly invoices, automatic direct debit can save a lot of manual work. The invoice, the mandate, the direct debit date, and the financial processing come together in a process.

Payment reminders and customer statements can also be sent from Odoo. The financial responsible person sees which invoices are outstanding, how long they have been outstanding, and what follow-up action is needed.

Dutch accounting in Odoo: VAT and tax positions

An important part of Dutch accounting in Odoo is the VAT setup. Odoo includes Dutch VAT codes for, among others, 0%, 9%, and 21%. Additionally, there are VAT codes for reverse charge schemes, EU transactions, imports, exports, and various types of services.

Tax positions determine which VAT and which general ledger account is used. This can depend on:

  • the country of the customer;

  • the VAT number of the customer;

  • the delivery of goods or services;

  • domestic or foreign services;

  • B2B or B2C;

  • a reverse charge scheme;

  • EU or non-EU transactions.

A Dutch sale to a Dutch customer requires a different processing than a service to an entrepreneur in Germany or an export shipment to a country outside the EU. The tax position helps to apply that processing correctly and automatically.

Odoo also supports situations such as:

  • VAT inclusive or exclusive prices;

  • VAT on a cash basis;

  • transfer schemes;

  • rounding differences;

  • private use;

  • input tax;

  • import of goods;

  • EU deliveries and services;

  • installation and distance sales;

  • ABC deliveries.

The quality of the declaration naturally depends on the setup of products, customers, suppliers, accounts, and tax positions. An incorrect VAT code remains an incorrect VAT code in Odoo as well. The software can automate a lot, but cannot independently assess what a transaction means in substance.

Odoo VAT declaration and Digipoort

The Odoo VAT declaration is structured according to the Dutch declaration boxes. The main components are:

  • box 1a to 1e for services in the Netherlands;

  • box 2a for domestic transfer schemes;

  • box 3a to 3c for services to or in foreign countries;

  • box 4a and 4b for services from abroad;

  • box 5a to 5g for due VAT, input tax, the small business scheme, and the final amount.

Not only the amounts are displayed. Odoo links the tax return items to the underlying bookings and VAT tags. This allows you to trace back from the report to the transactions that caused the amount.

The normal flow looks as follows:

bookings → VAT report → control → XBRL → SBR → Digipoort → status in Odoo

From bookings to a tax return

The first step is the VAT report. In it, you check for example:

  • revenue at 0%, 9% and 21%;

  • input tax;

  • reverse VAT;

  • EU deliveries;

  • EU services;

  • imports;

  • exports;

  • private use;

  • corrections;

  • rounding differences.

After that, Odoo can build an XBRL file. XBRL is the electronic format used for the tax return. The report is sent to Digipoort via SBR.

With the Dutch SBR functionality, you can download a tax return as an XBRL file or send it directly to the Tax Authorities. A Digipoort certificate is used for the transmission. The setup of this is part of configuring the Dutch accounting.

After submission, the status of the tax return can be tracked. An accepted tax return can then be blocked, so that no unnoticed new bookings occur in the relevant period. Corrections then go through the designated route.

Digipoort and Peppol are not the same. Digipoort is the infrastructure for electronic communication with government organizations, including the Tax Authorities. Peppol is a network for electronic documents between organizations, such as customer invoices and supplier invoices.

Odoo Digipoort is something different from Odoo Peppol.

Peppol is about electronic invoices. Through Odoo Peppol, you can send customer invoices and receive supplier invoices via the Peppol network.

An invoice as a pdf is primarily intended to be read by people. A UBL invoice contains structured data that can be processed by software. Peppol is the network through which such an electronic invoice is sent.

Odoo supports, among other things:

  • Peppol BIS Billing;

  • UBL;

  • Dutch invoice formats;

  • NLCIUS;

  • sending customer invoices;

  • receiving supplier invoices;

  • verification of Peppol identifications;

  • processing of electronic invoice messages;

  • status information about sent documents.

An electronic invoice via Peppol can therefore go directly into the recipient's administration. The invoice number, the relationship, amounts, VAT, and payment information do not need to be re-entered from a pdf.

You can read more about this topic in our article Link your Odoo accounting to the Peppol network.

Odoo audit file and accountant control

An accountant wants to be able to do more than just view a balance. For verification, the underlying bookings, transactions, and reports are needed.

Odoo offers, among other things:

  • balance;

  • profit and loss statement;

  • trial and balance sheet;

  • general ledger accounts;

  • customer accounts;

  • outstanding receivables;

  • outstanding payables;

  • aging analyses;

  • VAT reports;

  • ICP declarations;

  • audit file export;

  • XAF 3.2;

  • reports per period;

  • reports per journal;

  • reports per account;

  • reports per relationship;

  • reports per company;

  • reports per cost center or cost bearer.

With an Odoo audit file, the financial administration can be provided in a standard audit format. The accountant can then analyze the transactions in their own audit software.

Security and control are also part of Odoo. Think of:

  • access rights per user;

  • separate rights for employees, accountants, and auditors;

  • booking blocks;

  • fiscal blocks;

  • period blocks;

  • secured booking sequences;

  • change history;

  • audit trail;

  • control over the immutability of data.

A year-end closing does not mean that the administration must disappear from Odoo or be transferred to another system. You can block old periods and keep the data available for audit. If a correction is needed, it will be processed according to the agreed procedure.

RGS and the general ledger schema

RGS, the Reference General Ledger Schema, can help to better link general ledger accounts to reports and accounting processes. Odoo does not automatically contain a fully customized RGS schema for every organization.

That does not mean that RGS cannot. With the help of an Odoo partner, an RGS chart of accounts can be created and linked to the administration. The correct setup depends on the desired reports, the existing accounts, and the way the organization wants to analyze its financial information.

That is not an exceptional situation. Other accounting packages also require a chart of accounts to be set up and tailored to the business.

The power of integrated accounting

The greatest added value of Odoo is not in the fact that it can show a balance sheet. More packages can do that. The added value lies in the connection with the rest of the company.

Inventory and trade

In a trading company, the flow can look like this:

purchase order → receipt → inventory change → supplier invoice → payment

On the sales side:

sales order → delivery → inventory change → customer invoice → payment

With automatic inventory valuation, inventory changes also have financial consequences. The value of the inventory, the cost price of the revenue, and the financial administration remain interconnected.

This prevents the accounting from needing to be updated later based on separate exports from a warehouse system. The inventory is part of the same administration.

Projects and services

In a project organization, revenue and costs do not only come from invoices. Hours, purchases, expense claims, and other costs also determine whether a project is profitable.

In Odoo, hours can be linked to:

  • a project;

  • a task;

  • a customer;

  • a sales order;

  • an analytical account;

  • a cost bearer.

This provides insight into budgeted hours, actual hours, revenue, costs, and project results. This makes profitability per project a useful KPI instead of a retrospective estimate.

Cost centers and cost bearers can be translated in Odoo to analytical accounts, analytical plans, and analytical dimensions. This allows you to analyze results per project, department, location, product group, or customer.

In our article Analytical accounting in Odoo we explain in more detail how cost centers, cost bearers, and project profitability can be set up in Odoo.

Declarations, subscriptions, and webshop

Other processes can also connect directly to the accounting:

  • approved declarations can be booked or charged;

  • subscriptions can create periodic customer invoices;

  • webshop orders provide sales and payment data;

  • cash transactions are processed financially;

  • sales commissions and costs can be assigned analytically;

  • projects can be automatically invoiced based on hours or performance.

The accounting thus becomes no separate island. That is exactly why a comparison between Odoo and a standalone accounting package should not only be about VAT codes and general ledger accounts.

Odoo accounting multiple countries

A company with multiple locations or subsidiaries faces different chart of accounts, VAT rules, currencies, and reporting obligations.

Odoo can provide accounting and tax functions for more than a hundred countries. In a central environment, multiple companies can be set up alongside each other. Each company can have its own country, currency, chart of accounts, VAT rules, and reports.

A Dutch parent company with foreign subsidiaries can, for example, work with:

  • a Dutch administration;

  • foreign administrations;

  • local VAT rules;

  • local financial reports;

  • different currencies;

  • intercompany sales and purchases;

  • automatic intercompany bookings;

  • central reports;

  • comparison between companies;

  • consolidation of financial information.

That is the power of Odoo accounting in multiple countries. You keep local financial details available, but can report at the group level.

For international organizations, that is often more important than whether a package happens to be better known in the Netherlands. An administration that works well for a Dutch limited company, but is completely separate from the foreign subsidiaries, can ultimately create more work than a central ERP system.

Cost centers, cost carriers, and budgets

An accounting system should not only tell what has already happened. It should also help to make decisions.

Odoo therefore supports among other things:

  • cost centers;

  • cost carriers;

  • analytical accounts;

  • analytical plans;

  • budgets;

  • comparison between budget and reality;

  • reports per project;

  • reports per department;

  • reports per location;

  • reports per product group;

  • reports per customer.

A cost center can be, for example, a department or location. A cost bearer can be a project, order, contract, or product group. By capturing those dimensions during the process, insights are gained later without the need to manually reanalyze all bookings.

Assets and depreciation can also be managed. Think of business assets, equipment, vehicles, or other investments. Odoo can build depreciation schedules and periodically process the corresponding bookings.

In addition, there are functions for deferred costs, deferred revenues, loans, interest, and exchange rate differences. For companies with multiple currencies, these components are not a luxury. They are necessary to keep the administration reliable.

Odoo versus Exact and Odoo versus AFAS

The question is not whether Exact or AFAS are good packages. They are. The question is whether they are automatically better than Odoo. They are not.

A comparison looks roughly as follows:

SubjectOdooExact or AFAS
Dutch accountingFull-fledged Dutch accounting with VAT, reports, SBR, Digipoort, and audit fileStrong Dutch financial foundation
Sales, purchasing, and inventoryAccounting and operational processes in the same ERP systemOften additional apps, integrations, or separate setups
Projects and hoursDirectly connected to invoicing, costs, and project resultsPossible, but dependent on product and setup
Multiple countriesMultiple companies, currencies, and countries in a central environmentAlso possible, but the approach varies by product
PayrollDutch payroll components, but not a straightforward replacement for specialized payroll softwareOften stronger for specific Dutch payroll processes
Peppol and electronic invoicesPart of the broader ERP and financial workflowAvailable depending on product and setup
Total business operationsStrong when sales, inventory, projects, service, and accounting need to work togetherStrong when financial administration is primarily central

Those looking solely for an accounting package can do well with Exact or AFAS. Especially when an accountant has been working with it for years and the organization does not need a broader ERP system.

But for a trading company, project organization, manufacturing company, or international group, just the accounting function is not the whole story. It also matters how many connections are needed, where the inventory is, how projects are invoiced, and whether financial information is readily available.

The question "Is Odoo better than Exact?" is therefore too simple. The better question is: which system supports our entire business operations with as few separate administrations as possible?

More background can be found in 10 reasons to do your accounting in Odoo.

What we need to be honest about

Odoo has a strong Dutch accounting system, but that does not mean that every part of the financial function is automatically replaced by Odoo.

Payroll administration

Odoo has Dutch payroll components with Dutch regulations, employee data, contracts, and pay slips. However, a complete Dutch payroll administration is a specialized field.

Therefore, we do not advise removing all payroll processes from an existing specialized package without thorough assessment. First, check which collective labor agreements, pension schemes, declarations, deductions, links, and reports are needed.

For some organizations, a combination of Odoo with a specialized payroll package is the wisest solution.

Income tax and corporate tax

The standard Dutch accounting in Odoo supports daily administration, VAT returns, ICP, SBR, Digipoort, audit files, and financial reports. Declarations for income tax and corporate tax do not fall under the same standard Dutch Odoo functionality.

That does not mean that the necessary information cannot come from Odoo. The accounting and reports actually form an important basis. But the declaration itself requires additional software, an accountant, or a separate tax setup.

RGS

RGS requires attention for the setup of the general ledger schema. With the help of an Odoo partner, an RGS schema can be created and linked. So, it is not a reason to write off Odoo in advance, but it must be part of the design.

Setup and control

No accounting package automatically corrects a wrong setup. Products must be assigned to the correct account, VAT codes must be accurate, customers and suppliers must be correctly set up, and employees must know what data they are recording.

Even with Exact and AFAS, control by the financial responsible person or accountant remains necessary. This is not a shortcoming of Odoo, but a normal requirement for reliable administration.

Additional apps

Some of the functions are included in the basic accounting. Other components, such as extensive reporting, SBR, Intrastat, payroll, OCR, or Peppol, may require additional Odoo apps or Enterprise functionality.

This is especially a point of attention when comparing quotes. Don't just look at the name "accounting", but check which functions are actually included in the proposed environment.

Conclusion: Odoo does indeed have a Dutch accounting system.

Odoo is suitable for Dutch accounting. Not only for invoicing but for the complete financial administration of many Dutch organizations.

The Dutch accounting in Odoo includes among other things:

  • a Dutch chart of accounts;

  • Dutch VAT codes and tax positions;

  • VAT returns and ICP returns;

  • Customizable balance sheet and profit and loss statement;

  • SBR and Digipoort;

  • XBRL;

  • audit file XAF 3.2;

  • Intrastat and CBS reporting;

  • Peppol and UBL;

  • automatic bank connections;

  • import via CAMT, OFX, QIF, and CSV, pdf or Excel

  • Excel and PDF export options;

  • SEPA payments;

  • automatic direct debit;

  • analytical accounting;

  • cost centers and cost carriers;

  • budgets;

  • assets and depreciation;

  • multiple companies and currencies;

  • consolidation

  • intercompany processes;

  • reports for management and accountant.

The claim that Exact or AFAS are automatically better because they are Dutch packages is therefore not true. They have strengths, especially around specific Dutch financial and payroll processes. Odoo, on the other hand, has a clear strength: accounting is part of an international ERP system.

For companies that want to organize sales, purchases, inventory, projects, service, and finance in a cohesive system, Odoo is therefore a serious choice. The right comparison is not about the most well-known accounting name, but about the overall business operations.

Do you want to know if Odoo fits your financial administration?

We will map your current processes, packages, reports, and Dutch obligations. Then we will determine which components Odoo can support as standard and where additional software or configuration is needed. 

Erwin van der Ploeg

Erwin van der Ploeg

Managing Director

Erwin van der Ploeg is the founder and CEO of Odoo Experts. He started Odoo Experts in 2012 based on the conviction that companies can work much more efficiently with affordable, smart automation.

His focus is on strategy, business processes, and technology. In this context, automation is never an end in itself: first understand how a company works and where things can be simplified, and only then automate.

Erwin advises entrepreneurs and management teams on Odoo, ERP, and digitalization, and is increasingly focusing on the impact of AI on business processes and the future of ERP.

Expertise

ERP & Odoo Business processes & automation AI & digital transformation

Read more about this topic

Accounting

Share this article