Back to all articlesAccounting

Bulk-Updating Your Chart of Accounts in Odoo via Spreadsheet Import

How HK SMEs can edit, add, and retire accounts in Odoo at scale using export-and-import — plus the one account you must never touch: Current Year Earnings.

APAA
Bulk-Updating Your Chart of Accounts in Odoo via Spreadsheet Import

At APAA, a common moment in a Hong Kong SME's Odoo journey arrives a few months after go-live: the chart of accounts needs tidying. New expense categories have appeared, a few accounts were never used, and some names no longer reflect how the business actually books things. Editing those one screen at a time in Odoo is fine for a handful of changes — but for a real clean-up across dozens of accounts, it is slow and easy to get wrong.

The faster route is spreadsheet import. You export your existing chart, make all your edits and additions in the familiar spreadsheet environment your bookkeeper already lives in, then push every change back into Odoo in one pass. This guide walks through the full cycle — export, edit, add, retire, re-import — and flags the one account you must leave strictly alone.

Why Use Spreadsheet Import

Editing accounts individually works when you have small changes. But a business with a large chart of accounts needs a method that scales. Spreadsheet import lets you make bulk edits and additions where reviewing a hundred rows takes a glance, then apply them all to Odoo at once — far quicker, and far easier to sanity-check, than clicking through each account in turn.

Step 1: Export Your Current Chart of Accounts

Begin by pulling your existing accounts out of Odoo.

  1. Open the Accounting app
  2. Go to Configuration > Chart of Accounts

Accounting app Configuration menu showing Chart of Accounts option

  1. Tick the top checkbox to select the accounts on screen, then click Select All to include every page

Selecting all accounts in the Chart of Accounts list view

  1. Click Actions > Export

Actions dropdown menu with Export option highlighted

  1. Tick I want to update data — this is the critical step. It tells Odoo you are updating existing accounts, not creating duplicates of them

Export dialog with I want to update data checkbox enabled

Building a Reusable Export Template

While you are here, set up an export template containing only the fields you need, and save it for next time:

  • Code — the account number
  • Account Name — the display name
  • Type — the account category (expenses, income, and so on)
  • Allow Reconciliation — whether the account supports reconciliation
  • Deprecated — whether the account is inactive

Export template with selected fields: Code, Account Name, Type, Allow Reconciliation, Deprecated

Drop fields with the trash icon, add them with the plus icon, then save the template so the next clean-up is even quicker.

Step 2: Edit Accounts in the Spreadsheet

Open the exported file in your spreadsheet application. You will see the fields you chose, plus an External ID column that Odoo uses internally to recognise each record.

Exported chart of accounts opened in a spreadsheet application

Columns to Leave Alone

Mark these two columns read-only so nobody changes them by accident:

  • External ID — Odoo's internal identifier for existing records. Change it and Odoo can no longer match the row to the right account
  • Account Type — altering this on an existing account can throw off your reports

Spreadsheet with ID and Account Type columns highlighted as read-only

What You Can Freely Edit

These are safe to change as much as you like:

  • Account names
  • Reconciliation settings
  • Deprecated status

A Note on Account Codes

Whether you can change account codes depends on the accounting standards of the jurisdiction you operate under:

  • In Belgium, France, and similar jurisdictions: the leading digits of the code determine how accounts group in reports — so do not change the leading digits.
  • In other countries: only the account type drives reporting, so codes can be edited more freely.

Check the rules that apply to you before touching any account code.

Step 3: Add New Accounts

To add an account, scroll to the bottom of the spreadsheet and fill in a new row:

FieldWhat to enter
CodeA unique account number
Account NameA descriptive name
TypeThe account category (for example, Expenses)
Allow ReconciliationTRUE or FALSE
DeprecatedFALSE
External IDLeave blank — Odoo assigns one automatically

New account row added at the bottom of the spreadsheet with fields filled in

A practical tip: if you are not sure what account type or reconciliation setting a new account should have, find the most similar existing account and copy its configuration. It is the safest way to keep your new account behaving like its peers.

Step 4: Retire Accounts You No Longer Use

If certain accounts are no longer needed, set their Deprecated column to TRUE rather than deleting them. This matters: deleting an account that has already been used in journal entries can trigger errors. Deprecating it keeps the history intact while removing the account from active use.

Step 5: Import the Updated Spreadsheet

With your edits done:

  1. Save the spreadsheet file
  2. In Odoo, go to the Chart of Accounts list view
  3. Click the Import button
  4. Choose Import Chart of Accounts

Import options showing Import Chart of Accounts selection

  1. Click Upload File and select your spreadsheet

Upload file dialog for importing the spreadsheet

  1. Wait for the validation message — a blue "Everything seems valid" confirmation means your data is clean and ready

Blue validation message showing Everything seems valid

  1. Click Import

Once imported, browse through your chart of accounts to confirm every change landed correctly. Do not skip this check — a quick scan is what catches a mis-mapped column before it becomes a reporting problem.

Chart of accounts showing the newly imported miscellaneous expenses account

The One Account You Must Never Touch: Current Year Earnings

Odoo ships with a special account whose type is Current Year Earnings. This account automatically sums all your income and expense accounts at the end of the fiscal year — it is the mechanism behind your year-end close. Treat it as off-limits:

  • Do not rename, deprecate, delete, or otherwise modify this account
  • Do not create a second account with the same type

Tampering with this account — or duplicating its type — will break your year-end closing process. This is the single most important rule in this whole exercise, so make sure whoever edits the spreadsheet knows to leave that row exactly as it is.

Summary

Bulk-updating your chart of accounts through spreadsheet import saves real time over editing accounts one by one. The cycle:

  1. Export with I want to update data enabled
  2. Edit names, reconciliation, and deprecation status in the spreadsheet
  3. Add new accounts at the bottom with unique codes
  4. Deprecate unused accounts rather than deleting them
  5. Re-import the file into Odoo and verify

Done this way, your chart of accounts stays accurate and current without the tedium of one-by-one edits — and your year-end stays clean because the Current Year Earnings account is left untouched.

If your chart of accounts needs restructuring to match how your Hong Kong business actually reports — or you would simply like the first import done and verified for you — the APAA team can set it up.

Tags:odooaccountingchart-of-accountsimportspreadsheet

Considering Odoo for your business?

Talk to APAA about a tailored Odoo implementation for your Hong Kong SME.

Enquire about Odoo services
Bulk-Updating Your Chart of Accounts in Odoo via Spreadsheet Import | APAA