Six steps. Most one-entity migrations land in 20–40 minutes of background processing — the rest is you reviewing what we found. If it doesn’t land cleanly, we get on a call and finish it with you.

triam · migratelive
tally-fy26.xml1.2 GB
import0%
·parse vouchers
·map ledgers → coa
·validate Dr = Cr
·post journals
migrated · journal balanced · Dr = Cr
$triam migrate --watch
0–40 min
typical background run
one entity, most books
0.0 GB
max tally xml
drag-drop supported
0
categories migrated
COA to recon history
0
preview vouchers / type
invoices · bills · JEs — free
chart of accountsopening balancesvendorscustomersproductsinvoicesbillsbank ledgersrecon history
live · this is what the parser does

XML in. Journal out.

The same pipeline runs on your file — parse, resolve, map, validate, post. We refuse to import if Dr ≠ Cr.

tally-export.xml0 / 622 B
<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>
parser → mapper → poster
triam.ledger · journal #4831double-entry
AccountDrCr
1200 AR · Tefty Organics₹1,18,000
4000 Revenue · Services₹1,00,000
2200 GST Output · IGST₹18,000
✓ balancedTotal₹1,18,000₹1,18,000
what gets migrated

Ten categories. Nothing left behind.

Masters, transactions and history — with the checks that make them trustworthy.

general ledger

Chart of Accounts

Full GL hierarchy. We map your Tally groups to our 3-level COA. You confirm the mapping before commit.
Sundry Debtors1200 AR · Trade
day zero

Opening balances

GL opening balances on your migration date. Per-account, balanced before commit. We refuse to import if Dr ≠ Cr.
Dr = Cr enforced
masters

Customers & Vendors

Master data with GSTIN, PAN, billing/shipping addresses, payment terms. Duplicate detection on GSTIN.
masters

Products & Services

SKU, UOM, HSN, rates. UOM conversions if your Tally has them.
payables

Bills (AP)

Purchase vouchers. ITC reverse-mapped where Tally tracked it.
receivables

Invoices (AR)

Full sales vouchers with line items, taxes (CGST/SGST/IGST), HSN, narration. PDF re-renderable in Triam.
sales voucherPDF re-renderable ✓
CGSTSGSTIGSTHSNnarration
banking

Bank & cash transactions

Receipt / Payment / Contra vouchers. UTR preserved where present for re-reconciliation.
UTR preserved
journals

Journal entries

Manual JEs including reversal entries, depreciation, accruals.
recon

Reconciliation history

Tally bank-clearing dates carried over so your historic recon doesn’t get re-opened.
clearing dates carried
structure

Multi-entity / multi-godown

Each Tally company file maps to a Triam entity. Godowns map to warehouses. Multi-currency supported.
the six steps

What you actually do.

You review at every gate. Nothing commits until the preview looks right — and the preview is free.

  1. 01

    Upload your Tally XML

    you · drag-drop

    Export → XML from Tally (Gateway → Display More Reports → Export). Drag-drop into Triam. 1.2 GB files supported.

  2. 02

    Master data preview

    you · skim

    We parse the file, show you the master objects we found: COA, vendors, customers, products. You skim and approve scope.

  3. 03

    COA mapping

    auto + you

    We auto-map common Tally groups (Sundry Debtors → 1200 AR · Trade, etc.). You review and adjust anything custom. Save mapping for future runs.

  4. 04

    Mapping review

    pre-flight

    Final cross-check. Mismatches highlighted. Pre-flight validators run: balanced opening, GL existence, HSN sanity.

  5. 05

    Transaction preview

    free

    Sample 50 invoices, 50 bills, 50 JEs rendered as they’ll look in Triam. Spot anything wrong here, fix the mapping, re-run preview. Free.

  6. 06

    Migrate

    background · 20–40 min

    Background job runs. Real-time progress bar. Errors logged per-row with retry. Most one-entity migrations finish in 20–40 min.

common gotchas · we catch them

What usually goes wrong with Tally migrations.

The patterns we see again and again — and what each one becomes in Triam.

hsn codes
in tally

Inconsistent HSN codes across the same product — Tally allows it.

in triam

Flagged during preview. You pick the canonical code once.

opening balance
in tally

Opening balance carried as a single ledger entry that doesn’t balance against prior P&L.

in triam

We reconstruct it. Dr ≠ Cr never makes it into Triam.

fy closures
in tally

Multi-fiscal-year files with year-end closure entries that depend on each other.

in triam

We replay them in order, earliest opening balance first.

gstin
in tally

Vendors created with no GSTIN that later got one.

in triam

We link the master and merge the history.

bank recon
in tally

Bank ledgers without UTR — only cheque numbers.

in triam

Cheque numbers preserved for re-reconciliation.

tds
in tally

TDS tracked via the narration field rather than a statutory ledger.

in triam

We parse the narration and reconstruct the ledger.

multi-currency
in tally

Multi-currency vouchers stored only in INR with a footnote.

in triam

We re-derive the FX leg.

reverse charge
in tally

Reverse-charge GST entries split across multiple JEs.

in triam

Collapsed to the canonical pair.

questions real CAs ask

Migration FAQ.

how long it really takesincl. your review time
Single entity · under 5 yrs · under 50,000 vouchersan afternoon
Five entities · 10+ yrs · 500,000+ vouchers2–3 days

We’ll quote yours after the free preview step — no commitment.

migration desk

Send your Tally XML and we’ll send back a mapping preview — no commitment.

migrate@triam.bizcopy