In this article
- Separate the legal-entity ledger from the group view
- Three layers of a reliable Odoo design
- Step 1: Configure each company properly
- Step 2: Treat intercompany supplies as real transactions
- Step 3: Match balances before consolidation
- Step 4: Eliminate internal results in the group layer
- Illustration: stock transferred between sister companies
- What the board should review every month
- Frequently asked questions
- Can Odoo automatically create intercompany documents?
- Does an internal company sale need VAT?
- Why eliminate unrealised stock profit?
- Can a group use one accounting system and still preserve separate compliance?
Two subsidiaries can each report an accurate transaction and still produce a misleading group total. One entity records an internal sale, another records the related purchase, and stock remains unsold within the group. Unless finance matches and eliminates those entries, consolidated sales and profit can be overstated.
Multi-company accounting in Odoo ERP must preserve each legal entity’s books while allowing the group to report as one economic enterprise. Zimbabwe’s standard VAT rate is 15.5% from January 2026, so statutory tax treatment and fiscalisation cannot be treated as afterthoughts when subsidiaries invoice one another.
Separate the legal-entity ledger from the group view
The Companies and Other Business Entities Act provides for group accounts where a holding company has subsidiaries, subject to specified exemptions. Group accounts must present a true and fair view and eliminate relevant intra-group balances and unrealised internal results. Group reporting does not replace each subsidiary’s financial, tax or company-law obligations.
A branch operating within one legal entity is not the same as an independently incorporated subsidiary. Map the group structure before configuration: company registrations, VAT numbers, fiscal devices or approved integrations, bank accounts, contracts, warehouses and the people authorised to transact.
Three layers of a reliable Odoo design
| Layer | Entity-level requirement | Group-level control |
|---|---|---|
| 1. Statutory records | Company-specific journals, invoices, taxes, bank accounts and user permissions | Consistent reporting definitions and mapping |
| 2. Intercompany trade | Seller invoice, buyer bill, fiscal evidence and approved settlement terms | Matching balances and resolving timing differences |
| 3. Consolidation | Leave entity statutory books intact | Eliminate internal balances, income, costs and unrealised stock profit |
Step 1: Configure each company properly
Set the correct active company, fiscal localisation and tax options before posting live transactions. Confirm a company-specific invoice sequence, approval path, tax registration information and bank journal. Users who work across the group need clear visibility of which entity they are posting into; incorrect-company posting is a serious but avoidable source of reconciliation differences.
Odoo 19 multi-company features can generate and synchronise counterpart sales, purchase, invoice or bill documents depending on configuration. Sharing a database does not automatically guarantee compliant intercompany VAT, appropriate account mapping or accurate group eliminations. Test those requirements explicitly.
Step 2: Treat intercompany supplies as real transactions
For a taxable supply between separately incorporated entities, confirm the applicable VAT treatment, properly issued fiscal tax invoice and entity-level accounts. The selling company records the sale and receivable; the buyer records the purchase and payable, subject to lawful input-tax entitlement and supporting evidence. Both records must remain valid even though the corresponding group revenue and expense are later eliminated.
ZIMRA’s FDMS validation process gives finance a way to inspect whether relevant fiscal documents were transmitted correctly, including buyer details. For input-tax claims, validate the invoice status and the buyer information rather than relying only on the invoice PDF or a system-generated counterpart bill.
Step 3: Match balances before consolidation
-
Agree a monthly intercompany cut-off and close calendar by entity.
-
Match receivables and payables by counterparty, reference, currency, issue date and age.
-
Investigate unmatched entries, unissued fiscal invoices, different recognition dates and foreign-currency differences.
-
Assign each exception to an owner before group numbers are approved.
-
Retain the matching report, adjusting entries and reviewer sign-off with the consolidation pack.
A clearing journal should not be used to conceal an unresolved entity-level difference. When one subsidiary has a bill but the seller has not produced the corresponding authorised invoice, complete or correct the underlying transaction before treating the balance as matched.
Step 4: Eliminate internal results in the group layer
Remove reciprocal intercompany receivables and payables, and remove internal turnover against related purchases or costs. When transferred goods are still held by a group company at reporting date, eliminate the unrealised profit embedded in the remaining stock to the appropriate extent. This adjustment belongs in controlled group reporting, not as a deletion of the legal-entity source invoices.
Retain consolidation journals, working papers, mapping decisions and an explanation of any differences in accounting periods. Statutory accounts, management consolidation and ZIMRA returns answer related but distinct questions; each needs its own approval and evidence trail.
Illustration: stock transferred between sister companies
A Harare trading subsidiary supplies goods to a sister company that operates several retail branches. Both legal entities correctly record the invoice, receipt and liability. At month-end, some goods remain in the sister company’s warehouse. Group finance matches the two companies’ balances, eliminates the internal sale and purchase, and removes the profit still embedded in stock not yet sold to third-party customers. The underlying fiscal records remain available for each legal entity.
The gain is a reliable consolidated result and a faster audit trail, not simply an ERP screen showing that intercompany documents were generated.
What the board should review every month
Percentage of intercompany balances matched by the agreed close date.
Age and cause of unresolved counterpart invoices, payments or credit notes.
Completion and approval of consolidation eliminations.
Stock carrying unrealised internal margin, with a clear calculation basis.
Days to consolidated management accounts and repeat corrections from previous periods.
The group should review access rights regularly, test a complete cross-company transaction after tax-setting changes and preserve VAT and accounting records for the required retention period. ZIMRA generally requires business transaction records to be retained for at least six years.
Frequently asked questions
Can Odoo automatically create intercompany documents?
Yes, Odoo supports counterpart document generation when its intercompany features are configured. This does not remove the need to review taxes, approvals, settlements and consolidation.
Does an internal company sale need VAT?
A taxable supply between separately registered legal entities needs the applicable VAT and fiscal documentation. The subsequent group elimination does not cancel that obligation.
Why eliminate unrealised stock profit?
Profit on stock still held within the group has not yet been earned from an external customer. Group reporting therefore removes the relevant unearned internal margin.
Can a group use one accounting system and still preserve separate compliance?
Yes. A shared Odoo database can hold distinct legal-entity records while supporting consolidated oversight, provided company configuration, permissions and tax reporting are controlled.
Ask SERPA to review your legal-entity structure, Odoo intercompany workflows, Zimbabwe VAT localisation and consolidation close.