Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Accounting
  3. Inter-Company Rules v 19.0
  4. Sales Conditions FAQ

Inter-Company Rules

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 19.0 Third Party 64
Download for v 19.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Invoicing (account)
• Discuss (mail)
Community Apps Dependencies Show
Accounting Suite Base
Lines of code 5750
Technical Name eh_account_intercompany
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · Accounting Suite
MULTI ENTITY ACCOUNTING

Inter-Company Rules

Post a sale in one company and the matching purchase bill is built in the sister company, with a review queue that catches every pair that did not mirror cleanly.

Free · LGPL-3MULTI ENTITYAUTO MIRRORv19.0.1.2.0
Auto mirror
Idempotent
Review queue
Tax by rate
Analytic safe

Why this module

Inter-Company Rules

01 / AUTOMATION

One post, both sides

A posted sale invoice builds the matching purchase bill in the sister company, and a vendor bill mirrors back to a customer invoice. Refunds mirror the same way. The mirror lands draft for review or auto-posts, per destination company config.

02 / INTEGRITY

Duplicate-proof by construction

Each mirror stores an origin pointer and a database-level unique(origin, company) constraint makes re-posting and concurrent posts idempotent. Two simultaneous posts cannot both create a twin bill, the constraint closes the race at the database.

03 / CONTROL

Nothing fails silently

A stored lifecycle state with list badges, search filters and a dedicated review action means a supervisor sees only the pairs needing attention: no mirror, mirror draft, or an amount mismatch above one cent once both sides are posted.

Day in the life

A group accountant invoices a sister company and moves on.

She posts a customer invoice from the trading company to a related entity. The partner names the company it represents, so the module immediately builds the matching vendor bill in that entity, in the same currency and with the same per-line amounts, and links both invoices with a chatter note pointing at each other. The bill lands in draft for the receiving accountant to review. Later a colleague edits a mirror line by hand; the next time both sides settle, the divergence above one cent flips the pair to Amount mismatch and it surfaces in the Inter-company review action. One destination journal was left unset on a third company, so that mirror could not build, but the source still posted and the reason is sitting in its chatter, flagged No mirror in the same review queue. Nothing was double-entered, and nothing went missing quietly.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

CONCURRENCY

Two concurrent posts cannot both create a mirror. A database-level unique(origin, company) constraint closes the race that a search-before-create guard alone would lose, and a regression test exercises exactly that duplicate path.

MIRROR FAILURE

If any step of the mirror build fails, the source invoice still posts, the explicit reason is written to its chatter, and the state flips to No mirror so the unmirrored pair surfaces in the review queue instead of blocking the close.

AMOUNT MISMATCH

Once both legs are posted, a divergence above one cent (a manual edit, a missing line, FX drift) flips the pair to Amount mismatch for human review rather than being ignored.

ACCOUNT RESOLUTION

The mirror line uses the destination company's product account first, then the configured fallback account, and if neither exists it raises an error naming the exact field to fix. No NULL account ever reaches a move line.

TAX MAPPING

Tax is mapped to the destination by rate and direction, not by name. A source tax with no matching destination rate is dropped with a warning rather than substituting a wrong-rate tax that would distort GST or VAT.

ANALYTIC SCOPE

Analytic distribution is carried to the mirror but company-scoped. Group-wide analytic accounts survive on the mirror line while source-company-only analytic accounts are stripped, so they never leak into the destination company.

GLOBAL PARTNER

A Represented Company field lets the counterparty partner stay global and remain usable on invoices in every company, sidestepping the standard company-consistency guard.

What is inside

Built to do the job, end to end.

  • Trigger on post. When a sale invoice or vendor bill posts and its partner is linked to another company (via Represented Company, or the commercial partner's company) and that destination company has an enabled config, the mirror is built in the destination company. Refunds mirror too.
  • Per-company configuration. One config row per company selects that company's mirror sale and purchase journals, the auto-post behaviour, and optional fallback income and expense accounts. The routing target comes from the partner's Represented Company, not a per-pair rule.
  • Duplicate-proof linkage. An origin pointer plus a database-level unique(origin, company) constraint make re-posting and concurrent posts idempotent. A stat button jumps from either side to its counterpart, switching company context automatically.
  • Review workflow. A stored lifecycle state (Not applicable, No mirror, Mirror draft, Amount mismatch, Matched) drives list badges, search filters and a dedicated Inter-company review action so a supervisor sees only pairs needing attention.
  • Currency-aware mirroring. The mirror is created in the same currency as the source invoice with the same per-line amounts. It does not convert the amounts into the destination company's currency; both legs stay in the source currency.
  • Cross-company-safe writes. The mirror is created with sudo() and the destination company context, the standard Odoo pattern for cross-company writes, without broadening the user's own permissions. Both invoices carry a chatter note linking to their counterpart.

Honest about the edges

What this does not do, so nothing surprises you.

  • Mirroring does not convert currency. Both legs are created in the source invoice currency with the same per-line amounts; there is no day-rate conversion into the destination company's currency.
  • Routing is partner-driven, not a per-company-pair rule. The destination is derived from the partner's Represented Company and each company has its own config; there is no sender-receiver-journal pair object.
  • The mirror is not atomic with the source post. The source posts first and a mirror failure does not roll it back; the failure reason is recorded on the source chatter and flagged in the review queue for the accountant to resolve.
  • A missing or disabled inter-company config is treated as mirroring-off and skipped silently, with no error raised.
  • This module does not perform group consolidation or elimination entries; it builds the mirror invoice pair only. The only audit trail is the chatter note linking each invoice to its counterpart, not a separate append-only log model.
Search

odoo intercompany invoicing, odoo automatic intercompany bill, odoo multi company sale to purchase mirror, odoo sister company invoice automation, odoo intercompany rules community, odoo group accounting multi entity, odoo mirror vendor bill from customer invoice, odoo 19 intercompany community, odoo intercompany journal automation, odoo cross company invoice automation

Languages

Available in 19 languages

The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.

العربية简体中文繁體中文NederlandsFrançaisDeutschहिन्दीBahasa IndonesiaItaliano日本語한국어PolskiPortuguês (Brasil)РусскийEspañolSvenskaไทยTürkçeTiếng Việt
More from ERP Heritage

Modules teams pair with this one.

Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.

USD 19
Employment Hero Webhook

Inbound webhook receiver for the Employment Hero people and payroll platform on Odoo 19 Community

USD 369
Mauritius e-Invoicing

Real-time fiscalisation of customer invoices and credit notes with the Mauritius Revenue Authority e-Invoicing (E...

USD 49
User Access Studio

A user driven access overlay for Odoo 19

USD 9
Employment Hero Canada

The Canada country pack for the ERP Heritage Employment Hero integration

USD 39
Employment Hero Documents

Sync Employment Hero documents into the Odoo Documents app

USD 59
Employment Hero Payroll Bridge

Imports finalised pay run journals from the Employment Hero payroll platform (KeyPay) into Odoo Community account...

ERP Heritage

v19.0.1.2.0 · LGPL-3 · Odoo 19 Community

Developed by ERP Heritage - Odoo Implementation • LinkedIn

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with