If you work with Tally Prime or Tally.ERP 9, you have probably heard the term Tally XML. It is the file format Tally uses to exchange accounting data — vouchers, ledgers, stock items, and more — with external software and other Tally installations. Understanding Tally XML is the key to importing bank statements, automating data entry, and integrating your accounting workflow.
What Is Tally XML?
Tally XML is an XML document that follows Tally's own tag vocabulary. It is not a generic XML schema — Tally reads specific tags like TALLYMESSAGE, VOUCHER, LEDGER and AMOUNT and interprets them as accounting entries.
The most common use is importing vouchers: a Tally XML file containing Payment and Receipt vouchers can be imported directly, turning a bank statement into Tally entries in seconds instead of typing each transaction by hand.
Tally XML Structure: The Three-Layer Format
Every Tally XML file for voucher import follows the same three-layer structure:
| Layer | Tag | What It Contains |
|---|---|---|
| 1 — Root | ENVELOPE | One file-level wrapper around all data |
| 2 — Message | TALLYMESSAGE | One block per transaction / voucher |
| 3 — Voucher | VOUCHER | The actual entry: type, date, ledgers, amounts |
Here is what a minimal Tally XML file looks like:
<?xml version="1.0" encoding="UTF-8"?>
<ENVELOPE>
<HEADER>
<TALLYREQUEST>Import Data</TALLYREQUEST>
</HEADER>
<BODY>
<IMPORTDATA>
<TALLYMESSAGE>
<VOUCHER VCHTYPE="Payment">
<DATE>20260715</DATE>
<NARRATION>Rent payment</NARRATION>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Rent A/c</LEDGERNAME>
<AMOUNT>-50000</AMOUNT>
<LEDGERNAME>Bank A/c</LEDGERNAME>
<AMOUNT>50000</AMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
</TALLYMESSAGE>
</IMPORTDATA>
</BODY>
</ENVELOPE>
Common Tally XML Voucher Types
- Payment — money going out (bank debit). Debit an expense/party ledger, credit the bank.
- Receipt — money coming in (bank credit). Debit the bank, credit the customer/income ledger.
- Contra — transfer between two bank/cash ledgers.
- Journal — adjustment entries.
- Sales / Purchase — invoice-based entries with stock and tax.
How to Import Tally XML in Tally Prime
- Open the company in Tally Prime and make sure the target ledgers exist (bank, expense, customer, etc.).
- Go to Gateway of Tally → Import → Vouchers.
- Select your
.xmlfile and click import. - Tally reads the file, validates the vouchers, and shows the result. Review any error messages.
- Confirm import. Your bank statement transactions are now Tally entries.
Common Tally XML Import Errors and Fixes
| Error | Why It Happens | Fix |
|---|---|---|
| Ledger not found | The voucher references a ledger that does not exist in the company | Create the ledger first or map it to an existing one |
| Invalid date format | Dates must be YYYYMMDD with no separators | Format dates as e.g. 20260715 |
| Amount sign error | Debit must be negative, credit positive | Correct the amount signs in the XML |
| Duplicate voucher | The same entry already exists | Remove duplicates or import with overwrite option |
| Voucher type invalid | Unsupported or misspelled VCHTYPE | Use Payment, Receipt, Contra, Journal, Sales, or Purchase |
Why Generate Tally XML Instead of Typing Entries
- ✓ Eliminates manual voucher entry and typos
- ✓ Import 100+ bank statement transactions in seconds
- ✓ Consistent Payment/Receipt mapping across clients
- ✓ Frees CA and accounts staff hours every reconciliation cycle
Convert Bank Statement to Tally XML Automatically
Upload your PDF bank statement and download Tally-ready XML with correct ENVELOPE > TALLYMESSAGE > VOUCHER structure. Supports SBI, HDFC, ICICI, Axis & 100+ banks.
Start Converting