Converting a bank statement PDF into Tally vouchers

Tally can import an XML file. It cannot import a bank statement PDF. So every search for a “bank statement PDF to Tally XML converter” is really asking one question: how do I get the rows out of the statement and into Tally without typing them?

There are three routes. Only one of them still involves building an XML file, and for most accountants it is the one to skip. This guide covers what a Tally XML file actually contains, how each route works, and where each one breaks.

What a Tally XML file actually is

Tally XML is Tally’s own import format: a text file that wraps your vouchers in tags Tally recognises. One outer <ENVELOPE> holds a list of <VOUCHER> blocks, and each voucher carries a date, a voucher type (receipt, payment, contra), the ledgers on both sides of the entry, the amount, and the narration.

You feed it in from Gateway of Tally, under Import in TallyPrime or Import Data in Tally.ERP 9, then choose Vouchers.

The important thing to understand: XML is only a delivery format. It does not work out which ledger a transaction belongs to. Somebody still has to decide that a UPI payment to a fuel pump is Vehicle Running Expenses and not Suspense — which ledger goes opposite the bank is the part no file format decides for you. The XML file just carries the decision you already made.

Why a bank statement PDF cannot become XML on its own

Three separate things have to happen between the PDF and the voucher:

  1. Read the rows. Date, narration, debit, credit, balance — for every line, across every page.
  2. Decide the ledger for each row. This is the accounting work, and it is the part no format can do for you.
  3. Wrap it in something Tally accepts. XML, or a tool that posts the vouchers for you.

Step one is harder than it looks, because a PDF stores a picture of a table, not a table. A few things that trip up almost every free converter:

  • Column headings usually print on page one only. Pages two onward arrive as a bare grid, and a tool that guesses the columns afresh on each page will quietly shift narration into the date column.
  • Some banks never write Cr or Dr. They show a plus or minus sign on the amount instead, and a converter that only looks for the words gets the direction of every entry wrong.
  • Some bank “Excel” downloads are plain CSV files saved with an .XLS name. Excel opens them; most import tools refuse them.
  • Long narrations wrap onto a second line, so one transaction looks like two rows.
  • Branch printouts and emailed statements are often scans, with no selectable text at all.

None of this shows up as an error. It shows up as a wrong figure in a ledger three weeks later.

The three routes, compared

RouteWhat you buildWhat you still decideWhere it breaks
Type it inNothingEvery ledger, every amountVolume. Fine for 20 rows, painful at 200, impossible across 30 clients
Build a Tally XML fileAn XML file per statementEvery ledger, plus the exact ledger name as it exists in the companyA name that does not match an existing ledger creates a new one silently, and a malformed tag means reading the import log to find out what did not go in
Post directly from a connectorNothingLedgers only, with suggestions to start fromNeeds Windows and Tally on the same machine

Route 1: type it into Tally

Open the statement on one screen, Tally on the other, and key in receipts and payments line by line. No tooling, no setup, nothing to learn.

Done properly it is Payment, Receipt and Contra vouchers with the statement date and the bank narration on each one. The step-by-step method is here.

It is still the right answer for a small statement. It stops being the right answer the moment you are doing it every month for more than one client, because the cost is not just the typing — it is the reconciliation afterwards, chasing the one entry where a 5 became a 6.

Route 2: build a Tally XML file

If you want the XML route, the honest sequence is:

  1. Get the statement into a spreadsheet. Either your bank offers an Excel or CSV download, or you convert the PDF.
  2. Clean it. One row per transaction, dates in a single consistent format, debit and credit in their own columns, wrapped narrations joined back together.
  3. Add a ledger column. Decide the ledger for every row, and spell each one exactly as it appears in your Tally company.
  4. Generate the XML. Either through an Excel-to-Tally-XML template or a converter tool.
  5. Import and check. Gateway of Tally, Import, Vouchers. Then verify the count that went in against the count you sent, and read the import log if they differ.

Two things worth knowing before you commit to it. Most of the free “PDF to Tally XML converter” tools online only really do step one — they hand you a spreadsheet and leave steps two through five to you. And the failure mode is quiet: the ledger name in your XML has to match a ledger that already exists in that Tally company, or the import creates a new one instead of refusing. You find out at the trial balance, not at the import.

Route 2 makes sense if you already have a working template and stable ledger names. If you are building one from scratch for a monthly job, you are writing software to avoid typing.

Route 3: skip the XML file entirely

The XML file only exists to carry entries into Tally. If something can carry them in for you, you never need to build one.

That is how SmartXtract works, and it is two halves. The browser does the reading; a free Windows app called Tally Connector does the posting.

In the browser:

  1. Upload the statement — PDF, scanned PDF, Excel or CSV. If it is password protected, type the password at upload.
  2. Every transaction is read and a ledger is suggested for each one from its narration.
  3. The rows are checked against the statement’s own running balance, so a misread figure surfaces as a break in the chain instead of sitting quietly in your books.
  4. Download the clean Excel.

In Tally Connector, on the same PC as TallyPrime:

  1. Select your Tally company. Keep Tally open and the Connector lists every company loaded in it.
  2. Import the SmartXtract Excel. Choose the bank ledger the statement belongs to, browse to the file, Submit.
  3. Assign the ledgers. Entries land as pending suspense. AI Assistance suggests a Tally ledger for each narration keyword; change anything that looks wrong, then Apply.
  4. Export to Tally. A summary confirms how many vouchers were created and your pending suspense drops to zero. Undo Import reverses the whole batch if you need it.

No XML file at any point. The Connector is free, runs on Windows 10 and 11, and signs in with the same SmartXtract account, so your credits are shared between the two.

Try it on your own statement — 20 pages free, no card.

What still needs your judgement

Whichever route you take, the ledger decision stays yours. A narration that reads NEFT-AXISP00123456-RAMESH TRADERS could be a purchase, a loan repayment or a director’s drawing, and only you know which.

What automation removes is the typing and the arithmetic, not the accounting. Nothing posts to Tally until you have approved it, and that is the correct order — a tool that posts first and asks later would just move the error hunt from data entry to reconciliation.

Frequently asked questions

Can Tally import a bank statement PDF directly?

No. Tally imports structured data, not documents. A PDF has to be read and turned into rows first — by a tool, or by you. Converting it to Excel is not enough on its own either: Tally’s Bank Statement import rejects a spreadsheet made from a PDF. See what TallyPrime will and will not accept.

Is there a free bank statement PDF to Tally XML converter?

There are free PDF-to-Excel tools, and they handle simple digital statements reasonably well. What almost none of them do is the ledger mapping or the XML generation, so “free converter” usually means you still do steps two through five yourself. Check what a tool produces before you plan a month around it.

Do I need a Tally XML file at all?

Only if you are moving entries between systems that both speak Tally XML, or you already have a template that works. For getting a monthly bank statement into Tally, a connector that posts the vouchers is fewer steps and fewer things to get wrong.

Does this work with TallyPrime?

Yes. Tally Connector runs on Windows 10 or 11 and needs Tally open on the same machine, then posts into whichever company you select.

What about password-protected statements?

Enter the password when you upload. You do not have to unlock the PDF separately first.

My statement is a scan from the branch. Will that work?

Scanned statements are supported. They are genuinely harder than digital PDFs, so review the figures rather than trusting them blindly — the running-balance check is there to catch exactly this, and it will flag a row where the numbers stop adding up.

What if an import goes in wrong?

Undo Import in Tally Connector reverses the whole batch, so you can fix the ledger mapping and post again rather than deleting vouchers one at a time.

In short

“Bank PDF to Tally XML” is a question about plumbing. The XML file was never the goal — getting correct vouchers into Tally without typing them was. If you already have an XML template that works, keep it. If you are starting from a monthly statement and an empty folder, posting directly is fewer steps, and the time you save goes back into the part only you can do.

Start free with 20 pages, or read the full walkthrough of importing a bank statement PDF into Tally.