Convert a Bank Statement to Tally XML
Whatever your bank produced becomes Tally voucher XML, PDF included, with a balance check that proves nothing was dropped.
No sign-up needed. A PDF is read on our server, never stored.
Tally XML: Not yet import-tested in TallyPrime. The structure follows Tally's published sample and its documented sign convention, and nobody has put this output through a real installation. Import one statement and check the vouchers against your company file before you rely on it.
- PDF, CSV, Excel and the OFX family are all read, and which one you have is taken from what is inside the file rather than its name
- Only a PDF is read on our server, held in memory and dropped when the request ends. Every other format is read in this browser tab
- No account and no card, a handful of PDFs an hour, and no limit at all on the rest
Whatever your bank handed over is read here: a PDF, a CSV, a spreadsheet, or one of the OFX-family downloads. All of it comes out as Tally voucher XML. The format is identified by what is inside the file rather than the name on the end, which matters because banks are careless about extensions.
Every transaction becomes one voucher: a Receipt for money in, a Payment for money out, each with a ledger entry on both sides that nets to zero. That is what makes it valid double-entry rather than a list, and it is the part a bank statement does not contain and has to be added.
Before anything is written, the transactions are totalled and checked against the statement's own balances. A page missed on the way in is caught before it becomes a hundred vouchers you have to unpick.
One of those inputs leaves your machine and the rest do not. Reading a PDF needs a parser too large to hand to a browser, and a scanned statement has to be looked at rather than parsed. So a PDF goes to our server, is held in memory while it is read, and is dropped when the request ends. It is never written to disk and never stored. A CSV, a workbook or an OFX file is read in this browser tab and goes nowhere.
A converter that tells you when it missed something.
Most tools hand you a file and let you find out in your ledger. Every conversion here is reconciled against the closing figure first. That figure is read from your statement’s balance column, or typed in from the page when there isn’t one.
When the totals don’t meet you get the exact size of the gap, every row that did read, and the converted file anyway.
Sample balance check
A transaction may be missing. Review the rows below, or re-upload including all pages.
A sample result. This is the same component the converter uses.
Your statement is read, not kept
Reading a PDF needs a server. Here is exactly what happens on it.
The PDF is held in memory while it is read, then dropped when the request ends. It is never written to disk and never stored. There is no copy to delete, lose or be compelled to produce.
Open your browser's network tab and convert. You will see one request, to this site, and nothing after it. The transactions come back as text. The file you download is written here, in this tab.
PDF is the only one that leaves. A CSV or a spreadsheet from the same bank is converted in your browser and never crosses the network. Take that instead when your bank offers both.
Questions people actually ask
Does my statement get uploaded?
Only if it is a PDF. Reading one needs a parser far too large to send to your browser. A scanned statement is a picture of a page, so it has to be looked at rather than parsed. It goes to our server, is held in memory while it is read, and is discarded when the request finishes. It is never written to disk and never stored, so there is no copy to delete afterwards. Every other format this page takes, CSV, Excel, .ofx, .qfx and .qbo, is converted inside this browser tab and never crosses the network. Open your browser's network tab while you convert one and you will see that for yourself.
What can I actually drop in?
A PDF, a CSV, an .xlsx spreadsheet, or an .ofx, .qfx or .qbo file. Which one you have is worked out from the contents rather than the extension. That matters because banks are careless about naming. A CSV arrives called .txt often enough, and the three OFX extensions are used interchangeably for the same document. If a layout cannot be read automatically, you are shown the file and asked to point at the date, amount and description columns yourself.
What ledgers does the file use?
The bank side is written against a ledger named Bank Account, and the other side against Suspense. Both are placeholders meant to be pointed at your real ledgers. A Tally company file names its accounts however its owner chose, and there is nothing in a bank statement that could tell us what yours are called.
Why is money coming in written as a negative number?
Because Tally writes a debit as a negative amount, and money arriving in a bank account is a debit, an asset increasing. The file states the direction twice, in the sign and in an ISDEEMEDPOSITIVE flag beside it, and the two always agree. It looks wrong at a glance and is the format working as intended.
Is this the same as a Tally backup?
No. A backup carries a whole company: masters, vouchers, configuration. This is a voucher import file, a list of transactions and nothing else. It adds entries to a company that already exists rather than replacing one.
Does it read scanned or photographed statements?
Yes. A PDF either carries its own text or is an image of a page. Where there is text, only that text is read. Where there is not, as with a scan, a photograph or a fax, the pages are read as images instead. You are told which of the two happened. They are not equally exact, and you should know which one you are checking.
How do I know every transaction came through?
Check the balance panel above the results. If your statement prints a running balance, the opening and closing figures are taken from it and every step is reconciled against the transactions. A row that went missing breaks the chain and is reported as a figure rather than passed on quietly. Where a statement prints no running balance there is nothing to check against on its own. Type the opening and closing figures in from it and the same check runs.
Do I need an account?
No. There is no sign-up, no email capture and no card. PDFs are capped at a handful an hour, because reading one costs something to run. Every other format is converted in your browser and has no limit.
Try it on the statement that’s annoying you right now.
No account, no card, no limit. If the layout isn’t recognised you will know immediately, rather than after a support ticket.