LedgerDrop

Wave bank statement CSV format: columns, dates and signs that import cleanly

Published 13 October 2026 · by Tekiba

Short answer: Wave reads a CSV with a date, an amount and a description and, at most, a second amount column. The date must be year first and not in the future; on a credit card, purchases are positive and payments negative; and one file carries one currency. Wave does not take the PDF itself.

Quotations are from two Wave help pages, read on 13 October 2026: what to do if Wave can't read your statement in CSV format and upload a bank or credit card statement in .csv format. For QuickBooks and Xero, see how to import a bank statement CSV into QuickBooks, Xero or Excel.

Wave starts from a file, not a PDF

“Wave does not support PDF files for transaction uploads.” It lists .OFX, .QBO, .QFX, .ASO and .CSV, and of the first four says “All these formats are easier to import into Wave than a .CSV file”. A CSV is for when the bank offers nothing else, or when all you have is a PDF.

Columns: three or four, and nothing else

“To import properly, your CSV file must have three or four columns”: a date, the amount — “all in one column, or one column each for deposits and withdrawals” — and a description. On the Select date, Select amounts and Select description pages you click the column for each; “If there is only one date column in your file, Wave will make a selection for you.”

Extra columns are where a file usually goes wrong. A file with “more than four columns with inconsistent information” is refused with “Wave is having difficulty reading the file you uploaded”, and the remedy is to “ensure you only have columns for the transaction's date, amounts, and description. Delete any other columns.” Two date columns are a separate error, and so is a row of balance totals: “You may receive a generic error if you have account balance totals in your file.”

The description needs words. Wave's page: “A description column cannot contain only numbers.” A column holding cheque numbers alone will not do; Wave's fix is a description column “containing words”.

Dates: year first, and never later than today

Wave's page says the date “cannot be in the future and must use this formatting: YYYY/MM/DD or YYYY-MM-DD”, with numbers, “full month names, or 3-letter month names. For example, 2025/Jan/01”. A US-style 01/15/2026 is not on that list.

The future-date rule catches a familiar mistake. A December–January statement prints dates without a year, and a converter that gives every row the year on the cover puts December's rows twelve months late — in the future. Wave reports it as a date it cannot read. Why your converted CSV shows the wrong year explains how to catch it.

Signs: the credit card is the other way round

For a bank account, one amount column with a minus sign on money out is what Wave expects: “Use brackets or the minus sign to indicate negative amounts.” The amount itself must be a number, with no symbol but the currency's and that one in front.

A credit card is different, and Wave says so in one line: “When uploading credit card transactions, purchases must be a positive amount, while payments must be negative.” That is the card statement's own convention — a purchase adds to what you owe — and the reverse of a cash-flow CSV, where a purchase is negative. A cash-flow card file is not caught by anything in Wave's list of errors: every row is still a valid number, only backwards. Should debits be negative in a bank CSV? covers the two conventions.

On a card, the upload page also says to pick “the date the bank took the money from the credit card (the posting date)”.

Currency: one per file, set by the account

Wave does not take the currency from the file. “The currency symbol in your file does not determine transaction currency. The currency will match the payment account chosen when uploading your file.” A file with two currencies is refused; the fix is to “create and upload a CSV file for each currency separately”, each into an account in that currency.

The checklist

  1. Choose the account first. Its currency is the file's. Split a statement that mixes currencies.
  2. Keep three columns, or four. Date, amount (or deposits and withdrawals), description. Delete the rest, and any totals row.
  3. Check the dates are year first. 2026-10-01 or 2026/10/01. Then check the latest date in the file is not after today, which on a December–January statement it may be.
  4. On a card, check the signs. Find a purchase you remember: it should be positive, and a payment negative. Only if they are the other way round, reverse the amount column: =-C2 in a new column, filled down and pasted back as values, does it for a column in C.
  5. Look at the descriptions. Words, not numbers alone. Header row at the top; no blank rows.
  6. Save as CSV, comma delimited, with a short name. Wave suggests “month-year-account.csv”. Open the saved file in a text editor and check the dates are still year first.
  7. After the upload, compare the totals. On a bank account, the rows in Wave should net to the statement's closing balance less its opening one. Reconciling a statement before you import it covers the checks.

Where a LedgerDrop CSV fits

LedgerDrop's free CSV has five columns — Date, Description, Amount, Balance, Check# — with dates as YYYY-MM-DD and money in positive. The dates are already year first, and on a bank account the signs are already Wave's. Delete the Balance and Check# columns before uploading. On a credit card, LedgerDrop writes purchases negative, so step 4 applies. The writer adds no totals row and no blank rows, but a statement that prints its closing balance as its last row can carry that row through: LedgerDrop marks it above the table and leaves it in. Delete it before uploading.

Convert a statement → LedgerDrop reads the PDF in your browser, shows every row and checks them against the statement's printed balances, free at any length; the CSV is free for files of up to 3 pages. LedgerDrop Pro ($39 once) also writes OFX and QBO, two of the formats Wave lists. It has no layout made for Wave's CSV.

What this page cannot tell you

Everything here is from Wave's help pages and from what LedgerDrop's code writes. Nothing was tested by uploading to Wave, including the OFX and QBO files Pro writes, and Wave changes its screens.

Questions

Can I upload a bank statement PDF to Wave?

No. Wave's help page says “Wave does not support PDF files for transaction uploads.” It takes .OFX, .QBO, .QFX, .ASO and .CSV, so a statement that exists only as a PDF has to be converted to one of those first.

Why does Wave say it is having difficulty reading the dates?

Wave gives three reasons: two date columns, rows with commas or blank spaces, or a format it does not recognise. The date must be year first, YYYY/MM/DD or YYYY-MM-DD, and cannot be in the future — which a December row given the following year will be.

Should credit card purchases be positive or negative in a Wave CSV?

Positive. Wave: “purchases must be a positive amount, while payments must be negative.” A converter that writes the cash-flow convention, with purchases negative, needs the signs turned round before a card file goes into Wave.

Can Wave import a CSV with separate deposit and withdrawal columns?

Yes: Wave accepts one amount column or one each for deposits and withdrawals, four columns in all with the date and description. Its page adds that if such a file will not upload, move the amounts into a single column.