ATS Global
ERPNext · Migration · Tally / Excel / legacy ERP

Tally to ERPNext migration, reconciled to the last trial balance

A migration is not an import. It is the point where your finance team decides whether to trust the new system, and they decide on one question: does the opening trial balance tie out, party by party, item by item, warehouse by warehouse? We migrate from Tally, Excel, Busy and legacy ERPs to ERPNext with that reconciliation as the deliverable, run both systems in parallel for a closing period, and switch the old one off only when finance says so.

Appistoki logo
Capgemini logo
Careedge Global logo
CES logo
Cignex logo
EngineersMinds logo
Fulcrum logo
IGT Solutions logo
InfoBeans logo
ITC logo
Knowarth logo
Larsen & Toubro logo
Lister logo
Ness logo
NetSol logo
PodEngine logo
Raising logo
Sharp logo
Triton logo
Wego logo
Wipro logo
Xebia logo
1reconciliation pack finance signs before the first live transaction
6migrations we run, from Tally to a new ERPNext version
1 monthparallel close on both systems before the old one is switched off
0unexplained differences accepted in the opening trial balance

What a migration covers

The six migrations we run, from Tally to a new ERPNext version

Most migrations are one workstream inside an ERPNext implementation; some — a version upgrade, a move between clouds — are projects of their own. All of them use the same discipline: clean the masters first, migrate as of a cut-over date, reconcile before anyone transacts, and keep the old system readable until the audit no longer needs it.

Tally to ERPNext

Ledgers, groups, stock items, godowns, cost centres, GST details and vouchers extracted from Tally Prime or Tally ERP 9, mapped onto ERPNext's chart of accounts, parties, items and warehouses, and loaded as of a cut-over date with reconciliation to the last Tally trial balance.

Excel, Busy, Zoho & legacy ERPs

Spreadsheet-run companies, Busy and Zoho Books, and older ERPs with or without an export — masters, balances and history extracted through exports, database reads or, where nothing else exists, structured data-entry with validation. Prem Plumbings moved off spreadsheets and standalone tools this way.

Master-data cleansing

Customers, suppliers, items, accounts and employees de-duplicated, standardised and enriched — GSTIN and PAN validated, HSN/SAC codes assigned, units and item groups rationalised — with your team signing off the cleaned masters before anything is loaded.

Opening balances & reconciliation

Trial balance by account, receivables and payables at invoice level so payments can be matched, stock quantities and valuation by warehouse and batch, bank balances, fixed assets with accumulated depreciation — each reconciled to the old system in a report finance signs.

Transaction history

As much history as reporting actually needs — opening balances only, the current financial year, or several years — loaded as ERPNext documents with the old voucher numbers kept for traceability, and the rest archived and searchable rather than migrated.

Version upgrades & re-hosting

ERPNext v12, v13 or v14 to v15 with custom apps tested on a staging site first; moves between Frappe Cloud, your cloud account and on-premise; database, files and private files carried over with a rehearsed cut-over and a rollback plan.

Why migrations fail

Where ERP migrations go wrong, and why we treat migration as its own workstream

Implementations rarely fail on configuration; they fail in the first month-end, when the numbers do not match. The causes are predictable. An opening balance that does not tie to the old trial balance, so every report starts with an unexplained difference. A stock ledger that begins a week after cut-over, so valuation is wrong from day one. A customer master with three spellings of the same company, so receivables split across them. Receivables migrated as one lump per party, so no payment can be matched to an invoice and ageing is meaningless. Tax details missing on masters, so the first GST return is prepared by hand — exactly what the ERP was bought to stop.

Each of those is a migration problem, not a software problem, and none of them is visible in a demo. That is why migration is a workstream of its own in every ERPNext project we deliver, with its own plan, its own owner on your side — usually the person who closes the books — and its own deliverable: a reconciliation pack that finance signs before the first live transaction is entered. At Prem Plumbings the masters and opening balances were migrated rather than re-keyed, and the rollout was staged module by module, so the business kept trading and finance never started a period with a difference it could not explain.

Tally to ERPNext

Tally to ERPNext, step by step

Tally is our most common starting point, and it maps onto ERPNext better than its reputation suggests once the structural differences are understood. Tally's ledgers are both accounts and parties; ERPNext separates the chart of accounts from customers and suppliers, so every Tally ledger is classified before it is loaded. Tally's groups become the account tree; stock groups and items become item groups and items with units of measure; godowns become warehouses; cost centres map directly; GST registration, state and tax classifications on ledgers become the tax templates and categories ERPNext uses to compute GST on every document. The full sequence, from ledger classification to cut-over, is in the Tally to ERPNext Migration Guide.

  • Extract — masters and vouchers from Tally Prime or ERP 9 via XML export, ODBC or Excel, for every company and financial year in scope
  • Map — Tally groups to ERPNext's chart of accounts; ledgers to accounts, customers or suppliers; stock groups, items, units and godowns; cost centres; GST classifications to tax templates and item tax categories
  • Cleanse — de-duplicate parties and items, validate GSTIN and PAN, assign HSN/SAC, standardise units and naming; your team signs off the cleaned masters
  • Load masters — accounts, parties with addresses and contacts, items with valuation method, warehouses, cost centres, employees, price lists — through the Data Import tool or scripted loads with validation
  • Load balances — opening trial balance as of the cut-over date, invoice-level receivables and payables, stock by warehouse and batch at valuation, bank balances, fixed assets
  • Load history (if in scope) — Tally vouchers as ERPNext journal entries, sales and purchase invoices, payment entries and stock entries, with Tally voucher numbers preserved in a reference field
  • Reconcile — trial balance, party outstanding, stock valuation, bank and GST liability compared line by line to Tally in a signed reconciliation report

Opening balances

Opening balances and the reconciliation finance actually signs

The cut-over date decides most of the work. The start of a financial year is cleanest — one opening trial balance, no part-year history — and the start of a quarter is the usual compromise when the business cannot wait. At that date we load the trial balance by account and reconcile it to Tally's to the rupee. Receivables and payables are loaded invoice by invoice with their original dates and due dates, not as one balance per party, so that ageing reports are right on day one and every incoming payment can be matched to what it pays. Stock is loaded by item, warehouse and batch or serial number at quantity and valuation rate, and the resulting stock value is tied to the balance sheet's inventory figure. Bank balances are reconciled to statements; fixed assets are loaded with cost, accumulated depreciation and remaining schedule so depreciation continues without a break.

The reconciliation pack that comes out of this is the migration's deliverable: account-by-account, party-by-party and warehouse-by-warehouse comparisons between the old system and ERPNext, each difference explained or corrected, and a sign-off from the person who owns the books. Nobody enters a live transaction until it is signed. It is also the document the auditor asks for at year-end, which is why it is written for them rather than for us.

History

How much history to bring across, and what to do with the rest

The instinct is to migrate everything; the right answer is to migrate what reporting needs and archive the rest. Opening balances only is the fastest and cleanest option and suits companies whose historical reporting can stay in Tally, kept as a read-only archive. Current financial year transactions are the common middle ground: comparatives, GST reconciliation and ageing all work inside ERPNext from go-live, at the cost of loading and reconciling part-year documents. Multi-year history is justified when contracts, warranties, batch traceability or a regulator require it in the live system — and it is where migration effort grows fastest, because every year's transactions must reconcile to that year's closing balances.

Whatever the depth, the old system is not deleted. Statutory retention for books of account runs for years, so Tally or the legacy ERP is kept as a read-only archive with its data exported to durable formats, and ERPNext documents carry the old voucher or invoice numbers so a query from an auditor or a customer can be traced back in seconds. GST history is a special case: filed returns stay with the period in which they were filed, and e-invoice IRNs and e-way bills generated by the old system are recorded on the migrated documents rather than regenerated.

Cut-over

The parallel run, the cut-over and what happens if something is wrong

Before the old system is switched off, both run for one closing period. Transactions are entered in Tally as usual and in ERPNext by the team who will own it, and at the period end the trial balance, GST returns, party statements and stock reports are compared line by line. Differences are almost always process — a voucher type used differently, a warehouse missed, a tax template wrong — and the parallel month is where they are found and fixed while nothing is at stake. It is also the month in which the team learns ERPNext on their own live numbers, which is better training than any workshop.

Cut-over itself is a checklist run on a date agreed with finance: transactions frozen in the old system, the final delta of balances migrated and reconciled, master data locked, users' roles confirmed, and the first documents entered in ERPNext with our consultant in the room. The rollback plan is simple because the old system is still there: if the reconciliation at cut-over does not sign, the business keeps transacting in Tally for another period and we fix the cause. A hypercare month follows, through the first month-end close, GST filing and payroll on the new system.

Upgrades & re-hosting

ERPNext version upgrades and moving between Frappe Cloud, your cloud and on-premise

The other migration is the one an ERPNext already running needs: a version upgrade or a change of hosting. Upgrading from v12, v13 or v14 to v15 is a Frappe framework upgrade as much as an ERPNext one, and it goes wrong where customisations touched core or custom apps have no tests. Our approach is a copy of production on a staging bench, the upgrade run there with every custom app's tests and patches, a list of deprecated features and changed behaviour reviewed with your team — reports, print formats and integrations are the usual casualties — and a rehearsed production cut-over with a timed backup and restore so the rollback is measured in minutes.

Moving hosting — Frappe Cloud to your own AWS or Azure account for cost or control, on-premise to cloud, or an unmanaged server to a proper bench — carries the database, public and private files, site configuration, scheduled jobs and integrations across, with DNS, TLS, backups, monitoring and restore drills set up before the switch. Where data residency is a requirement, the target environment is chosen for the regulator first and for cost second.

Timeline & cost

How long a migration takes, what drives the cost, and who it is for

As a guide from our own projects: a single-company Tally migration with opening balances only takes two to three weeks and runs inside the implementation; with current-year history and a reconciled parallel month it is four to six weeks; a multi-company, multi-year migration from a legacy ERP with stock, assets and integrations is two to four months. An ERPNext version upgrade is one to three weeks depending on how many custom apps and reports must be tested, and a hosting move is one to two weeks including rehearsal. The implementation page has the timelines for the rollout around the migration.

Five things set the cost: the state of your data — duplicate parties, items without units, ledgers with no tax details; the depth of history; the number of companies, warehouses and financial years; whether stock, batches, serial numbers and fixed assets are in scope; and, for upgrades, the amount of customisation and whether it was built upgrade-safe. Migration is quoted as part of the implementation's fixed price after discovery has looked at the actual data; upgrades and hosting moves are quoted as fixed-price projects after a review of the current bench.

This work fits companies moving to ERPNext from Tally, Busy, Zoho or spreadsheets — distributors and manufacturers in particular, as at Prem Plumbings; groups consolidating several companies' books onto one system; organisations replacing a legacy or licensed ERP; and anyone already on ERPNext who is two versions behind or paying too much for hosting. If you are in Saudi Arabia or the Gulf, the ZATCA and VAT specifics are on the ERPNext in Saudi Arabia page.

Start with a look at the data

Send a Tally backup or your spreadsheets under NDA and we will come back within a week with what will migrate cleanly, what needs cleansing, a recommended cut-over date and a fixed price.

Book a migration assessment

Our technology stack

What a migration is built and verified with

ERPNext's Data Import tool and REST API for loads, Python scripts for extraction, mapping and validation, MariaDB for reconciliation queries, and a staging bench in Docker that rehearses every cut-over before it happens.

ERPNext / Frappe logoERPNext / FrappePython logoPythonMariaDB logoMariaDBRedis logoRedisDocker logoDockerNGINX logoNGINXGitHub Actions logoGitHub ActionsAWS logoAWS

How we deliver

From a look at the real data to a signed reconciliation and a retired Tally

Five phases, each ending in something finance can check: a data assessment, cleaned masters, a reconciled load, a parallel month that matches, and a cut-over with the old system still there if needed.

STEP 01

Assess the data

Exports from Tally, Excel or the legacy system reviewed for duplicates, gaps and tax details; cut-over date and history depth agreed; a migration plan with owners on both sides.

STEP 02

Cleanse masters

Parties, items, accounts and employees de-duplicated and enriched in review sheets your team signs off before anything is loaded.

STEP 03

Load & reconcile

Masters, opening balances and in-scope history loaded to a staging site; trial balance, party outstanding, stock and bank reconciled to the old system in a signed report.

STEP 04

Parallel run

One closing period on both systems; reports compared line by line; process differences fixed while nothing is at stake; the team learning on live numbers.

STEP 05

Cut-over & hypercare

Transactions frozen, final delta migrated and reconciled, first live documents entered with us in the room, and a month of support through the first close, GST filing and payroll.

Case studies

ERPNext and Frappe rollouts that started from spreadsheets, registers and legacy systems

Each began with data somewhere else — Excel, paper registers, standalone tools — and ended with one system of record.

All case studies

FAQs

ERPNext migration — questions we are asked first

Can you migrate from Tally to ERPNext without losing data?+

Yes. Masters, opening balances and as much transaction history as you need are extracted from Tally Prime or ERP 9, mapped onto ERPNext's chart of accounts, parties, items and warehouses, loaded as of an agreed cut-over date and reconciled line by line to Tally's trial balance, party statements and stock reports. Tally is kept as a read-only archive, and ERPNext documents carry the original voucher numbers.

How do you get the data out of Tally?+

Through Tally's XML export, ODBC or Excel exports, for each company and financial year in scope. Ledgers are classified into accounts, customers and suppliers, groups become the account tree, stock groups and items become item groups and items, godowns become warehouses and GST classifications become tax templates. The mapping is reviewed with your accountant before any load.

How much history should we migrate?+

What reporting needs. Opening balances only is fastest; the current financial year is the usual choice so comparatives, ageing and GST reconciliation work inside ERPNext from day one; multi-year history is justified when contracts, warranties, traceability or a regulator require it in the live system. Everything else stays in the old system as a read-only archive for the statutory retention period.

Do we run both systems in parallel?+

Yes, for one closing period. Transactions are entered in both, and at period end the trial balance, GST returns, party statements and stock reports are compared. Differences are almost always process rather than data, and the parallel month is where they are fixed while nothing is at stake. The old system is switched off only after finance signs the comparison.

What happens to GST returns and e-invoices already filed?+

Filed returns stay with the period and system they were filed in. E-invoice IRNs, e-way bills and GSTR references generated in Tally are recorded on the migrated ERPNext documents rather than regenerated, so reconciliation with the GST portal is continuous across the cut-over. From the first period on ERPNext, returns are prepared from the ERPNext ledger.

Can you upgrade our existing ERPNext to v15 or move it off Frappe Cloud?+

Yes. Upgrades are rehearsed on a staging copy of production with every custom app's tests and patches, deprecated behaviour reviewed with your team, and a timed backup and restore so rollback is measured in minutes. Hosting moves carry the database, files, configuration, scheduled jobs and integrations across with backups, monitoring and restore drills in place before the switch.

Let’s work together

Tell us what you run the books on today

Send the systems — Tally, Excel, Busy, an old ERP, or an ERPNext version — the number of companies and warehouses, and the financial year you want to start on ERPNext; we will come back within a week with a migration plan and a fixed price.