MyTaxFlow — Tally XML Format Explained

Tally XML Format Explained: Structure & Import Guide

What is Tally XML, how the ENVELOPE > TALLYMESSAGE > VOUCHER structure works, and how to import Tally XML in Tally Prime and Tally.ERP 9.

Updated August 2026 · 8 min read
← Back to Home

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:

LayerTagWhat It Contains
1 — RootENVELOPEOne file-level wrapper around all data
2 — MessageTALLYMESSAGEOne block per transaction / voucher
3 — VoucherVOUCHERThe 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>
Key rule: In each ledger entry, the debit side has a negative amount and the credit side has a positive amount. Voucher types are “Payment” (outgoing) and “Receipt” (incoming).

Common Tally XML Voucher Types

How to Import Tally XML in Tally Prime

  1. Open the company in Tally Prime and make sure the target ledgers exist (bank, expense, customer, etc.).
  2. Go to Gateway of Tally → Import → Vouchers.
  3. Select your .xml file and click import.
  4. Tally reads the file, validates the vouchers, and shows the result. Review any error messages.
  5. Confirm import. Your bank statement transactions are now Tally entries.

Common Tally XML Import Errors and Fixes

ErrorWhy It HappensFix
Ledger not foundThe voucher references a ledger that does not exist in the companyCreate the ledger first or map it to an existing one
Invalid date formatDates must be YYYYMMDD with no separatorsFormat dates as e.g. 20260715
Amount sign errorDebit must be negative, credit positiveCorrect the amount signs in the XML
Duplicate voucherThe same entry already existsRemove duplicates or import with overwrite option
Voucher type invalidUnsupported or misspelled VCHTYPEUse Payment, Receipt, Contra, Journal, Sales, or Purchase

Why Generate Tally XML Instead of Typing Entries

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

Related Guides