Convert a Bank Statement to Upload Into FreeAgent
FreeAgent uploads a bank statement as OFX, QFX, QIF, or CSV. Its CSV is three columns with no header: date, amount, description. Convert your PDF and upload.
TL;DR - Quick Summary
FreeAgent uploads a bank statement from the Banking tab in OFX, QFX, QIF, or CSV. Its CSV is strict: exactly three columns and no header row, in the order date, amount, description, amounts to two decimals with a minus for money out. Convert your PDF to that layout, then upload it to the account.
Which formats FreeAgent accepts
FreeAgent takes bank statements in several file types: OFX, QFX, QBO, QIF, and CSV. You upload them from the Banking tab, choose Bank Accounts, pick the account you are adding transactions to, then click Upload a bank statement and select your file. If your bank hands you an OFX or QIF export you can use it as is. A PDF statement gives you neither, so converting it produces the file FreeAgent's uploader will read, most often a CSV, without you retyping a single line.
FreeAgent's three-column CSV, no header
The part that trips people up is FreeAgent's CSV shape, which is stricter than most. The file must have exactly three columns in a fixed order: date, then amount, then description. There is no header row, so the first line is already a real transaction, not column titles. The amount column is a number to two decimal places with a minus sign for money leaving the account and no currency symbols or thousands separators. Converting the statement lets you output a CSV already in this exact three-column form rather than deleting headers and reordering columns by hand.
Date format and the access rule
Two smaller details decide whether the upload goes through. Dates in the CSV need to be in the day/month/year form FreeAgent expects, so a converted file should be set to that layout rather than left in whatever order the statement printed. And there is a permissions gate: your FreeAgent user needs level 6 access or above to upload a CSV bank statement, so if the option is missing that is usually why. Neither is hard, but both are easy to miss and send an otherwise good file back.
Duplicate detection on upload
FreeAgent aims to spot duplicate transactions and ignore them when you upload, which helps if a statement overlaps a period already in the books or a stretch a bank feed already pulled. It is not a reason to be careless, since matching depends on the dates, amounts, and descriptions lining up, but it does mean a clean converted file with accurate values gives the duplicate check the consistent data it needs to work rather than letting near-misses slip through as repeats.
Accuracy and privacy
Because FreeAgent reads a fixed three-column layout and then checks for duplicates, the values have to be right, so every transaction is reviewable in the converter before export. The output arrives with the date, amount, and description already in the order FreeAgent expects. Since the statement holds real account activity, the file is processed to build the CSV and then deleted automatically, with nothing kept on a server afterward.
How it works
- Convert the PDF: Convert the PDF bank statement into a CSV file (or OFX/QIF if your bank supplies one).
- Shape the CSV: Output three columns with no header, in order date, amount, description, amounts to two decimals with a minus for money out.
- Open the upload: In FreeAgent, go to Banking, choose Bank Accounts, pick the account, and click Upload a bank statement.
- Select and import: Choose the file and upload; FreeAgent reads the rows and tries to skip duplicates.
Comparison
| Aspect | FreeAgent upload | Note |
|---|---|---|
| Formats | OFX, QFX, QBO, QIF, CSV | Use OFX/QIF if your bank offers it |
| CSV columns | Three, in order date, amount, description | No other columns |
| CSV header | None | First line is a real transaction |
| CSV amount | Two decimals, minus for money out | No currency symbols or separators |
| Access | Level 6 or above to upload a CSV | Otherwise the option is hidden |
A FreeAgent-ready CSV comes back from a PDF statement in about 30 seconds. Convert your statements now.
See pricing