FreshBooks accepts CSV files only, never a PDF, and has two separate CSV imports that easily get confused: Expenses import keeps only negative amounts (spending), while Bank Reconciliation's import brings in a full statement. This guide covers which one to use, the plan-tier requirement, the exact column formats, and the opening-balance gotcha that makes older transactions seem to vanish after import.
Last updated 2026-08-23
FreshBooks has two separate CSV imports that do different things, and picking the wrong one is the most common mistake. Import expenses from a file only brings in negative amounts (spending) — income gets silently dropped. If you want a full bank statement (deposits and withdrawals both), use Bank Reconciliation's CSV import instead, which requires a Plus, Premium, or Select plan (not available on Lite). Either way, FreshBooks needs a CSV, never a PDF, so convert first.
FreshBooks connects to banks automatically via Plaid or Yodlee for most users, but that connection only reaches back 30 to 365 days and doesn't cover every bank. When you need older history, a bank without a live connection, or you'd rather not link account credentials to a third-party service, the fallback is a manual CSV import. FreshBooks doesn't read a PDF for that, and the platform actually has two different CSV imports that easily get confused with each other.
FreshBooks' Expenses > Import Expenses from a File path only imports spending. Per FreshBooks' own documentation, if your CSV has both positive and negative amounts, only the negative ones (withdrawals, payments, debits) get imported — any income rows in the same file are silently skipped, not flagged as an error.
If you want a genuine bank statement, deposits and withdrawals both, use Bank Reconciliation's transaction import instead. It's a separate feature under Accounting, and it's the one that actually reflects a full statement rather than just your spending.
Bank Reconciliation isn't available on every FreshBooks plan. Per FreshBooks' own support documentation, it requires a trial, Plus, Premium, or Select plan — if you're on Lite, the feature isn't there at all. Worth checking before you build a CSV expecting to use it.
| Column layout | Sign convention | Best for |
|---|---|---|
| Date + Amount (1 column) | Positive = money in, negative = money out | Statements that already show a single signed amount column |
| Date + Amount Spent + Amount Earned (2 columns) | Both columns positive only | Statements with separate debit and credit columns |
Dates need to use a consistent format throughout the file and dashes or slashes between the numbers (01/17/2026 and 01-17-2026 both work; other separators don't). Rows must be in chronological order, and the file needs to be a clean single-sheet CSV — multiple tabs in one file will fail the import.
If any imported transactions are dated before your account's Opening Balance Start Date in FreshBooks, they won't show up for matching until you go back and reset that start date to cover the earlier transactions. This trips people up specifically when importing historical statements that predate when they first set up reconciliation — the import succeeds, but the older rows seem to vanish until the start date is adjusted.
Asking a general AI chatbot to turn the PDF into a CSV seems simpler than dealing with FreshBooks' two import paths and two column layouts. In practice it just moves the same problem somewhere less visible:
The file is processed in memory and the source PDF is deleted within seconds of the output being ready — it's never stored, shared, or fed into training a model. That's a meaningfully different arrangement from typing a statement into a general chat interface, where the input can be retained as part of the product itself.
No. FreshBooks' import tools accept CSV files only. A PDF statement needs to be converted to CSV first.
You likely used the Expenses import instead of Bank Reconciliation's import. The Expenses path only keeps negative amounts (spending); if your CSV had both income and spending, only the spending rows were imported. Use Bank Reconciliation's CSV import instead for a full statement.
Bank Reconciliation, and its transaction import, requires a trial, Plus, Premium, or Select plan. It isn't available on the Lite plan.
Up to 500 transactions or 1,000 rows per CSV file, whichever limit is hit first, and the file must be under 5MB. Split a larger statement into multiple files if needed.
Focus on the retention policy rather than whether AI is mentioned in the pitch. In-memory processing, immediate deletion of the source file after conversion, and a plain statement that data isn't used for training are what to look for — ClearlyLedger offers all three.
Ready to get your first statement into FreshBooks? Use ClearlyLedger's bank statement converter to get a clean, balance-checked CSV. Using QuickBooks, Wave, or Quicken instead? See the same conversion for QuickBooks, Wave, or Quicken.
Written by John Snow, Financial Data Specialist.
Loading interactive converter… Try ClearlyLedger free