When to Use Multi-Company
Use multi-company when you need separate legal entities within the same Odoo instance: parent company + subsidiaries, multi-country operations, franchise models, or holding companies. Do NOT use multi-company for departments within the same legal entity — use analytic accounts instead.
Setup Steps
1. Create Companies
Settings → Companies → Create. Each company needs:
- Name, address, tax ID
- Currency (can differ per company)
- Logo (appears on documents)
- Chart of accounts (country-specific)
2. User Company Assignment
# Each user can be assigned to one or more companies
# Settings → Users → select user → Allowed Companies
# The user's "current company" determines which data they see3. Inter-Company Rules
Settings → General Settings → Multi-Company → Inter-Company Transactions
- Auto-generate sale/purchase — Sale order in Company A creates purchase order in Company B
- Auto-generate invoice/bill — Customer invoice in A creates vendor bill in B
4. Security Rules
Odoo automatically creates multi-company record rules for standard models. For custom models, add:
class MyModel(models.Model):
_name = 'my.model'
company_id = fields.Many2one(
'res.company',
default=lambda self: self.env.company,
required=True,
)<!-- Record rule: users see only their companies' records -->
<record id="rule_my_model_multi_company" model="ir.rule">
<field name="name">My Model: multi-company</field>
<field name="model_id" ref="model_my_model"/>
<field name="domain_force">
[('company_id', 'in', company_ids)]
</field>
</record>5. Shared vs Company-Specific Data
| Shared | Company-Specific |
|---|---|
| Contacts (res.partner) | Journal entries |
| Products (product.product) | Invoices and bills |
| Users (res.users) | Bank accounts |
| Employees (hr.employee) | Tax configurations |
| Email templates | Sequences (invoice numbers) |
6. Consolidated Reporting
For financial consolidation across companies:
- Ensure consistent chart of accounts structure across subsidiaries
- Use the Consolidation module (Enterprise) for automated consolidation
- Create inter-company elimination journals
- Configure consolidation currency for multi-currency subsidiaries
Common Mistakes
- Forgetting company_id on custom models — Data leaks between companies
- Incorrect default company — Records created in the wrong company
- Missing inter-company rules — Manual duplicate entry for inter-company transactions
- Inconsistent chart of accounts — Makes consolidation impossible
DeployMonkey Multi-Company
DeployMonkey supports multi-company Odoo deployments. The AI agent understands company context — when diagnosing issues, it considers which company's data and configuration is affected.