BASALT · JOURNAL

Redacting a bank statement so the account number is really gone

2026-08-07 · how to redact a bank statement

You are asked for three months of statements for a rental application, a loan file, a court filing, or an expense claim, and you would rather not hand over your account number and every transaction you made. Learning how to redact a bank statement correctly matters more than it does for most documents, because a statement PDF from a bank is generated text rather than a scan, which means every digit in it is machine-readable and extractable in one command.

What is sensitive on a statement, and where it sits

A statement looks simple and carries an unusual density of directly actionable data.

The account number. Printed in the header block of every page, sometimes again in a summary table, a payment stub, or a footer. It is rarely in one place.

The routing or sort code, IBAN, and SWIFT identifiers. Often on page one only, in small type near the bank's address block, and overlooked because the eye treats that block as branding.

Full card numbers. Card statements print the full number or a long fragment in the header, and fragments also appear inside transaction descriptions for authorizations and reversals.

Name and mailing address. In the panel designed to show through a window envelope, and repeated in the page header on later pages.

Balances. Opening, closing, available credit, and the running balance column. If your purpose is proving income you may need them. If it is proving one payment, you do not.

Transaction descriptions. The field people forget. Descriptions name counterparties: an employer, a landlord, a clinic, a lawyer, a pharmacy, a person you paid. They frequently carry a merchant reference, a partial card number, and sometimes a second person's full name.

Statement and customer reference numbers. Cycle numbers and customer identifiers are stable across statements and link documents to each other.

A bank statement is not a scan, so nothing in it is safe by default

Statements downloaded from online banking are produced by a template engine. The digits are real text objects painted by text-showing operators, not pixels, which has two consequences.

First, drawing a black rectangle over an account number changes nothing. The rectangle is one more drawing instruction on top, the character codes underneath stay in the content stream, and any extraction tool reads them back. A drawn black box is not a redaction, and it keeps being treated as one.

Second, the numbers are structured. An account number sits in a predictable position with a predictable format, so recovering it from an incompletely redacted file needs no skill and no specialist software. A statement is the worst document to be casual with and the one handled most casually, because it feels routine.

Partial masking leaks more often than people expect

The habit is to leave the last four digits visible, because that is how banks display accounts in their own interfaces. That is safe when the rest of the number was never disclosed, and unsafe inside a document that shows the rest of it somewhere else.

If page one carries the full number in the header and page four carries the masked version, masking has revealed nothing new. A payment stub, a transfer confirmation, or a check image inside the same PDF creates the same problem. The value is either removed everywhere in the file or it is disclosed.

The same logic applies across a set. Redacting January thoroughly and February loosely discloses the number, because the recipient has both files. Consistency across the set protects you, not care on a single page.

How to redact a bank statement, step by step

Decide what the recipient actually needs. A landlord verifying income needs deposits and a name, not your account number or the description of every debit. Narrowing the ask is the cheapest risk reduction available and is often accepted without argument.

Inspect the file before marking. Check what the PDF carries beyond the page: metadata, XMP, annotations, attachments, and earlier revisions. Bank exports commonly retain an original file path, and that path sometimes contains the account number.

Write down the values to remove. Account number, routing or sort code, IBAN, card numbers, customer reference, address, and each counterparty name, with formatting variants: spaced, hyphenated, and plain.

Search and redact each value across the whole document. A whole-file search catches the header on every page, the summary table, the footer, and the stub, which is exactly where a page-by-page pass fails.

Handle images separately. A scanned check image, a logo block containing an account line, or a QR code on a payment slip needs pixels destroyed and the image re-encoded, not covered.

Strip metadata and attachments, and write the file as one generation. An incremental save appends new objects and keeps the old ones, so the unredacted page can remain reachable inside a file that displays correctly.

Verify before sending. Extract the text from the finished file and search it for every value on your list. Verifying a PDF redaction lists the commands, and the general procedure is in how to redact a PDF on a Mac.

The tool you use is part of the exposure

Uploading a statement to a free web service hands your unredacted account number, balance, and transaction history to whoever operates the site, and the upload happens before any redaction is applied. The service may be careful, and you have no way to check. Cloud PDF tools and the risk they carry covers what happens to an uploaded file.

Frequently asked questions

How do I redact a bank statement on a Mac?

Use a tool that removes the text from the PDF content stream rather than drawing over it, then verify the output with a separate parser. Preview and most annotation tools only draw shapes, so the account number stays extractable underneath. Build a value list first, search the whole document for each entry, and strip metadata and attachments before saving.

Can you recover a blacked-out account number from a PDF?

Yes, whenever the mark was drawn over the text instead of removing it. Recovery takes no specialist software: copying the covered area, running a command line text extractor, deleting the annotation that forms the box, or opening an earlier revision will each return the digits. Statements are generated text, so extraction is reliable.

Should I leave the last four digits of my account number visible?

Only if the rest of the number appears nowhere else in the file or in the set you are sending. Masking is meaningful when the unmasked value has never been disclosed and meaningless when page one prints the full number in the header. Check the payment stub and any check images too.

Do I need to redact transaction descriptions?

Descriptions are usually the most revealing field on a statement, so review them deliberately instead of assuming the numbers are the only issue. They name employers, landlords, clinics, lawyers, and individuals you paid, and they often include merchant references and partial card numbers. If the recipient needs only deposits, redacting debit descriptions costs nothing.

Will the bank's PDF still open normally after redaction?

Yes, if the redaction is done by a tool that rewrites the file correctly. Removing glyphs from a content stream and re-encoding an image produces a valid PDF that opens in any viewer, prints normally, and keeps its layout. The removed characters simply no longer exist, so text extraction returns nothing where the marks were.

Is it safe to redact a bank statement with an online tool?

Uploading the statement sends your unredacted account number, balances, and full transaction history to a third party before any redaction happens. That exposure is real regardless of how the site behaves afterward, and it is avoidable, since the same work can be done locally with nothing transmitted.

Does redacting a PDF remove my name from the file properties?

Not automatically. Redaction marks act on page content, while the information dictionary, the XMP packet, and the original file path are separate structures that survive unless a tool strips them explicitly. Bank exports often carry a file path containing your name or account number, so check the metadata afterward. See removing PDF metadata on a Mac.

How do I redact several months of statements consistently?

Treat the months as one job with one value list, and apply the same searched values to every file rather than reviewing each separately. Inconsistency is the usual failure: an account number removed from January and missed in one February header is fully disclosed, because the recipient has both files.

Doing it in Basalt

Basalt handles statements the way they need to be handled: search and redact finds every instance of an account number, a card number, or a counterparty name across all pages, so the header on page four is caught along with the one on page one. Redaction destroys content rather than covering it, with glyphs excised from the content stream, image pixels destroyed and re-encoded, and metadata, XMP, attachments, and hidden layers stripped as the file is written in a single generation. A verifier then re-opens the produced bytes with an independent parser and proves the numbers are gone before anything is saved, and if it cannot prove that, no file is written. The engine has no network entitlement, enforced by macOS at the code signature level, so the statement never leaves your Mac. It is $29 once, lifetime, up to three Macs, free for 24 hours, and removing personal information from PDF files covers the wider case.

Redaction that proves itself

Basalt destroys the content you mark, then re-opens the file it wrote and proves the content is gone before it saves anything. Your documents never leave your Mac.

DOWNLOAD BASALT 2.3.0 BUY $29 FREE FOR 24 HOURS · MACOS 13+