Convert CSV to Tally XML

Stop typing vouchers by hand. Convert your bank CSV into Tally-ready XML with proper Payment, Receipt, and Contra voucher types — auto-mapped and balanced.

Built for Indian CAs, bookkeepers, and business owners using TallyPrime or Tally ERP 9. Free online tool.

Bank-grade security - Files encrypted in transit, never stored
Files encrypted in transitNo files storedNo signup required

How It Works

1

Upload Your Bank CSV

HDFC, SBI, ICICI, Axis, Kotak, or any bank. Any column layout — Date, Narration, Debit, Credit, Balance detected automatically.

2

Verify Ledger Mapping

Bank ledger and expense/income ledgers identified from your data. Confirm the mapping matches your Tally Chart of Accounts.

3

Download Tally XML

Properly structured XML with ENVELOPE > TALLYMESSAGE > VOUCHER tags. Import via Gateway > Import Data in TallyPrime or Tally ERP 9.

Works With Every Indian Bank Statement

Every bank exports CSV differently — different column names, date formats, and narration styles. Our tool adapts to each layout automatically.

HDFC BankState Bank of IndiaICICI BankAxis BankKotak MahindraBank of BarodaPunjab National BankCanara BankIndusInd BankYes BankIDFC FirstFederal BankUnion BankBank of IndiaIndian BankCentral Bank+ any bank worldwide
CSV

What is CSV?

Comma-Separated Values

The standard download format from Indian banks — HDFC, SBI, ICICI, Axis, and others. Each bank uses its own column names and date formats. Tally cannot create vouchers from raw CSV — the data must be converted to XML first.

XML

What is XML?

Tally XML Voucher Format

Tally's native import structure using ENVELOPE > BODY > IMPORTDATA > TALLYMESSAGE > VOUCHER tags. Each voucher contains ledger entries with YYYYMMDD dates, debit/credit amounts, narrations, and voucher type codes. The only format Tally accepts for bulk voucher creation.

Why This Tool

Auto Voucher Type Detection

Debits become Payment vouchers, credits become Receipt vouchers, bank-to-bank transfers become Contra vouchers. No manual classification needed.

YYYYMMDD Date Conversion

Indian banks export DD/MM/YYYY or DD-Mon-YYYY. Tally XML requires YYYYMMDD. We auto-detect and convert — the #1 cause of failed imports eliminated.

Ledger Name Matching

Validates that bank and expense/income ledger names follow Tally conventions. Flags mismatches before you import — not after.

XML Special Character Escaping

Narrations with &, <, >, or " are automatically escaped to valid XML entities. Raw special characters break Tally's XML parser silently.

Handles Any Bank CSV Format

HDFC's 7-column layout, SBI's transaction remarks, ICICI's merged debit/credit — auto-detected regardless of column names or order.

Duplicate Voucher ID Prevention

Each voucher gets a unique number. Duplicate IDs cause Tally to reject entire import batches — we generate sequential, non-repeating identifiers.

When to Use This

Monthly Client Bookkeeping

CAs and bookkeepers importing 10-15 client bank statements into Tally every month. Convert each CSV in seconds instead of typing vouchers manually.

GST Return Preparation

Bank transactions feed into GSTR-3B and reconciliation reports. Accurate voucher import ensures your GST filings match your bank records.

Year-End Bulk Entry

Importing 6-12 months of backlogged bank data during tax season. Hundreds of vouchers created from a single CSV upload.

Tally Voucher Types for Bank Imports

Each bank transaction maps to a specific Tally voucher type. Using the wrong type misclassifies your books and breaks reconciliation.

Payment Voucher (F5)

Money going out — vendor payments, rent, salary, utility bills, EMI debits. The bank account is credited, expense/liability ledger is debited.

CSV debit column → Payment voucher

Receipt Voucher (F6)

Money coming in — customer payments, interest income, refunds, NEFT/IMPS credits. The bank account is debited, income/asset ledger is credited.

CSV credit column → Receipt voucher

Contra Voucher (F4)

Bank-to-bank transfers, cash deposits, ATM withdrawals. Both sides are bank or cash ledgers — no P&L impact.

Transfer narrations → Contra voucher

Journal Voucher (F7)

Adjusting entries, provisions, accruals, and corrections that don't involve actual cash movement. Used for non-standard entries.

Manual classification when needed

How to Import XML Vouchers Into Tally

TallyPrime

  1. Open your company in TallyPrime
  2. Go to Gateway > Import Data
  3. Select XML (Data Interchange)
  4. Browse and select your downloaded .xml file
  5. Review the import summary and confirm

Check Tally.Imp log file in the Tally folder for any error details.

Tally ERP 9

  1. Open your company in Tally ERP 9
  2. Go to Gateway > Import Data
  3. Select the XML file location
  4. Tally processes vouchers automatically
  5. Verify entries in Day Book or Bank Ledger

Ensure all ledgers referenced in the XML exist in your Chart of Accounts before importing.

Common Tally XML Import Errors

"Ledger does not exist" — vouchers silently skipped

Every ledger name in the XML must match your Tally company's Chart of Accounts exactly — including spaces, capitalization, and group hierarchy. Create the bank ledger (e.g., "HDFC Bank A/C 12345") and all contra ledgers in Tally before importing.

Duplicate Voucher Numbers cause entire batch rejection

Tally rejects XML files containing duplicate voucher numbers. This happens when re-importing the same file or when the converter generates non-unique IDs. Our tool creates sequential, unique voucher numbers for every export.

Date errors — "Invalid Date" or transactions in wrong period

Tally XML requires YYYYMMDD format (e.g., 20260115 for Jan 15, 2026). Indian bank CSVs use DD/MM/YYYY or DD-Mon-YYYY. We auto-detect and convert. Also ensure the dates fall within your Tally company's financial year.

XML parse failure — special characters in narration field

Bank narrations often contain &, <, >, or " characters (e.g., "M/S ABC & Sons"). These are reserved XML characters that break the parser. We escape them to &amp;, &lt;, &gt;, &quot; automatically.

Vouchers imported but not appearing in Bank Reconciliation

Bank reconciliation in Tally only shows vouchers linked to the correct bank ledger. Verify the bank ledger name in the XML matches your Tally bank ledger exactly, and that the ledger is configured under "Bank Accounts" group.

Frequently Asked Questions

Q

Can TallyPrime import CSV files directly?

TallyPrime can import bank statements in CSV/Excel for reconciliation, but creating vouchers from raw CSV requires XML format. Our tool generates the exact XML structure Tally expects.

Q

Which Tally versions does the XML work with?

Tally ERP 9, TallyPrime, and TallyPrime 7.0. The XML voucher import format is consistent across all modern Tally versions.

Q

My import fails with "Ledger does not exist" — what do I do?

Every ledger name in the XML must exist in your Tally company. Create the bank ledger (e.g., "HDFC Bank") and expense/income ledgers in Tally first, then re-import. Names must match exactly — including spaces and capitalization.

Q

What voucher types does the XML contain?

Payment vouchers for money going out (expenses, vendor payments), Receipt vouchers for money coming in (income, customer receipts), and Contra vouchers for bank-to-cash or bank-to-bank transfers.

Q

My bank CSV uses DD/MM/YYYY dates but Tally XML needs YYYYMMDD — is that handled?

Yes. We auto-detect your CSV date format and convert to YYYYMMDD for the XML. This is the #1 cause of "Invalid Date" errors in Tally imports.

Q

Can I import vouchers for GST reconciliation?

Yes. Once vouchers are in Tally, they appear in bank reconciliation and feed into GSTR-3B and other GST returns. Accurate voucher import is critical for GST compliance.

Q

I have 10+ client bank statements to import monthly. Does this scale?

Yes. Upload each CSV separately and download the XML. Each file converts in seconds — no limit on conversions or transaction count.

Q

What if my CSV has narration text with special characters?

Ampersands (&), angle brackets (<>), and other XML-reserved characters in narrations are automatically escaped so they don't break the XML parser.

Q

Is my data secure?

Encrypted in transit via TLS, processed in memory, never stored. Your bank data is deleted immediately after conversion.