Odoo Multi-Company Setup: Managing Multiple Entities in a Single Database

Learn how to set up Odoo multi-company for managing multiple business entities. Covers inter-company transactions, access rules, and consolidation reporting.

E

ECOSIRE Research and Development Team

ECOSIRE Team

February 19, 20268 min read1.8k words

Odoo Multi-Company Setup: Managing Multiple Entities in a Single Database

Businesses that operate multiple legal entities, subsidiaries, or brands face a choice: run separate ERP instances for each company, or consolidate everything into a single database. Odoo's multi-company feature enables you to manage multiple entities in one database while maintaining strict data separation, inter-company transaction automation, and consolidated financial reporting.

What Is Odoo Multi-Company?

Odoo multi-company is a built-in feature that allows multiple companies (legal entities) to coexist in a single Odoo database. Each company has its own chart of accounts, tax configuration, bank accounts, warehouses, and business rules. Users can belong to one or multiple companies and switch between them from the top navigation bar.

This approach is fundamentally different from running separate Odoo instances. A single database means shared master data (products, contacts), unified reporting, and zero duplication of infrastructure.

When to Use Multi-Company

Multi-company setup is appropriate when:

  • You operate multiple legal entities that share customers, products, or vendors
  • A parent company has subsidiaries that need consolidated financial reporting
  • You run multiple brands under a single corporate umbrella
  • Your business operates in multiple countries with different fiscal requirements
  • A holding company needs visibility across all portfolio companies

Multi-company is not necessary when you simply have multiple offices or departments. Odoo's analytic accounting and department features handle internal organizational divisions without creating separate companies.

Setting Up Multi-Company in Odoo

Step 1: Enable Multi-Company

  1. Navigate to Settings > General Settings > Companies
  2. Click "Manage Companies" to view the companies list
  3. Your primary company already exists; click "New" to add additional companies

Step 2: Configure Each Company

For each company, configure:

| Setting | Location | Notes | |---|---|---| | Legal name and address | Settings > Companies | Must match legal registration | | Logo | Company settings | Appears on printed documents | | Currency | Company settings | Can differ per company | | Fiscal year | Accounting > Settings | May vary by jurisdiction | | Chart of accounts | Accounting > Configuration | Shared template or unique per company | | Tax configuration | Accounting > Taxes | Country-specific tax rules | | Bank accounts | Accounting > Bank Accounts | Separate bank journals per company | | Warehouses | Inventory > Configuration | Each company gets its own warehouse(s) | | Sequences | Settings > Technical | Separate numbering for invoices, orders, etc. |

Step 3: Configure User Access

Each Odoo user can be assigned to one or multiple companies:

  • Single-company users: Can only see and create data for their assigned company. Best for operational staff who work exclusively within one entity.
  • Multi-company users: Can switch between companies using the company switcher in the top menu bar. Best for managers, accountants, and executives who oversee multiple entities.
  • Default company: Each user has a default company that applies when creating new records.

Access rule behavior: When a user has access to multiple companies, they see data from all their assigned companies simultaneously (unless they filter to a specific company). This enables cross-company reporting and oversight.

Configure user company assignments under Settings > Users > [User] > Multi Companies tab.

Shared vs. Separate Data

Understanding which data is shared and which is company-specific is critical for proper multi-company operation.

Shared Across All Companies

  • Contacts (res.partner): Customers, vendors, and partners are global by default. A customer created by Company A is visible to Company B.
  • Products (product.template): Product definitions are shared. However, product-specific properties like cost, vendor, and accounting accounts can be set per company.
  • Users: User accounts are global. Company access is controlled through assignments.
  • System settings: Technical configurations, email servers, and automation rules are typically global.

Company-Specific (Isolated)

  • Accounting entries: Journal entries, invoices, and bills belong to exactly one company
  • Bank accounts and journals: Each company has its own financial infrastructure
  • Sales and purchase orders: Transactions are company-specific
  • Inventory operations: Stock moves belong to company-specific warehouses
  • Tax configurations: Each company can have different tax structures
  • Chart of accounts: Can be shared (same template) or separate (different COAs per company)

Configurable Per Company

  • Product properties: Vendor, cost, income/expense accounts can be set per company using the "Switch Company" feature on product forms
  • Pricelist rules: Different pricing strategies per company
  • Warehouse operations: Separate or shared warehouse locations

Inter-Company Transactions

One of the most powerful multi-company features is automated inter-company transactions. When Company A sells to Company B, Odoo can automatically create the corresponding purchase order in Company B.

Enabling Inter-Company Rules

  1. Go to Settings > General Settings > Multi Companies
  2. Enable "Inter-Company Transactions"
  3. For each company, configure the inter-company rule:

Available rules:

  • Synchronized invoice/bill: When Company A creates a customer invoice to Company B, Odoo automatically creates a vendor bill in Company B.
  • Synchronized sales order/purchase order: When Company A confirms a sales order to Company B, a purchase order is auto-created in Company B.
  • Do not synchronize: Manual handling of inter-company transactions.

Inter-Company Transaction Flow Example

Company A (Manufacturer) sells components to Company B (Retailer):

1. Company A creates Sales Order → Company B (auto-created Purchase Order)
2. Company A delivers goods → Company B receives goods
3. Company A creates Invoice → Company B (auto-created Vendor Bill)
4. Company B pays → Company A receives payment

All matching journal entries are created automatically, maintaining balanced books across both entities.

Transfer Pricing

For inter-company sales, set up transfer pricing using:

  • Pricelists: Create inter-company pricelists with specific markup/discount rules
  • Fiscal positions: Apply zero-VAT or specific tax treatments for inter-company transactions
  • Dedicated payment terms: Set inter-company payment terms (e.g., net 30 days)

Transfer pricing must comply with local tax regulations. Many jurisdictions require arm's-length pricing for inter-company transactions. Consult an Odoo consultancy partner familiar with your jurisdictions to configure compliant inter-company pricing.

Chart of Accounts Strategy

You have two options for managing charts of accounts across companies:

Option 1: Shared Chart of Accounts

All companies use the same COA structure. This simplifies consolidation reporting but requires the COA to accommodate all companies' needs.

Best for: Companies in the same country with similar business models.

Option 2: Separate Charts of Accounts

Each company has its own COA, potentially with different account codes and structures.

Best for: Companies in different countries with different regulatory requirements or fundamentally different business types (e.g., a manufacturing company and a software company under the same holding).

For consolidation reporting with separate COAs, create a mapping between company-specific accounts and consolidated reporting categories. Odoo's analytic accounting and custom reporting tools handle this mapping.

Consolidated Financial Reporting

Multi-company financial consolidation is one of the primary reasons businesses choose single-database multi-company over separate instances.

Built-In Consolidation

Odoo Enterprise provides multi-company filtering on standard financial reports:

  • Profit & Loss: View individual company results or combined totals
  • Balance Sheet: Per-company or consolidated positions
  • General Ledger: Filter by company or view all entries
  • Trial Balance: Per-company comparison

Eliminating Inter-Company Balances

For true consolidated reporting, inter-company receivables and payables must be eliminated. Odoo handles this through:

  1. Marking inter-company partners with a specific tag or category
  2. Using filtered report views that exclude inter-company transactions
  3. Creating consolidation journal entries that zero out inter-company balances

For complex consolidation requirements (minority interests, currency translation, equity method investments), Odoo customization can build automated consolidation workflows tailored to your corporate structure.

Security and Record Rules

Multi-company data isolation relies on Odoo's record rules system:

Default record rules enforce:

  • Users can only see accounting data (invoices, journal entries, payments) for their assigned companies
  • Inventory operations are filtered by company-specific warehouse assignments
  • Sales and purchase orders are visible only within the user's company scope

Custom record rules you may need:

  • Cross-company product visibility: Allow product managers to see products with their company-specific properties across all entities
  • Executive override: Give C-suite users unrestricted cross-company access for oversight and reporting
  • Restricted inter-company data: Limit which companies can see each other's operational data

Configure record rules under Settings > Technical > Security > Record Rules. Test all rules thoroughly with sample users before production deployment.

Common Multi-Company Challenges

Challenge 1: Shared Contacts with Different Terms

A vendor may supply to multiple companies but with different payment terms, pricelists, or credit limits per company. Use Odoo's company-dependent properties to set per-company values on shared contact records.

Challenge 2: Product Costing Across Companies

The same product may have different costs in different companies (e.g., intercompany markup). Configure company-specific standard costs and accounting accounts on the product form by switching the active company context.

Challenge 3: User Confusion About Active Company

Users who access multiple companies sometimes create records in the wrong company. Mitigate this with:

  • Clear company naming in the switcher (include location or abbreviation)
  • Default company assignment matching each user's primary role
  • Training on checking the active company before creating transactions
  • Color-coded company themes (available via custom CSS or Odoo Studio)

Challenge 4: Report Complexity

Financial reports that span multiple companies and currencies require careful handling of exchange rates and elimination entries. Plan your reporting requirements during initial Odoo implementation to avoid retrofitting later.

Frequently Asked Questions

Q: How many companies can I have in one Odoo database? There is no hard limit. Businesses successfully run 20-50+ companies in a single database. Performance depends on total transaction volume and server resources rather than the number of companies.

Q: Can different companies use different Odoo modules? Yes. Module installation is database-wide, but you can configure modules to be active only for specific companies. For example, Manufacturing may be enabled only for your production entity while all companies use Accounting.

Q: Is multi-company available in Odoo Community Edition? Basic multi-company support (separate companies, per-company data) is available in Community. However, inter-company transaction automation, consolidated reporting, and Odoo Studio customizations require Enterprise Edition.

Q: Can I merge two separate Odoo databases into one multi-company database? Yes, but it requires careful data migration to avoid ID conflicts and maintain data integrity. This is a common scenario when a parent company acquires a new subsidiary. Professional Odoo migration services handle database merges with full data verification.

Getting Started with Multi-Company

A well-configured multi-company setup eliminates the overhead of managing separate ERP instances while providing full data isolation and consolidated visibility. The key is proper planning of your company structure, inter-company rules, and access controls before going live.

Contact ECOSIRE for a multi-company architecture consultation. Our team designs and implements multi-company Odoo environments for holding companies, franchises, and multi-brand organizations. We also provide ongoing support and maintenance to keep your multi-company setup running smoothly as your business evolves.

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