Free sample bank statement CSV (fictional, with known totals)
Need a bank statement CSV to test an import, a spreadsheet or a parser, or just to see what a bank's CSV download looks like? This one is free to download with no sign-up. It's a fictional month of business checking, 31 transactions with a running balance, and it ties out to the cent, so you know exactly what a correct import looks like. It comes two ways: the messy way banks export it, and a clean one-amount-column CSV, plus Excel, QuickBooks and Xero versions.
Short answer: download the sample bank statement CSV (bank-style export: title lines, then Date, Description, Debit, Credit, Balance) or the clean CSV (Date, Description, Amount, Balance). Both hold the same 31 transactions from the made-up Example Community Bank, Business Checking ending 0427, September 2026: beginning balance 12,418.36, debits 28,575.27 (20 rows), credits 29,597.43 (11 rows), ending balance 13,440.52. Also as an Excel file, a QuickBooks Online CSV, a Xero CSV and the PDF statement it came from.
See this CSV cleaned and converted, no download needed
Open the bank-style sample in Utilly's CSV converter: it finds the header row under the title lines, combines Debit and Credit into one signed amount, leaves out the beginning balance and totals lines, and writes a .QBO, .IIF, Xero CSV or Quicken file. Every download is free for the sample, and your own CSV is free up to 100 rows.
Got your own statement as a PDF? Turn it into a CSV
Drop in a real bank statement PDF: the preview reads every transaction and checks it against the statement's ending balance, free with no sign-up. Your first 3 full statements are free with your email (every format: Excel, CSV, QuickBooks, Xero, Quicken). After that, $9 for 5 statements, no subscription.
- What is a bank statement CSV?
- The sample CSV files
- The bank-style CSV, line by line
- Bank statement CSV formats you'll meet
- Opening a bank CSV in Excel without breaking it
- Importing it into QuickBooks, Xero or Wave
- Checking an import against the known totals
- What the sample is not for
- Your own bank's CSV or PDF
- FAQ
1. What is a bank statement CSV?
A CSV (comma-separated values) file is plain text: one transaction per line, with the fields separated by commas. Most online banking sites offer one under a name like Download transactions, Export or Download activity, usually next to Excel, Quicken (.QFX) and QuickBooks (.QBO) options. It's not quite the same as the statement:
- The PDF statement is the official monthly record: an account summary (beginning balance, total deposits, total withdrawals, ending balance), the transactions, fees and notices. It covers exactly one statement period.
- The CSV download is the transaction list only, for whatever date range you pick. There's usually no summary, and each bank chooses its own columns, date format and sign convention.
That's why a CSV that "won't import" is so common: the file is fine, it's just not in the layout QuickBooks or Xero expects. And when a bank only lets you download recent months, the older PDF statements are the only record, which is when you convert a statement PDF to CSV.
2. The sample CSV files
All of these hold the same 31 fictional transactions, so you can compare them side by side. Money out is negative in every file with one Amount column.
| File | Columns | Use it for |
|---|---|---|
| Bank-style CSV | 2 title lines, a blank line, then Date, Description, Debit, Credit, Balance; a Beginning balance line and a Totals line | Testing a converter or import against a realistic, messy bank export |
| Excel (.xlsx) | The same layout as a spreadsheet, with real dates and numbers (no Totals line) | Excel and Google Sheets, converters that take spreadsheets |
| Clean CSV | Date (YYYY-MM-DD), Description, Amount, Balance | Scripts, pivot tables, a known-good reference |
| QuickBooks Online CSV | Date, Description, Amount (Intuit's 3-column format) | A QuickBooks Online bank account, Upload from file |
| Xero CSV | *Date, *Amount, Payee, Description, Reference | A Xero bank account, Import a Statement |
| Wave CSV | Date, Description, Amount | A Wave bank account upload |
| Credit card CSV | Date, Description, Amount, Balance, for a fictional card statement (purchases negative) | Testing card imports, where signs trip people up |
Want it laid out like a statement in Excel, with a summary, running-balance formulas and a blank template? That's the sample bank statement Excel file. The files that aren't CSVs (.QBO, .IIF, .QIF and .OFX) are on sample bank statement files, and the statement they all come from is explained line by line on sample bank statement PDF.
3. The bank-style CSV, line by line
Here's the start and the end of the bank-style file as plain text, the way a text editor shows it (Excel hides some of this):
Example Community Bank - SAMPLE FILE - FICTIONAL DATA FOR TRYING GETUTILLY.COM - NOT A REAL BANK OR ACCOUNT
Business Checking XXXXXX0427,09/01/2026 through 09/30/2026
Date,Description,Debit,Credit,Balance
09/01/2026,Beginning balance,,,12418.36
09/01/2026,ACH DEBIT GUSTO PAYROLL 0912,6420.18,,5998.18
09/01/2026,STRIPE TRANSFER ST-K2M8Q4,,3184.27,9182.45
09/02/2026,CHECK 2041,1850.00,,7332.45
09/02/2026,ACH DEBIT AUSTIN ENERGY UTIL,412.66,,6919.79
…
09/30/2026,MONTHLY SERVICE FEE,15.00,,13437.31
09/30/2026,INTEREST PAYMENT,,3.21,13440.52
,Totals,28575.27,29597.43,
- Lines 1–3 aren't data. The bank name, the account and the date range sit above the real header row, followed by a blank line. Many bank exports do something like this, and it's the first thing that breaks an import: QuickBooks expects the column headers on row 1.
- Line 4 is the header row: Date, Description, Debit, Credit, Balance.
- Two amount columns, no signs. Money out (6420.18 to Gusto payroll) is under Debit and money in (3184.27 from Stripe) is under Credit, each as a plain number with the other cell empty.
- Beginning balance is a line, not a transaction. It has a Balance but no Debit or Credit. Imported as a row, it either fails or adds a fake 12,418.36 deposit.
- The running Balance checks every row: 12,418.36 − 6,420.18 = 5,998.18 on the first transaction, then + 3,184.27 = 9,182.45.
- A Totals line at the bottom repeats the column sums (28,575.27 and 29,597.43). Leave it in and an import doubles the month.
- Dates are MM/DD/YYYY, the US order. A file like this opened on a computer set to day-first dates is where 09/04 turns into 9 April.
The clean CSV is what a converter should turn it into: one header row, one signed Amount, no balance or total lines.
Date,Description,Amount,Balance
2026-09-01,ACH DEBIT GUSTO PAYROLL 0912,-6420.18,5998.18
2026-09-01,STRIPE TRANSFER ST-K2M8Q4,3184.27,9182.45
2026-09-02,CHECK 2041,-1850.00,7332.45
2026-09-02,ACH DEBIT AUSTIN ENERGY UTIL,-412.66,6919.79
…
2026-09-30,MONTHLY SERVICE FEE,-15.00,13437.31
2026-09-30,INTEREST PAYMENT,3.21,13440.52
4. Bank statement CSV formats you'll meet
There's no standard bank CSV format. The layouts below cover most exports; the sample is the second.
| Layout | Looks like | What to watch |
|---|---|---|
| One signed Amount | Date, Description, Amount (−86.43, 2400.00) | Closest to what QuickBooks and Xero want. Check the sign convention: on most card exports purchases are positive |
| Debit and Credit columns | Date, Description, Debit, Credit, Balance | Combine into one signed amount, or map both columns. Debit usually means money out on a bank export |
| Amount plus a type column | Amount 86.43, Type DEBIT or CR/DR | The sign is in the type column, not the number; drop the column after applying it. The fictional card export has a Type column (Sale, Payment) next to an Amount that's already signed, so check which one carries the sign |
| No header row | Data from line 1, with columns in a fixed order | You have to know which column is which; an import tool may read the first transaction as headers |
| Extra columns | Posting date and transaction date, check number, category, memo, status | QuickBooks Online takes only 3 or 4 columns, so delete the rest or map them away |
Several bank pages show their bank's own CSV layout with a made-up sample you can open: Chase, Wells Fargo (no header row), U.S. Bank, PNC, Citibank and Mercury.
5. Opening a bank CSV in Excel without breaking it
Double-clicking a CSV opens it in Excel, which guesses each column's type. That's convenient for reading and risky for editing:
- Dates get reinterpreted. Excel converts dates to your computer's regional format, and on a day-first system 09/04/2026 can become 9 April. Save it and the file is no longer what the bank sent.
- Long numbers lose digits. A reference or account number longer than 15 digits is shown in scientific notation and the tail digits become zeros.
- "CSV" can be saved with semicolons on computers that use a comma as the decimal separator.
To keep the data intact, import it instead: in Excel, Data → From Text/CSV, then Transform Data to set the Date column's type using the locale it was written in; in Google Sheets, File → Import and untick automatic conversion (for your own statements, see getting a bank statement into Google Sheets). Or don't edit it by hand at all: the free CSV converter reads the original file and writes the import file directly. If an edited CSV fails to import but the original didn't, open both in a text editor and compare.
6. Importing it into QuickBooks, Xero or Wave
QuickBooks Online accepts a CSV in one of two layouts. Intuit: "You can upload CSVs with either the 3-column or 4-column format to QuickBooks." The 3-column one is Date, Description, Amount with money out negative, which is the sample's QuickBooks Online CSV:
Date,Description,Amount
09/01/2026,ACH DEBIT GUSTO PAYROLL 0912,-6420.18
09/01/2026,STRIPE TRANSFER ST-K2M8Q4,3184.27
09/02/2026,CHECK 2041,-1850.00
The 4-column one is Date, Description, Credit, Debit with each amount in only one column. Headers go on row 1, other columns (like Balance) have to go, and zeros should be blank cells. The free QuickBooks Online CSV checker tests a file against every rule and gives you a cleaned copy, and both layouts are ready to fill in on QuickBooks Online CSV import template. For QuickBooks Desktop, the usual route is a .QBO Web Connect file (Banking > Bank Feeds > Import Web Connect Files) or an .IIF, and both can be made from the CSV with CSV to QBO or CSV to IIF.
Xero imports a CSV through the bank account's Import a Statement, mapping Date and Amount at minimum. The sample's Xero CSV uses Xero's own template columns and YYYY/MM/DD dates so day and month can't swap:
*Date,*Amount,Payee,Description,Reference
2026/09/01,-6420.18,ACH DEBIT GUSTO PAYROLL 0912,ACH DEBIT GUSTO PAYROLL 0912,
2026/09/01,3184.27,STRIPE TRANSFER ST-K2M8Q4,STRIPE TRANSFER ST-K2M8Q4,
2026/09/02,-1850.00,CHECK 2041,CHECK 2041,
Blank lines, spaces around dates and the wrong date format are the usual failures; Xero bank statement import errors has the fix for each message. Wave takes Date, Description, Amount (the Wave CSV). Business Central imports the clean CSV (one signed Amount) once you set up a bank statement import format for its columns: how to import a bank statement into Business Central. Monarch Money needs Date, Amount and an Account column, money out negative: how to import transactions into Monarch Money (free template). YNAB matches columns to Date, Payee, Memo, Outflow and Inflow, one account per file: YNAB CSV import format and template. Actual Budget maps Date, Payee, Notes, Category and one signed Amount: Actual Budget CSV import. GnuCash needs a Date, a Description and an Amount column, with the header line skipped: GnuCash CSV import. FreeAgent wants no header row, dd/mm/yyyy dates, then Amount, then Description: FreeAgent bank statement CSV format (free templates).
Import samples into a test or demo company only, never real books. Where to test safely covers the Xero Demo Company and QuickBooks sample companies.
7. Checking an import against the known totals
A sample is only useful if you know the right answer. After converting or importing either CSV, compare:
| Check | Correct result | If it's wrong |
|---|---|---|
| Transactions | 31 | 32 means the Beginning balance line came in as a row; 33, the Totals line too |
| Money in (credits) | 29,597.43 (11 rows) | 42,015.79 means the 12,418.36 beginning balance was read as a deposit |
| Money out (debits) | 28,575.27 (20 rows) | Double (57,150.54) means the Totals line was imported |
| Beginning to ending balance | 12,418.36 to 13,440.52 | 11,396.20 means Debit and Credit were swapped |
In Excel or Google Sheets, on the bank-style file (rows 6–36 are the transactions): =E5-SUM(C6:C36)+SUM(D6:D36) returns 13,440.52. On the clean CSV: =12418.36+SUM(C2:C32), a plus because money out is already negative. The free bank statement balance checker runs the same test on any pasted list, and checks the running balance row by row.
8. What the sample is not for
It's for learning the format and testing software. The bank, account and transactions are made up, the first line of the file says SAMPLE FILE - FICTIONAL DATA, and it can't be used as proof of income, funds or a payment. Altering or making up bank records to use as proof is fraud. If someone asks for your bank statement, download the real one from your bank.
9. Your own bank's CSV or PDF
Got a CSV from your bank? Upload it to CSV to QBO, CSV to Xero, CSV to IIF or CSV to QIF: it finds the header row, combines Debit and Credit, drops balance and total lines and shows the result before you download, free up to 100 rows. Only have PDF statements, or need months your bank no longer offers as a download? Upload the statement to statement to CSV: the preview is free with no sign-up and checks the rows add up to the ending balance; your first 3 full statements are free with your email, then downloading uses 1 credit ($9 for 5, no subscription) or Pro at $19 a month.
Convert your own bank file
CSV and Excel exports are free up to 100 rows. PDF statements, downloaded or scanned, get a free preview with the balance check, no sign-up. Files are processed in memory and not stored.
FAQ
Where can I download a sample bank statement CSV?
On this page, free and with no sign-up. The bank-style file is a fictional business checking export from the made-up Example Community Bank, account ending 0427, September 2026, with Date, Description, Debit, Credit and Balance columns: beginning balance 12,418.36, 20 debits totalling 28,575.27, 11 credits totalling 29,597.43, ending balance 13,440.52. A clean one-Amount-column CSV, an Excel file and QuickBooks Online and Xero CSVs hold the same 31 transactions.
What is a CSV bank statement?
A plain-text list of an account's transactions, one per line with the fields separated by commas, downloaded from online banking (often called Download transactions or Export). Unlike the PDF statement it usually has no account summary, covers whatever date range you choose, and each bank picks its own columns, date format and signs.
What format is a bank statement CSV?
There's no single standard. The common layouts are one signed Amount column; separate Debit and Credit columns, often with a running Balance; an Amount with a separate debit/credit type column; and files with no header row. Many exports also add title lines, a beginning balance line or a totals line that have to be removed before importing.
Is this a real bank's CSV?
No. The bank, account and transactions are made up, the first line of the file says SAMPLE FILE - FICTIONAL DATA, and it can't be used as proof of income, funds or a payment. It's for learning the format and testing imports and software.
Can I import the sample CSV into QuickBooks Online or Xero?
Yes, into a test or demo company only. QuickBooks Online takes a 3-column (Date, Description, Amount) or 4-column (Date, Description, Credit, Debit) CSV with headers on row 1, which is the sample's QuickBooks Online CSV. Xero's Import a Statement takes the sample's Xero CSV, which uses Xero's template columns and YYYY/MM/DD dates.
How do I check a CSV import is complete?
Compare the count and totals with the statement: the sample has 31 transactions, 28,575.27 out and 29,597.43 in, and runs from 12,418.36 to 13,440.52. In a spreadsheet, =12418.36+SUM(C2:C32) on the clean CSV returns 13,440.52. An extra 12,418.36 deposit means the beginning balance line was imported; doubled totals mean the totals line was.
Related guides
- How to get a bank statement PDF into Google Sheets (checked to the balance)
- Free sample bank statement files: PDF, CSV, QBO, IIF, QIF and Xero CSV
- Free sample bank statement PDF (fictional, with known totals)
- Xero bank statement import errors (and how to fix them)
- QBO vs IIF vs QIF: which file QuickBooks and Quicken actually need
- How to upload a PDF bank statement to QuickBooks Online (and check nothing was missed)
Related tools
- Bank reconciliation checker: compare a bank statement to your books and list missing, duplicate and mismatched transactions.
- Receipt to CSV: turn PDF or photo receipts and invoices into CSV, Excel, or QuickBooks and Xero bill imports.