PDF bank statement to Tally
TallyPrime can’t import a PDF statement. Convert it here to Tally XML vouchers, or to Excel / MT940 for Alt+O › Bank Statement import. Each transaction keeps the date, narration and amount the bank printed, and a scanned statement works the same way.
Upload a file
What the Tally XML contains
- One voucher line per transaction
- Date, narration, and amount kept as printed on the statement
- Debit and credit on the side the bank shows them
- A file you import through Tally, not a spreadsheet to retype
What the Tally XML file looks like
Each transaction becomes a Receipt voucher with two ledger entries: the Bank ledger and an Uncategorised contra ledger you rename or map in TallyPrime. ISDEEMEDPOSITIVE is Tally's debit/credit flag, and the date is written as YYYYMMDD, the way Tally's XML import reads it.
<ENVELOPE>
<BODY>
<DATA>
<TALLYMESSAGE>
<VOUCHER VCHTYPE="Receipt" ACTION="Create">
<DATE>20260302</DATE>
<NARRATION>Direct Debit 4471 Acme Insurance</NARRATION>
<VOUCHERTYPENAME>Receipt</VOUCHERTYPENAME>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Bank</LEDGERNAME>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<AMOUNT>-120.00</AMOUNT>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Uncategorised</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>120.00</AMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
<VOUCHER VCHTYPE="Receipt" ACTION="Create">
<DATE>20260304</DATE>
<NARRATION>Card Payment Corner Grocer</NARRATION>
<VOUCHERTYPENAME>Receipt</VOUCHERTYPENAME>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Bank</LEDGERNAME>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<AMOUNT>-38.40</AMOUNT>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Uncategorised</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>38.40</AMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
<VOUCHER VCHTYPE="Receipt" ACTION="Create">
<DATE>20260306</DATE>
<NARRATION>Transfer Received J Smith</NARRATION>
<VOUCHERTYPENAME>Receipt</VOUCHERTYPENAME>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Bank</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>500.00</AMOUNT>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Uncategorised</LEDGERNAME>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<AMOUNT>-500.00</AMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
</TALLYMESSAGE>
</DATA>
</BODY>
</ENVELOPE>How to convert
Upload your statement
Drop in the PDF you downloaded from your bank, or a scan of a paper statement.
Choose Tally XML
Leave the output format on Tally XML — it is preselected on this page.
Import into Tally
Bring the XML in through TallyPrime and post the vouchers.
Statements it handles
Layouts differ from bank to bank, so nothing is matched against a fixed template. An unusual statement still produces a table you can check before exporting — which is what makes it usable for bookkeepers and accountants who receive statements from every client.
PDF statements and CSV exports
A statement downloaded from your bank, or the CSV your bank lets you export. Both arrive as the same clean table.
Multi-page statements, read as one table
A statement that runs over several pages — or several statements uploaded together — is read as one continuous table, not one file per page.
Amounts and dates kept as your bank prints them
Debit and credit signs, decimal places and date formats are left as printed, so the numbers still reconcile against the statement.
Scanned, image-only PDFs, read with OCR
A statement with no text layer is read with OCR and may need a quick review — the one case where a row can come out wrong.
- CSV
- Scan
Rows are read by what they are — a date, a description, an amount — not by where they sit on the page, so a wrapped description stays with its transaction and a closing balance never becomes one. Why OCR mangles bank statements
Frequently asked questions
How do I convert a bank statement to Tally?
Upload the PDF from your bank (or a scan) above, keep Tally XML as the output format, and download the XML file. No account and nothing to install.
Can I import a PDF bank statement into TallyPrime?
Not directly. TallyPrime reads a bank statement from Excel, CSV or MT940 in its Bank Statement import, and vouchers from XML — never from a PDF. Upload the PDF here and download Tally XML, Excel or MT940 instead.
Does it work with TallyPrime?
Yes. TallyPrime imports XML vouchers, which is what the Tally XML option gives you. For the Bank Statement import on the reconciliation screen, choose Excel or MT940 as the output instead.
Which output should I pick — Tally XML, Excel or MT940?
Tally XML when you want vouchers created for you (Import › Transactions). Excel or MT940 when the vouchers are already in your books and you only want to reconcile the bank ledger against the statement (Alt+O › Bank Statement on the reconciliation screen).
What is the difference between Tally XML and Tally TDL?
XML is the file you import transactions from. TDL is the language used to customise Tally itself, not an import format, so nothing TDL-specific is produced.
Will debits and credits be on the right side?
Amounts are read as the statement prints them and kept on the same side, rather than re-signed from a single column.
Is my statement kept after conversion?
No. The file is deleted when the conversion finishes; only the converted copy stays at your private link.
Do I need an account?
No. The converter works without signing up.