Bank Statement to Tally Converter (PDF to XML)
Turn a bank statement PDF into Tally XML with payment and receipt vouchers, ready for TallyPrime's import. Balances are checked row by row before you export.
- Prepare Tally vouchers from 10 pages a day for free, without an account.
- Your browser keeps the source statement and its PDF password on your device.
- Works with Indian statement layouts: separate withdrawal and deposit columns, Dr/Cr suffixes.
Drop your bank statement here
Choose a bank statement
Your original file and PDF password stay in this browser. Only extracted text and scanned-page images are sent for conversion; statement content is not stored unless you actively submit a problem report (deleted after 30 days).
Unlock your PDF locally
Choose the right route
TallyPrime's own bank import, or this converter?
TallyPrime can import bank statements itself from the Bank Reconciliation screen (TallyPrime 6.0 or later) when you download an Excel, CSV or MT940 file from a supported bank's net banking. Its imported rows go to Bank Reconciliation, where you still create the vouchers. Tally's help lists Excel, CSV and MT940 for that route, not PDF, and the file has to be in a layout Tally recognises for that bank, so a spreadsheet you build by hand from a PDF may not import cleanly.
This converter is for the other cases: you only have the PDF, the statement is password-protected or scanned, the bank is not on Tally's supported list, or you want vouchers created in one import instead of one by one.
| Situation | Use |
|---|---|
| Net banking Excel/CSV/MT940 from a supported bank | TallyPrime's Bank Statement import, then reconcile |
| Only a PDF statement (including password-protected) | This converter → Tally XML |
| Scanned statement or a photo of the pages | This converter (image recognition, then review) |
| A client's statements for past months | This converter, one statement per import |
Features
Why accountants use it for Tally
Payment and Receipt vouchers
Withdrawals credit the bank ledger; deposits debit it. The other ledger entry balances each Tally voucher.
Ledgers from narration rules
Route OLA rides to Conveyance or salary credits to Salary Account using narration matches, with a default ledger for unmatched entries.
Check balances before posting
Spot running-balance differences before creating the XML, and confirm your review when rows need attention before Tally import.
Scans and locked statements
Read scanned bank PDFs with image recognition, or unlock a password-protected statement locally before preparing Tally vouchers.
XML built on your device
Your browser creates the Tally XML without uploading it, and retains the original file locally. Conversion sends only extracted text and scanned-page images.
Indian bank layouts
Read separate withdrawal and deposit columns and Dr/Cr suffixes, then review INR amounts in lakh grouping, such as 1,00,000.00.
Who it is for
- CA firms and bookkeepers posting client bank statements into Tally.
- Small businesses on TallyPrime whose bank is outside its supported bank-import list.
- Anyone bringing past months up to date from saved PDF statements.
How it works
How to import a bank statement into Tally
Upload the PDF
Choose the statement PDF, a scan or a photo, up to 20 MB and 50 pages. Passwords are entered in your browser and never uploaded.
Check the balances
Each row's running balance is checked against the previous balance plus the transaction. Rows that do not reconcile are highlighted.
Set your ledgers
Enter your bank ledger name exactly as it is in Tally, a default ledger for the other side, and optional rules such as "OLA CABS = Conveyance"; add the company name if you keep several companies. Then download the XML.
Import in TallyPrime
Open the company, press Alt+O (Import) → Transactions, choose XML as the file format, select the file and press Enter. Check the import summary for the number of vouchers created.
Voucher mapping
How each transaction becomes a voucher
| Statement row | Tally voucher | Debit | Credit |
|---|---|---|---|
| Withdrawal (money out) | Payment | Matched ledger or default ledger | Your bank ledger |
| Deposit (money in) | Receipt | Your bank ledger | Matched ledger or default ledger |
The date is the transaction date, the narration is the full description plus any cheque or reference number, and voucher numbers are left to Tally's automatic numbering. Rows without a date or amount are left out, and the tool tells you how many.
Matching narrations to ledgers
Rules are checked from top to bottom; the first rule whose text appears in the description decides the ledger. Matching ignores upper and lower case.
| Narration contains | Ledger | Example narration |
|---|---|---|
| OLA CABS | Conveyance | UPI/DR/662466742463/OLA CABS/HDFC/... |
| SALARY | Salary Account | NEFT/CR/SALARY SEP 2026/... |
| ELECTRICITY | Electricity Charges | BILLPAY/BESCOM ELECTRICITY/... |
| GST | GST Payable | GST CHALLAN/CPIN 2609... |
| (no rule matches) | Suspense | IMPS/P2A/626012345678/LAKSHMI N/... |
Cash withdrawals and transfers between your own bank accounts are Contra entries in Tally; leave them in Suspense and change the voucher type in Tally.
Entries left in Suspense are easy to find later: open the Suspense ledger in TallyPrime and alter each voucher to the right ledger.
Sample
See the PDF and the Tally XML
Sample: a fictional Indian savings account statement
This 2-page sample has 30 transactions from 02 Sept 2026 to 30 Sept 2026: 24 payments and 6 receipts. The first voucher looks like this:
<VOUCHER VCHTYPE="Payment" ACTION="Create" OBJVIEW="Accounting Voucher View">
<DATE>20260902</DATE>
<VOUCHERTYPENAME>Payment</VOUCHERTYPENAME>
<NARRATION>UPI/DR/605455888032/SRI VENKATESWARA TIFFINS/HDFC/paytmqr281005050101@paytm/UPI Ref 4680203072</NARRATION>
<PERSISTEDVIEW>Accounting Voucher View</PERSISTEDVIEW>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Staff Welfare</LEDGERNAME>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<AMOUNT>-1111.64</AMOUNT>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Godavari Bank</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>1111.64</AMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>Download sample PDF (120.1 KB) · Download sample Tally XML (26.6 KB)
Troubleshooting
Tally import errors and fixes
| What Tally shows | Why | Fix |
|---|---|---|
| Ledger 'X' does not exist | A ledger name in the file is not in the company, or is spelled differently | Create the ledger (bank ledger under Bank Accounts, default ledger under Suspense A/c), or change the name in the tool and download again |
| Voucher date is before the books beginning date / dates outside the period | The statement covers dates before the company's books begin | Check F2 period and the books beginning date in company settings, or import a later statement |
| Voucher type does not exist | The Payment or Receipt voucher type was renamed or deleted | Restore a voucher type named Payment and Receipt, or rename yours back |
| 0 vouchers created, errors in the import summary | Every voucher was rejected, usually because a ledger is missing or misspelled | Open Tally.imp to see the first error, fix it, then import the same file again |
| Company not found / import goes to the wrong company | The company name entered in the tool does not match the company in Tally, or that company is not loaded | Clear the company name to import into the open company, or type it exactly as shown in Tally and load that company first |
| Vouchers appear twice | The same XML was imported more than once; Tally does not skip duplicates | Import each statement once; delete the extra vouchers from the Day Book |
Tally writes details of each import to its import log (Tally.imp in the TallyPrime folder). Import a small statement into a test company first if you are setting this up for the first time.
Other formats
Tally XML is for posting vouchers. To review and edit the rows in a workbook before deciding what to post, open the bank statement PDF to Excel converter for Excel and CSV downloads. If the client keeps their books in GnuCash, Xero or Moneydance, choose the PDF to OFX converter for their accounting software. For QuickBooks, the PDF to QBO converter creates a Web Connect file. For larger Tally workloads, compare page allowances and batch options on the pricing page.
Bank Statement to Tally FAQ
Is this bank statement to Tally converter free?
You get a daily allowance of 10 pages to prepare Tally vouchers without creating an account. Downloading the Tally XML is part of that free allowance. Choose Pro for a larger page allowance and batch conversion of statements.
Which Tally versions can import the XML?
The file uses Tally's XML voucher import format with Payment and Receipt vouchers, which TallyPrime imports through Alt+O → Transactions. Tally.ERP 9 uses the same import format under Gateway of Tally → Import of Data → Vouchers.
Do I need to create ledgers before importing?
Yes. Tally only imports vouchers whose ledgers already exist. The tool lists every ledger name used in the file before you download, so you can create any missing ones first.
Can I convert a scanned or password-protected statement?
Yes. Enter the PDF password in your browser to unlock it. Scanned pages and photos go through image recognition before the balance check; review highlighted rows before importing.
Does it split GST or TDS?
No. Each transaction becomes one Payment or Receipt voucher with two ledger entries. Use a ledger rule to send GST or TDS payments to the right ledger, and add tax details in Tally if you need them.
Which banks are supported?
The converter reads the transaction table rather than a fixed list of bank templates, including withdrawal and deposit columns and Dr/Cr suffixes common in Indian statements. Unusual layouts can need manual review before you export.
Do you store my statement?
Your device keeps the original statement and its PDF password; neither leaves the browser. Conversion uploads only the extracted text and images of scanned pages. Nothing from your statement is stored unless you submit a problem report, whose contents are kept for 30 days before deletion. Your browser builds the Tally XML locally for import.