FreeAgent bank CSV import rejected: what I check
FreeAgent rejects your bank CSV or imports dates and amounts wrong. Checklist I run: headers, UK dates, debit/credit columns, Excel damage, and a five-row test before the full statement. Soft path to CSVReady if you want it shaped once.

You export a bank or card CSV, open FreeAgent, and the import is rejected, or it loads with dates in the wrong century and amounts flipped. The file looks fine when you open it. FreeAgent still wants a specific shape, and small mismatches kill the whole upload.
I see this a lot with Monzo, Revolut Business, Starling, and older high-street exports that someone "tidied" in Excel first. Below is the order I work through before I rewrite the whole statement by hand.
Read the rejection, not just the file
FreeAgent usually tells you something useful: unknown date format, missing amount, duplicate statement, or columns it cannot map. Screenshot or copy that message before you start editing. Guessing without the error wastes the next half hour.
Also confirm you are on the right bank account in FreeAgent and that the statement period does not already overlap an upload that partly succeeded. A "rejected" feeling is sometimes a duplicate-period block, not a broken CSV.
Open the raw CSV first
Do not start in Excel. Open the export in a plain text editor. Check the header row, whether there is a title block above the headers, and whether money in and money out are separate columns or one signed amount.
Excel rewrites UK dates, strips leading zeros, and can turn long references into scientific notation. If the file has already been saved from a spreadsheet, you may no longer have what the bank gave you.
Headers and columns FreeAgent needs
- A date column in a consistent format
- A clear amount, or separate money in and money out columns
- A description or payee that is not empty on every row
- One header row, not a second header block halfway down the export
Extra columns are usually fine. Merged amount columns, blank description rows, or a summary total line at the bottom are not. Delete footer totals before you import.
UK dates and locale traps
Day-month order is the usual offender. FreeAgent may reject 03/04/2026 if it cannot tell March from April, or it may accept it and post transactions on the wrong day. Prefer an unambiguous format such as 2026-04-03 or 03 Apr 2026 for the test file.
If Excel has already turned dates into serial numbers (44200 and friends), what you export is not a bank date. Import those cells as text next time, or skip the spreadsheet step entirely.
Debit, credit, and signs
Card payments, transfers, fees, and refunds sometimes land with the wrong sign after a manual tidy. Spot-check a withdrawal, a top-up, and a fee line against the live bank balance.
One flipped sign can make FreeAgent accept the file and still leave the account balance looking insane. Separate money-in and money-out columns are clearer than a single amount column if your export supports them.
Encoding, commas, and quoted fields
UTF-8 vs Windows encoding can break payee names with accents and make FreeAgent choke on a line it cannot parse. Commas inside descriptions need proper quoting. If one row has an unescaped comma, the column count shifts and the import fails or maps the wrong fields.
I scan for description fields that contain commas or line breaks, and I re-export or clean those rows before the full upload.
Five-row test before the full statement
Copy five representative rows into a tiny CSV: a payment out, a payment in, a fee, a transfer, and one awkward description. Import that sample into FreeAgent. Confirm dates, amounts, and descriptions. Only then convert or upload the full export.
It is dull and it saves re-uploading a month of transactions after one bad column mapping.
When the bank export will not bend
If a unique five-row sample still fails after clean headers and unambiguous dates, stop mass-editing the live export. At that point you want a converter that maps the bank columns into FreeAgent's expected shape, or a bookkeeper who has seen that bank's CSV quirks before.
Do not "fix" a rejected import by deleting reconciled transactions in FreeAgent to force a re-upload. You will break the audit trail and create more cleanup than the CSV ever caused.
I built CSVReady for this kind of fight. Upload the bank CSV, check the mappings, and download a file shaped for FreeAgent (or Xero / QuickBooks Online). You can try five rows free with no account and no bank login.
Try CSVReady: five rows free →
Most FreeAgent CSV rejections come down to Excel-damaged dates, messy amount columns, or a footer/total row the importer cannot ignore. Confirm one clean five-row sample first, then bring the full statement in once. Cheers.
Need a hand with this?
Tell me what your business or agency needs. I can help scope the work and explain the next step.
Related Articles
Chromes Broken Developer Tools
Chrome has had a recent update where they've changed a few things in their dev tools. I feel they've concentrated on some really annoying features that we're not needed...
Why isn't overflow: overlay the norm across all browsers
A problem I came across alongside SVG in-built animations not working properly on Firefox was the rule overflow: overlay; not working there. It defaults to auto which doesnt help animations...
Laravel Tips That Make Production Applications Easier to Maintain
A collection of practical Laravel tips focused on making applications easier to maintain, debug, and hand over -- from someone who has been running a production Laravel platform for four years.