Wave cannot read a CSV: columns, card signs and currency
Updated · 3 min read
When Wave cannot read a bank CSV, check the destination account and Wave’s field rules before repeatedly saving the same file. Its statement importer expects a date, description and either one amount column or two movement columns. Credit-card signs and the selected account’s currency need separate checks.
This follows Wave’s current US help documentation. Use a suitable native bank file first. Wave does not accept a PDF as a transaction upload; LocalExtract can prepare CSV locally if PDF is the only source, followed by review and mapping.
The desktop apps export date, description, and amount as CSV. Open CSV in Excel to save an XLSX workbook. Statement support varies: verify the result against your own PDF.
Reduce a working copy to the supported fields
The official CSV troubleshooting guide describes three or four columns: date, description, and one signed amount or separate deposit/withdrawal amounts. Extra columns with inconsistent information can cause a reading error. Keep the original export unchanged and prepare a destination-specific copy.
Retain one justified date column rather than both transaction and approval dates. The source lists YYYY/MM/DD or YYYY-MM-DD forms and rejects future transaction dates. If the file has no transaction rows or has headers below the data, fix that structure before another attempt. Exclude a balance-total row from the transaction population; it is not another bank movement.
Wave requires a description column. Its guide allows it to be empty, but a populated description cannot consist only of numbers. Do not invent narratives to satisfy that condition; preserve the genuine text or obtain the right source.
Check card signs and account currency
For credit-card uploads, Wave specifically requires purchases positive and payments negative. Do not carry a checking-account cash-sign convention into a credit-card file without reviewing the destination meaning.
| Synthetic card movement | Wave card-upload amount |
|---|---|
| Purchase, USD 72.00 | +72.00 |
| Card payment, USD 50.00 | −50.00 |
| Contextual statement balance | Not an additional transaction row |
The resulting signed movement total is +22.00 under the card convention in this example. That is not a claim about available credit or the card’s full closing balance. The synthetic Wave mapping worksheet includes a reversed-sign control and a balance-row exclusion check. Python verifies the defined values; a live Wave import has not been executed.
The currency symbol in the file does not select the transaction currency. Wave uses the payment account chosen for upload. For a multi-currency source, prepare separate currency populations and check the corresponding accounts. Removing a symbol cannot turn one currency into another.
Follow the specific error instead of repeating the upload
If a two-amount-column file still fails, Wave suggests consolidating movements into one amount column. Verify directions against the actual account type before doing so. For an unlisted error, its help page links the official template and Wave Connect as alternative preparation routes; this guide does not certify either for your file.
Use the delimiter and encoding guide for a CSV that opens in one column, and the date/decimal guide for ambiguous source interpretation. Those general repairs do not override Wave’s account, currency or card-sign requirements.
LocalExtract exports one PDF’s rows as date,description,amount, without automatic Wave matching or bookkeeping. Download for PDF preparation.
Official Wave instructions checked October 16, 2026.
LocalExtract Team
We build LocalExtract, a desktop bank statement converter. Questions or corrections? Contact · Editorial policy