7 Oct 2026 · 3 min read · QuickBooks, Bank feeds, CSV
Bank CSV won't import into QuickBooks Online? 8 fixes that solve almost every case
Why QuickBooks Online rejects bank CSV files ("error importing", dates swapped, wrong amounts) and the exact changes that make the file import first time.

When a bank feed breaks or your bank isn't connected, QuickBooks Online lets you upload transactions as a CSV file. In theory it's a two-minute job. In practice you get "error importing", the dates come in with day and month swapped, or every amount lands as money in.
The good news: QuickBooks is strict, but it is predictable. Almost every failed import comes down to the same eight problems.
1. Keep exactly one header row
Bank exports often start with a title, the account number and a date range above the real column names. QuickBooks reads the first row as headers, so anything above it breaks the mapping. Delete every row above the one that says Date, Description, Amount.
2. Remove totals, balances and blank rows
The last rows of an export are usually "Closing balance", "Total" or empty lines. QuickBooks tries to import them as transactions and fails, or imports a fake transaction. Delete them.
3. Use the 3-column or 4-column layout
QuickBooks accepts two shapes:
| Layout | Columns |
|---|---|
| 3-column | Date, Description, Amount (money out negative) |
| 4-column | Date, Description, Credit, Debit |
Delete everything else, including a running Balance column. Extra columns are the most common reason the mapping screen goes wrong.
4. One date format for the whole column
If some rows say 07/01/2026, others 1 Aug 26 and others 2026-09-14, QuickBooks guesses and gets some wrong. Pick one format and make sure it matches the date format you choose on the mapping screen. Watch for day/month swaps: 03/09/2026 is 3 September in South Africa and the UK but 9 March in the US.
5. Amounts as plain numbers
QuickBooks wants -2500.00, not R 2,500.00, (2,500.00) or 2 500,00 CR. Remove currency symbols and thousand separators, turn brackets and DR into a minus sign, and use a dot for decimals.
6. No empty dates or amounts
Every transaction row needs a date and an amount. A wrapped description that spilled onto its own row creates a "transaction" with no date. Join it back onto the row above.
7. Save as CSV UTF-8, not Excel
Upload a .csv file, saved as CSV UTF-8. An .xlsx renamed to .csv will not work, and odd characters in descriptions (é, ë, curly quotes) can stop the upload when the encoding is wrong.
8. Stay under 350 KB
QuickBooks Online rejects bank files over 350 KB. A year of transactions from a busy account can be bigger than that. Split the file by month or quarter and upload the parts one after the other.
When it still fails
Check the exact error message, then look at the first two data rows: most remaining problems are a stray header row or a date QuickBooks can't read. If the bank only gives you a PDF statement, you need to get the transaction table out of the PDF first. Copy-pasting from a PDF usually breaks the columns.
Doing this every month?
This is exactly the job Rowvio was built for. Drop the bank export or PDF statement, choose QuickBooks Online, and you get a 3- or 4-column file with one header, clean dates, plain amounts and no total rows. You see a preview of every change before you download. Files are processed in your browser and never uploaded. It is free for beta testers.
Stop fixing import files by hand
Rowvio turns bank exports, spreadsheets and PDFs into files QuickBooks, Xero, HubSpot and Excel accept, with a preview of every change. Free for beta testers.
Join the free beta