When a group moves a fixed asset from one of its companies to another, Odoo cannot reassign an asset that has already started depreciating. This guide records the transfer with standard features: close the asset in the company that owns it through a sale or a disposal, then create it again in the receiving company with its depreciation history carried over, so the new schedule continues from the right book value. The steps were verified on Odoo 19.
Below, Company A owns the asset today and Company B receives it.
Before you start
- Version and edition. Odoo 19 Enterprise. Asset management is part of the Assets Management module, which is Enterprise only.
- Apps. The Accounting app. Assets Management installs automatically with it.
- Companies. Both companies are in the same Odoo database and your user has access to both. You switch between them with the company selector in the top bar.
- Access rights. Your Accounting role must be Bookkeeper or Administrator to manage assets. Editing the chart of accounts requires Administrator, and changing Settings requires settings administration rights.
- Terms. An asset is Odoo's record of a fixed asset: its cost, its depreciation settings and its schedule of depreciation entries, shown on the Depreciation Board tab. Book value is the cost minus the depreciation recorded so far. A lock date is a date on or before which Odoo refuses to post entries in a company.
Why the asset cannot simply move
An asset belongs to one company, and its depreciation entries are posted in that company's journal and accounts. The Company field can only be edited while the asset is in Draft, and the Set to Draft button is hidden once the asset has any depreciation entries. The transfer is therefore recorded as two events: the asset leaves Company A, and a new asset arrives in Company B.
Step 1: close the asset in Company A
- Switch to Company A. Open the Accounting app, then go to Accounting > Assets & Liabilities > Assets and open the asset. Its status must be Running for the next button to appear.
- Click Modify Depreciation at the top of the form. A window opens with four actions: Dispose, Sell, Re-evaluate and Pause.
- Choose Sell if Company B is paying for the asset. A Customer Invoice field appears; select a posted customer invoice from Company A addressed to Company B. If the invoice has more than one line, select the line for this asset.
- Choose Dispose if no invoice is involved. Odoo writes the remaining book value off to the loss account.
- Set the Date to the transfer date. A Gain Account or Loss Account field appears, depending on the result. Changing it here also changes Company A's default.
- Click Sell or Dispose.
Odoo posts a final depreciation entry up to and including the chosen date, removes or reverses any depreciation entries scheduled after it, posts the closing entry and opens it. For a sale, the gain or loss is the invoice line amount minus the book value on that date.
On the asset's Depreciation Board tab, note the Cumulative Depreciation on the last line. Company B needs it to carry the history over.
Step 2: recreate the asset in Company B
- Switch to Company B, open the Accounting app, go to Accounting > Assets & Liabilities > Assets and click New. The asset starts in Draft.
- Enter the Original Value and the Not Depreciable Value, and set Method, Duration and Computation to match the asset in Company A.
- Set the Acquisition Date to the date Company A originally acquired the asset, not the transfer date.
- In the Accounting section, choose Company B's Fixed Asset Account, Depreciation Account, Expense Account and journal.
- On the Asset tab, find the Value at Import section and enter Company A's cumulative depreciation in Depreciated Amount.
- Click Compute Depreciation. The Depreciation Board tab appears. Review it, then click Confirm. The status changes to Running.
Odoo deducts the Depreciated Amount from the value still to depreciate. The schedule starts at the acquisition date, the Depreciated Amount absorbs the earliest periods, and Odoo creates no entries for them. The schedule ends at the acquisition date plus the duration, so the asset finishes on its original date. On Confirm, Odoo posts the entries dated up to today and leaves later ones for their dates. Depreciated Amount can only be edited in Draft.
Check that it worked
- In Company A, the asset's status is Closed, and the chatter (the message log on the form) shows "Asset sold" or "Asset disposed".
- In Company B, before you confirm, the Book Value on the Asset tab equals the Original Value minus the Depreciated Amount you entered.
- In Company B, the first line on the Depreciation Board is dated around the transfer date, not the original acquisition date, and the last line falls at the end of the original useful life.
Carry the history over or start fresh
Entering a Depreciated Amount fits a transfer where Company B takes over Company A's cost and accumulated depreciation, usually a reorganisation between companies under common control. For a genuine sale at fair value between separate legal entities, Company B usually records the asset at the price it paid, over a new useful life: leave Depreciated Amount at zero, set the Original Value to that price and use the transfer date as the Acquisition Date. The choice is your accountant's.
Automating part of the transfer
- Inter-company vendor bills. Open the Settings app, find Inter-Company Transactions, enable it and save. Then tick Create Vendor Bills. Company A's posted customer invoices to Company B then appear in Company B as vendor bills, in draft by default.
- Assets created from bills. In the Accounting app, go to Configuration > Accounting > Chart of Accounts, open Company B's fixed asset account and go to the Automation tab. Set Automate Asset to Create in draft, or to Create and validate, which also requires an asset model (a saved template of depreciation settings). When a vendor bill with a line on that account is posted, Odoo creates the asset with the bill date as its acquisition date.
The inter-company feature has no asset logic: it does not close the asset in Company A or carry depreciation across. The mirrored bill line takes its account from Company B's own defaults, not from Company A's invoice, so check that it sits on the fixed asset account before posting, or no asset is created. When carrying history over, use Create in draft so you can set the Acquisition Date and Depreciated Amount before confirming.
Pitfalls to watch for
- Lock date. Odoo refuses to sell or dispose of an asset on or before Company A's Global Lock Date or Hard Lock Date. Choose a later transfer date or have the lock date changed.
- Draft invoices. Sell only lists posted customer invoices that belong to Company A. Post the invoice first.
- Value increases. If the asset has a running value increase, Odoo will not create the sale entry automatically; dispose of the increase first.
- Odoo 20. The asset form is reorganised, but the Company lock, the hidden Set to Draft button and the lock date check still apply.
Steps verified on Odoo 19. Menus and labels can differ on other versions.
Common questions
Can I change the company on an asset in Odoo after depreciation has started?
No. The Company field on an asset can only be edited while the asset is in Draft, and Odoo hides the Set to Draft button once the asset has depreciation entries. To move it, close the asset in the company that owns it and create a new asset in the receiving company.
How do I keep the accumulated depreciation when moving an asset to another company in Odoo?
Create the asset in the receiving company in Draft, use the original acquisition date, and enter the accumulated depreciation in Depreciated Amount under Value at Import on the Asset tab. Odoo absorbs that amount in the earliest periods, so the schedule continues from the right book value and ends on the original date.
What is the difference between Sell and Dispose for an Odoo asset?
Sell links a posted customer invoice and records the difference between the invoice amount and the asset's book value as a gain or loss. Dispose closes the asset without an invoice and writes the remaining book value off to the loss account.
Do Odoo inter-company rules transfer fixed assets automatically?
No. With Create Vendor Bills enabled, a customer invoice from one company is mirrored as a vendor bill in the other, but the feature has no asset logic. The asset must still be closed in the selling company, and the new asset is created manually or through the Automate Asset option on the buying company's fixed asset account.
Why does Odoo say I cannot dispose of an asset before the lock date?
Odoo refuses a sale or disposal of an asset dated on or before the company's Global Lock Date or Hard Lock Date. Choose a later date, or have the lock date changed first.
Talk to the team.
If you are setting this up, or Odoo is not behaving the way this guide describes, book a 30-minute call. We will look at your configuration and tell you what it needs. Calgary studio, in-house team, no offshore handoffs.
Book the call →