StatementFlow

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:

DateDescriptionMoney outMoney inBalance
01/09/2026Client payment - Harbour Design1800.003050.00
03/09/2026Office rent September950.002100.00
05/09/2026Card payment - Office supplies64.352035.65
09/09/2026Direct debit - Broadband38.001997.65

The columns, explained

ColumnWhat it holdsWatch out for
DateThe posting date of the transactionDay/month order differs by country: 03/09 is 3 September in the UK and March 9 in the US.
DescriptionPayee, reference or narrative from the bankCommas inside the text must be wrapped in quotes, or the row splits.
AmountOne signed figure: positive in, negative outSome banks reverse the sign on credit card accounts.
Money out / Money in (or Debit / Credit)Two columns, one filled per rowNever fill both on the same row.
BalanceRunning balance after each transactionUseful for checking, but Xero asks you to delete it before import.
Reference / Cheque numberBank or cheque referenceExcel 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 CSV

Already 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.

Questions

CSV questions

Straight answers. Still stuck? Contact us.

What is a CSV bank statement?
A plain-text file with one transaction per line and the values separated by commas. Excel, Google Sheets and accounting software can all open it, which makes it the most widely accepted way to move bank data between systems.
Is a CSV the same as an Excel file?
No. A CSV holds only the values, with no formatting, formulas or multiple sheets. Excel opens it, but if you save it as .xlsx it's no longer a CSV, and accounting software may refuse it.
Why does Excel change my dates or long reference numbers?
Excel guesses data types when it opens a CSV. It may swap day and month, or turn a long reference into scientific notation. Import the file with Data → From Text/CSV and set those columns to Text, or edit the CSV in a text editor.
My bank only gives me a PDF. Can I get a CSV?
Convert the PDF. StatementFlow turns PDF, scanned and photographed statements into CSV or Excel and checks every running balance while it converts. For QuickBooks or Xero, its .qbo and .ofx exports skip the CSV step altogether.
Which is better for accounting software, CSV or OFX/QBO?
OFX and QBO files carry a unique ID per transaction and need no column mapping, so they import more reliably. Use CSV when the software or bank offers nothing else, or when you need to edit the data first.

Related: free bank reconciliation template · QBO vs QFX vs OFX · bank statement to Excel