This guide covers chart of accounts for production Indian teams — recipes, decision frameworks, and step-by-step fixes you can copy into a real project. Every messy audit we get called into shares one root cause: a the rollout invented ledger-by-ledger, in a hurry, by whoever needed the next account. Schedule III then demands a balance sheet the chart cannot produce. This post ships the fix — a 118-account this option for Indian companies, importer-ready for ERPNext, with every ledger pre-mapped to its Schedule III head. GST ledgers carry the exact names india_compliance expects. The MSME payables split is built in. And the import recipe covers the one sequencing rule that locks people out.
A this setup is the one thing in an ERP you cannot quietly fix later — every posted entry hardens it. I am Manoj, ERPNext and Frappe implementation lead at MithTech in Bengaluru. The tree below is the starting chart we deploy for Indian trading and manufacturing clients.
Where do you get the chart?
Two files, same 118-account tree. The CSV is in ERPNext's exact importer format; the Excel adds the Schedule III mapping column and the Read-Me.
The India Schedule III this workflow — ERPNext this setup Importer CSV plus an Excel workbook with per-ledger Schedule III mapping.
What does the structure look like?
Five roots, Schedule III groupings under each, and the ERPNext account types where the system needs them. Click through:
The chart's structure as a clickable tree — every node shows its Schedule III head and, where relevant, the ERPNext account type it must carry.
How does Schedule III work in reverse?
A the process succeeds when the statutory statements fall out of it untouched. Schedule III of the Companies Act 2013 fixes the presentation; the chart's job is to feed it. The mapping at group level:
12 rows · click a column to sort
| Chart block | ||
|---|---|---|
| 3100 Share Capital · 3200 Reserves & Surplus | Shareholders' funds | Retained Earnings receives the P&L close |
| 2110 Long-term Borrowings · 2120 DTL · 2130 LT Provisions | Non-current liabilities | Gratuity sits in 2130 |
| 2211 CC/OD | Short-term borrowings | — |
| 2221 / 2222 Sundry Creditors | Trade payables — MSME / others | The split Schedule III demands |
| 2230 Duties and Taxes · 2240 Other CL · 2250 ST Provisions | Other current liabilities & provisions | 2246 holds current maturities of LT debt |
| 1110 PPE · 1120 Acc. Dep. · 1130 CWIP · 1140 Intangibles | Non-current assets | Classes align with depreciation schedules |
| 1210 Inventories (RM/WIP/FG/Stores/Traded) | Inventories | Stock-type ledgers, warehouse-mapped |
| 1221 Sundry Debtors · 1229 Provision | Trade receivables | Ageing disclosures read from here |
| 1231 Cash · 1232 Bank | Cash and cash equivalents | — |
| 1240 GST Input · 1250 ST Advances · 1260 Other CA | Other current assets | ITC cluster lives at 1240 |
| 4100 Revenue from Operations · 4200 Other Income | P&L income heads | Scrap sales = other operating revenue |
| 5100 COGS · 5200 Employee · 5300 Finance · 5400 Dep. · 5500 Other | P&L expense heads | Round Off and FX Gain/Loss under 5500 |
Pick any head and see its ledgers with the reasoning:
Six Schedule III lines that trip up chart design — trade payables, inventories, statutory dues, borrowings, PPE, GST credits — each mapped to its ledgers.
Three design decisions worth defending to your CA. Current maturities of long-term debt get their own ledger (2246) under other current liabilities — Schedule III explicitly keeps them out of short-term borrowings. Statutory dues cluster under one group (2230) — CARO reporting and auditor requests become a single drill-down. And the provision for doubtful debts sits as a contra under trade receivables (1229), so the net receivable reads straight off the trial balance.
Where the standards agree — and where India is specific
No major regime prescribes a the platform. They prescribe presentation, and the chart is how you get there efficiently.
- India — Schedule III, Companies Act 2013: fixed statement formats. Division I for AS companies, Division II for Ind AS companies. Division II reshuffles some heads (financial assets/liabilities replace the loans-and-advances style) — Ind AS filers relabel the mapping column, not the ledgers.
- IFRS — IAS 1: requires current/non-current classification and minimum line items, but no mandated format. This chart's current/non-current spine satisfies it directly.
- UK GAAP — FRS 102 (Sections 4–5): statement formats derived from the Companies Act 2006 — again presentation-level, not chart-level.
- US GAAP: no statutory chart or format for private companies; classified balance sheets are convention. The same tree works; only the mapping column changes.
The convergence is the point: build the chart once around classified presentation, and only the mapping labels change per regime. Confirm Division I vs II applicability with your CA before adopting the mapping column as-is.
What numbering survives growth?
The numbering rules in this chart are boring on purpose:
- Four-digit blocks per root — 1000 assets, 2000 liabilities, 3000 equity, 4000 income, 5000 expenses.
- Groups end in zero, leaves don't — the number tells you at a glance whether postings belong there.
- Leave gaps everywhere — 1250 and 1260 exist so 1255 never has to be invented under pressure.
- Never renumber a posted ledger — ERPNext prints the number in statements, so a renumber ripples through every historical report.
- Never reuse a retired number — old reports keep referring to it. Add inside the gaps instead.
How does The ERPNext import work, step by step?
ERPNext ships a standard India chart (in_standard_chart_of_accounts.json), and it is fine. This one earns its keep through the Schedule III mapping, the MSME split and the GST alignment. Getting it in cleanly is a sequencing exercise:
The import sequence, the exact CSV column spec, a post-import health-check script, and an n8n drift watch for multi-company groups.
The CSV columns match ERPNext's own template generator exactly: Account Name, Parent Account, Account Number, Parent Account Number, Is Group, Account Type, Root Type, Account Currency. That spec comes from chart_of_accounts_importer.py — get_template at line 325, checked at v16.28.0. Account types are set only where ERPNext's machinery depends on them: Bank, Cash, Receivable, Payable, Stock, Fixed Asset, Accumulated Depreciation, Depreciation, Cost of Goods Sold, Round Off, Stock Received But Not Billed, Stock Adjustment.
Pre-flight: three things before you import
First — the company must have no ledger entries. The importer refuses otherwise, and people discover this after posting one test invoice. Import first, transact later. Second — india_compliance creates GST accounts on company creation (overrides/company.py:102–112 creates "Input Tax CGST", "Output Tax IGST" and the RCM variants). This chart uses identical names so the sets align — but check for duplicates before the first transaction, and keep exactly one set. Third — company defaults don't set themselves. Point Round Off, Exchange Gain/Loss, Stock Adjustment and SRBNB at the imported ledgers. Skip that, and the first stock transaction fails with an opaque missing-account error.
Accounts designs, everyone else requests
Charts decay through casual ledger creation. The controls that keep this one clean:
- One owner. The finance controller owns the tree. Everyone else raises a request naming the Schedule III head the new ledger feeds — if they can't name it, the ledger doesn't exist yet for a reason.
- Role permissions enforce it. Account creation is restricted to the accounts manager role in ERPNext — casual ledgers are a permissions bug, not a culture problem.
- Group companies share the tree. Identical charts across entities are what make ERPNext's consolidated statements usable — our multi-company guide covers the setup. The n8n drift watch above catches subsidiaries quietly forking it.
- Masters carry the compliance load. Supplier groups drive the MSME/others split, item masters drive HSN reporting, and the GST ledgers reconcile monthly against returns. The chart holds it together; the masters do the work.
A chart policy you can lift into your SOP
the system Policy (draft — for CA / auditor review): The chart is owned by the finance controller; Account-creation permission is restricted to the accounts manager role. New ledgers require a named Schedule III head and are created inside the numbering gaps — posted ledgers are never renumbered, retired numbers are never reused. Trade payables are maintained as MSME and Others; supplier MSME status is verified at onboarding against the Udyam registration and reviewed annually. GST ledgers exist as exactly one set, named per india_compliance convention, reconciled to returns monthly. Group companies run the identical chart; drift is reviewed monthly and consolidation is blocked until resolved. The chart is fixture-exported quarterly so its history lives in version control. Ratify with your CA — Division II (Ind AS) filers and regulated industries need additional heads.
Should you choose Import now or inherit the mess?
| Fix at go-live (cheap) | Fix after a year of postings (expensive) |
|---|---|
| Import a Schedule III-shaped chart on day one | Re-map hundreds of ledgers to heads at audit time |
| Two creditor ledgers for the MSME split | Vendor-by-vendor MSME classification each March |
| One GST ledger set, india_compliance-aligned | Merge duplicate tax ledgers with live balances |
| Numbering gaps left for growth | Renumber — and break every saved report and comparison |
FAQ
+What is a this guide in accounting?
The complete, structured list of every ledger a company posts to — assets, liabilities, equity, income and expenses — organised as a tree. Every transaction lands in exactly one leaf ledger, and financial statements are produced by rolling the tree up. Design it around your reporting format and the statements assemble themselves.
+Is there a standard this workflow for Indian companies?
No statute prescribes one. Schedule III of the Companies Act prescribes the financial-statement format, and a good chart is that format worked backwards into ledgers. That is exactly how the template in this post is built. ERPNext also ships a generic India chart; this one adds the Schedule III mapping, MSME split and india_compliance-aligned GST ledgers.
+How many ledgers should a chart have?
This template's 118 accounts cover a typical trading or manufacturing SME. Under ~80 usually means statutory detail is missing. Several hundred usually means customers or projects were created as ledgers — those belong in ERPNext's party and dimension features, not the chart. Grow inside the numbering gaps as needed.
+Is the MSME trade payables split mandatory?
Yes — Schedule III requires trade payables to be disclosed separately for micro and small enterprises versus others, and MSME payment-delay reporting has its own consequences. Two creditor ledgers plus supplier tagging at onboarding make the disclosure a report instead of a year-end investigation.
+Can I import this chart into an existing ERPNext company?
Only if that company has no ledger entries yet — the Chart of Accounts Importer refuses otherwise. For a live company, the path is a new company with the clean chart plus opening balances, or incremental restructuring with your accountant. The importer lockout is why the chart decision belongs at go-live.
+Should group companies use the same chart of accounts?
Yes. ERPNext's consolidated financial statements and inter-company workflows assume aligned charts — differing trees make consolidation a spreadsheet job. Import the same chart into every entity and watch for drift; the n8n recipe in this post automates the watch.
What happens if my chart doesn't match Schedule III?. The books still balance — the pain arrives at reporting. Statement preparation becomes a manual re-mapping exercise each year, auditors bill for the archaeology, and disclosures like the MSME split or statutory dues need transaction-level digging. A misaligned chart costs a few days every year, forever.
Which ERPNext version does this template apply to?. The CSV matches the Chart of Accounts Importer format in ERPNext v16.28.0, and GST ledger names match india_compliance v16.6.0 — both also hold for v15. Schedule III itself is software-independent; the Excel mapping works whatever system you post in.
What related issues might you also hit?
- ERPNext multi-company setup — running the same chart across group entities, and what consolidation needs.
- GST invoice format and mandatory fields — the document-level compliance this chart's GST ledgers feed.
- GST return filing from ERPNext — the monthly reconciliation between these ledgers and your returns.
What is the bottom line?
A chart of accounts is infrastructure: invisible when right, expensive forever when wrong. This one is Schedule III worked backwards, GST-aligned, MSME-ready, and importable in fifteen minutes. Import it before the first transaction, set the defaults, run the validator — and statutory reporting becomes something your ERPNext instance prints rather than something your CA reconstructs.
Want the chart adapted and imported for you?
We adapt this chart to your industry with your CA, import it across group companies, wire the defaults and dimensions, and hand over books that produce Schedule III statements on demand — one fixed-scope engagement.