Convert a PDF bank or credit card statement to a CSV that FreshBooks Bank Reconciliation imports: Date, Description, Amount, in date order, checked to the statement balance.
Grab the PDF statement from online banking. Statements downloaded from your bank are text-based and convert cleanly; scans and photos aren't supported yet.
Utilly reads every transaction, then checks that opening balance + transactions = closing balance. You'll see Balanced ✓ or exactly how far off it is, before you pay anything.
FreshBooks doesn't read PDF statements: its Bank Reconciliation imports a CSV, and its help says a bank connection pulls at most 90 days of activity. So older months, closed accounts and banks that don't connect start from the PDF. Utilly reads the PDF, checks it against the opening and closing balance, and writes a CSV laid out the way FreshBooks' import asks for: Date, Description and one signed Amount, in date order, split into files of up to 500 transactions.
Short answer: FreshBooks can't read a PDF statement. Convert the PDF to a FreshBooks CSV (Date, Description, Amount), then import it in Bank Reconciliation: Accounting → the account → Add Bank Transaction → Import from File. Check the balance first: Utilly shows Balanced ✓ only when the opening balance plus every transaction equals the closing balance.
The first rows of our sample bank statement (business checking ending 0427) come out as:
Date,Description,Amount
09/01/2026,ACH DEBIT GUSTO PAYROLL 0912,-6420.18
09/01/2026,STRIPE TRANSFER ST-K2M8Q4,3184.27
09/02/2026,CHECK 2041,-1850.00
And the sample credit card statement, where purchases are money out and the payment is money in:
Date,Description,Amount
09/01/2026,GOOGLE *WORKSPACE CC@GOOGLE.COM,-72.00
09/02/2026,DELTA AIR LINES 0062 ATLANTA GA,-418.60
...
09/05/2026,PAYMENT THANK YOU - WEB,1500.00
How it lines up with FreshBooks' import rules (FreshBooks: import transactions from a file in bank reconciliation):
COFFEE and COFFEE (2). $0.00 lines are left out.Want to see the files before importing anything? Download the sample statement's FreshBooks CSV (fictional bank, 31 transactions, 12,418.36 → 13,440.52) or the credit card FreshBooks CSV. Import samples only into a FreshBooks trial or test account, never into your real books: FreshBooks says a manually created bank account can't be deleted. More test files are in free sample bank statement files.
Steps from FreshBooks' import help and bank reconciliation setup help, read Oct 24, 2026. FreshBooks' help puts Bank Reconciliation on trials and the Plus, Premium and Select plans only. Its separate expense import (FreshBooks) wants Amount, Category, Date, Description and Merchant columns, and when a file has both it imports only the money-out lines, so it isn't a way to bring in a whole statement.
FreshBooks' help says a bank connection pulls at most 90 days of activity, and a connected account's Reconciliation Start Date can only go back as far as its first imported transaction (FreshBooks). Anything older, catch-up work for a new client, or an account that doesn't connect at all, comes in from a file, and the statement PDF is often the only file left.
| Starting from | Reconciliation Start Date | Opening Balance |
|---|---|---|
| A bank statement | The statement's first day | The Beginning Balance (Balance Forward) on the statement. Utilly shows it on the results page as Opening. |
| A credit card statement | The first day of the statement period | The Previous Balance (shown as Previous balance on the results page), positive when you owe it. FreshBooks shows card balances as negative because a card is a liability. |
| Importing months older than the current start date | More Actions → Reset Opening Balance, set to the first imported day | The balance on that day. Until you reset it, FreshBooks keeps transactions dated before the start date out of matching. |
Import the months in order, oldest first, and reconcile each one against its statement before the next. The closing balance Utilly checked is the number FreshBooks' Bank Account Balance should reach (as a negative number on a card account).
| Problem | Fix |
|---|---|
| "There are no header columns in the file or one header column is missing" | The headers have to be in row 1. FreshBooks' errors list names Amount, Category, Date and Description, while its import steps call Category optional, and the FreshBooks CSV has no Category column because an empty Category cell would itself be an error. If FreshBooks insists, add a Category column in Excel and fill every row with an operating expense category; FreshBooks files unknown categories under Uncategorized Expenses. |
| Dates rejected, or the specified date format doesn't match | Choose month/day/year at the import step. If a spreadsheet re-saved the dates in another layout, set the column back to MM/DD/YYYY, with slashes or dashes, before saving as CSV. |
| "Unsupported letters and/or special characters in the Amount column" | Usually a $ sign or a thousands comma added by Excel. Format the column as a plain number with 2 decimals, or import the file without opening it. |
| The file is too large | More than 500 transactions, 1,000 rows or 5 MB. Utilly already splits at 500; if you joined months into one file, split it again. |
| Card payments show up as spending | Import a card statement into a Credit Card account, and use the FreshBooks CSV (payments positive), not a file where the signs were flipped for Wave. |
| Imported transactions don't appear for matching | They're dated before the Reconciliation Start Date. Reset the opening balance to the first imported day (above). |
| The statement doesn't balance in Utilly | You see the difference before paying. Don't import a file that's off; email us the statement layout and we'll fix it or refund you. |
We built these files to FreshBooks' published rules but haven't imported them into a live FreshBooks account ourselves yet. Check the transactions on your first import, and tell us at support@version1.io if anything doesn't come through right.
Preview any statement free. A $9 pack unlocks 5 full statements in every format, with no expiry and no subscription. Bookkeepers with many clients can go unlimited for $19/month. See pricing.
You can preview every statement free: we show the balance check and the first 5 transactions with no sign-up. Unlocking the full file costs one credit ($9 for 5 statements).
No. The PDF is read in memory and never written to disk, and extracted results are deleted after 1 hour. We never use your data for AI training.
Not yet. PDFs downloaded from online banking are text-based and work well. Scans and phone photos need OCR, which is on the roadmap.
You'll see exactly how far off it is before paying. If a paid conversion is wrong and we can't fix it, email support@version1.io for a refund.
No. FreshBooks imports bank transactions from a CSV file, and its expense import help says a PDF has to be converted to CSV first. Convert the PDF to a FreshBooks CSV here, then use Accounting → Add Bank Transaction → Import from File in the account's Bank Reconciliation.
Bank Reconciliation, where the full-statement import lives, is on FreshBooks trials and the Plus, Premium and Select plans, according to FreshBooks' help, which says to upgrade on any other plan. FreshBooks' separate expense import isn't a substitute: when a file has both, it imports only the money-out lines.
Yes. Create the account in FreshBooks as a Credit Card account and import into it. FreshBooks' 1-column format is positive for money in and negative for money out, so in the FreshBooks CSV purchases, fees and interest are negative and payments and credits positive, checked against the previous and new balance first.
They're probably dated before the account's Reconciliation Start Date. FreshBooks' help says transactions from before the Opening Balance Start Date only appear after you reset it: More Actions → Reset Opening Balance, then enter the start date and the balance on that date from the statement.
Yes, in several files. FreshBooks takes at most 500 transactions per CSV, so past 500 the download is a .zip of files with up to 500 each. Import them one at a time, oldest first.
Step-by-step guide →
Step-by-step guide →
Step-by-step guide →
Step-by-step guide →
Step-by-step guide →
Step-by-step guide →