Skip to main content
Bankflow

Statements

How to Import Bank Statements into Bankflow

Upload PDF, CSV, Excel, or JSON statements, choose which pages are read, map spreadsheet columns, and understand what happens while a statement processes.

Last verified in Bankflow on October 24, 2026.

What You Can Import

Bankflow reads bank and credit card statements in four formats:

  • PDF, including scanned, multi-page, and password-protected statements.
  • CSV or TSV exports from your bank's website.
  • Excel workbooks (.xlsx and .xls).
  • JSON transaction files.

Each file can be up to 50 MB. A photo of a statement (JPEG or PNG) is read too, as a one-page scan: add it through Add files and choose Bank statement when asked what it is.

Statements are for bank and card accounts, whose transactions join your ledger. Everything else goes to Documents, which reads it and links it to the bank rows it explains: invoices and receipts (including photos), a lender's loan statement or repayment schedule, payout reports from Stripe, PayPal, Shopify, or Square, payslips, a broker's funds ledger, and tax forms. A loan or broker statement goes to Documents too, not Statements: your bank statement already holds every loan payment and every transfer to the broker. See loans, payouts, and payslips.

Step 1: Open Add Files

Every file comes in the same way: Add files. Add any file, and Bankflow puts it where it belongs. Click Add files at the top of the sidebar or the dashboard, or go to Statements and click Add statements, which opens the same screen with Bank statements already chosen. You can also drop files anywhere in the app.

With Let Bankflow sort chosen, each file is read for what it is and sent to its page, so statements, invoices and receipts can go in together. When Bankflow can't tell what a file is (a scanned PDF or a photo has no text to read, and some files read both ways), it doesn't guess: the file waits on Files with Read as, where you choose what it is, and nothing is read or charged until you do. Choose Bank statements when you know that's what you have. To have statements arrive from your inbox instead, see importing by email.

Drag files onto the screen or click Choose files. You can add several statements at once, and add more with Add more before you confirm. Nothing is imported until you click Add.

Step 2: Choose Pages (Optional)

Many statements carry pages you don't want read: a cover letter, terms and conditions, marketing inserts, or another account's summary. With Bank statements chosen, every PDF in the list has a Choose pages button. It opens the file as page thumbnails so you can keep only the pages that matter.

Pages you leave out are never read and never charged. Credits are counted per page (see credits and billing), so trimming boilerplate saves credits on every import.

Pages of terms are skipped on their own

Card statements often end with pages of terms that explain interest with dated, priced examples, which read exactly like transactions. Bankflow recognises those pages, even inside a range you picked yourself, and leaves them out: they're not read and not charged for. The statement says "N pages skipped", with which pages in its tooltip.

Skip the same pages every month

If a bank always starts or ends its statements with the same pages, set a page rule once instead of choosing pages every time. Open Statements, go to the Banks tab, open the bank's menu, and choose Manage bank. Under Pages to skip on every import, set how many pages to skip at the start and at the end.

  • The rule applies to new imports from that bank, including statements that arrive by email or through a workflow.
  • It only runs when Bankflow recognises the statement as coming from that bank. If it doesn't, the whole statement imports as usual.
  • It never runs if it would empty a statement or take more than half of a short one, so a rule written for a long statement can't gut a short one.
  • Choosing pages yourself always wins. If you pick pages for a file, including keeping all of them, the bank's rule is ignored for that file.
  • You need to have imported at least one statement for the bank before its page rule can be set.

Step 3: Decide How Much Bankflow Finishes for You

Under More options is a checkbox labelled Finish statements automatically. With it on, Bankflow counts the transactions and balances it read straight away. Anything it couldn't check is imported with a note attached rather than held back.

With it off, a statement with warnings is held out of your totals until you review it. Either way, Bankflow always stops to ask when:

  • the statement's currency is unclear,
  • the statement looks like one you already imported, or
  • nothing could be read from it.

This is a saved preference, not a per-upload choice. It's the same setting as Count statements that have warnings in Settings.

Step 4: Map Spreadsheet Columns

A CSV or Excel file added as a bank statement opens a Map columns dialog before import. (One added with Let Bankflow sort is read by its column names, and if they can't be placed, its line in the results offers Choose the columns.) Bankflow detects the columns for you, and you review the mapping before anything is saved:

  • Date and Description are required. Balance is optional.
  • Choose separate debit and credit columns if your file has a withdrawals column and a deposits column, or a single amount column if it has one signed amount.
  • For a single amount column, you can point to a Dr/Cr column, or tell Bankflow whether a negative number means money out or money in.

Password-Protected PDFs

If a PDF is locked, Bankflow asks for the password rather than failing the file: type it under More options before you add the file, or when its line asks for it after. Saved passwords live under Settings, Security & privacy:

  • Reusable PDF passwords are tried automatically whenever an imported PDF is locked. Add the ones your banks use and most locked statements open without a prompt.
  • Source-specific passwords are saved to a bank after a locked import succeeds, so the next statement from that bank opens on its own. Removing one forgets that password everywhere it was saved.

While It Processes

Once you add them, a short summary says what each file was taken for and where it went, and each file joins the processing queue. The activity tray shows each statement's progress, and Files in the sidebar keeps the full record of everything that came in: what's running, what finished, what's waiting for you, who added it and what each import cost.

If you'd like to know when an import finishes while you work in another tab, allow notifications when your browser asks as you add files, or turn on Browser import alerts in Settings.

The Running Balance Is Checked

A statement's running balance is the one thing on the page that can prove the rows were read right: each balance has to follow from the last one and the row between them. Where it doesn't, the mistake lies between the last balance that agrees and the next one, so Bankflow reads only those rows again, first by putting the rows it has in the one order their balances allow, then by reading those pages again. A new reading is kept only when the balance then carries through to the cent. Nothing is ever adjusted to make a balance close, no row the page prints is dropped, and whatever still doesn't close comes to you for review.

Card statements are checked the card's way round, where a charge raises what you owe. A statement that prints no running balance is checked against the totals in its summary instead, and if the summary itself doesn't add up, you're told by how much. The statement shows how many balance breaks its import fixed.

Which Account a Statement Is For

Bankflow reads the last three or four digits of the account or card number a statement prints and shows them beside the bank, like ··9012. They're what tells two cards at one bank apart, in Workpapers, in books, and in filters. The full number is never stored. If a statement prints none, or Bankflow read it wrong, choose Set account number from the statement's menu, or select several statements and set them all at once. A number you set yourself is never replaced.

Statements imported before account numbers were read can get theirs in one go: the Statements page says how many have none and offers Fill in account numbers. The digits are read from the PDFs you already uploaded, and no credits are used.

One file, several accounts

A consolidated statement that holds several accounts imports as one statement per account, from the one file, charged once. Each has its own account number, period, rows, and balances. Because the balances were read from a shared page rather than tied to one account's own column, each statement is held for you to confirm its balances before it counts, unless Finish statements automatically is on and the rows add up to them.

The Statement Period

Bankflow reads the period a statement prints, such as "Statement period: 1 Sep to 30 Sep", and uses it to place the statement next to the ones before and after it. A statement that prints no period takes the dates of its first and last transactions instead. Risk analysis tells the two apart, since only a printed period says what should have been there.

How the Currency Is Decided

Every amount needs a currency, and Bankflow never guesses one silently. It reads the statement first: currency codes, and symbols like £ and € that belong to exactly one currency. Where a statement is less clear, it falls back to a currency you confirmed for the same bank before, then to the bank's home country, then to your display currency. Whenever it assumed rather than read, it tells you why.

If none of that settles it, the statement waits for you to choose. Look for Set currency on the statement's row, or open the row menu and pick Select source currency. You can also choose Decide later and come back to it.

Duplicates

Uploading the exact same file twice doesn't process it twice. If a different file holds the same transactions as a statement you already imported, the new statement is marked Duplicate and held back so the money isn't counted twice. Click the badge to delete the duplicate.

Common Problems

A statement says it found no transactions. Check that the right pages were kept. If you're sure the statement has transactions, use Report a problem from the statement's menu. Credits for a result we got wrong are refunded.

The import is waiting for credits. When your credits don't cover a whole file, the importer offers to import the first pages they do cover, or to let you choose the pages yourself. A statement that arrived with no credits at all is kept: top up or upgrade from Billing, then resume it from Files or the activity tray. Nothing you uploaded is lost.

The columns in a spreadsheet came out wrong. Delete the statement and add it again as a bank statement, correcting the mapping in the Map columns dialog before you confirm.

The statement landed under the wrong bank, or none. Choose Change bank from its menu. Bankflow reads the bank off the file and can read it wrong; this is the correction, and it keeps everything else about the statement.

Next Step

Once a statement has imported, review it to see how well its balances and rows check out, or set up email import so next month's statement arrives on its own.