Import a bank statement into FreeAgent without a feed
Download a statement from your online banking as OFX, QIF or CSV, open the bank account in FreeAgent and choose Upload Statement. If your bank only offers CSV, format it as three columns first: date, amount and description.
Will FreeAgent create duplicates if my statement overlaps the bank feed?
FreeAgent says it aims to spot duplicate transactions and ignore them, but it does not promise to catch every one. Start the statement on the day after the last transaction already in the account, and check the balance afterwards.

This post covers FreeAgent only. For Xero, see importing bank statements into Xero.
Feed or statement upload
A bank feed brings transactions into FreeAgent automatically. FreeAgent's own guide calls a statement upload the quickest way to get transactions in by hand, and describes the bank feed as the automatic alternative. Both end in the same place: transactions you then explain in FreeAgent.
Use an upload when:
- your bank or account type has no feed
- a feed exists but has a gap, for example after it was disconnected
- you are loading history from before the feed started
- you are setting up a new client and want a clean start date
Uploading a CSV file needs level 6 access or above in FreeAgent, according to FreeAgent's CSV guide.
Which file formats does FreeAgent accept?
FreeAgent's supported formats page lists three:
| Format | Notes |
|---|---|
| OFX | Open Financial Exchange. Some banks label it Quickbooks, Microsoft Money 2005 or Sage Line 50. |
| QIF | Quicken Interchange Format, an older format. Sometimes labelled Quicken 98 or 2000, or Microsoft Money 2003. |
| CSV | For banks that offer neither OFX nor QIF. |
The same page lists which UK banks offer OFX or QIF, so check it before you settle for CSV. Prefer OFX or QIF when your bank has them: they arrive already structured, so you skip the formatting below.
How to upload the statement
FreeAgent's upload guide gives these steps:
- Download the statement from your online banking in a supported format.
- In FreeAgent, open the Banking tab and choose Bank Accounts.
- Choose the account you are uploading into.
- Select Upload Statement, then Select a file, and pick the file.
- Leave the Guess explanations for my transactions box ticked, or untick it if you would rather explain everything yourself.
- Select Upload Statement to finish.
Then explain the transactions as usual. If you uploaded the wrong file or the wrong account, FreeAgent has a guide to undoing a bank statement upload.
The CSV layout FreeAgent expects
FreeAgent's CSV formatting guide asks for three columns, in this order:
| Column | Content | Rule |
|---|---|---|
| A | Date | dd/mm/yyyy |
| B | Amount | Number to 2 decimal places; money out has a minus sign |
| C | Description | Invoice reference or a short description |
An example with made-up values:
03/09/2026,-84.00,Office supplies
04/09/2026,1250.00,INV-1042 Harbour Studio
Before you upload, check that the file:
- has no header row
- uses one amount column for both money in and money out
- has no commas inside the amounts or descriptions, and no quote marks
- keeps each description on a single line
- is saved as .csv, not .xls or .xlsx
FreeAgent only reads comma-separated files. If your computer separates values with semicolons, which is common outside the UK, FreeAgent's guide explains the change to the Number Separator (decimal and thousands) in your regional settings. It also offers a downloadable CSV template.
Avoid duplicates with the feed
FreeAgent's guide says to date the statement from the day after your last transaction in the account. If the account is empty, you can start from your FreeAgent start date. FreeAgent says it "will aim to spot any duplicate transactions and ignore them", which is an aim, not a guarantee.
So do not rely on it. A cautious routine:
- Note the date of the last transaction already in the account.
- Ask your bank for a statement from the next day, ending on the last day of the gap.
- If a feed is running or about to start, stop the statement at the date the feed takes over.
- After the upload, compare FreeAgent's bank balance with the bank's balance for the same date. FreeAgent has a guide on matching the two balances.
A worked example, with invented dates: the feed stopped on 12 August and you reconnected it on 5 September. Upload a statement running 13 August to 4 September, and let the feed carry on from there.
What if you only have a PDF?
FreeAgent does not list PDF as a format, so a PDF statement has to become a CSV first. Datamolino's bank statement conversion reads a complete, readable PDF statement and checks that the opening balance, money in and money out add up to the closing balance. A mismatch shows as a warning.
You then have two routes. Datamolino can export the transactions straight to the FreeAgent bank account with the matching account number, or you can download CSV or Excel and upload it yourself using the steps above. You then explain the transactions in FreeAgent as usual; where a live bank feed exists, it remains the automatic route. The FreeAgent integration page covers the connection, and the PDF to CSV guide covers the conversion itself.
A direct export goes to the FreeAgent bank account with the matching account number. If there is no match, use the CSV route instead.
Can I upload a PDF bank statement to FreeAgent?
No. FreeAgent accepts OFX, QIF and CSV, so a PDF has to be converted first. Datamolino's bank statement conversion reads the PDF and can export the reviewed transactions straight to the matching FreeAgent bank account, or give you a CSV to upload.

