A lot of people go looking for a "Tally bank statement import Excel format" to download, fill in, and import. It is worth saying plainly: no such universal template exists, and understanding why saves you a long afternoon.
Why there is no downloadable template
Tally's Bank Statement import does not read a Tally-defined spreadsheet layout. It reads your bank's layout.
Tally ships with stored format definitions for 200+ banks. When you import, it identifies which bank's download you have given it and reads the columns accordingly — HDFC's export has a different column order and different header wording from ICICI's, and Tally knows both. That is why the import needs no column mapping step: the mapping already exists, per bank.
So there is nothing for Tally to publish as a blank template. The correct "format" is whatever your own bank's portal produces, unmodified.
What Tally accepts
Format | Accepted | Notes |
|---|---|---|
Excel from your bank's portal | Must be the bank's own download | |
CSV from your bank's portal | Same | |
MT940 | Common for corporate accounts | |
Not supported | ||
Excel or CSV converted from a PDF | Explicitly not supported | |
Excel you built or edited by hand | Layout won't be recognised |
That second-to-last row is the one that catches people. It is stated in Tally's own documentation, and it is the reason a perfectly clean converted spreadsheet still gets refused.
Don't edit the file before importing
Even with a genuine bank download, editing breaks it. Deleting the header rows, reordering columns, reformatting dates to look tidier, removing a blank column — any of these can stop Tally recognising the layout. Import the file exactly as it downloaded.
If it fails, the useful diagnostic is to re-download a fresh copy and try that before changing anything.
If your statement is a PDF
Then the Excel route is closed regardless of how you produce the Excel, and the question of format doesn't apply. Use Tally XML and the voucher import instead.
Tally XML isn't a layout to be recognised — it states what every value is. A Receipt voucher, against this bank ledger, this amount, this date. Nothing is inferred, so nothing can be misread.
- Convert the PDF with the Tally XML converter
- Create any missing ledgers in Tally
- Gateway of Tally → Alt+O → Vouchers, choose Add
Full detail in how to import a bank statement in Tally Prime.
What the XML actually contains
For anyone who wants to see the shape before trusting it, each transaction becomes one voucher:
- A voucher type — Receipt for money in, Payment for money out
- A date, in Tally's `YYYYMMDD` form
- A narration carrying the original statement description
- Two ledger entries that net to zero — your bank ledger (named `Bank Account` unless you set it) and a counter ledger
The counter ledger defaults to Suspense, which is deliberate. Guessing at expense categories and putting them straight into your books would be worse than leaving them somewhere obvious to reallocate. You map them properly in Tally afterwards, where you can see the whole picture.
Try it on your own statement
Clean Excel/CSV, with every transaction checked to balance.
