Are you struggling to get a true picture of your multi-company financials in Odoo? Do intercompany transactions clutter your Profit & Loss (P&L) and Balance Sheet reports, making it difficult to assess individual entity performance or present a clean, consolidated view? You’re not alone. Many organizations leveraging Odoo’s powerful multi-company feature face this very challenge.
The good news? There’s an incredibly effective and straightforward method for Odoo intercompany transactions removal from your core financial statements. This comprehensive guide will walk you through a powerful 3-step process, transforming your Odoo financial reporting from a tangled web into a clear, insightful dashboard. By implementing these strategic configurations, you can achieve accurate, easy-to-read reports that empower better decision-making.
This approach is inspired by and expands upon the valuable insights shared in this video tutorial: Odoo Multi Company Financials: Remove Inter-Company transactions from P&L | B/S Reports in 3 Steps.
Why Odoo Intercompany Transactions Removal is Crucial for Your Business
In a multi-company Odoo environment, intercompany transactions – such as one subsidiary selling goods or services to another – are essential for internal operations. Odoo’s robust intercompany transaction features simplify the creation of corresponding invoices and bills across entities. However, these transactions, while internally necessary, can significantly distort your financial reports when viewed without proper adjustments.
Imagine Company A selling products to Company B. Both are part of your larger group. If Company A records sales revenue and Company B records purchase expenses for the same internal transaction, a simple consolidated P&L would double-count revenue and expenses, inflating overall figures and making it impossible to gauge external sales performance or true profitability. Similarly, intercompany receivables and payables on the balance sheet can create a misleading picture of your group’s true financial position, masking external assets and liabilities.
For accurate financial reporting, especially for external stakeholders, internal management, or compliance with accounting standards like GAAP or IFRS, these inter-entity transactions must be eliminated or removed from consolidated or individual company reports when assessing external performance. This is where mastering Odoo intercompany transactions removal becomes indispensable. It allows you to generate reports that reflect only external activities, giving you an unadulterated view of each company’s standalone performance and the group’s true financial standing.
The 3-Step Strategy for Seamless Odoo Intercompany Transactions Removal
Our solution for achieving pristine financial reports in Odoo is built on three foundational steps:
- Create Separate Journals for Inter-Company Transactions.
- Configure Automation Rules to Automatically Assign Journals.
- Implement a Multi-Ledger Filter to Exclude Inter-Company Journals from Reports.
Let’s dive into each step with a detailed, step-by-step tutorial.
Step 1: Create Dedicated Journals for Inter-Company Transactions
The cornerstone of effective Odoo intercompany transactions removal is the ability to clearly distinguish these internal movements from external business activities. By creating separate journals for intercompany sales and purchases, you lay the groundwork for accurate filtering later. This segregation ensures that every transaction between your internal entities is tagged appropriately from the moment it’s recorded.
Why this step is critical: Think of these new journals as specialized buckets. Instead of all sales and purchases going into a single “general” bucket, intercompany transactions get their own designated “intercompany” buckets. This makes it incredibly simple to isolate them when you need to run reports. Without this distinction, removing these transactions would be a manual, error-prone nightmare.
Tutorial: Setting Up Intercompany Journals
You will need to perform these steps in each company within your Odoo instance that engages in intercompany transactions.
-
Navigate to Journals:
- From your Odoo Dashboard, go to
Accounting>Configuration>Journals.
- From your Odoo Dashboard, go to
-
Create “Inter-Company Sales” Journal:
- Click
Create. - Journal Name: Enter a clear name like
"Inter-Company Sales (Company X)". (Replace “Company X” with the actual name of the company you are currently configuring, e.g., “Inter-Company Sales (Odoo Services Ltd.)”). - Type: Select
Sales. - Default Income Account: It’s crucial to use the same income account that your regular external sales journal uses. This ensures that the accounting treatment for the revenue is consistent, even if the source is internal. The differentiation happens at the journal level, not the account level.
- Short Code: Assign a unique, easily recognizable short code, such as
IC-SALES. - Click
Save.
- Click
-
Create “Inter-Company Purchases” Journal:
- Click
Createagain. - Journal Name: Enter
"Inter-Company Purchases (Company X)". (Replace “Company X” with the actual company name, e.g., “Inter-Company Purchases (Odoo Products Inc.)”). - Type: Select
Purchase. - Default Expense Account: Similar to sales, use the same expense account as your regular external purchase journal.
- Short Code: Assign a unique short code, such as
IC-PURCH. - Click
Save.
- Click
-
Repeat for All Companies:
- Switch to your next company (using the multi-company switcher in the top right corner of Odoo).
- Repeat steps 2 and 3 for each additional company that will participate in intercompany transactions. Ensure the journal names clearly indicate which company they belong to.
By completing this step across all relevant entities, you’ve established the necessary accounting infrastructure for effective Odoo intercompany transactions removal.
Step 2: Configure Automation Rules to Automatically Assign Journals
Manually selecting the correct intercompany journal for every internal invoice or bill would be tedious and prone to human error. Odoo Studio’s automation rules are the perfect solution to ensure that every intercompany transaction is automatically assigned to its designated journal, making the process seamless and foolproof. This automation is a key enabler for systematic Odoo intercompany transactions removal.
Why this step is critical: Automation ensures consistency and accuracy. As soon as you create an invoice or bill where the partner is another one of your internal companies, Odoo will instantly assign the correct intercompany journal. This eliminates the need for manual intervention and guarantees that your transactions are categorized correctly from the outset, paving the way for effortless reporting adjustments.
Tutorial: Automating Journal Assignments
These automation rules need to be configured meticulously for each company.
-
Activate Odoo Studio:
- Go to any Odoo screen (e.g., Sales, Invoicing) and click the
Studioicon (often a small ruler or wrench) usually located in the top right corner of your Odoo interface. This allows you to customize and automate processes.
- Go to any Odoo screen (e.g., Sales, Invoicing) and click the
-
Navigate to Invoices (Customer Invoices/Bills):
- For Customer Invoices: Go to
Accounting>Customers>Invoices. - For Vendor Bills: Go to
Accounting>Vendors>Bills.
- For Customer Invoices: Go to
-
Create Automation Rule for Inter-Company Sales (e.g., for Company 1 selling to Company 2):
- While on the Invoices list view (within Odoo Studio), click on
Automations(often found in the left sidebar or top menu within Studio). - Click
Create New Automation. - Automation Name: Give it a descriptive name, e.g.,
"Auto-Assign IC Sales (Company 1 to Company 2)". - Model: Select
Account Move(this is the underlying model for invoices and bills). - Trigger: Set to
On Creation. This rule will activate the moment a new invoice/bill is created. - Domain (Conditions for triggering the rule): This is crucial. Define when this rule should apply.
- Click
Add Condition. - First Condition:
Journal Typeis equal toSales. - Second Condition:
Partneris equal to[Name of Company 2]. (If you have multiple subsidiary companies, you’d add anORcondition for each, e.g.,Partneris equal to[Company 3]orPartneris equal to[Company 4]). - Third Condition: (Highly Recommended for clarity)
Companyis equal to[Name of Company 1]. This ensures the rule only runs when logged into and creating a transaction from Company 1.
- Click
- Actions:
- Click
Add Action. - Action Type: Select
Update the Record. - Field to Update: Select
Journal. - Value: Select your newly created journal:
"Inter-Company Sales (Company 1)".
- Click
- Click
Save & Close.
- While on the Invoices list view (within Odoo Studio), click on
-
Create Automation Rule for Inter-Company Purchases (e.g., for Company 1 buying from Company 2):
- Repeat the process similar to step 3.
- Automation Name:
"Auto-Assign IC Purchases (Company 1 from Company 2)". - Model:
Account Move. - Trigger:
On Creation. - Domain:
Journal Typeis equal toPurchase.Partneris equal to[Name of Company 2].Companyis equal to[Name of Company 1].
- Actions:
- Action Type:
Update the Record. - Field to Update:
Journal. - Value: Select
"Inter-Company Purchases (Company 1)".
- Action Type:
- Click
Save & Close.
-
Repeat for ALL Companies and their respective intercompany partners:
- Switch to Company 2 (using the multi-company switcher).
- Create similar automation rules for Company 2:
- One for sales
(Company 2 to Company 1)withPartnerequal to[Name of Company 1]andJournalset to"Inter-Company Sales (Company 2)". - One for purchases
(Company 2 from Company 1)withPartnerequal to[Name of Company 1]andJournalset to"Inter-Company Purchases (Company 2)".
- One for sales
- Continue this for every company in your group, ensuring that each company has rules that cover transactions with all other intercompany partners.
Important Considerations for Automation Rules:
- Specificity is Key: The
Companyfield in your domain is vital if you’re managing automation rules across multiple companies. Without it, a rule created in Company 1 might accidentally modify rules for Company 2, leading to blank or incorrect settings. - Testing: After creating your rules, thoroughly test them by creating a few sample intercompany invoices and bills. Verify that the journal field automatically updates correctly upon saving.
By automating the journal assignment, you’ve ensured that your data is consistently and accurately tagged, making the final step of Odoo intercompany transactions removal incredibly efficient. For more advanced Odoo Studio tips, you might find this resource helpful: Advanced Odoo Studio Customizations. (Internal Link Example)
Step 3: Implement a Multi-Ledger Filter to Exclude Inter-Company Journals from Reports
With your intercompany transactions now neatly categorized into their own dedicated journals and automatically assigned, the final step is to leverage Odoo’s reporting capabilities to filter them out. The “Multi-Ledger” feature provides a powerful and user-friendly way to achieve dynamic Odoo intercompany transactions removal from your financial statements.
Why this step is critical: This is where all your hard work comes together. The Multi-Ledger filter acts as a switch, allowing you to instantly generate reports that either include all transactions (for a gross view) or only external transactions (for a clean, actionable view). This flexibility is invaluable for accountants and financial leaders who need to pivot between different reporting perspectives. It ensures that when you look at your P&L or Balance Sheet, you are seeing the true performance without internal noise.
Tutorial: Creating and Using the Multi-Ledger Filter
You will need to create a unique Multi-Ledger filter for each company.
-
Navigate to Multi-Ledger Configuration:
- Go to
Accounting>Reporting>Configuration>Multi-Ledger.
- Go to
-
Create a New Multi-Ledger Filter for Odoo Intercompany Transactions Removal (e.g., for Company 1):
- Click
Create. - Name: Give it a clear, descriptive name like
"Inter-Company Journal Removal (Company 1)". - Journals: This is the most important part. You need to select all your regular sales, purchase, bank, cash, and other operational journals. Crucially, do not select the “Inter-Company Sales (Company 1)” and “Inter-Company Purchases (Company 1)” journals you created in Step 1.
- Tip: It’s often easier to first select all journals and then deselect the two intercompany ones.
- Click
Save.
- Click
-
Repeat for All Companies:
- Switch to your next company (e.g., Company 2).
- Repeat step 2, creating a new Multi-Ledger filter named
"Inter-Company Journal Removal (Company 2)". - Ensure you only select the non-intercompany journals specific to Company 2.
-
Using the Multi-Ledger Filter in Financial Reports:
- Access a Report: Go to
Accounting>Reporting>Profit and Loss(orBalance Sheet). - Select Your Company: Ensure you are viewing the report for the specific company you want to analyze.
- Apply the Filter: In the report options (often accessible via a “Filters” or “Options” button), look for the “Multi-Ledger” section. You should see your newly created filter, e.g.,
"Inter-Company Journal Removal (Company 1)". - Default Behavior: Odoo will often default to selecting this filter once created.
- Clean Report View: With this filter active, your P&L and Balance Sheet reports will now magically exclude all intercompany sales, purchases, receivables, and payables. You will see a clean, consolidated view of your external transactions only.
- View All Transactions: If you ever need to see all transactions, including the intercompany ones, simply deselect the “Inter-Company Journal Removal” filter in the report options. This flexibility is what makes this strategy so powerful.
- Access a Report: Go to
By diligently following these three steps, you have now mastered the art of Odoo intercompany transactions removal, giving you unparalleled control and clarity over your multi-company financial data.
The Unmatched Benefits of Clear Financial Reporting
The ability to perform Odoo intercompany transactions removal isn’t just a technical trick; it’s a strategic advantage for any multi-entity organization. The benefits are far-reaching:
- Accurate Performance Assessment: Gain a clear understanding of each company’s standalone profitability and financial health, unclouded by internal transfers. This helps in evaluating management performance and operational efficiency.
- Streamlined Consolidated Reporting: When preparing consolidated financial statements for the entire group, the ability to quickly filter out intercompany transactions simplifies the consolidation process, ensuring compliance with accounting standards. Learn more about consolidated financial statements at Investopedia. (External DoFollow Link)
- Improved Decision-Making: With cleaner data, management can make more informed decisions regarding resource allocation, investment strategies, and overall business direction.
- Enhanced Audit Readiness: Clear segregation and automated removal of internal transactions simplify audits by providing a straightforward path to presenting external-facing financials.
- Time and Effort Savings: Automating journal assignments and report filtering significantly reduces the manual effort traditionally associated with eliminating intercompany movements.
For further optimization of your Odoo accounting processes, consider exploring other powerful configuration options within the system: Optimizing Odoo Accounting. (Internal Link Example)
Conclusion
Managing financial reports in a multi-company structure can be complex, but Odoo provides the robust tools to simplify it. By systematically applying the three steps outlined in this guide – creating dedicated intercompany journals, automating their assignment, and leveraging multi-ledger filters – you can achieve complete Odoo intercompany transactions removal from your core financial reports. This empowers your accounting team with unparalleled control and delivers clear, actionable insights for your entire organization.
Stop wrestling with messy, inflated financial statements. Embrace these Odoo tricks and transform your financial reporting into a source of strategic advantage.
Discover more from teguhteja.id
Subscribe to get the latest posts sent to your email.

