Home/Documents/Bank Statement

Supported document type

Detect tampered and deepfake Bank Statement

A bank statement is the one income document that shows money actually arriving, which is why underwriters ask for it and why it is edited more often than anything else in a lending file. Every row carries a running balance that depends on the row above it, so a credit pasted in or a debit deleted breaks the chain all the way down the page. TamperCheck analyses statements through a single REST endpoint at $0.50 per document, with no subscription or minimum.

API slug: bank_statement

Last updated:

What a genuine bank statement contains

A statement covers a defined period for one account. The header carries the bank's name and branding, the branch, and the routing identifier, whether that is a sort code, IFSC, routing number, or IBAN, alongside the account holder's name and registered address and a partly masked account number. Then come the period, the opening balance, the transaction table, and the closing balance. Each row holds a date, a narrative describing the counterparty or payment method, a reference, a debit or a credit, and the balance after that movement.

The running balance is a chain, and that is the whole point of it. Each row's balance equals the row above plus its credit or minus its debit, so a pasted salary credit or a deleted gambling debit throws off every balance beneath it unless all of them are rebuilt. The opening balance plus total credits minus total debits has to land on the closing balance, and the summary panel has to equal the rows it summarises. Page continuity matters too: one page's closing balance is the next page's opening balance.

How bank statement forgeries are made

  • Credit row insertion

    A salary or transfer credit that never happened is pasted into the table to manufacture income. The inserted row is typeset by a different engine from the rest of the table, so its baseline, character spacing, or column alignment sits marginally off the grid the bank's own renderer produced.

  • Debit row deletion

    Gambling transactions, short-term loan repayments, returned direct debits, and payments to other lenders are removed so affordability looks better than it is. Deleting a row leaves either a break in the row pitch or a rebuilt table whose totals no longer agree with the summary panel above it.

  • Closing balance overwrite

    The final balance is raised to clear a deposit, visa, or tenancy threshold without rebuilding the chain that produced it. This is the fastest edit and the easiest to catch, because working down from the opening balance through the rows lands somewhere else entirely.

  • Text-layer editing

    Statements issued as text PDFs can be opened in an editor and retyped. The replacement characters are drawn from a font the editor embedded rather than the one the bank's generator used, and the document's producer metadata usually changes to name the editing tool.

  • Flatten and rescan laundering

    After editing, the file is printed to image, rasterised, or photographed to destroy the text layer and the edit history. The laundering is itself a signal: a bank-issued PDF that arrives as a flat image, with recompression artefacts concentrated over the edited regions, has been through something.

  • Whole-cloth statement templates

    Services sell statements that clone a bank's branding, typography, and layout, with plausible merchant narratives spread across the period. The arithmetic closes, so the balance chain passes. Branding fidelity, the logo's resampling history, and how the file was produced are what separate them from an issued statement.

What TamperCheck checks on a bank statement

TamperCheck runs 200+ forensic checks across three layers and returns a risk score from 0 to 100 with plain-English findings tied to specific regions of the document. These three carry the most weight on this document class.

  • Arithmetic reconciliation

    Stated totals are recomputed from their components, and running or cumulative figures are checked for continuity across periods. A single edited value breaks the chain even when the page still looks right.

  • Table structure integrity

    Inserted and deleted rows leave structural artifacts behind: inconsistent spacing, misaligned columns, and formatting the visible table no longer accounts for.

  • Stamp authenticity and placement

    Stamps are assessed for whether the ink was impressed onto the page or printed as part of it, and for whether the impression was placed digitally after the fact.

  • And many more checks

    The three above are the layers that carry the most weight on a bank statement. Every upload runs the full suite of 200+ checks regardless of document class, spanning file structure and metadata, pixel-level forensics, font and text rendering, optical and print characteristics, provenance signals, AI-generation signatures, and many more checks.

Who verifies a bank statement, and why

Lenders, landlords, mortgage brokers, and underwriters assessing income. In each case the document is being used to unlock money, access, or a legal status, which is exactly what makes it worth forging.

How to verify a bank statement in 4 steps

  1. Recompute the balance chain

    Start at the opening balance and work down. Each row's balance should equal the previous balance plus its credit or minus its debit. Then confirm that opening plus total credits minus total debits equals the closing balance, and that the summary panel matches the rows it totals.

  2. Check page continuity and row pitch

    The closing balance on each page must be the opening balance of the next, and page numbering must run to the stated total. Look for rows whose vertical spacing or column alignment differs from their neighbours, which is where a row was inserted or taken out.

  3. Inspect the file, not just the page

    Open the PDF's properties. A statement issued by a bank names that bank's generator as the producer. A consumer PDF editor in that field, a missing text layer on a document that should have one, or a flat image where a text PDF is expected all warrant a closer look.

  4. Corroborate or run a forensic check

    Where the account holder consents, an open banking connection returns transactions from the bank rather than from the applicant. Where that is not available, TamperCheck runs 200+ forensic checks over the statement and returns a risk score from 0 to 100 within seconds.

Frequently asked questions

How do I know if a bank statement is fake?

Recompute the running balance from the opening figure down. Every row's balance should equal the one above it adjusted by that row's debit or credit, and the closing balance should equal the opening balance plus total credits minus total debits. Then check that each page's closing balance opens the next page, and that the summary panel agrees with the rows it totals.

What software detects edited bank statements?

TamperCheck detects edited bank statements from the file itself, examining table structure, row alignment, the PDF text layer, and the regions where pixels were rewritten. It returns a risk score from 0 to 100 with findings tied to the rows that failed, costs $0.50 per document with no subscription, and processes the file ephemerally without storing it.

How do lenders verify bank statements?

Lenders increasingly bypass the document altogether: open banking and direct bank feeds pull transactions from the institution with the applicant's consent, so no PDF is involved. Where a PDF is unavoidable, they recompute the balance chain, match salary credits against payslips, compare the layout with the bank's known format, and run file-level forensics on what was uploaded.

Does converting a statement to an image hide the edits?

No. Flattening a PDF to an image removes the text layer and the editing history, but it adds evidence of its own: a second round of compression laid over the whole page, and edited regions whose noise and sharpness profile differs from the surrounding scan. A statement that should be a text PDF and arrives as a photograph is itself a finding.

TamperCheck analyses bank statement uploads with a hybrid forensic and AI pipeline tuned for this document class. Upload endpoints accept PDF and common image formats; class is inferred automatically. See the API & MCP documentation for authentication, async jobs, and webhooks.

Related document types

All supported document types