Bank Statement to OFX, QIF and CSV for QuickBooks & Xero
The import file your accounting app asks for, from the statement your bank gives you.
Free preview.
- Free preview: the summary and balance check of the whole statement, with the first converted transactions (up to 10).
- Locked until you unlock it: download.
- Unlock: Premium pass, ₹799 for 30 days, a one-time payment that never renews.
Ways to unlock shows how to get the full result.
Printing this result is locked in the free preview.
1. The statement
Reading options and columns
The row with the column names.
2. Check the transactions
3. Payees, categories and account codes
Rules
The first rule whose text appears in a narration gives that line its payee, category (QIF and CSV), and account code and tax rate (Xero). Text is matched without regard to capitals.
Only a precoded Xero file uses account codes and tax rates. Type the tax rate’s name as Xero shows it.
4. Account and file
OFX files name the account they belong to. Not saved.
Routing number, sort code or BSB. Left empty, nine zeros are written.
From the statement.
Upload it to Xero (import a statement on the bank account), QuickBooks Online (upload from file) or a personal finance app that imports OFX. Each line carries a transaction ID made from its date, amount and narration, so the same statement imported twice has the same IDs.
QIF does not say which comes first, the day or the month: when the app asks (Xero does), choose the order picked here.
Upload it to the matching bank or card account in QuickBooks Online and match the columns and the date format on its screen. One upload takes up to 1,000 lines and 350 KB, so a longer statement comes as several files in one ZIP.
Xero needs the Date and Amount columns; match the others (Payee, Description, Reference, Cheque Number) on its import screen. A precoded statement also needs an account code and a tax rate on every line: set them with rules or the defaults in step 3.
Date (YYYY-MM-DD), payee, narration, reference, amount, money in and out, balance, category, account code, tax rate, transaction ID and the balance check, for a spreadsheet or any app that imports CSV.
QuickBooks and Xero are named only to describe the files their bank imports accept. MySmartCoPilot is not affiliated with Intuit or Xero.
Locked in the free preview. Opens the ways to unlock this result.
Locked in the free preview. Batch runs unlock with a pass.
Locked in the free preview. Query results unlock with a pass.
Results are estimates for general information and planning, not financial advice. Banks and institutions may calculate differently (rounding, fees, rate changes). Confirm figures with your lender or a qualified adviser before deciding.
About the Bank Statement to OFX, QIF and CSV for QuickBooks & Xero
Accounting and money apps import bank transactions from a few file types — OFX, QIF and their own CSV layouts — but many banks hand out only a PDF, or a CSV in a layout no app reads. This tool reads the statement — a PDF with text (password-protected ones open with the password you type) or the bank’s CSV or Excel download — and writes the file the app asks for: OFX for bank or credit-card statements, QIF, the 3- or 4-column CSV of QuickBooks Online’s bank upload, or the CSV of Xero’s statement import, plain or precoded with account codes and tax rates.
Before anything is written, every line with a running balance is checked: the previous balance plus the line must equal the balance printed, so a misread amount or a missing line shows up here instead of in your books. Payees are cleaned of card numbers and terminal codes, your own rules rename them and add categories, and each line gets a stable transaction ID. Everything happens in this browser: the statement is never uploaded.
How to use it
- Choose the statement: a PDF with text, or the CSV or Excel file from your bank’s website. Type the PDF’s password if it asks for one, or press Try a sample statement to see the whole process.
- Check the transactions: the summary shows money in and out, the opening and closing balances and the balance check; lines that do not add up are marked. If dates or columns were read wrongly, open Reading options and columns.
- Optionally open Payees, categories and account codes: choose the clean-up, and add rules such as “narration contains GREEN GROCER → payee Green Grocer, category Groceries”. Rule on a line starts one from it.
- Choose the account type and currency, type the account number (its last digits are enough), pick the file — OFX, QIF, QuickBooks Online CSV, Xero CSV or a CSV with every column — and download it once the result is unlocked.
- Import the file into the matching account in your app. Without a pass, the first lines show and the download stays locked.
Examples
02/04/2026 · POS PURCHASE GREEN GROCER #4417 04/02 · withdrawal 54.20
<TRNTYPE>DEBIT · <DTPOSTED>20260402120000 · <TRNAMT>-54.20 · <NAME>GREEN GROCER · <MEMO>POS PURCHASE GREEN GROCER #4417 04/02
Money out is negative, as the OFX specification signs amounts from the account holder’s side; the narration stays in the memo.
A deposit of 3,200.00 and a payment of 54.20, dates as dd/mm/yyyy
Date,Description,Amount 01/04/2026,PAYROLL ACME CORP DIRECT DEPOSIT,3200.00 02/04/2026,POS PURCHASE GREEN GROCER #4417 04/02,-54.20
Rule: narration contains GREEN GROCER → account code 429, tax rate “GST on Expenses”
Date,Amount,Payee,Description,Reference,Cheque Number,Account Code,Tax Rate 02/04/2026,-54.20,GREEN GROCER,POS PURCHASE GREEN GROCER #4417 04/02,,,429,GST on Expenses
Previous balance 400.00 owed, purchase 25.00, new balance 425.00
The purchase is −25.00 (money out) and the OFX balance is −425.00: card balances owed are negative in OFX
Common uses
- Bookkeepers importing a client’s statements into Xero or QuickBooks Online when the bank offers only PDFs.
- Catching up a year of transactions at tax time from downloaded statements.
- Moving a card or savings account into a money app that imports OFX or QIF.
- Coding a whole statement in advance with account codes and tax rates for a precoded Xero import.
Which file for which app
- OFX (Open Financial Exchange) comes in two forms here: 1.0.2 (SGML, Windows-1252 characters) and 2.2 (XML, UTF-8); choose 2.2 when your app asks for XML or to keep characters such as ł or ₹. The file follows the OFX Banking Specification published by the Financial Data Exchange: bank statements as
<STMTRS>, card statements as<CCSTMTRS>, a payee of up to 32 characters and the full narration as the memo. - QIF is the older Quicken format (
!Type:Bankor!Type:CCard, oneDate,Tamount,Payee,Memo andLcategory per entry, as Intuit described it). It does not say whether 03/04 is 3 April or March 4, so choose the order your app expects. - QuickBooks Online CSV: Intuit’s bank upload takes 3 columns (Date, Description, Amount) or 4 (Date, Description, Credit, Debit), dates in one format and empty cells instead of zeros; one upload takes up to 1,000 lines and 350 KB, so longer statements come as parts in one ZIP. Its upload also takes OFX.
- Xero CSV: Xero’s CSV statement import needs a date and one signed amount per line; Payee, Description, Reference and Cheque Number help reconciling. A precoded statement also carries each line’s account code and tax rate. Xero also imports OFX and QIF.
The running-balance check
For every line with a balance, the balance before it plus the line (money in positive, money out negative) must equal the balance printed: 5,650.00 − 54.20 = 5,595.80. Lines where it does not are marked with the balance that was expected; usually an amount was read into the wrong column or a line is missing, so compare them with the statement before you import. The same check tells which way round a statement lists its lines (newest first is put in date order) and recognises card statements, where purchases raise the balance. A statement without a running balance cannot be checked line by line: compare the totals with its own summary.
Payees, rules and transaction IDs
The payee is the narration without what identifies the card or terminal: card numbers such as XXXX1234, long reference numbers, words like POS PURCHASE or DEBIT CARD PURCHASE, and dates and times printed inside it (each clean-up can be switched off). Rules go further: the first rule whose text appears in a narration sets that line’s payee, its category (QIF and CSV) and, for a precoded Xero statement, its account code and tax rate. Rules and the clean-up are remembered in this browser for next month’s statement.
Every line also gets a transaction ID made from the account number, its date, amount and narration. The OFX specification gives each transaction such an ID so that an app can recognise a line it has imported before; reading the same statement again gives the same IDs, and two identical lines on one day get different ones.
Limitations
- Scanned statements (pictures of pages) have no text to read: make them searchable with OCR PDF first, or use the bank’s CSV or Excel download.
- QuickBooks’ own .QBO files (an Intuit variant of OFX) are not made here; QuickBooks Online’s upload takes the OFX and CSV files from this tool.
- Each app decides what it imports and may change its rules: if an import is refused, check the app’s own help for its current layout, and match the columns on its import screen.
- Categories, account codes and tax rates must already exist in your app under exactly those names; this tool does not create them.
- Statements with several accounts in one file are read as one account: split them first.
- This tool converts what the statement shows. Always compare the totals with the statement before relying on the import; it is not an accounting or tax service.
Privacy
The statement is opened and read in this browser and never uploaded; a PDF password is used only to open the file and is never stored. The payee clean-up, your rules and the file choices are remembered in this browser’s storage; account numbers are not.
Frequently asked questions
What do I get without a pass?
Without a pass, Bank Statement to OFX, QIF and CSV for QuickBooks & Xero shows the summary and balance check of the whole statement, with the first converted transactions (up to 10). Until you unlock it, the result can’t be downloaded. A Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.
Is my bank statement uploaded anywhere?
No. The PDF or spreadsheet is read by your browser on your device, and the OFX, QIF and CSV files are written there. Nothing — not the file, not the password, not the transactions — is sent to MySmartCoPilot or anyone else.
Which banks does it work with?
It does not depend on a list of banks. PDFs are read from their table headings (Date, Description, Withdrawal, Deposit, Amount, Balance and the usual labels in other languages), spreadsheets from their column names, which you can change under Reading options. If a PDF is not read well, download the statement as CSV or Excel from your bank instead.
Can QuickBooks Online import an OFX file?
Yes: Intuit’s steps for uploading transactions by hand list .csv, .txt, .qbo and .ofx files. Choose OFX here, or the QuickBooks Online CSV if you prefer to match columns yourself.
Why are purchases negative?
Import files sign every amount from the account holder’s side: money in (deposits, refunds, card payments) is positive and money out (withdrawals, purchases, fees) is negative, on bank and card statements alike. If a file came in the wrong way round, tick Money in and money out are the wrong way round in step 3.
What if I import the same statement twice?
In OFX, each line’s transaction ID is the same every time the same statement is converted, and the OFX specification uses that ID to recognise lines imported before. CSV and QIF files have no such ID: use the From and To dates in step 2 so that overlapping statements are imported only once.
Is MySmartCoPilot connected to QuickBooks or Xero?
No. QuickBooks and Xero are named only to describe the files their bank imports accept; MySmartCoPilot is not affiliated with Intuit or Xero, and nothing is sent to either.