How to Migrate from Tally to ERPNext Without Losing Data
Tally to ERPNext migration step by step — export masters and open balances, map ledgers, import data, and reconcile. Practical guide for Indian SMEs.
Tally to ERPNext migration is one of the most common ERP transitions for Indian SMEs — and one of the most mishandled. Done right, you carry forward your chart of accounts, customer and supplier masters, item list, opening balances, and open invoices without a gap in your books. Done carelessly, you end up with duplicate ledgers, mismatched GST tax heads, and an opening balance that never reconciles. This guide walks you through every stage.
Tally has served Indian businesses well for decades. But when a company grows past roughly 20–30 users, needs role-based approvals, wants a customer portal, or simply requires native GST e-invoicing without a third-party add-on, the limitations become real. ERPNext is the natural destination: it is open source, built for Indian compliance, and runs on the Frappe Framework which makes customisation straightforward.
The migration itself is not technically difficult. The difficulty is in the discipline — deciding a clean cut-over date, mapping every Tally ledger to an ERPNext account, validating opening balances before you go live, and training your finance team on a different workflow.
Quick answer
A Tally to ERPNext migration has four stages: export masters and balances from Tally as XML or Excel; map Tally ledgers to ERPNext's Chart of Accounts; import using ERPNext Data Import; and post opening balances via Journal Entries or the Opening Invoice Creation Tool. Allow four to eight weeks for a clean cut-over.
What to migrate and what to leave behind
The most common mistake is trying to bring everything. Tally may hold ten years of vouchers. Importing all of that into ERPNext creates noise, slows the system, and adds no value — your team will never search for a 2019 payment voucher inside the new ERP.
The right split is this:
Migrate to ERPNext:
- Chart of Accounts (ledger masters and groups)
- Customer and supplier masters (with GST numbers, PAN, addresses)
- Item masters (with HSN codes, UOM, tax categories)
- Opening balances as on the cut-over date
- Open (unpaid) sales invoices and purchase invoices as on the cut-over date
- Open stock — quantities and valuation as on the cut-over date
Keep in Tally (read-only archive):
- All closed, paid invoices before the cut-over date
- Historical payment receipts and journal vouchers
- Old stock movement history
This approach keeps your ERPNext clean, makes the opening balance audit straightforward, and means your CA can still look up a 2023 invoice in Tally without it polluting the new system.
Never run parallel books for more than one month
Running Tally and ERPNext simultaneously for more than four weeks is almost always a mistake. Teams stop updating one system, the two sets of books diverge, and reconciliation becomes a forensic exercise. Set a hard cut-over date, do a final balance export from Tally the night before, and go live the next morning.
Step 1 — Export from Tally
Tally stores all data in a proprietary binary format, but it can export to XML and Excel. For a migration, Excel is usually easier to work with because it can be cleaned in place before import.
How to export ledger masters from Tally Prime:
- Open Tally Prime and go to Gateway of Tally.
- Select Display More Reports → Account Books → Ledger.
- Press Alt+E to export.
- Choose Excel (Spreadsheet) as the format.
- Set the date range to cover all years or select "All Dates."
- Export to a folder on your desktop.
How to export customer and supplier masters:
In Tally Prime, go to Masters → Parties. Filter by Sundry Debtors for customers and Sundry Creditors for suppliers. Export as Excel using the same Alt+E method.
How to export item masters:
Go to Masters → Stock Items, then export. Make sure the export includes HSN code and unit of measure columns — these are mandatory for ERPNext's GST configuration.
How to export outstanding invoices:
Go to Display More Reports → Outstanding Reports → Receivables (for debtors) and Payables (for creditors). Export as Excel. This gives you every open invoice with its original date, amount, and due date.
How to export opening balances:
Run a Trial Balance as on the day before your cut-over date. Export as Excel. This is the single most important export — it becomes the opening Journal Entry in ERPNext.
Step 2 — Map Tally ledgers to ERPNext Chart of Accounts
ERPNext ships with a standard India Chart of Accounts that follows the Schedule III format. Tally ledgers need to be mapped to this structure before import.
The table below covers the most common mappings. Your actual ledger names will differ, but the account type assignment must follow this logic or your financial statements will be wrong.
| Tally Ledger / Group | ERPNext Account Type | ERPNext Parent Account |
|---|---|---|
| Sundry Debtors | Receivable | Accounts Receivable |
| Sundry Creditors | Payable | Accounts Payable |
| Cash-in-Hand | Cash | Cash and Cash Equivalents |
| Bank Accounts | Bank | Cash and Cash Equivalents |
| Sales | Income Account | Direct Income |
| Purchase | Expense Account | Direct Expenses |
| GST Payable (Output CGST/SGST/IGST) | Tax | Duties and Taxes |
| GST Receivable (Input CGST/SGST/IGST) | Tax | Duties and Taxes |
| TDS Payable | Tax | Duties and Taxes |
| Capital Account | Equity | Capital Account |
| Fixed Assets (Furniture, Machinery) | Fixed Asset | Fixed Assets |
| Loans (Liability) | Payable | Loans (Liabilities) |
| Stock-in-Hand | Stock | Current Assets |
| Salary Payable | Payable | Current Liabilities |
| Retained Earnings / P&L (brought forward) | Equity | Retained Earnings |
Pay special attention to GST ledgers. Tally often splits these by state or registration, resulting in dozens of ledgers for the same tax type. In ERPNext, you need one account per tax component (CGST Payable, SGST Payable, IGST Payable, CGST Receivable, SGST Receivable, IGST Receivable). Consolidate before import.
Use ERPNext's India Chart of Accounts template
When creating a new Company in ERPNext, select "India" as the country and it will auto-create a Schedule III-compliant chart. Map your Tally ledgers into this existing structure instead of creating a parallel tree. This saves hours of cleanup and keeps standard GST and TDS reports working correctly.
Step 3 — Import masters using ERPNext Data Import
ERPNext Data Import accepts CSV files. The workflow is: download the import template from ERPNext, paste your cleaned Tally data into the template columns, and upload.
Importing the Chart of Accounts:
- In ERPNext, go to Accounts → Chart of Accounts.
- For each new ledger that does not exist in the default chart, go to the parent account and add a child account manually — or use Data Import with the Account DocType template.
- Download the template: Data Import → New Import → Select DocType: Account → Download Template.
- Paste your mapped ledger names, account types, and parent accounts.
- Upload and review errors.
Importing Customer and Supplier masters:
- Go to Data Import → New Import → DocType: Customer (then repeat for Supplier).
- Download the template. Mandatory columns: Customer Name, Customer Group, Territory, GSTIN, PAN.
- Paste from your Tally export. Map Tally's "Sundry Debtors" entries to Customer Group: "Commercial" or your preferred group.
- Upload. ERPNext will flag duplicate names — resolve before proceeding.
Importing Item masters:
- DocType: Item. Mandatory columns: Item Code, Item Name, Item Group, Stock UOM, HSN/SAC code, Is Stock Item.
- If items carry valuation, include Valuation Rate.
- For items with GST, set the correct Item Tax Template (typically GST 18% or GST 5% depending on HSN).
Step 4 — Post opening balances
Opening balances are posted as on the cut-over date — the last day you used Tally. Everything before this date is history. Everything on this date becomes the starting point in ERPNext.
Journal Entry for balance-sheet accounts:
- Go to Accounts → Journal Entry → New.
- Set the posting date to your cut-over date.
- Set the Entry Type to "Opening Entry."
- For each account in your Trial Balance export: debit assets, credit liabilities and equity.
- The entry must balance to zero. If it does not, your Trial Balance export has an error — go back to Tally and recheck.
Opening invoices via the Opening Invoice Creation Tool:
For unpaid sales invoices (debtors) and purchase invoices (creditors), do not create a Journal Entry. Use the dedicated tool instead.
- Go to Accounts → Opening Invoice Creation Tool.
- Select Invoice Type: Sales (for debtors) or Purchase (for creditors).
- Fill in: Customer/Supplier name, invoice number, invoice date, due date, outstanding amount, and applicable GST components.
- ERPNext will create the invoice and post it against the correct receivable or payable account automatically.
This approach preserves the invoice-level ageing detail, which means your Debtors Ageing report on day one of live operations will already show the correct outstanding amounts and due dates.
Opening stock:
- Go to Stock → Stock Reconciliation → New.
- Set Purpose to "Opening Stock."
- Set the posting date to your cut-over date.
- Upload a CSV with Item Code, Warehouse, Quantity, and Valuation Rate.
- ERPNext will post the stock entry and debit the Stock-in-Hand account automatically.
Step 5 — Reconciliation and verification
Before issuing any live transaction, run these checks:
-
Trial Balance match: Export a Trial Balance from ERPNext as on the cut-over date. It should match your Tally Trial Balance line by line for every balance-sheet account. Investigate any difference of more than one rupee.
-
Debtors Ageing: Compare ERPNext's Accounts Receivable Ageing report with Tally's Outstanding Receivables report. Total outstanding should match. Invoice-level differences usually indicate a missing opening invoice.
-
Creditors Ageing: Same check for Accounts Payable.
-
Bank balances: Reconcile each bank account against your bank statement as on the cut-over date. Bank accounts are a common source of rounding errors during export.
-
GST ledgers: The sum of Input CGST + Input SGST + Input IGST in ERPNext should match Tally's ITC balance. Output tax heads should match the GST liability in Tally.
-
Stock value: ERPNext's Stock Balance report total valuation should match the Stock-in-Hand account in the Trial Balance.
Common pitfalls and how to avoid them
Duplicate ledger names: Tally allows ledgers with names that differ only by spacing or capitalisation. ERPNext does not deduplicate automatically. Clean your Tally export in Excel using TRIM and PROPER before import, and run a duplicate check.
GST mapping errors: Tally often has separate ledgers for CGST 9%, SGST 9%, IGST 18% — and possibly duplicate sets for different registrations. ERPNext expects a single set of tax accounts per company. Consolidate all CGST payable into one account before import.
Rounding differences: Tally calculates GST on each line item and rounds differently from ERPNext in some edge cases. If your opening Journal Entry is off by a few paise, add a rounding account to balance — do not adjust individual ledger balances.
Period cut-over on a month boundary: Cut over at the start of a financial month, not mid-month. Mid-month cut-overs require splitting GST returns and create reconciliation headaches.
Item codes vs item names: Tally uses the item name as the primary key. If two items have similar names, ERPNext may treat them as the same. Assign explicit item codes in your import CSV.
Missing HSN codes: Every item in ERPNext needs an HSN or SAC code for e-invoicing and GSTR-1. If your Tally item master does not have HSN codes, collect them before migration — not after go-live.
For a typical Indian SME with 500–2,000 ledger entries, a well-prepared migration takes four to eight weeks end-to-end: two weeks of data preparation and mapping, one week of test imports on a staging instance, and one week of parallel verification before the hard cut-over. Mith Tech runs Tally to ERPNext migrations for Indian SMEs in Bengaluru and across India, typically in the ₹2–8 lakh range depending on data complexity and the number of entities.
See also: ERPNext implementation cost in India — a transparent breakdown and ERPNext products overview.
Need help with your Tally migration?
We handle the full migration — data export, mapping, import, reconciliation, and go-live support — so your team does not have to learn it by trial and error.
Talk to our migration teamFrequently asked questions
How long does a Tally to ERPNext migration take?
For most Indian SMEs, four to eight weeks is realistic. The bulk of the time is data preparation — cleaning Tally exports, mapping ledgers, and validating the test import on a staging instance. The actual go-live switch takes a single day if the preparation is thorough.
Can I keep my Tally data after migrating to ERPNext?
Yes. Tally and ERPNext are separate systems. Your Tally installation and data remain intact as a read-only historical archive. You are not deleting anything from Tally — you are simply starting all new transactions in ERPNext from the cut-over date.
Will my GSTR-1 and GSTR-3B data carry over?
No, and that is the correct approach. Past GST returns are filed and closed. ERPNext will generate GSTR-1 and GSTR-3B from the first transaction posted after your cut-over date. Your historical returns remain in Tally and the GST portal.
What happens to Tally TDL customisations during migration?
Tally TDL customisations do not migrate. They are Tally-specific code. In ERPNext, equivalent customisations are built using Custom Fields, Custom Scripts, or Frappe apps. List your TDL customisations early in the project — some are trivial to replicate, others need development effort.
Can ERPNext handle the same number of ledgers as Tally?
ERPNext handles large Charts of Accounts without performance issues. However, most businesses discover during migration that their Tally chart has accumulated hundreds of duplicate or unused ledgers over the years. The migration is a good opportunity to rationalise to a clean, purposeful chart.
Is ERPNext GST e-invoicing compliant out of the box?
Yes. ERPNext generates IRN (Invoice Reference Number) and QR codes via the Government's IRP API natively, without requiring a third-party plugin. GST configuration — tax templates, HSN codes, GSTIN on company and party masters — must be set up correctly, but once it is, e-invoicing is automatic.
Written by
Manoj
Founder of Mith Tech, an open-source ERP & automation studio. Hands-on ERPNext/Frappe implementation across multi-branch, multi-warehouse Indian operations — GST/TDS/PT compliance, branch-level permissions, and custom Frappe apps that give management real-time visibility.
Keep reading
Get real-time secondary sales visibility in ERPNext
Book a free distribution & secondary-sales consultation. We deploy ERPNext on infrastructure you own — no per-user licence fees.
Manoj
Comments
No comments yet. Start a new discussion