Moving data from Tally to ERPNext has been a challenge for ERPNext implementers for years.
Over time, several attempts have been made to solve it. Some projects are no longer maintained, some were built for a specific implementation, and others handle only part of the migration process. As a result, many ERPNext implementations still start the same way: exporting data from Tally, cleaning spreadsheets, manually creating masters, fixing opening balances, and spending hours reconciling everything afterward.
Over the last few days, while experimenting with LLM-assisted development, I decided to take a fresh shot at this problem.
The result is Tally Migrator - a free and open-source Frappe app that helps move master data and opening balances from Tally into ERPNext with minimal manual work. You export your data from Tally, upload the XML file, review the validation results, and migrate.
The goal isn’t to magically migrate everything. The goal is to eliminate as much repetitive work as possible while keeping the process transparent, auditable, and safe.
GitHub: https://github.com/frappe/tally_migrator
Demo:
How it works
Tally Migrator works from a standard Tally XML export, so there’s no live connection required. Whether ERPNext is hosted locally or in the cloud, the process is simple: upload your export, configure the migration settings, validate and fix any issues, preview the records that will be created, and run the migration.
Once complete, you’ll get a detailed Migration Log and a reconciliation report.
What gets migrated?
Tally Migrator handles the core masters you’d expect, including customers, suppliers, customer and supplier groups, stock items, units of measure, warehouses, chart of accounts, and cost centers.
Beyond that, it also migrates opening balances, outstanding receivables and payables, opening stock, price levels, bills of materials, batch-tracked inventory, and GST-related information when used with the India Compliance app.
One feature I’m particularly happy with is multi-currency support. If a customer owes you USD 8,500 in Tally, it comes into ERPNext as USD 8,500 with the appropriate exchange rate information preserved—not as a fixed INR balance.
Built to be safe
-
Re-runnable – existing records are skipped, never duplicated or overwritten
-
Revertible – every migration run can be rolled back
-
Transparent – anything that can’t be migrated is reported clearly in the logs
-
Non-destructive – your original Tally export is never modified
The app also generates a reconciliation report that compares Tally’s opening trial balance with what landed in ERPNext, making it easier to verify that the books match.
Current Limitations
Tally Migrator focuses on migrating masters and opening balances, not historical transactions such as Sales Invoices, Purchase Invoices, Payments, or Journal Entries. GST-specific fields require the India Compliance app. The app is currently built and tested for Indian users on ERPNext v16 and Tally Prime. Features such as TDS/TCS, HR/Payroll, and BOM co-products/by-products are not yet supported.
Getting started
bench get-app https://github.com/frappe/tally_migrator
bench --site your-site install-app tally_migrator
Then open Tally Migrator from the Desk and follow the wizard.
This project is still evolving. Feedback, bug reports, feature requests, and contributions are all welcome. You can reach out to me directly at [email protected]
If you try it out, I’d love to hear how it performs on your migrations.