Skip to content

Create a QIF file

CSV to QIF converter

Create a simple QIF register from a bank or card CSV, with the date format and text encoding you choose. Runs in your browser.

This tool processes your file and entries in this browser tab, without uploading or saving them.

Turn one account's CSV into QIF

UTF-8 .csv or .txt, up to 5 MB. File contents never leave this tool.

UTF-8 CSV input only, up to 5 MB and 10,000 data rows. Load example uses four fictional USD bank transactions and preselects their settings.

Try your app's native CSV import first: Quicken Classic for Windows CSV preparation or GnuCash's CSV assistant. Use this converter when you specifically need a simple QIF file.

Privacy and clearing your input

This tool does not send your file contents to a server or save them in browser storage. Use Clear or reload to clear the active input. Navigating away and Back may restore uncleared contents. Download and print actions, where offered, create copies only when you choose them. Your browser manages temporary memory and any separate print window. The PDF converter has its own upload workflow.

File read: No complete CSV read available.

Format checks: Not ready. Resolve the choices or findings below.

Transformation: No QIF file created; no partial export.

This checks the generated file against your mapped rows, not statement completeness or balances. Not tested in live Quicken, GnuCash, YNAB or Actual. Back up your destination data and try a small sample before a full import. Re-importing may create duplicates.

  • Choose a CSV or load the fictional example.

The QIF contains your payees, memos and references. The JSON report excludes their values and account labels but includes row numbers, findings and the total; review it before sharing. Neither download overwrites your source.

Create a simple bank or credit-card QIF register from a CSV, with the date format and text encoding you choose. Preview the rows and download a new file. Free, no signup, and processed in this browser tab.

Opens a blank tool; your data is not included

By AnyStatement

Published , 6 min read

Contents
  1. You may not need a converter
  2. Map what each row means before changing its format
  3. Two settings the QIF file cannot explain for you
  4. Keep text from becoming QIF instructions
  5. Four fictional transactions, not an invented balance
  6. Quicken's help pages disagree about QIF account support
  7. A new local file, with a report of what changed
  8. Sources and the checks behind this writer
  9. If your history only exists in PDFs

You may not need a converter

Quicken Classic for Windows has a native CSV transaction import, and GnuCash has a CSV import assistant. Try those when you already have a CSV. Our Quicken CSV formatter helps arrange that application's required columns without creating a QIF file.

If your workflow specifically calls for QIF, this tool writes one !Type:Bank or !Type:CCard register. It does not make a QFX Web Connect file, identify a financial institution, unlock a subscription or bypass an importer restriction.

Map what each row means before changing its format

Use a UTF-8 CSV containing one account and one currency. Map the date, payee and either one signed amount or separate debit and credit columns. Description becomes the QIF payee field. Memo, check/reference and a simple category are optional. Check numbers stay text, so 0012 does not become 12.

QIF output uses holder-perspective signs for both register types: a bank deposit is positive and a withdrawal is negative; a card purchase is negative and a payment or refund is positive. A card statement may print the opposite convention. Choose what your source means after checking a known purchase and payment. The register-type choice does not silently reverse your amounts.

Every amount is handled as an exact integer number of hundredths. More than two decimal places are rejected rather than rounded. Blank amounts are not zero. A separate debit/credit layout must have only one filled side per row; a literal zero still counts as filled. CR/DR suffixes are rejected because their meaning needs a source correction here.

The preview retains the original CSV records. Invalid dates, malformed amounts, repeated headers and subtotal-like rows block the whole export. Identical transactions and repeated references are flagged but retained: two equal purchases can be real, and QIF reference numbers are not OFX transaction IDs.

Two settings the QIF file cannot explain for you

Choose MM/DD/YYYY or DD/MM/YYYY for output independently of your CSV's date order. QIF has no date-format flag, so a receiving app can interpret an ambiguous date differently. The GnuCash v5 QIF assistant explicitly asks for m-d-y or d-m-y. Match that setting to this export and check at least one date before accepting the import.

Choose UTF-8 to preserve Unicode text or Windows-1252 for a destination that expects that encoding. The file uses CRLF line endings without a byte-order mark or encoding declaration. Quicken's QIF help describes ASCII files; it does not promise universal Unicode handling. These encoding choices are supported by this writer, not a claim that every importer accepts both.

Windows-1252 represents accents such as é and the euro symbol, but not every script or symbol. If a character cannot be represented, download is blocked and the finding names the source line, field and Unicode code point. Choose UTF-8 only if your destination supports it, or edit a copy of the source deliberately. The tool never replaces a character with a question mark or transliterates it without telling you.

Keep text from becoming QIF instructions

Each QIF field occupies its own line and each transaction ends with a caret. Embedded newlines, control characters and text beginning with ! or ^ are therefore rejected, not stripped. Correct that source cell before exporting. Spreadsheet-formula protection is not applied: a payee beginning with =, +, - or @ is ordinary QIF text after its field prefix, not a spreadsheet cell. This is a financial text file, not a spreadsheet-safe CSV.

The category field has special transfer and class meanings in the archived Intuit QIF reference. This narrow writer rejects square brackets, slashes and colons in mapped categories rather than creating transfers, classes or subcategories accidentally. You can deliberately omit mapped categories instead; every nonblank category omitted appears in the conversion report.

Split allocations are not supported, even when a split looks simple. Do not turn each child allocation into a second bank transaction. A nonempty split-labelled column blocks export, and you must confirm that the remaining rows are unsplit posted transactions. The tool cannot reliably infer splits or pending status from arbitrary column names. Investments, account-list migrations, attachments, cleared status and currency conversion are outside this tool.

Four fictional transactions, not an invented balance

Load example contains a deposit of 1,250.00, expenses of 42.50 and 157.35, and a refund of 19.99 USD. Its signed total is 1,250.00 - 42.50 - 157.35 + 19.99 = 1,070.14. The QIF contains exactly four records. The supplies check/reference remains 0012.

If the independently known opening balance were 1,000.00, those movements would imply 2,070.14. That contextual balance is not a fifth transaction and this tool does not write it into QIF. A correct total alone does not establish that all statement rows are present or that the chosen signs match the account.

The local reader parses the generated bytes using your selected date order and encoding, then compares every date, amount, payee, memo, check/reference, category and record count to the mapped rows. This is a round-trip data check, not a live-app import or a bank-balance reconciliation.

Quicken's help pages disagree about QIF account support

Facts checked on 18 October 2026. Quicken's current detailed Windows page, Importing data from a QIF file, says any account type can now be imported and says older versions lacked that capability. It advises backing up first and reviewing the imported register.

Its separate general Windows import article, displaying an update date of June 5, 2026, still says QIF import is unavailable for checking, savings, credit-card and brokerage accounts. We reopened both pages and found that conflict; we have not resolved it through an application test. Check the options in your exact Quicken edition and version instead of treating this converter as a universal workaround. Windows guidance does not establish Mac support.

Not tested in live Quicken, GnuCash, YNAB or Actual. There is no compatibility certification. Back up your destination file, try a small sample and inspect the dates, account, currency, signs and categories before accepting a larger import. Repeated QIF imports are not promised safe from duplicates.

A new local file, with a report of what changed

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.

Clear removes the active input and resets the settings. It is not a secure memory wipe; Back navigation can restore uncleared state. Downloads are new files and do not modify the original. The input limit is 5,000,000 bytes and 10,000 data records. XLSX, PDF and UTF-16 input files are not supported.

The QIF contains the mapped transaction details. Account labels and currency are checked for consistency but are not encoded in this simple register, so select them in the receiving app. Unmapped columns are listed before export. The separate JSON report records date/encoding choices, sign transformations, omitted column numbers, category omissions and findings. It excludes account labels and payee/memo/reference values, although its totals and row counts may still be sensitive.

Sources and the checks behind this writer

We reopened the linked Quicken QIF and CSV help, GnuCash v5 import manual and W3C-hosted archive of Intuit's QIF reference on October 18, 2026. The archived format reference is historical, carrying a 1997 copyright; it defines the record structure, not current product eligibility. The detailed Quicken QIF and GnuCash pages did not display a publication date.

The writer's tests compare bank and card bytes with fixtures generated by this repository's Python QIF exporter. A separately written test reader checks the fields, and Python Decimal recomputes fixture and example totals. Tests also cover date orders, encoding losses, exact amounts, duplicate retention, control text and incomplete records. Python's lossy text replacement is deliberately not copied: unsupported Windows-1252 characters block this browser export.

If your history only exists in PDFs

First ask the bank for a native CSV or QIF export covering the dates you need. If only PDFs remain, AnyStatement can turn them into reviewable transaction data in a separate upload workflow. Check the extracted rows against the statement before making an import file. 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.