Bank statement CSV format
A bank statement CSV is a text file with one transaction per line: usually the date, a description, the amount and the running balance, separated by commas. Every bank lays it out a little differently, and QuickBooks and Xero each expect their own columns. This page shows a typical file, what each program needs, and free sample files you can test with.
A typical bank statement CSV
Opened in a text editor, the first lines look like this:
Date,Description,Money out,Money in,Balance 01/09/2026,Client payment - Harbour Design,,1800.00,3050.00 03/09/2026,Office rent September,950.00,,2100.00 05/09/2026,Card payment - Office supplies,64.35,,2035.65 09/09/2026,Direct debit - Broadband,38.00,,1997.65
The same rows in a spreadsheet:
| Date | Description | Money out | Money in | Balance |
|---|---|---|---|---|
| 01/09/2026 | Client payment - Harbour Design | 1800.00 | 3050.00 | |
| 03/09/2026 | Office rent September | 950.00 | 2100.00 | |
| 05/09/2026 | Card payment - Office supplies | 64.35 | 2035.65 | |
| 09/09/2026 | Direct debit - Broadband | 38.00 | 1997.65 |
The columns, explained
| Column | What it holds | Watch out for |
|---|---|---|
| Date | The posting date of the transaction | Day/month order differs by country: 03/09 is 3 September in the UK and March 9 in the US. |
| Description | Payee, reference or narrative from the bank | Commas inside the text must be wrapped in quotes, or the row splits. |
| Amount | One signed figure: positive in, negative out | Some banks reverse the sign on credit card accounts. |
| Money out / Money in (or Debit / Credit) | Two columns, one filled per row | Never fill both on the same row. |
| Balance | Running balance after each transaction | Useful for checking, but Xero asks you to delete it before import. |
| Reference / Cheque number | Bank or cheque reference | Excel may turn long numbers into 1.23E+11. Keep the column as text. |
What QuickBooks Online expects
- 3 columns (Date, Description, Amount) with money out as negative, or 4 columns (Date, Description, Credit, Debit) with only one of Credit or Debit filled per row.
- The same date format on every row; Intuit recommends dd/mm/yyyy.
- Blank cells instead of 0.00, and no numbers in the Description column.
- English only, 350 KB or less, up to 1,000 lines per upload.
The full walkthrough is in how to upload a bank statement to QuickBooks Online.
What Xero expects
- Only Date and Amount are required. Payee, Description, Reference and Check number make reconciling easier.
- One Amount column: income positive, spending negative, either -30.00 or (30.00). No commas as decimal separators.
- Dates as DD/MM/YYYY, MM/DD/YYYY or YYYY/MM/DD.
- A header row in row 1 with unique column names, no opening or closing balance columns, no account number and no empty rows. Up to 100,000 rows.
More on the Xero side: importing a bank statement into Xero.
Free sample CSV files
The same fictional month of transactions in four layouts. Use them to test an import, or as a template for your own file.
- General bank statement CSVDate, Description, Money out, Money in, BalanceDownload .csv
- QuickBooks Online, 3 columnsDate, Description, AmountDownload .csv
- QuickBooks Online, 4 columnsDate, Description, Credit, DebitDownload .csv
- Xero bank statementDate, Amount, Payee, Description, ReferenceDownload .csv
Fixing a CSV that won't import
- Extra rows above or below the transactions. Many bank exports include the account name, a statement period or totals. Delete everything except the header row and the transaction rows.
- Currency symbols and thousands separators. Change £1,200.00 to 1200.00.
- Mixed date formats. Make every row match, then pick that format in the import screen.
- Separate in and out columns where the software wants one. Make one Amount column with money out as negative.
- The file was saved as .xlsx. Save it again as CSV (comma delimited).
Only have the PDF?
StatementFlow converts PDF, scanned and photographed statements to CSV or Excel, and checks every running balance while it converts. Its CSV uses YYYY-MM-DD dates, which can't be misread as day-first or month-first. For QuickBooks or Xero, download the .qbo or .ofx file instead and skip the column mapping.
Convert a statement to CSVAlready have a CSV?
Turn it into an import file for free, in your browser: CSV to QBO for QuickBooks or CSV to OFX for Xero and Sage.
What is a CSV bank statement?
Is a CSV the same as an Excel file?
Why does Excel change my dates or long reference numbers?
My bank only gives me a PDF. Can I get a CSV?
Which is better for accounting software, CSV or OFX/QBO?
Related: free bank reconciliation template · QBO vs QFX vs OFX · bank statement to Excel