A growing company gets an entity abroad: a purchasing office in China, a sales point in Germany, an entity in the US. Then the question comes up. Does that country’s accounting run in Odoo too, or do you keep it local and connect it to the group? The answer is a deliberate choice per country. This article lays out that choice and works through the Chinese ledger in detail.
The question behind the question
“Can Odoo handle international accounting?” is quickly answered: yes. Odoo runs multiple entities as multi-company, in multiple currencies and languages, with consolidated reporting. It has fiscal localisation packages for dozens of countries.
The real question is: which country ledger do you put in Odoo, and which do you keep local and connect? That is a strategic choice. The answer differs per country and depends on regulation, the local accountant, the language and practice.
Two models
There are roughly two ways to organise international accounting with Odoo.
Model 1: everything in Odoo, with fiscal localisation per country. You run each entity in Odoo and install the fiscal localisation package per country: the chart of accounts, the taxes and the fiscal positions. This is the cleanest setup: one system, one data model, direct consolidation. It fits countries where Odoo’s localisation is strong and there is no heavy local requirement to book elsewhere. For a German or Belgian entity this is often fine.
Model 2: local accounting local, connected to the group. For some countries it is wiser to keep the accounting local, with an external firm or in local software, because the law, the language or practice call for it. Odoo stays the group system for the operation (purchasing, sales, inventory, projects) and for consolidation. The local ledger is connected via periodic journal entries, a subset of data, or a daily import.
Pick per entity. The mistake is skipping the choice and finding out later that you forced a local tax requirement into a system not built for it, or that you have no group view.
Example: a Chinese entity
China is often written off as “cannot be done in Odoo”. That is wrong. China is the sharpest example of the choice between the two models.
What l10n_cn covers
Odoo ships the fiscal localisation l10n_cn: a Chinese chart of accounts and the associated taxes. With it you book in Odoo according to the Chinese account structure, just as there are localisations for the Netherlands, Germany or the US.
For many companies with a Chinese entity this is the foundation they are looking for: one ERP for the group, with a locally correct ledger for the Chinese site.
Fapiao and Golden Tax
The complexity sits in statutory invoicing. In China, official invoicing runs through fapiao, invoices regulated by the tax authority, and the Golden Tax system (Jinshui), the government platform through which companies issue fapiao and remit VAT.
Fapiao issuance is not fully in the standard Odoo localisation. There are three practical routes:
- OCA modules. The community repository l10n-china (from the Odoo Community Association) contains modules that go beyond l10n_cn, including around fapiao. Useful if you want to stay inside Odoo.
- Third-party connector. A link between Odoo and the Golden Tax system, provided by a local party.
- Issue locally, process in Odoo. You keep issuing fapiao in the Golden Tax software and process the administration in Odoo, with or without a connector.
The right route depends on your fapiao volume and your existing local setup. For a handful of invoices a month, manual processing is fine. At high volume a module or connector pays off.
l10n_cn versus OCA: what is what
The names confuse, so briefly:
- l10n_cn is Odoo’s own official fiscal localisation: chart of accounts and taxes. This is the base.
- The OCA l10n-china modules are community-maintained extensions that pick up where the base stops, for example around fapiao and Golden Tax.
The base always comes from l10n_cn. For specific Chinese requirements you check whether an OCA module or a local connector closes the gap.
Book in Odoo or keep it local?
Two questions decide it.
- Do you have your own accounting capacity in China? With an own accountant or finance team on the ground, booking the Chinese ledger in Odoo is often the best route. You book with l10n_cn, handle fapiao via a module or connector, and get direct consolidation and current figures without waiting for numbers from outside. No separate package alongside.
- Does an external local firm do the books, or do statutory requirements weigh heavily? If the firm already works in its own software, or Golden Tax requirements and filings are hard to fit into Odoo, keep the Chinese accounting local. You connect it to Odoo at figure level for consolidation.
“China = connect” is no default. The operation (orders, purchasing, margins, stock flows) belongs in Odoo regardless. For the accounting you test whether the localisation covers your requirements and whether you have the people on the ground. We saw exactly this scenario recently at a sourcing and import company with entities in China and Hong Kong.
Bank connections across the border
A point that often comes up too late: bank connections do not work the same everywhere. For European banks an automatic connection in Odoo is standard. For banks outside the EU, for example in China or Hong Kong, it is not a given. Test it per bank before you promise anything. If it cannot be automatic, a daily or periodic bank import does the job. Decide that up front so it does not surprise you later.
Where the data runs matters
Connecting accounting across countries also raises the question of where your system runs and who can reach it. If a large part of your team sits in a country with limited access to certain cloud services, the hosting location (for example Singapore versus Europe) becomes a real trade-off. We work that choice out in the hosting guide and in Odoo from China: hosting and self-hosting. The broader approach is in Odoo for international rollouts.
What you need in Odoo
For full international accounting you lean on the heavier side of Odoo:
- Full accounting (bank reconciliation, assets, tax reporting). That is Enterprise functionality, see Odoo Community vs Enterprise.
- Multi-company with intercompany transactions and consolidated reporting.
- Fiscal localisation packages per country where you book in Odoo, plus OCA or partner modules where the localisation stops.
- Multiple currencies and languages in one coherent whole.
- Interfaces for the entities that stay local: journal entries, subset sync or import.
How to approach it
- Map the entities. Per country: which tax requirements, which accountant, which language, which bank.
- Determine the model per entity. Book in Odoo (with localisation) or keep local and connect.
- Check the gaps in the localisation. For China: how you handle fapiao and Golden Tax.
- Test the bank connections per bank, with import as a fallback.
- Design the consolidation at group level, with intercompany and elimination.
- Weigh the hosting location if part of your team has limited cloud access.
In short
International accounting with Odoo is an architecture question: which country ledger do you put in Odoo, and which do you keep local and connect to the group? Odoo delivers the multi-company, the localisations and the consolidation. Your job is to choose the right setup per entity. For China, l10n_cn gives you the chart of accounts and taxes, and OCA modules, a connector or a local setup cover fapiao and Golden Tax. With own accountants, book in Odoo. With an external firm or heavy statutory requirements, keep it local and connect. Either way you get one group view.
Do you have a foreign entity and are unsure about the setup? Schedule a no-obligation Quickscan and we will map your entities, your tax requirements and the best connection strategy.
Read more: Odoo for international rollouts · Odoo from China: hosting and self-hosting · Odoo for procurement, sourcing and import companies · Odoo hosting and data residency international · Odoo Community vs Enterprise · What does an Odoo implementation cost?