Wave

Bank statement PDF to Wave

Convert a PDF bank or credit card statement to an OFX or CSV file that Wave accepts under Upload transactions, checked against the statement balances. Free preview.

Files deleted after 1 hourNever stored or used for trainingBalance check on every file
Processed in memory, never stored
No statement handy? See the result on a fictional one first:

1. Download your statement

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.

2. Upload and verify

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.

3. Upload it to Wave

  1. Download the OFX from your results page (Wave lists OFX before CSV), or the Wave CSV. One credit unlocks every format of the statement.
  2. In Wave: Accounting → Transactions → More → Upload transactions. Choose the file and pick the payment account it belongs to (add the account under Chart of Accounts first if it isn't there).
  3. Click Upload, confirm the date, amount and description, then Upload my statement. Check the Transactions page against the statement before you categorize.

Why Wave?

Wave doesn't read PDF statements. Its uploader takes OFX, QBO, QFX and ASO files, or a CSV, and Wave's help says the first four are easier than a CSV. Wave's pricing page lists automatic bank imports as a Pro plan feature, and bank downloads often stop after a few months, so older months and Starter-plan books usually start from the PDF. Utilly reads the PDF, checks it against the opening and closing balance, and writes the OFX and a CSV laid out the way Wave's CSV upload asks for.

Short answer: Wave can't read a PDF statement. Convert the PDF to an OFX file (Wave's preferred kind) or a 3-column Wave CSV, then upload it under Accounting → Transactions → More → Upload transactions. Check the balance before you import: Utilly shows Balanced ✓ only when the opening balance plus every transaction equals the closing balance.

How to get a PDF bank statement into Wave

  1. Download the PDF statement from online banking. Statements downloaded from your bank are text-based and convert cleanly; scans and phone photos aren't supported yet.
  2. Upload it above. We read every transaction and check it against the statement's opening and closing balance. You see the result, and the first transactions, before you pay anything.
  3. Unlock and download the OFX or the Wave CSV. One credit covers every format of that statement, so you can try both.
  4. Upload it to Wave (steps below), then reconcile the account in Wave against the same statement.

OFX or CSV: which file to upload

Wave's uploader takes OFX, QBO, QFX and ASO files, or a CSV, and not PDFs. Wave's help says the first four "are easier to import into Wave than a .CSV file" (Wave: Upload bank and credit card statements; Wave: CSV uploads).

FileUse it whenWhat's in it
OFXYou want the quickest upload and don't need to edit anything first.Every transaction with a date, signed amount, description and a stable ID, the account type (bank or credit card) and the statement's ending balance.
Wave CSVYou want to look at or change rows in Excel or Google Sheets before uploading.Only the 3 columns Wave reads: Date (YYYY-MM-DD), Description, Amount. No balance column, no summary rows, no $0.00 lines.
QuickBooks .QBOAlso on the results page, and Wave lists QBO as accepted, but the OFX is the plain version of the same file.Same transactions as the OFX, plus QuickBooks-only bank fields.

What's in the Wave CSV

The first rows of our sample bank statement (business checking ending 0427) come out as:

Date,Description,Amount
2026-09-01,ACH DEBIT GUSTO PAYROLL 0912,-6420.18
2026-09-01,STRIPE TRANSFER ST-K2M8Q4,3184.27
2026-09-02,CHECK 2041,-1850.00

And the sample credit card statement, where Wave wants purchases positive and payments negative:

Date,Description,Amount
2026-09-01,GOOGLE *WORKSPACE CC@GOOGLE.COM,72.00
2026-09-02,DELTA AIR LINES 0062 ATLANTA GA,418.60
...
2026-09-05,PAYMENT THANK YOU - WEB,-1500.00

How it lines up with Wave's CSV rules (Wave: what to do if Wave can't read your CSV):

  • Three columns: date, amount, description. Wave accepts three or four, and says extra columns can stop the upload, so there's no Balance, Type or second date column.
  • Dates as YYYY-MM-DD, one of the two numeric layouts Wave's help lists (YYYY/MM/DD or YYYY-MM-DD). Dates can't be in the future, and statement dates never are.
  • One signed Amount column with a minus sign and no currency symbol or thousands separator. On a bank statement money out is negative. On a credit card statement the signs are the other way round, because Wave's help says card purchases must be positive and payments negative.
  • Descriptions always contain words. Wave rejects a description of only numbers, so a bare reference like 1234 is written as Ref 1234. Commas and quotes become spaces.
  • No balance or total rows (Wave's help says balance totals can cause a generic error), and short file names, because Wave can reject a long one.

Want to see the files before uploading anything? Download the sample statement's Wave CSV and OFX (fictional bank, 31 transactions, 12,418.36 → 13,440.52), or the credit card Wave CSV and OFX. Upload samples only into a test business in Wave, never into your real books. More test files are in free sample bank statement files.

Uploading the file in Wave

  1. Make sure the account exists: Wave uploads into a payment account, so add the bank or credit card account under Chart of Accounts first if it isn't there. The account's currency has to match the statement.
  2. Go to Accounting → Transactions, click More at the top right and choose Upload transactions.
  3. Choose the OFX or CSV file and select the Payment account, then click Upload.
  4. Confirm the date, the amounts and the description column. With a single date and amount column, Wave picks them for you.
  5. Click Upload my statement. The transactions appear on the Transactions page, ready to categorize.

Steps from Wave's upload help and CSV upload help, read Oct 24, 2026. Connected to the bank already? Wave's help says to turn off the account's transaction imports first if you upload statements by hand (Wave), and upload only months that aren't in the account yet.

Why the PDF is often the only way in: Wave's pricing page lists auto-import of bank transactions as a Pro plan feature ($19 USD a month or $190 a year when checked), and not every bank connects (Wave pricing). On the Starter plan, for months before a connection, or for a closed account, the statement PDF is usually what you have.

Common Wave upload errors

Wave saysFix
"Wave needs you to make a small change to your file so we can read it" (OFX)Wave's help: open the file in a text editor and swap the encoding line near the top, ENCODING:USASCII to ENCODING:UTF-8 or the other way round (Wave). Our OFX says USASCII. Or upload the Wave CSV instead.
"Wave is having difficulty reading the file you uploaded"Too many columns or a long file name. The Wave CSV has 3 columns and a short name; if you edited it, delete any column you added and rename it to something like 2026-09-checking.csv.
"Wave is having difficulty reading the dates of your transactions"A spreadsheet re-saved the dates as MM/DD/YYYY. Set the Date column back to YYYY-MM-DD before saving as CSV, or upload the file without opening it.
Card payments show up as purchasesUpload a card statement into a credit card account, and use the Wave CSV, not the plain CSV (whose card charges are negative).
"The file you provided doesn't match any format we support"The file is a PDF or an .xlsx. Upload the OFX or the Wave CSV.
The statement doesn't balance in UtillyYou see the difference before paying. Don't upload a file that's off; email us the statement layout and we'll fix it or refund you.

We built these files to Wave's published rules but haven't uploaded them into a live Wave business ourselves yet. Check Wave's Confirm import screen on your first upload, and tell us at support@version1.io if anything doesn't come through right.

Other formats from the same statement

  • Excel or Google Sheets: the CSV with a Balance column (PDF to Excel).
  • Moving from Wave to QuickBooks or Xero? The same results page has a .QBO and .IIF (PDF to QuickBooks) and a Xero CSV (PDF to Xero).
  • Sage, FreeAgent or GnuCash: the same OFX (PDF to OFX). Already have a bank CSV? The free CSV to OFX converter makes an OFX for Wave without a credit for files up to 100 rows.

Pricing

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.

FAQ

Questions

Can I convert a bank statement PDF to Wave for free?

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).

Is my statement stored?

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.

Do scanned statements work?

Not yet. PDFs downloaded from online banking are text-based and work well. Scans and phone photos need OCR, which is on the roadmap.

What if it doesn't balance?

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.

Can Wave import a PDF bank statement?

No. Wave's help says it doesn't support PDF files for transaction uploads. It takes OFX, QBO, QFX and ASO files, or a CSV. Convert the PDF to an OFX or a Wave CSV here, then use Accounting → Transactions → More → Upload transactions.

Should I upload the OFX or the CSV to Wave?

The OFX, if you don't need to edit anything: Wave's help says OFX, QBO, QFX and ASO are easier to import than a CSV. Take the Wave CSV when you want to look at or change rows in a spreadsheet first. It has only the 3 columns Wave reads (date, description, amount), with YYYY-MM-DD dates.

Does it work for credit card statements?

Yes. Upload into a credit card account in Wave. In the Wave CSV, purchases, fees and interest are positive and payments and credits negative, which is how Wave's CSV help says card amounts must be signed. The OFX is written as a credit card statement, with the New Balance as the ending balance.

Wave says it needs a small change to read my OFX file. What do I do?

Wave's help says to open the file in a text editor and swap the encoding line near the top: ENCODING:USASCII to ENCODING:UTF-8, or the other way round. Our OFX files say ENCODING:USASCII. Save the file and upload it again.

Will uploading overlapping months create duplicates in Wave?

They can. Wave's help articles on statement uploads don't say it skips transactions it already has, so don't count on it. Upload only months that aren't in the account yet. If the account is connected to your bank, Wave's help says to turn off its automatic imports before you upload statements by hand.

Related guides

More bookkeeping tools