Skip to content
8 min readUpdated

Tally bank statement import: how to bring a statement into TallyPrime

TallyPrime imports a bank statement in two ways. The Bank Statement import on the reconciliation screen (Alt+O) reads Excel, CSV or MT940 and matches the lines against vouchers already in your books; Import › Transactions reads Tally XML and creates the vouchers. Neither reads a PDF, so a PDF statement is converted first.

Key TakeawayRemember the accounting polarity inversion: bank statement debits are company book credits (payments), and bank statement credits are company book debits (receipts). A proper Tally XML converter maps this automatically.

TallyPrime import and reconciliation steps

  1. Download the statement and convert it

    Download the statement from your bank portal. TallyPrime does not read PDF, so convert it first: to Excel or MT940 if the vouchers are already in your books and you only need to reconcile, or to Tally XML if you want the vouchers created for you.

  2. Open TallyPrime and configure bank ledger

    Launch TallyPrime and select your company. Go to Gateway of Tally > Banking > Bank Reconciliation. Select your target Bank Ledger and confirm that electronic banking configuration (e-Banking) is enabled with your bank name.

  3. Import the file

    For reconciliation, open the bank ledger’s reconciliation screen and press Alt + O (Import) > Bank Statement, then pick the Excel or MT940 file. To create vouchers, go to Gateway of Tally > Import > Transactions and pick the Tally XML file.

  4. Review auto-reconciliation and post vouchers

    TallyPrime compares the statement against existing vouchers using instrument dates and cheque numbers. Unmatched bank charges, interest, or direct transfers appear in the unlinked section, where you can assign them to appropriate expense ledgers.

Understanding the Tally XML structure

TallyPrime consumes XML through its native message processor. Each transaction on your bank statement is translated into an XML voucher definition containing accounting headers and ledger entries:

<ENVELOPE>
  <HEADER>
    <TALLYREQUEST>Import Data</TALLYREQUEST>
  </HEADER>
  <BODY>
    <IMPORTDATA>
      <REQUESTDESC>
        <REPORTNAME>Vouchers</REPORTNAME>
      </REQUESTDESC>
      <REQUESTDATA>
        <TALLYMESSAGE xmlns:UDF="TallyUDF">
          <VOUCHER VCHTYPE="Payment" ACTION="Create">
            <DATE>20260915</DATE>
            <NARRATION>NEFT/0029104928/VENDOR PAYMENT</NARRATION>
            <ALLLEDGERENTRIES.LIST>
              <LEDGERNAME>HDFC Bank Account</LEDGERNAME>
              <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
              <AMOUNT>45000.00</AMOUNT>
            </ALLLEDGERENTRIES.LIST>
          </VOUCHER>
        </TALLYMESSAGE>
      </REQUESTDATA>
    </IMPORTDATA>
  </BODY>
</ENVELOPE>

Instead of writing manual XML wrappers or building custom TDL extensions, use our PDF bank statement to Tally converter to get import-ready XML — or Excel and MT940 for the Bank Statement import — straight from a PDF or scanned statement.

Three critical checks before posting vouchers

Review these three verification points in TallyPrime before finalizing your batch:

1. Validate the Bank Ledger Name

Tally requires the bank ledger name inside the XML to match your Chart of Accounts letter-for-letter (case-insensitive, but exact spelling). If your bank account in Tally is named "HDFC Current A/c", the XML must specify that exact ledger title.

2. Confirm Debit and Credit Polarity

In Tally XML, <ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE> denotes a Debit entry (money coming into the bank or expense incurred), while <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> denotes a Credit entry. Confirm that vendor withdrawals appear as Payments and customer collections appear as Receipts.

3. Retain Cheque and UTR numbers in Narration

Indian and international bank statements include transaction references (NEFT, RTGS, IMPS, UPI, or Cheque numbers). Ensure these identifiers are preserved in the voucher narration field so Tally's auto-reconciliation engine can match them against booked entries.

Frequently asked questions

What file format does TallyPrime use for bank statement import?

Two, depending on what you want. The Bank Statement import on the reconciliation screen (Alt+O) reads Excel, CSV or MT940 and only reconciles against vouchers you already have. Import › Transactions reads Tally XML — envelopes (<ENVELOPE>), vouchers (<VOUCHER>), ledger entries (<ALLLEDGERENTRIES.LIST>), amounts and narration — and creates the vouchers. PDF is not read by either.

What is the difference between TDL and Tally XML?

TDL (Tally Definition Language) is Tally’s proprietary programming language used to build customizations, custom screens, and extensions. TDL is not a file format for importing data. Tally XML is the standardized data interchange format used to move transactions into Tally without writing custom code.

Why are the debits and credits inverted between the bank statement and Tally?

Bank statements reflect transactions from the bank’s perspective: a deposit is a credit (liability to the bank), and a withdrawal is a debit. In your company books inside Tally, the accounting perspective is reversed: bank deposits are debits (assets increasing), and withdrawals are credits (assets decreasing). A dedicated Tally converter handles this polarity inversion automatically.

Does Tally automatically create ledgers that do not exist yet?

No. If the XML references a party or expense ledger that does not exist in your Tally company data, Tally will halt the import or post the item to a designated Suspense ledger. We recommend setting up common bank fee and tax ledgers before importing.

Can I import bank statements into older versions like Tally.ERP 9?

Yes. The XML voucher structure is backwards-compatible with Tally.ERP 9. While the menu shortcuts differ slightly (e.g. Gateway of Tally > Import of Data > Vouchers), the generated XML file imports identically.

How does Bank Reconciliation Statement (BRS) work in TallyPrime?

When you import a bank statement via e-Banking, Tally automatically reconciles entries where the amount and cheque/UTR number match existing book entries. It populates the "Bank Date" column automatically, completing your BRS in seconds.