Back to Blog

May 10, 2026

Odoo Accounting Warns That Shared VAT IDs Between Contacts Will Corrupt Your Tax Reports

Odoo adds an explicit warning to its VAT reporting workflow: if multiple contacts in your database share the same VAT identification number, your tax return figures may silently include transactions from the wrong entity. The fix involves restructuring contacts into parent-child hierarchies.

There’s a class of ERP bugs that never throws an error message. The system runs fine, the reports generate on schedule, and nobody notices anything is wrong — until the tax authority sends a letter asking why your declared figures don’t match theirs. Duplicate VAT identification numbers in your contact database is exactly that kind of silent problem.

Odoo’s accounting module now flags this scenario directly in the tax returns workflow. When multiple contacts share the same VAT ID, the system warns users that their VAT report may pull in transactions from the wrong entity, producing figures that look correct on screen but are factually wrong for filing purposes.

How the Problem Actually Happens

It’s more common than you’d think. A company has three divisions — say, a manufacturing arm, a distribution subsidiary, and a retail unit — all registered under a single VAT number because the tax authority treats them as one taxable entity. The accounting team creates separate contacts for each division because they need different payment terms, shipping addresses, and purchase workflows. Each contact gets the same VAT ID pasted into the tax identification field.

The problem starts when the VAT reporting engine queries transactions by VAT number. If the report groups invoices by the contact’s tax ID rather than the contact record itself, it may aggregate or misattribute line items. One division’s purchases appear under another’s totals. Supply chain invoices blend with retail invoices. The quarterly VAT return becomes a composite of transactions from entities that should have been reported separately — or, conversely, transactions that should have been combined get split across duplicate entries.

The Parent-Child Contact Fix

Odoo’s recommended solution is structural, not cosmetic. Rather than creating independent contacts that happen to share a VAT number, the correct approach is to set up a single parent contact — the legal entity that owns the VAT registration — and attach divisions, branches, or subsidiary units as child contacts underneath it.

In this hierarchy, the VAT ID lives on the parent record. Child contacts inherit the tax identification without duplicating it as a standalone field value. When the VAT report runs, it resolves the tax number to the parent entity and aggregates transactions correctly, regardless of which child contact was used on individual invoices or bills.

This is how multi-entity businesses should have been structured from the start, but the system never enforced it. You could create fifty contacts with the same VAT number and Odoo would accept every one without complaint. The new warning doesn’t prevent this — there are legitimate reasons to have contacts reference the same tax ID — but it makes the reporting consequence explicit instead of leaving users to discover it during a tax audit.

Who This Affects

Any organization with a group VAT registration, multiple trading divisions under a single tax entity, or acquisitions where the acquired company’s contacts were imported with the parent group’s VAT number. It also catches a simpler scenario: data entry errors where someone copies a VAT ID to the wrong contact record and nobody notices because the system never flagged it.

European businesses are particularly exposed here because VAT reporting is strict, cross-border, and frequently audited. A German company with a Dutch subsidiary sharing a single EU VAT number, or a UK group VAT registration with multiple members, will hit this issue the moment their Odoo database has more than one contact record referencing the group number.

What To Do About It Now

If you’re running Odoo Accounting and have multiple contacts sharing a VAT ID, the fix is straightforward but manual. Identify all contacts with duplicate tax identification numbers. Determine which entity is the legal VAT holder — that becomes your parent contact. Convert the others to child contacts under that parent. Then verify that historical transactions still resolve correctly in past VAT reports.

The restructuring is worth doing proactively. A warning in the reporting module is Odoo’s way of saying they know this produces wrong numbers. It’s better to fix the contact hierarchy on your own timeline than to discover the discrepancy when a tax inspector is asking questions.

Ready to experience Odoo AI?

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