Statement to OFX and import-ready CSV
Open the CSV or Excel export from a bank account, or paste the rows of a statement. The tool writes an OFX 1.x bank statement file with a unique transaction id on every row, and CSV files split so that no file has more rows than the limit you set. The OFX text is then read back by a separate reader and compared with the statement, transaction by transaction.
The file is read in your browser and stays on this device. Nothing is uploaded. This tool reads rows (CSV, Excel, or pasted text); it does not read PDF files or scans.
Or paste rows copied from a statement or spreadsheet, with a header row first (for example Date, Description, Amount, Balance):
The rows are read in this browser and are not uploaded. This tool reads rows; it does not read PDF files or scans.
These are matched from the header words. Check them and change any that are wrong. Use either one amount column, or the money out and money in columns.
4. OFX file
The three endings hold the same OFX text. The institution id is a number some programs look for in the file; this tool does not supply one. Whether a program accepts a file is up to that program.
5. CSV files
Set the row limit to what your accounting program takes in one import. The file is split so no part has more rows than that.
Statement
Files
What gets checked
- Opening balance plus every transaction equals the closing balance, and every running balance in the file matches.
- The OFX file is read back by an independent reader: same number of transactions, and the same date, amount, and description on each, in the same order.
- Transactions in the OFX file add up to the statement total.
- Every transaction id (FITID) in the OFX file is different. Ids are built from the date, the position within that day, and the amount, so the same statement always gets the same ids.
- The ledger balance written in the OFX file equals the closing balance.
- The CSV files are read back: no file has more rows than the limit, and their row counts and amounts add up to the whole statement.
How it works
- Open the rows. Drop a .csv or .xlsx export from the bank, or the table saved from the statement converter on this site, or paste rows with a header row first. PDF files and scans are not read.
- Check the columns and balances. Columns are matched from the header words and can be changed. Type the opening and closing balances, or leave them blank to use the running balance column.
- Set the file options. Choose the account type and the file name ending (.ofx, .qfx, or .qbo; the contents are the same OFX text). For the CSV files choose the most rows per file (1,000, 500, or your own number), the date format, and one signed amount column or separate debit and credit columns.
- Write, verify, download. The files are written, the OFX text is read back and compared with the statement, and the CSV parts are re-added. Download each file with the certificate.
Worked example
The same made-up March statement: opening balance $1,200.00, six transactions, closing balance $3,953.33. The row limit is set to 4 to show the split.
| Date | Description | Amount | Transaction id (FITID) | CSV file |
|---|---|---|---|---|
| 2026-03-02 | PAYROLL DEPOSIT EXAMPLE CO | 2500.00 | 20260302.001.250000 | 1 |
| 2026-03-03 | CARD PURCHASE HARDWARE STORE | -48.27 | 20260303.001.N4827 | 1 |
| 2026-03-05 | CHECK 1042 | -800.00 | 20260305.001.N80000 | 1 |
| 2026-03-09 | ACH DEPOSIT CLIENT INVOICE 118 | 1250.00 | 20260309.001.125000 | 1 |
| 2026-03-16 | ELECTRIC UTILITY PAYMENT | -136.40 | 20260316.001.N13640 | 2 |
| 2026-03-31 | MONTHLY SERVICE FEE | -12.00 | 20260331.001.N1200 | 2 |
The OFX file holds 6 transactions totaling $2,753.33 with 6 different ids and a ledger balance of $3,953.33, all equal to the statement when read back. The CSV splits into 2 files: 4 rows totaling $2,901.73 and 2 rows totaling -$148.40, which re-add to 6 rows and $2,753.33.
The example uses made-up names and numbers.
Questions
Will my accounting program accept the file?
The file follows the published OFX 1.x format, and the tool proves it holds exactly the statement's transactions and closing balance. Whether a particular program accepts a file is decided by that program. Some look for an institution id in the file; the tool writes one only if you type it and does not supply one.
What is the difference between .ofx, .qfx, and .qbo here?
Only the file name ending. All three hold the same OFX text written by this tool. Different programs look for different endings when importing.
Why split the CSV, and at how many rows?
Some accounting programs take only a limited number of rows in one import. Set the limit your program states; 1,000 and 500 are offered as starting points. Every transaction lands in exactly one file, in order, and the parts are re-added to prove it.
What stops duplicates when I import the same month twice?
Each transaction gets an id made from its date, its position within that day, and its amount. The same statement always produces the same ids, which is what importing programs use to recognize a transaction they already have.
Does it read PDF statements, and is it connected to my bank or accounting software?
No to both. It reads rows from a .csv or .xlsx export, or rows copied into the box on the page, in your browser. It never signs in anywhere, and it is not affiliated with, endorsed by, or sponsored by any bank or accounting software maker.
This tool calculates and checks numbers. It is not legal, tax, or medical advice.