Read a bank file
Bank file inspector
Open an OFX, QBO, QFX or QIF file, see what is inside and any format problems, and download it as a readable CSV. Runs in your browser.
This tool processes your file and entries in this browser tab, without uploading or saving them.
One file, up to 5,000,000 bytes and 10,000 transactions. No upload.
The example is fictional. Inspect does not change the source file.
Your file and the values you enter are processed in this browser tab. They are not uploaded or sent to analytics. We do not save them between visits. Downloads you choose to save remain on your device.
See the accounts, dates, amounts and transaction IDs inside an OFX, QBO, QFX or QIF file. Find format problems and save a readable CSV without uploading your file or signing up.
By AnyStatement
Published , 4 min read
Read the file before trying another import
Choose a bank-produced file or paste its text, then select Inspect file. File bytes use their BOM or supported encoding declaration; if neither establishes the encoding, choose it explicitly. Pasted text has already been decoded, so it cannot tell us what the original bytes used. QIF also needs your date order. Its currency is unknown unless you supply one for all registers.
Accounts remain separate, including accounts with the same last four digits. Summaries initially mask identifiers. Dates preserve the calendar day written in the source, and the raw date retains any time and offset. No timezone conversion is performed.
The table retains duplicate FITIDs, unreadable values and basic QIF investment records for review. A duplicate ID is checked within the same institution/account identity, not across unrelated accounts. Repeated IDs are a finding, not an instruction to delete a transaction. For an explanation of the formats, read CSV, QBO, QFX, OFX and QIF explained.
A closing balance is not a completeness check
The fictional example has four USD amounts: +1,250.00, -42.50, -157.35 and +19.99. Credits are 1,269.99, debits are 199.85, and net movement is 1,070.14. The file reports a closing ledger balance of 2,070.14.
Enter an independent opening balance of 1,000.00 for the same range to get 1,000.00 + 1,070.14 = 2,070.14, with a residual of 0.00. Without that opening value, the tool says arithmetic is not independently checked. Even a zero residual does not establish that every real transaction is present or that your books agree.
OFX amounts carry their original signs. A card purchase is normally negative and a payment positive from the cardholder's perspective. A suspicious type/sign pairing is flagged, never flipped. Exact integer arithmetic supports up to six decimal places; higher precision is reported rather than rounded. Currency codes are read as labels, not checked against every currency's minor-unit rules.
A scoped reader, not an app validator
This reader handles the banking and card subset of OFX 1.x SGML, whose leaf fields may omit closing tags, and OFX XML with explicit closing tags. QBO and QFX are inspected as OFX-family files, with an INTU.BID presence/shape check when the filename identifies them. It checks required fields and cardinality in the supported statements, dates, amounts, ID collisions, encoding clues and line endings. It does not run the complete OFX schema or verify a financial institution's identity.
QIF Bank and CCard records expose dates, amounts, payees, memos, categories and check numbers. Invst records show their basic fields and raw record, but no investment accounting is performed. Investment amounts, OFX corrections and currency overrides are excluded from totals. Pending OFX blocks and unsupported aggregates are reported, not silently counted as posted transactions. QIF splits are retained as raw details; only a readable parent amount enters totals.
Unknown fields and omitted economic blocks prevent a full-coverage claim. A missing closing balance stays unknown. An incomplete final QIF record or malformed XML fails the read, with no partial transaction download. DTD and entity declarations are rejected; no external entities are resolved. The cap is 5,000,000 bytes, 10,000 transactions and 100 account groups, plus 200,000 QIF lines and bounded OFX element/nesting limits. QIF amounts must be ungrouped with the decimal separator you select.
These checks do not authenticate a statement, detect fraud, create a bank-issued document, certify OFX conformance or guarantee acceptance by QuickBooks, Quicken, YNAB or any other app. No bank login or live destination import is tested. There is no repaired QBO/QFX download and no instruction to substitute another bank's institution ID.
Choose what goes into the download
Your file and the values you enter are processed in this browser tab. They are not uploaded or sent to analytics. We do not save them between visits. Downloads you choose to save remain on your device.
Use Clear to remove the active input and results. This is not a secure memory wipe, and browser Back may restore uncleared state. The source file stays untouched. A masked summary leaves out payees and transaction IDs, hides short account identifiers completely, and exports calendar dates rather than raw date text. Dates and balances can still be sensitive. Detailed CSV requires a separate choice because it includes full account identifiers, descriptions and raw records.
The CSV protects formula-like text with a leading apostrophe and leaves parsed negative amounts numeric. It is a review copy with new quoting and line endings, not a byte-for-byte original or a financial import file. Unsupported records may be absent from the projection, so keep the findings download with it.
Specifications and checks
Sources opened on 18 October 2026: the OFX 2.2 specification (26 November 2017), especially sections 2.8, 3.2 and 11.4; Intuit's connectivity types; and Quicken's QIF import help. The latter two pages showed no update date. The ofx.net download endpoint was unavailable, so the specification was read from Financial Data Exchange.
Intuit's Desktop Web Connect troubleshooting (updated 4 August 2026, opened 18 October 2026) also requires a supported Desktop version and Intuit sign-in. This browser tool cannot check those conditions or the bank's participation, even when the file structure is readable.
Intuit distinguishes file syntax from contracted Web Connect participation. Quicken's current Windows QIF help describes account-type headers and plain-text records. Neither page makes this inspector an authorized or certified importer. Tests use fictional files generated by this repository's Python exporters, independent OFX parsing and exact decimal comparisons; they do not measure live-app acceptance.
If you only have PDFs
First ask the bank for a native OFX or CSV covering the dates you need. If only PDFs remain, AnyStatement can extract reviewable transaction rows. This local inspector cannot read PDFs. 3 pages a day without an account or card. The free allowance is shared per network and resets at midnight UTC. Conversion is a separate upload; this tool does not send its contents there.