How to Import Bank Statements into KashFlow — Complete UK Guide (2026)

9 July 2026 · 12 min read · BankScan AI Team

It's 10pm. You've just finished a client's quarterly VAT return — and then you spot it. Six months of bank statements sitting in your inbox, all from a client whose bank isn't supported by KashFlow's automatic feed. The PDFs are locked. The CSV options are nonexistent. And you have a review meeting at 9am tomorrow.

If you use KashFlow — IRIS's flagship accounting platform for UK small businesses and bookkeepers — you've probably hit this wall before. KashFlow's bank feed is solid for the big high-street names: Barclays, HSBC, Lloyds, NatWest. But the moment a client banks with Metro Bank, Monzo Business, a building society, or an international account? You're on your own. Manual CSV import it is.

The problem isn't that manual import is hard. It's that getting the CSV format right is death by a thousand tiny corrections. Wrong date format? Import rejected. Multi-line description wrapping into three rows? Your trial balance is now a work of fiction. Currency symbols left in the amount column? KashFlow silently misreads half your transactions.

This guide covers every method for importing bank statements into KashFlow — from setting up automatic feeds to formatting CSVs manually, fixing common errors, and automating the whole thing for multiple banks. Whether you're a solo bookkeeper with five KashFlow clients or a practice managing dozens, there's something here that'll save you hours every month.

Every hour spent manually formatting CSV columns is an hour not billing a client. Let's fix that.

KashFlow Bank Feed vs Manual CSV Import: What Actually Works?

Before we dive into the how-to, let's be honest about what you're working with. KashFlow gives you two paths to get transactions in: the automatic bank feed and manual CSV import. Neither is perfect for every situation — and knowing when to use which is half the battle.

Automatic Bank Feed (Open Banking / Yodlee)

KashFlow connects to your client's bank via Open Banking (for UK regulated banks) or Yodlee (for additional coverage). Once authorised, transactions flow in automatically. It's the dream setup — when it works. Here's the reality:

Pros of Bank Feed

  • Transactions arrive automatically — no downloading or uploading
  • Daily sync keeps everything up to date
  • KashFlow auto-matches transactions to invoices and rules
  • No CSV formatting required
  • Open Banking is free (included in KashFlow subscription)

Cons of Bank Feed

  • Only covers major high-street banks — gaps for challenger banks, building societies, international accounts
  • Open Banking authorisation expires every 90 days — clients must re-authorise
  • Feed can break silently — you may not notice missing transactions until month-end
  • Historical data limited — typically only 90 days of past transactions
  • Some business accounts have restricted feed access

Manual CSV Import

When the bank feed isn't available — or when you're onboarding a new client with six months of historical statements — CSV import is your only option. KashFlow's CSV import wizard walks you through column mapping, but the quality of the import depends entirely on the quality of your CSV file.

Pros of CSV Import

  • Works with any bank — no feed support needed
  • Import historical statements — years of back data if needed
  • Full control over what goes in
  • No 90-day re-authorisation headaches

Cons of CSV Import

  • Manual formatting required — each bank's CSV is different
  • PDF statements must be converted to CSV first (KashFlow doesn't accept PDFs)
  • Date format must be DD/MM/YYYY — any deviation breaks the import
  • Multi-line descriptions split into phantom rows
  • Time-consuming: 15–45 minutes per statement if you're formatting manually
Reality check: The average UK bookkeeping practice manages clients across 4–7 different banks. KashFlow's bank feed covers maybe 60% of those. The remaining 40% — that's where the real time drain lives. If you're manually converting three statements a week at 20 minutes each, that's 52 hours a year spent on CSV formatting alone. That's over a full working week of unbillable time.

Step-by-Step: Importing Bank Statements into KashFlow

Right, let's get into the actual workflow. I'm going to walk through every step — from downloading the statement from your client's bank to seeing clean transactions in KashFlow. Follow this in order and you'll avoid the most common pitfalls.

1

Download the Bank Statement

Log in to your client's online banking. Navigate to the account and statement period you need. Look for "Export" or "Download" — choose CSV (.csv) if available. If only PDF is offered (common for business accounts, HSBC, Nationwide, and most building societies), download the PDF — you'll need to convert it to CSV in Step 2.

Pro tip: For clients you manage regularly, ask them to set you up as a read-only user on their online banking. It saves the back-and-forth of requesting statements every month and keeps you GDPR-compliant with direct access.

2

Convert PDF Statements to CSV (If Needed)

KashFlow does not accept PDF bank statements directly. If your client's bank only provides PDFs, you must convert to CSV first. You have three options:

3

Format the CSV for KashFlow

This is the step where most people lose time. KashFlow expects a clean, flat CSV with these columns:

Save as CSV UTF-8. Double-check there are no empty rows, no merged cells, and the header row appears only once at the top.

Time check: If you're manually formatting at this point, a 100-transaction statement takes about 15–25 minutes. With BankScan AI, it takes under 30 seconds — the formatting is automatic for all 16+ UK bank formats.

4

Upload and Map Columns in KashFlow

In KashFlow, go to Bank > Import Statement. Select your bank account, choose the CSV file, and KashFlow will launch the column mapping wizard. Match each of your CSV columns to KashFlow's fields:

KashFlow will show a preview of the first few rows. Check the preview carefully — if dates are showing as errors or amounts look wrong, cancel and fix your CSV before proceeding. A bad import is harder to undo than a cancelled one.

5

Review Imported Transactions

After import, KashFlow displays the imported transactions in the bank screen. Do a quick sanity check:

If anything looks off, you can undo the import from the bank screen and re-upload with corrections. Better to spend two minutes checking now than untangling a reconciliation mess at month-end.

Common KashFlow Import Errors — and How to Fix Them

KashFlow's import is straightforward when the CSV is right. When it's wrong, the error messages can be cryptic. Here are the most common problems bookkeepers hit, with the actual fix for each.

❌ "Invalid date format"

KashFlow expects DD/MM/YYYY. If your CSV has US-format dates (MM/DD/YYYY), dates in text format ("15 March 2026"), or inconsistent separators (dots instead of slashes), the import will fail or misread dates.

✅ Fix: In Excel, select the date column, go to Format Cells > Custom > Type: dd/mm/yyyy. Save as CSV and re-import. If dates are stored as text, use =DATEVALUE() to convert them first.

❌ "Duplicate transactions detected"

KashFlow checks imported transactions against existing ones by date, amount, and description. If you're re-importing a corrected CSV after a failed attempt, KashFlow may flag previously imported transactions as duplicates.

✅ Fix: Before re-importing, undo the previous import from the bank screen. If you need to import genuinely similar transactions (e.g. two payments of the same amount on different days), they should import fine — KashFlow looks at date + amount + description combined.

❌ "Transactions appear in wrong columns"

During the column mapping step, you may accidentally swap Money In and Money Out — or map the Balance column to a transaction amount field. The result: credits showing as debits, or balance figures appearing as if they're payments.

✅ Fix: Cancel and re-upload, paying close attention to the column mapping. The preview screen is your best friend — if amounts look wrong there, they'll definitely be wrong in the import. Map Balance to "Balance" (not to Money In/Out).

❌ "Multi-line descriptions split into separate rows"

This is the single most common issue. A bank transaction where the description wraps across two lines appears as two rows in the CSV — one with a date and amount but half a description, and a phantom row with no date or amount but the rest of the description. KashFlow can't parse phantom rows.

✅ Fix: In Excel, merge the description fragments using TEXTJOIN or manual editing, then delete the phantom rows. For long statements, this is the biggest timesink — BankScan AI handles multi-line description merging automatically for all 16+ UK bank formats.

❌ "Amounts not recognised — currency symbols or commas present"

If your amount columns contain £ signs, comma separators (£1,250.00), or negative indicators in the wrong place, KashFlow may misread the value as text or as a completely different number.

✅ Fix: In Excel, use Find & Replace to remove all £ signs and commas from the amount columns. Ensure Money Out values are positive (KashFlow knows they're debits by the column you map them to). Save as CSV and re-import.

Formatting Bank Statements from Specific UK Banks for KashFlow

Every UK bank has its own statement quirks. Here's what to watch for with the most common banks your KashFlow clients will use — and why some are much harder than others.

Bank CSV Export Available? Date Format Biggest Pain Point KashFlow Import Ready?
Barclays ✅ Yes (personal & business) DD/MM/YYYY Multi-line descriptions in business accounts 🟠 Needs formatting
HSBC ⚠️ Personal only; business = PDF DD/MM/YYYY Grouped date headers, multi-line descriptions, embedded balance column 🔴 Requires conversion
Lloyds ✅ Yes DD/MM/YYYY Sometimes exports with extra header rows 🟠 Needs formatting
NatWest ✅ Yes DD/MM/YYYY CSV column order varies by account type 🟠 Needs formatting
Santander ✅ Yes DD/MM/YYYY French-style CSV separators (semicolons) on some accounts 🟠 Needs formatting
Nationwide ⚠️ Personal only; business = PDF DD/MM/YYYY No CSV option for business accounts — PDF conversion required 🔴 Requires conversion
Metro Bank ✅ Yes Sometimes US format Date format inconsistency — check before importing 🔴 Check dates
Monzo Business ✅ Yes DD/MM/YYYY Limited KashFlow feed support; manual CSV import only 🟠 Needs formatting
Starling Bank ✅ Yes DD/MM/YYYY Feed often works, but CSV is reliable fallback 🟢 Generally clean
🔴 Red — Needs Conversion
PDF-only banks (HSBC Business, Nationwide Business, building societies). No CSV export available. Must convert PDF to CSV before KashFlow import.
🟠 Amber — Needs Formatting
CSV available but needs cleanup: date format fixes, multi-line description merging, extra header rows removal, or column reordering.
🟢 Green — Direct Import
Clean CSV or working bank feed. Upload and go. Starling, some Barclays accounts, and most banks connected via Open Banking feed.

If you're processing statements from multiple banks — which most bookkeeping practices are — the per-bank formatting differences multiply fast. What works for Barclays breaks on HSBC. What's clean from Starling is a mess from Nationwide. This is where a bank statement converter that handles all 16+ UK formats pays for itself in the first week.

KashFlow API and Automation Options

If you're running a practice with volume — dozens of KashFlow clients, hundreds of statements a month — you've probably wondered: can I automate this? Here's the honest answer.

KashFlow REST API

KashFlow does provide a REST API, but it's primarily built for invoices, customers, purchases, and reporting — not for direct bank transaction imports. The API documentation covers endpoints for managing financial data once it's in KashFlow, not for injecting raw bank transactions. If you were hoping to build a fully automated pipeline that pushes converted CSV data directly into KashFlow via API, that isn't currently possible through the standard API.

Practical Semi-Automation Workflow

For practices managing high volumes, the most efficient semi-automated workflow looks like this:

  1. Collect: Clients upload statements to a shared folder (Google Drive, SharePoint, or your practice portal).
  2. Batch convert: Use BankScan AI's bulk upload to process all statements at once — drag and drop PDFs and CSVs from multiple banks, get back clean KashFlow-ready CSVs.
  3. Import: Import each CSV into the correct KashFlow client account via the standard Import Statement screen.
  4. Reconcile: KashFlow's auto-matching rules handle the rest.

Is it fully automated? No. But it's the difference between 15–45 minutes per statement (manual) and about 30 seconds per statement (semi-automated). For a practice processing 100 statements a month, that's roughly 35 hours saved every month.

IRIS OpenBooks and KashFlow

IRIS also offers OpenBooks — a more advanced bookkeeping platform that integrates with KashFlow for practices. OpenBooks has more sophisticated bank import capabilities, including automation features. If you're outgrowing KashFlow's manual import limits, OpenBooks may be worth exploring. But for most small-to-medium bookkeeping practices, the semi-automated workflow above is the sweet spot between cost and efficiency.

Batch Importing: When You Have Months of Historical Statements

New client onboarding is where KashFlow import pain peaks. You've got six months (or two years) of bank statements across multiple accounts, and everything needs to be in KashFlow before you can produce the first set of management accounts. Here's how to handle it without losing a weekend.

Strategy 1: Month-by-Month Import

Process each month's statement as a separate CSV file. Import them one at a time into KashFlow, working chronologically. This keeps the audit trail clean — each import maps to a specific statement — and makes it easy to spot which month has errors if the reconciliation doesn't balance. The downside: it's repetitive. If you're doing this manually, it's slow. If you're using BankScan AI's batch processing, you can convert all statements at once and import them one by one in minutes.

Strategy 2: Combined CSV Import

Merge all months into one CSV file (ensuring the header row appears only once), sort by date, and import as a single batch. This is faster — one import instead of twelve — but riskier. If something goes wrong, you're undoing and redoing a massive import. Best reserved for when you trust your CSV formatting 100%.

Strategy 3: Bank Feed + Historical CSV

Set up the automatic bank feed for ongoing transactions. Then separately import historical statements as CSV for the period before the feed kicks in (typically the 90 days of history the feed doesn't cover). This gives you the best of both worlds: automated going forward, with a one-time batch import for the historical catch-up.

Onboarding sanity check: Before you import anything, agree with the client on the opening balance date. Import all statements from that date forward. Run a trial balance in KashFlow and compare the bank balance to the statement. If it doesn't match, find the discrepancy before you start categorising transactions. Fixing a reconciliation error is 10x harder after you've categorised 200 entries.

Stop Formatting CSVs. Start Reconciling.

Upload any UK bank statement — PDF or CSV, from any bank — and get a KashFlow-ready CSV in under 30 seconds. Handles all 16+ UK bank formats, multi-line descriptions, grouped dates, and column mapping automatically. Free first conversion, no credit card needed.

Try BankScan AI Free →

Frequently Asked Questions

Does KashFlow support automatic bank feeds?

Yes — KashFlow offers automatic bank feeds via Open Banking and Yodlee integration for many UK high-street banks including Barclays, Lloyds, HSBC, NatWest, Santander, and TSB. However, coverage isn't universal. Challenger banks like Monzo and Starling may have limited feed support, some business accounts restrict feed access, and building societies (including Nationwide) often lack feed support entirely. When the feed doesn't cover your client's bank, manual CSV import is the reliable fallback. For practices with clients across multiple banks, we recommend setting up feeds where available and maintaining a clean CSV conversion workflow for the rest.

What CSV format does KashFlow require for bank statement imports?

KashFlow expects a CSV with Date (DD/MM/YYYY), Description (single line), Money In (positive credits, no £), Money Out (positive debits, no £), and optionally Balance. The column order can be mapped during the import wizard, so the headers don't need to be in a specific order — but the data within each column must be clean. Common causes of rejection: dates in US format, multi-line descriptions, £ signs or commas in amounts, and empty rows. BankScan AI auto-formats any UK bank statement to this exact KashFlow-compatible CSV structure in seconds.

Why does my KashFlow CSV import keep failing?

The five most common causes: (1) Date format mismatch — KashFlow expects DD/MM/YYYY; US-format dates are rejected. (2) Multi-line descriptions — transactions wrapping across multiple rows break the one-row-per-transaction structure. (3) Currency symbols — £ signs and comma separators in amount columns cause KashFlow to misread values. (4) Header row issues — extra or missing header rows throw off column mapping. (5) Duplicate detection — KashFlow flags transactions it believes are already imported, which can block legitimate new entries if reference numbers overlap. Check each of these before retrying.

How do I bulk import multiple bank statements into KashFlow?

KashFlow doesn't natively support multi-file bulk imports. Your options: (1) Combine all statements into one CSV (single header row, sorted by date) and import as one file. (2) Import each CSV individually — slower but cleaner audit trail. (3) Use a batch processor like BankScan AI to convert all statements to CSV at once, then import individually. For bookkeepers onboarding new clients with 12+ months of historical statements, batch conversion is the single biggest timesaver: upload everything, get back KashFlow-ready CSVs in minutes. BankScan AI's bulk upload handles unlimited statements in one session.

Can I import PDF bank statements directly into KashFlow?

No — KashFlow does not accept PDF bank statements. You must convert PDFs to CSV or Excel first. This is the number one bottleneck for KashFlow users, because many UK business accounts (HSBC, Nationwide, most building societies) only provide PDF statements. Manual copy-paste from PDF is slow and error-prone. Adobe Acrobat export gets you about 70% there but still leaves multi-line description splits and date mangling. The fastest solution: BankScan AI converts any UK bank PDF to KashFlow-ready CSV in under 30 seconds, with automatic handling of multi-line descriptions, grouped dates, and OCR for scanned statements.

Does KashFlow integrate with all UK banks?

KashFlow integrates with most major UK high-street banks through Open Banking and Yodlee: Barclays, HSBC, Lloyds, NatWest, Santander, TSB, Bank of Scotland, Halifax, RBS, and Ulster Bank. Notable gaps include Nationwide (limited feed for personal accounts, no feed for business), Metro Bank (intermittent), Monzo and Starling (limited business account feed), and most building societies. For these unsupported banks, manual CSV import is the standard workflow. If you're a bookkeeper managing clients across multiple banks, a universal converter like BankScan AI eliminates the per-bank formatting nightmare — one tool handles all 16+ UK bank formats.

Is there an API to automate bank statement imports into KashFlow?

KashFlow provides a REST API, but it's designed for invoices, customers, purchases, and reporting — not for direct bank transaction injection. The bank import functionality lives in the KashFlow web interface. For automated workflows: (1) Set up automatic feeds for supported banks (Open Banking). (2) For unsupported banks, use BankScan AI to bulk-convert statements to CSV, then import through the web interface. (3) For high-volume practices, combine batch conversion with KashFlow's CSV import for a semi-automated pipeline — minutes per batch instead of hours. If your practice has outgrown this, IRIS OpenBooks offers more advanced automation on the same platform.

How do I handle KashFlow bank feed authorisation expiring?

Open Banking regulations require re-authorisation every 90 days. When a KashFlow bank feed expires: (1) KashFlow will display a warning in the bank screen. (2) Your client needs to log in to their online banking and re-authorise the connection — you can't do this on their behalf. (3) While the feed is down, use CSV import to bridge the gap. (4) Once re-authorised, the feed will pull any transactions it missed. Pro tip: set a recurring calendar reminder every 80 days to prompt clients to re-authorise before the feed breaks. For clients who consistently miss re-authorisation deadlines, maintain a CSV import backup workflow.

Last updated: 9 July 2026. BankScan AI supports 16+ UK bank formats — read our UK bank statement formats guide or browse our complete guides for Xero, QuickBooks, Sage, and FreeAgent bank statement imports.