HADOOPT
TECHNOLOGIES
Schedule a Tech Consultation
Home
Services
Odoo ERP implementation Rollout, custom modules, migration and support. Web application development SaaS products, portals and internal platforms. Mobile application development Offline-first field apps and customer apps. AI development & automation LLM assistants, document processing, forecasting. Odoo version upgrades ↗ Move to a newer release, scoped and priced on its own site.
Products
OrgExp ↗ Budget, CAPEX and OPEX management.
Blog About Contact Schedule a Tech Consultation
Blog / Odoo 19: Complete Guide for Businesses
Odoo 19 6 min read

Setting up accounting in Odoo 19: localisation, chart of accounts and journals

How to set up Odoo 19 accounting in the right order: fiscal localisation, chart of accounts, journals, fiscal years, lock dates and opening balances.

· ERP practice 22 Sep 2026

Set up Odoo 19 accounting in this order: confirm the company country so the right fiscal localisation loads, trim the chart of accounts it creates, add your bank journals, set the fiscal year and lock dates, and only then load opening balances. For an Indian company the l10n_in package gives you a 102-account chart, GST taxes and fiscal positions out of the box. Most of the rework we see comes from posting entries before these foundations were settled.

Community Invoicing versus Enterprise Accounting

The Community edition's accounting app is called Invoicing (module account). It is a real double-entry ledger: chart of accounts, taxes, journals, invoices, bills, payments and journal entries. What it does not have is the working layer that finance teams live in day to day.

Enterprise adds that layer in two steps. account_accountant (still labelled Invoicing) installs automatically in Enterprise and brings the bank reconciliation screen, lock dates, fiscal years and deferred revenue and expense entries. It pulls in account_reports (the P&L, balance sheet, aged reports and tax report) and account_followup. The Accounting app itself (module accountant) sits on top and adds assets, budgets and the full accountant menus.

NeedCommunity (Invoicing)Enterprise
Chart of accounts, taxes, journalsYesYes
Invoices, bills, payments, credit notesYesYes
Indian GST taxes, TDS/TCS, e-invoice, e-way billYes (l10n_in, l10n_in_edi, l10n_in_ewaybill)Yes
Bank reconciliation screen, statement importNoYes
Financial reports, follow-ups, lock dates wizardNoYes
Assets, GSTR-1/2B filing workflowNoYes

If an external CA keeps your books in their own software and you only need to invoice and track payments, Community can work. If your team closes the month in Odoo, you need Enterprise. Pricing is on odoo.com/pricing.

Choosing the fiscal localisation package

Odoo picks the localisation from the company's country. For India, l10n_in (Indian - Accounting) installs automatically with the accounting app. The package it loads is shown under Settings, in the Fiscal Localization block, as the Package.

For India it creates:

  • A single chart template with 102 accounts and six-digit codes. Receivables go to Debtors (10040) by default.
  • GST taxes as groups: "18% GST S" is SGST 9% plus CGST 9%, and "18% IGST S" is the inter-state version. Rates go up to 40%, and there are export, SEZ and LUT variants, reverse-charge taxes, and TDS and TCS taxes.
  • Fiscal positions: Within your state, Inter State, SEZ, Export and the two LUT positions. The first two apply automatically based on the customer's state.
  • A fiscal year ending 31 March, per-line tax rounding and the invoice total printed in words.

Shaping the chart of accounts

Start from the localisation chart and adapt it. Don't rebuild it from a blank sheet or copy it line for line from Tally. The template's accounts are already wired to the taxes, the default receivable and payable, the exchange-difference accounts and the tax reports. Replacing them means rewiring all of that by hand.

What we usually do:

  • Map the old ledger list to Odoo accounts in a spreadsheet first. Many Tally ledgers are really partners (one ledger per customer) and should become contacts, not accounts.
  • Add accounts only where management reporting needs them, such as separate revenue accounts per business line. For finer cuts, use analytic accounts, not more GL accounts.
  • Check the account type on every new account. It decides where the account lands on the balance sheet or P&L, and whether it can be reconciled.
  • Archive what you won't use rather than deleting it.

The chart lives at Configuration › Accounting › Chart of Accounts. Taxes and fiscal positions sit in the same menu.

Journals: what Odoo creates and what to add

The chart template creates Sales (INV), Purchases (BILL), Miscellaneous Operations (MISC), Exchange Difference (EXCH), Cash Basis Taxes (CABA) and a Bank journal. Add one bank journal per real bank account, each with its account number, so statements and reconciliation stay separate.

Add another sales journal only when you need separate numbering, for example a different invoice series per GST registration or for exports. A journal per salesperson or per product line creates work without adding information; use analytic accounts or sales teams for that. If you run several sets of books on one company, the Multi-Ledger menu groups journals for reporting.

Fiscal years and lock dates

The fiscal year end is a company setting, and for India the default is 31 March. If you have a short first year or an irregular period, Enterprise has a Fiscal Years option in Settings to define periods longer or shorter than twelve months.

Lock dates stop anyone posting into a closed period. In Enterprise, Accounting › Closing › Lock Dates… opens a wizard with separate dates:

  • Lock Sales and Lock Purchases close invoices or bills on their own.
  • Lock Tax Return protects periods whose GST return has been filed.
  • Lock Everything closes all journals up to that date.
  • Hard Lock is permanent and cannot be moved back. Use it only once the auditors have signed off.
Set the tax lock date the day the GST return is filed, not at year end. Most restated returns we see come from a late edit to an invoice in an already-filed month.

Loading opening balances

The accounting onboarding has a Review Chart of Accounts step. It opens the chart with Opening Debit and Opening Credit columns, and Odoo writes those figures into a single opening journal entry. If debits and credits don't match, Odoo adds an "Automatic Balancing Line" to the undistributed profits account. Treat a non-zero balancing line as a mistake to find, not a plug to accept.

  1. Pick the cut-over date, ideally the first day of a fiscal year or a quarter, and take the trial balance from the old system on that date.
  2. Load balance-sheet accounts (bank, fixed assets, GST input and output, loans, equity) through the opening balance columns.
  3. Load customer and vendor balances as individual open invoices and bills, not as one lump on Debtors. Then payments can be matched and aged reports work from day one.
  4. Check the Odoo trial balance against the old one, then post the opening entry and set a lock date on the day before cut-over.

Next in the series: invoicing and customer payments in Odoo 19. If you are planning a Tally-to-Odoo cut-over and want a second pair of eyes on the account mapping, get in touch.

Questions we get asked

Is Odoo 19 Community enough for accounting?

Odoo 19 Community includes the Invoicing app: chart of accounts, taxes, journals, invoices, bills and payments, plus the Indian GST localisation. It does not include the bank reconciliation screen, financial reports such as the P&L and balance sheet, payment follow-ups, lock-date management or assets. Those come with Enterprise. Community suits companies whose books are kept elsewhere by an accountant.

Which chart of accounts does Odoo 19 use for India?

Odoo 19 uses the Indian - Accounting localisation (l10n_in), which installs automatically for companies in India. It loads a single chart template of 102 accounts with six-digit codes, plus GST taxes (CGST, SGST, IGST, cess), TDS and TCS taxes, and fiscal positions for intra-state, inter-state, SEZ and export supplies. The fiscal year is set to end on 31 March.

Can I change the chart of accounts after I start posting in Odoo?

You can add, rename and archive accounts at any time. Switching to a different localisation package after entries exist is not realistic, and the Reload button on the settings page warns that reloading accounting data is irreversible. Settle the country, company state, GSTIN and package before posting the first entry, and adapt the chart from there.

How do I import opening balances into Odoo 19?

Use the Review Chart of Accounts step of the accounting onboarding, which shows Opening Debit and Opening Credit columns for each account and creates one opening journal entry. Load customer and vendor balances as individual open invoices and bills so they can be matched to payments later. If the entry doesn't balance, Odoo adds an automatic balancing line, and that line should be investigated.

← Previous Setting up Helpdesk in Odoo 19 Next → Invoicing and customer payments in Odoo 19
Keep reading
Odoo 19 Bank reconciliation in Odoo 19: feeds, matching and rules 6 min read Odoo 19 GST compliance in Odoo 19: taxes, HSN, e-invoice, e-way bill and GSTR 6 min read Odoo 19 Financial reports, assets and month-end closing in Odoo 19 6 min read