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
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.
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.
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:
- Manual copy-paste: Open the PDF, copy the transaction table, paste into Excel, fix misaligned rows, save as CSV. Works for short statements but becomes a nightmare above 30 transactions.
- Adobe Acrobat export: Export PDF to Excel, then save as CSV. Multi-line descriptions will still split, and dates often get mangled.
- BankScan AI: Upload any UK bank PDF and download a KashFlow-ready CSV in under 30 seconds. Handles multi-line descriptions, grouped dates, and 16+ bank formats automatically. Free first conversion.
Format the CSV for KashFlow
This is the step where most people lose time. KashFlow expects a clean, flat CSV with these columns:
- Date: DD/MM/YYYY format (e.g. 15/03/2026). UK format only — US dates (MM/DD/YYYY) will fail.
- Description: Single line per transaction. No multi-line wrapping, no stray line breaks.
- Money In: Credits — positive numbers, no £ sign, no commas. E.g. 1250.00 not £1,250.00.
- Money Out: Debits — positive numbers, no £ sign, no commas. E.g. 45.99 not -45.99 or £45.99.
- Balance (optional): Running balance after each transaction.
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.
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:
- Your Date column → KashFlow "Date"
- Your Description column → KashFlow "Description" or "Narrative"
- Your Money In column → KashFlow "Money In" (credits)
- Your Money Out column → KashFlow "Money Out" (debits)
- Your Balance column → KashFlow "Balance" (optional)
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.
Review Imported Transactions
After import, KashFlow displays the imported transactions in the bank screen. Do a quick sanity check:
- Compare the total of imported transactions against the statement's opening/closing balance
- Spot-check a few dates and amounts against the original statement
- Check that no transactions were flagged as duplicates (KashFlow marks these)
- Verify that the final running balance matches the statement
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.
❌ "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.
❌ "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.
❌ "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.
❌ "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.
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 |
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:
- Collect: Clients upload statements to a shared folder (Google Drive, SharePoint, or your practice portal).
- 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.
- Import: Import each CSV into the correct KashFlow client account via the standard Import Statement screen.
- 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.
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.