Odoo Multi-Company and Inter-Company Setup: Complete Configuration Guide

Step-by-step guide to configuring multi-company operations in Odoo including inter-company transactions, shared resources, and consolidated reporting.

E
ECOSIRE Research and Development Team
|March 16, 20268 min read1.6k Words|

Odoo Multi-Company and Inter-Company Setup: Complete Configuration Guide

Organizations with multiple legal entities, subsidiaries, or business units face a fundamental ERP decision: run separate instances or consolidate into a single system with multi-company capabilities. Odoo supports both approaches, but its multi-company architecture makes consolidation the clear winner for organizations that need shared data, inter-company transactions, and unified reporting. This guide covers every aspect of multi-company setup from initial configuration through inter-company automation.

Key Takeaways

  • Odoo supports unlimited companies within a single database with full data isolation between entities
  • Inter-company transactions automatically generate matching documents (SO in Company A creates PO in Company B)
  • Shared resources like products, contacts, and chart of accounts can be configured per company or shared across all companies
  • Consolidated financial reporting aggregates data across entities with inter-company elimination
  • User access rules control which companies each user can access and switch between

Multi-Company Architecture

How Companies Work in Odoo

Each company in Odoo operates as a separate legal entity with its own:

  • Chart of accounts and fiscal years
  • Currency and tax configuration
  • Warehouse and inventory valuation
  • Payroll rules and employee contracts
  • Bank accounts and payment methods
  • Document sequences (invoice numbers, order numbers)

Data isolation is enforced at the ORM level. When a user operates within Company A, they see only Company A's records by default. The company selector in the top-right corner allows switching between companies or operating in multi-company mode.

Setting Up Companies

Navigate to Settings > Companies to create and configure companies:

  1. Company details: Name, address, tax ID, logo, currency
  2. Accounting: Chart of accounts (can copy from template or existing company)
  3. Documents: Sequence formats for invoices, orders, and other documents
  4. Localization: Country-specific tax settings, fiscal positions

For each new company, Odoo creates a separate chart of accounts. You can use a standard chart template or copy the structure from an existing company to maintain consistency.

Inter-Company Transactions

Enabling Inter-Company Rules

Navigate to Settings > Companies > Inter-Company Transactions to configure automation rules. Odoo supports three inter-company transaction types:

Sales Order to Purchase Order: When Company A creates a sales order with Company B as the customer, Odoo automatically generates a corresponding purchase order in Company B with Company A as the vendor.

Purchase Order to Sales Order: The reverse flow---when Company A creates a purchase order from Company B, Odoo generates a sales order in Company B.

Invoice to Bill: When Company A creates a customer invoice for Company B, a vendor bill appears automatically in Company B.

Configuration Steps

  1. In each company's settings, enable Inter-Company Transactions
  2. Set the Warehouse for incoming inter-company transfers
  3. Set the Default Purchase/Sales Journal for generated documents
  4. Configure Inter-Company Accounts in the chart of accounts for elimination entries

Inter-Company Transfer Workflow

A typical inter-company sale follows this flow:

StepCompany A (Seller)Company B (Buyer)
1Create Sales Order to Company BPO auto-created from Company A
2Confirm SO, create deliveryConfirm PO, create receipt
3Ship goods to Company B warehouseReceive goods from Company A
4Create invoiceVendor bill auto-created
5Record payment receivedRecord payment sent

The entire flow is automated once the initial sales order is confirmed.

Transfer Pricing

Inter-company pricing can be configured through pricelists. Create a pricelist for inter-company transactions at Sales > Configuration > Pricelists and assign it to the inter-company partner record. This ensures consistent transfer pricing that satisfies tax authority requirements for arm's-length transactions.

Shared vs Company-Specific Data

Products

Products can be shared across all companies or restricted to specific entities:

  • Shared products: A single product record visible to all companies. Useful for standard catalog items. Prices and costs can differ per company through pricelists and cost entries.
  • Company-specific products: Products with the Company field set. Only visible to that company. Useful for custom-manufactured items specific to one entity.

Contacts

Contacts (customers, vendors, partners) are typically shared across companies. A customer who buys from both Company A and Company B maintains a single contact record. Company-specific details (payment terms, credit limits, pricelists) are managed through the company field on sub-records.

Chart of Accounts

Each company maintains its own chart of accounts. For consolidated reporting, use consistent account structures across companies by copying the chart from a template company. Alternatively, use the Consolidation module to map different account structures to a common consolidation structure.

Employees

Employees belong to a single company but can be shared across companies for resource planning purposes. An employee's payroll, contract, and benefits are always company-specific.

User Access and Security

Company-Based Access Rules

Odoo's security model controls multi-company access through record rules. Key configurations:

  • Allowed companies: Each user is assigned one or more companies they can access. Configure at Settings > Users > Preferences
  • Current company: The active company determines which records the user sees by default
  • Multi-company mode: Users can enable multi-company mode to see records from all their allowed companies simultaneously

Best Practices for Access Control

User RoleRecommended Access
CEO/OwnerAll companies
Finance ManagerAll companies (for consolidation)
Department ManagerOwn company only
Sales RepresentativeOwn company only
Warehouse WorkerOwn company only
External AuditorRead-only, specific companies

Data Isolation Verification

After configuring multi-company access, verify isolation by logging in as a user restricted to a single company and confirming they cannot see records from other companies. Test document creation to ensure proper company assignment and sequence numbering.

Consolidated Financial Reporting

Balance Sheet Consolidation

The consolidation module aggregates financial data across companies:

  1. Define a consolidation company as the parent entity
  2. Map subsidiary charts of accounts to the consolidated structure
  3. Configure elimination rules for inter-company balances
  4. Run consolidation to generate consolidated financial statements

Elimination Entries

Inter-company transactions must be eliminated from consolidated reports to avoid double-counting. Odoo handles this through elimination journal entries:

  • Inter-company receivables and payables cancel out
  • Inter-company revenue and cost of goods sold cancel out
  • Unrealized profit on inter-company inventory is eliminated

Configure elimination rules at Accounting > Configuration > Consolidation > Elimination Rules.

Multi-Currency Consolidation

For international organizations with subsidiaries in different currencies:

  • Each subsidiary reports in its functional currency
  • Consolidation applies translation rates: balance sheet items at closing rate, income statement at average rate
  • Currency translation adjustments post to equity

Branch vs Subsidiary Configuration

Branch Offices

For organizations where multiple locations operate under a single legal entity, use the multi-warehouse approach rather than multi-company:

  • Create separate warehouses for each branch
  • Use analytic accounts to track branch-level P&L
  • All transactions use the same chart of accounts and tax configuration

Subsidiaries

For separate legal entities, use the full multi-company configuration:

  • Each subsidiary is a separate company in Odoo
  • Separate charts of accounts, tax configurations, and bank accounts
  • Inter-company transactions for goods and services transfers
  • Consolidated reporting for group-level financial statements

Common Implementation Patterns

Manufacturing Group

A manufacturing group might configure:

  • Company A: Manufacturing entity (makes products)
  • Company B: Sales entity (sells to end customers)
  • Inter-company flow: Company B creates SO for customer > PO to Company A > Company A manufactures and ships to Company B warehouse > Company B delivers to customer

International Operations

An international organization might configure:

  • Company US: US operations with USD
  • Company EU: European operations with EUR
  • Company UK: UK operations with GBP
  • Holding Company: Consolidation entity for group reporting

Franchise Model

A franchise organization might configure:

  • Franchisor Company: Brand owner with product catalog
  • Franchisee Companies: Individual franchisees with their own P&L
  • Shared products: Catalog shared from franchisor to franchisees
  • Royalty billing: Automated inter-company invoicing for franchise fees

ECOSIRE Multi-Company Services

Setting up multi-company operations requires careful planning of data architecture, access controls, and inter-company workflows. ECOSIRE's Odoo consultancy services include multi-company assessment and design, and our implementation team handles the complete setup from company creation through consolidated reporting validation. For organizations with complex requirements, our custom development services build custom inter-company workflows and reporting.

Is there a limit to how many companies can exist in a single Odoo database?

There is no hard limit on the number of companies. Organizations with 20 or more companies operate successfully on single Odoo databases. Performance depends on total data volume and concurrent users rather than the number of companies. For very large setups (50+ companies), consider server sizing and database optimization.

Can inter-company transactions cross different Odoo versions?

No. Inter-company transactions require all companies to exist in the same Odoo database running the same version. If your entities run on separate Odoo instances, use API-based integration to synchronize documents between instances.

How do you handle inter-company transactions that cross different fiscal years?

Odoo handles this automatically. Each company maintains its own fiscal year calendar. An inter-company transaction posted on December 31st in Company A (calendar year) and January 1st in Company B (April-March fiscal year) will post to the correct period in each company based on their respective fiscal year configuration.

E

Written by

ECOSIRE Research and Development Team

Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.

Chat on WhatsApp