If you assess loan files, onboard tenants or audit a client’s books, you have almost certainly been handed a bank statement that was edited before it reached you. A PDF is not a secure document. Free tools will happily let someone change a figure, and the result opens perfectly in any reader.
The useful news is that most edits are careless, and there is one test that catches them without any software at all.
Why this keeps happening
Bank statements are the most common supporting document in Indian lending, and almost nobody verifies them against the bank. A borrower short of the income threshold has an obvious temptation, and the barrier is a free PDF editor.
The usual edits are small and specific: inflate a salary credit, remove a bounced cheque, delete a loan-EMI debit, or raise the closing balance. Each is a change to one number.
The check that catches most of them
Every statement prints a running balance, and that column is a chain. Each row’s balance is the previous row’s balance, plus any credit, minus any debit:
previous balance + credit − debit = this balance
That has to hold on every single row. And here is the useful part: if someone changes one amount, the arithmetic breaks at that row and stays broken for every row after it. A single edit near the top of a twelve-month statement leaves a trail of hundreds of failures.
Doing it by hand
Pick any row in the middle
Note its balance, and the balance of the row directly above it.
Apply that row's transaction
Take the balance above, then add the credit or subtract the debit on your row.
Compare
The number you calculated should equal the printed balance, to the paisa. If it does not, that row is worth a question — and check the rows around it, because a real edit produces a run of failures rather than a single one.
Check the two ends as well: the opening balance should match the previous period’s closing, and the closing balance in the summary should equal the last row of the chain. Statements are often edited in the body while the summary is forgotten.
Other signals worth a look
The PDF’s own properties
Open File → Properties in any reader. A statement generated by a bank names the bank’s own software as producer. If it names a consumer PDF editor, or the modification date is later than the creation date, the file has been through something after the bank made it. Neither is proof — some banks re-process their own files — but both are worth asking about.
Fonts and alignment
Edited figures are often set in a slightly different font, or sit a fraction off the column’s alignment. Zoom to 400% on the amounts column and look down it. Real statement rows are machine-set and line up exactly.
The IFSC code
The first four characters of an IFSC are the bank, and the code should match the letterhead. “HDFC0001234” on a statement branded as another bank is a fabrication, not a typo. See our list of supported banks and their formats.
What none of this proves
So treat a passing check for what it is: the statement is internally consistent, and the common edits did not happen. It is not confirmation that the document came from the bank. Where the amount at stake justifies it, nothing replaces getting the statement from the source — account aggregator consent, net-banking access, or a direct confirmation from the branch.
Being precise about this matters. A verification step that gets described as “proof” ends up relied on by exactly the people who can least afford it to be wrong.
Checking one in thirty seconds
Doing the arithmetic by hand is fine for a spot check and impractical for a 250-row statement. Our bank statement checker does every link at once: drop the PDF in and it reports how many balance links add up, and names the rows that do not, with the amount each one is off by.
It needs no account, and nothing is stored — the file exists only for the length of the request. If you then want the transactions themselves as Excel, CSV or Tally XML, that is what the converter is for.
Check a statement now
Every balance link tested in seconds. No account, nothing stored.
Open the checker →