Six steps. The import itself runs as a background job — the rest is you reviewing what we found. If it doesn’t land cleanly, we get on a call and finish it with you.
XML in. Journal out.
The same pipeline runs on your file — parse, resolve, map, validate, post. We refuse to import if Dr ≠ Cr.
<TALLYMESSAGE>
<VOUCHER VCHTYPE="Sales" ACTION="Create">
<DATE>20260315</DATE>
<VOUCHERNUMBER>INV-1042</VOUCHERNUMBER>
<PARTYLEDGERNAME>Tefty Organics</PARTYLEDGERNAME>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Tefty Organics</LEDGERNAME>
<AMOUNT>-118000.00</AMOUNT>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Sales · Services</LEDGERNAME>
<AMOUNT>100000.00</AMOUNT>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Output IGST 18%</LEDGERNAME>
<AMOUNT>18000.00</AMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
</TALLYMESSAGE>Ten categories. Nothing left behind.
Masters, transactions and history — with the checks that make them trustworthy.
Chart of Accounts
Opening balances
Customers & Vendors
Products & Services
Bills (AP)
Invoices (AR)
Bank & cash transactions
Journal entries
Reconciliation history
One company file at a time
What you actually do.
You review at every gate. Nothing commits until the preview looks right — and the preview is free.
- 01
Upload your Tally XML
you · drag-dropExport → XML from Tally (Gateway → Display More Reports → Export). Drag-drop into Triam. Files up to 25 MB.
- 02
Master data preview
you · skimWe parse the file, show you the master objects we found: COA, vendors, customers, products. You skim and approve scope.
- 03
COA mapping
auto + youWe auto-map common Tally groups (Sundry Debtors → 1200 AR · Trade, etc.). You review and adjust anything custom. Save mapping for future runs.
- 04
Mapping review
pre-flightFinal cross-check. Mismatches highlighted. Pre-flight validators run: balanced opening, GL existence, HSN sanity.
- 05
Transaction preview
freeSee what will be imported, with counts per voucher type. Spot anything wrong here, fix the mapping, re-run preview. Free.
- 06
Migrate
background jobBackground job runs, with progress shown as it goes. Errors logged per-row with retry. How long it takes depends on file size.
What usually goes wrong with Tally migrations.
Tally patterns that commonly trip up a migration — and how each one is handled.
Inconsistent HSN codes across the same product — Tally allows it.
Flagged during preview. You pick the canonical code once.
Opening balance carried as a single ledger entry that doesn’t balance against prior P&L.
The import refuses Dr ≠ Cr and shows which accounts are off.
Multi-fiscal-year files with year-end closure entries that depend on each other.
We replay them in order, earliest opening balance first.
Vendors created with no GSTIN that later got one.
Flagged in the preview so you can fix the master before import.
Bank ledgers without UTR — only cheque numbers.
We review it with you during the walkthrough.
TDS tracked via the narration field rather than a statutory ledger.
We review it with you and map it to a proper TDS ledger.
Custom TDL reports and voucher types that only exist in Tally.
They don’t migrate — we recommend Triam equivalents during the walkthrough.
Reverse-charge GST entries split across multiple JEs.
We review it with you during the walkthrough.
Migration FAQ.
It depends on the size of your file and how much of your chart of accounts needs manual mapping. We won’t guess a number here.
We’ll walk through yours with you after the free preview step — no commitment.
Send your Tally XML and we’ll send back a mapping preview — no commitment.
tech@triam.aicopy