- Home
- Apps
- SaaS Tools
- Intercompany Transactions & Reconciliation
Illustrative previewA build-to-order Odoo module that auto-mirrors sales,
purchases and invoices between your legal entities and reconciles their intercompany balances.
ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 environment.
What is Intercompany Transactions & Reconciliation?
A build-to-order Odoo module that auto-mirrors sales, purchases and invoices between your legal entities and reconciles their intercompany balances. ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 environment. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Multi-entity groups lose hours every month keying the same transaction twice: Company A raises a sales order to Company B, then someone in B has to re-enter it as a purchase, match the invoice to the vendor bill, and hope the two ledgers agree at close. When they don't — a mismatched tax, a posted-vs-draft timing gap, a manually typed amount — the intercompany balance breaks, and finance spends the last days of the period chasing which side is wrong. Odoo Community has no intercompany automation at all, and while Odoo Enterprise ships an inter-company rules feature that mirrors sales/purchase orders, it stops short of full journal-level synchronization, elimination tagging, and a real reconciliation report that tells you at a glance whether A-owes-B equals B-owes-A. That last mile is exactly where finance teams still bleed time.
ECOSIRE builds a purpose-fit module that closes that gap for your specific company structure. At its core is a set of new ORM models (models.Model) that record configurable company pairings — for each ordered pair of res.company records you define the partner mapping, the mirror document type, the target journals, tax mapping, and pricelist. When a source document is validated, an automated action (or an overridden action_confirm/action_post) generates the mirrored counterpart in the other company: a sales order becomes a purchase order, a customer invoice becomes a vendor bill, and the corresponding account.move lines are created with @api.depends-driven computed fields so amounts, taxes and currency are derived from the source rather than retyped. Every mirrored record carries a stored reference back to its origin so the pair is always traceable and never double-generated on re-validation.
On top of the mirroring, we build the reconciliation layer your close actually needs: a balance reconciliation report (rendered as a QWeb report and an on-screen list/pivot view built in XML/OWL) that pulls the posted intercompany receivables and payables per company pair and flags any variance — unmatched documents, amounts that differ, or entries stuck in draft on one side. Line-level tagging marks intercompany moves as elimination-ready so your consolidation or group reporting can strip them cleanly. Access is governed by ir.model.access.csv plus record rules that keep each company's users scoped to their own data while letting the sync engine cross the boundary under a controlled context. Everything is exposed over the standard XML-RPC/JSON-RPC API, so an external consolidation tool or a parent-company script can read pairings, trigger a reconciliation run, or pull the variance report programmatically.
Because this is a build-to-order engagement, nothing is a blind download. We start with a short scoping call to map your entity structure, the document flows you want mirrored, your tax and multi-currency rules, and your chart-of-accounts alignment. We then build against your Odoo major version (17.0, 18.0 or 19.0), respecting Community vs Enterprise differences — if you already run Enterprise inter-company rules we extend and reconcile with them rather than fight them. You get the work validated on a staging copy of your database (UAT) before anything touches production, with a rollback plan. Typical delivery is one working week from confirmed scope, and you receive the full installable source, documentation, and a post-go-live support window.
What you get
- Installable Odoo module source code targeted to your exact Odoo major version (17.0, 18.0 or 19.0)
- Installation and configuration on your environment, including company-pairing and journal/tax mapping setup
- Technical documentation: data model, `automated action` logic, security rules and API endpoints
- User guide plus a live training session for your finance and accounting team
- UAT on a staging copy of your database with a documented rollback plan before production go-live
- Post-go-live support window for defect fixes and configuration adjustments
- Git repository handover with full commit history and tagged release
- Reconciliation report templates (QWeb) configured to your company-pair structure
Who this is for
Group Financial Controller
Owns the month-end close across several legal entities and needs intercompany balances to agree without a manual chase. Wants a variance report that proves A-owes-B equals B-owes-A before the books lock.
Multi-Entity Accounting Manager
Runs day-to-day AP/AR for a group that trades internally every week. Needs sales, purchases and invoices mirrored automatically so no one re-keys the same document twice or mismatches tax and currency.
Group CFO / Consolidation Lead
Reports consolidated numbers to the board and must eliminate intercompany activity cleanly. Wants every internal transaction tagged elimination-ready and pullable via API into the consolidation process.
Odoo / ERP Systems Owner
Responsible for the Odoo platform across companies and wary of brittle customizations. Needs a version-matched, documented module with proper record-rule security that coexists with existing Enterprise inter-company rules.
How Intercompany Transactions & Reconciliation Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Intercompany mirroring | Auto-mirrors SO/PO/invoices on validation, scoped to your pairs | Possible but you design and maintain the mirror logic yourself | Often mirrors orders only, with fixed assumptions | Community: none. Enterprise: order-level mirroring only |
| Journal synchronization | Full `account.move` sync with correct journals and posting state | Build and test the journal logic from scratch | Partial or absent; rarely journal-complete | Not provided beyond the order/invoice mirror |
| Balance reconciliation report | Per-pair QWeb + pivot report that flags every variance | Report must be specified and built by you | Usually a basic list, no variance flagging | No dedicated intercompany reconciliation view |
| Elimination tagging | Intercompany lines tagged elimination-ready for consolidation | You add and maintain the tagging scheme | Rarely included | Not available |
| Company pairing config | Configurable per ordered pair: partners, journals, tax, pricelist | Whatever config you choose to build | Fixed or limited configuration options | Enterprise rules are basic and per-company |
| Version & environment fit | Built and tested against your exact 17.0/18.0/19.0 | Depends entirely on your team's coverage | Generic; may lag your major version | Ships with your edition as-is |
| API access | XML-RPC/JSON-RPC to read pairings and trigger reconciliation | You expose whatever endpoints you build | Limited to the module's own screens | Standard Odoo API, but no intercompany endpoints |
| Delivery & support | Build-to-order, UAT on staging, support window, git handover | Your team owns build, testing and support | Download plus vendor ticket support | Self-serve configuration, no build service |
Frequently Asked Questions about Intercompany Transactions & Reconciliation
How long does delivery take?
This is a build-to-order module, so it is built for your specific entity structure rather than downloaded off the shelf. Typical delivery is one working week from confirmed scope. After the initial scoping call we lock the company pairings, document flows and tax/currency rules, then build, run UAT on staging, and go live.
How is this different from Odoo Enterprise inter-company rules?
Enterprise ships inter-company rules that mirror sales and purchase orders, which is a good foundation but stops short of full journal-level synchronization, elimination-ready tagging, and a real per-pair balance reconciliation report. We build those missing layers and, where you already run Enterprise rules, extend and reconcile with them instead of conflicting. On Community, which has no intercompany automation at all, we provide the whole engine.
What about support and updates after go-live?
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments, plus a git repository handover so the code is yours. Because it is version-matched to your Odoo (17.0, 18.0 or 19.0), we can quote a migration when you later upgrade your major version rather than leaving you stranded.
Will it work with our multi-currency and multi-tax setup?
Yes. Mirrored amounts, taxes and currency are derived from the source document via `@api.depends` computed fields, with an explicit tax mapping per company pair, so a bill in one company reflects the invoice in the other correctly instead of relying on retyped figures. We confirm your exact currency and tax rules during scoping.
Can external systems trigger or read the reconciliation?
Yes. The module exposes its pairings, reconciliation runs and variance reports over Odoo's standard XML-RPC/JSON-RPC API, so a parent-company script or a dedicated consolidation tool can pull elimination-ready data or kick off a reconciliation run programmatically.
How do you protect our production data during the build?
Nothing is developed directly on production. We build against your Odoo major version, validate on a staging copy of your database (UAT), and only deploy to production once you sign off — with a documented rollback plan in place.
How is access controlled between companies?
Access is governed by `ir.model.access.csv` plus record rules that keep each company's users scoped to their own records. Only the sync engine crosses the company boundary, and it does so under a controlled context, so mirroring works without exposing one company's data to another's users.
Related Modules

Instagram & Messenger Integration for Odoo Discuss
A build-to-order Odoo integration that routes Instagram Direct and Messenger conversations into the Discuss app so your team answers social messages from one threaded inbox. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19 after a scoping call.

Installment Plan Builder for Odoo Checkout
A build-to-order Odoo module that lets you offer in-house financing at checkout: customers split an order into N installments with tokenized cards auto-charged on schedule. ECOSIRE builds, installs, and supports it for your Odoo 17/18/19 environment.

Invoice Format Editor
A build-to-order Odoo module that gives your finance team real control over invoice report layout, branding, and formatting without hard-coding a new template for every variation. ECOSIRE designs, builds, installs, and supports it against your exact Odoo version and document standards.

Invoice from Multiple Sales and Purchases
A build-to-order Odoo module that consolidates multiple confirmed sales orders (or vendor purchase orders) for the same partner into a single invoice or vendor bill, with full traceability back to each source document. ECOSIRE scopes, builds, installs, and supports it for you.
Intercompany Transactions & Reconciliation
A build-to-order Odoo module that auto-mirrors sales, purchases and invoices between your legal entities and reconciles their intercompany balances. ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 environment.
- Configurable company-pairing model: per ordered `res.company` pair, define partner mapping, mirror document type, target journals, tax mapping and pricelist
- Auto-mirrored sales orders, purchase orders, customer invoices and vendor bills between paired companies on document validation
- Intercompany journal synchronization: mirrored `account.move` lines created with the correct journals, accounts and posting state
- Stored origin references on every mirrored record to guarantee traceability and prevent duplicate generation on re-validation