Bank statement to Wave
Upload a statement, not a spreadsheet.
Wave takes OFX, QBO, QFX, ASO, or CSV, and recommends anything over CSV. Convert your statement PDF to OFX and upload the format Wave actually prefers.
50 free page credits · No card · Cancel anytime
- OFX, Wave's preferred route
- Balance-checked rows
- Cards and closed accounts
Export transactions
1,284 rowsFormat
| Date | Description | Amount |
|---|---|---|
| 2025-10-24 | STRIPE PAYOUT 4af2c9 | +4,820.00 |
| 2025-10-23 | AWS EMEA SARL | −1,204.00 |
| 2025-10-22 | WHOLE FOODS MKT | −112.88 |
PDF statement you upload
24/10 STRIPE PAYOUT 4af2c9........4,820.00
23-10 AWS EMEA SARL us-east-1 1,204.00-
22 OCT WHOLE FOODS MKT #214 112.88
21/10 UBER *TRIP..............24.40
20-OCT-2025 GUSTO PAY 9931 18,440.00
[illegible: scan quality]
OFX file Wave uploads
<STMTTRN>
<TRNTYPE>CREDIT
<DTPOSTED>20251024
<TRNAMT>4820.00
<NAME>Stripe
<MEMO>STRIPE PAYOUT 4af2c9
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20251023
<TRNAMT>-1204.00
<NAME>Amazon Web Services
<MEMO>AWS EMEA SARL us-east-1
</STMTTRN>
… 3 more transactions
Wave would rather have a file than a spreadsheet.
Wave's own guidance is to upload OFX, QBO, QFX, or ASO if your bank offers one, and to treat CSV as the more complicated fallback, because a CSV has to be shaped correctly before Wave will read it, and every bank shapes theirs differently. The trouble is that plenty of banks offer none of the four, especially on credit cards and older accounts. What they do offer is a statement PDF.
How it works
From statement PDF to Wave, screen by screen
- 01
Upload the statement
Scanned, multi-page, and password-protected PDFs all work, up to 50 MB each.

Drop the file in, forward the bank's email to a private import address, or post it to the API. - 02
Confirm the import
Review what is queued and decide whether statements carrying warnings still count in your analytics. Nothing is read until you confirm.

The warning types that will still count toward analytics are named before anything is extracted. - 03
Let it parse and reconcile
Rows are extracted and checked against the statement's own opening and closing balances, so what reaches Wave is a complete month rather than most of one.

The activity panel names the stage and the seconds elapsed as the statement moves through the queue. - 04
Clean the descriptions
Wave categorizes on what the description says, so a narration corrected here is a transaction Wave can place. Fix a whole range in one action.

Select a range and correct the merchant or description in one pass rather than a row at a time. - 05
Export OFX
Choose OFX rather than QuickBooks. Wave reads both, but plain OFX is the one with nothing Intuit-specific attached.

OFX and QuickBooks sit side by side in the format list. Either uploads to Wave; the left one is cleaner.
Once you have the file
Uploading the statement to Wave
Wave's upload lives on the account it belongs to.
- 1
Open Accounting, then Transactions
Statement uploads attach to a specific bank or credit card account, so have that account set up first.
- 2
Choose to upload a bank statement
Wave accepts OFX, QBO, QFX, and ASO files, plus CSV when none of those are available.
- 3
Select the exported .ofx file
Pick the account the statement covers, then the file. Wave reads it without any column mapping step.
- 4
Review, then categorize
The transactions land in Wave's review list, where you assign categories and confirm them into the books.
If Wave reports it cannot read a file, that is nearly always a malformed export from a bank rather than the format itself: a standards-compliant OFX avoids the usual causes.
Why the upload goes in cleanly
The format Wave asks for first
Wave lists OFX, QBO, QFX, and ASO ahead of CSV, and calls CSV the more complex option. The export produces the first of those, standards-compliant.
Balance-checked before upload
Opening and closing balances are reconciled against the parsed rows, so a statement missing a page is flagged before it becomes a total that will not agree.
FITIDs for overlap
Every transaction carries the identifier OFX defines for de-duplication, so uploading an overlapping month adds only what is new.
Descriptions worth categorizing
The merchant is resolved out of the raw card narration and both travel with the row, which is what makes Wave's categorization land on the right account.
The accounts with no download
Credit cards and smaller banks routinely offer no OFX or QFX at all. Every one of them still issues a statement.
Scanned statements handled
Statements that only exist as scans or photographs go through OCR before parsing, so paper archives upload like anything else.
What Wave accepts
Five formats, in the order Wave itself recommends them.
| Format | Where it stands |
|---|---|
| OFX | Open Financial Exchange, and what this export produces. Typed dates, signed amounts, identifiers. |
| QBO | OFX with an Intuit web-connect header. Wave reads it; nothing here needs it. |
| QFX | Intuit's Quicken variant, only issued by banks in Intuit's programme. |
| ASO | The Simply Accounting format, still accepted for banks that emit it. |
| CSV | Wave's own fallback, and the one it calls more complex: the file has to be shaped right before it will read. |
FAQ
Common questions
How do I upload a bank statement to Wave?
Wave accepts OFX, QBO, QFX, and ASO files, and CSV as a fallback. Convert the statement PDF to OFX, open the account in Transactions, upload the file, and Wave reads it without a mapping step.
Can Wave read a PDF statement?
No. Wave's uploader takes OFX, QBO, QFX, ASO, and CSV, so a PDF has to be converted first, which is what this does, into the format Wave recommends.
Why not just use CSV?
You can, and Wave supports it, but Wave itself describes CSV as the more complex option and suggests one of the four file formats where the bank offers it. A CSV has to be shaped correctly; an OFX file carries typed fields and needs no shaping.
Wave says it cannot read my file. What now?
That message usually means the file is malformed rather than the wrong format: banks emit some genuinely broken OFX. A standards-compliant export avoids the common causes, and the balance check catches a truncated statement before you upload it.
Will uploading an overlapping month duplicate transactions?
Each transaction carries a FITID, the field OFX defines for exactly this, so an overlapping upload is matched on the identifier rather than on the amount and date.
Does this work for credit cards?
Yes, and they are the common case. Card issuers are the least likely to offer a downloadable OFX, and card statements convert the same way current-account ones do.
Converting a statement from a specific bank?
Written up for the format each of these banks prints.
Keep exploring
Bank Statement → QuickBooks
Categorize first, then export an OFX/QBO QuickBooks imports.
Bank Statement → Xero
OFX for Import a Statement, including pre-feed history.
Bank Statement → GnuCash
Plain OFX for File → Import → Import OFX/QFX.
Bank Statement → Moneydance
OFX for the accounts Direct Connect cannot reach.
Bank Statement → Sage
OFX scoped to one account, the way Sage reads it.
Skip the CSV mapping.
Convert the statement, check the balances tie, and upload the format Wave recommends first.