{
  "slug": "qif-ofx-convert",
  "name": "gizza-ai/qif-ofx-convert",
  "version": "0.1.0",
  "title": "QIF & OFX to CSV Converter — Bank Export to Spreadsheet — gizza.ai",
  "description": "Convert QIF, OFX and QFX bank exports to clean normalized CSV in your browser — Date, Amount, Payee, Memo, Category and more. Free, private, no upload.",
  "tags": [
    "qif to csv",
    "ofx to csv",
    "qfx to csv",
    "bank statement to csv",
    "quicken to csv",
    "convert bank export",
    "transactions to csv",
    "budgeting import"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/qif-ofx-convert/",
    "markdown": "https://gizza.ai/tools/qif-ofx-convert/index.md",
    "descriptor": "https://gizza.ai/tools/qif-ofx-convert/tool.json",
    "deep_link_example": "https://gizza.ai/tools/qif-ofx-convert/?data=%3COFX%3E%3CSTMTTRN%3E%3CTRNTYPE%3EDEBIT%3CDTPOSTED%3E20260704%3CTRNAMT%3E-42.50%3CNAME%3ECoffee%20Roasters%3CFITID%3Ec1%3C%2FSTMTTRN%3E%3C%2FOFX%3E&format=auto&date_format=iso&delimiter=comma&invert_amounts=true&drop_empty_columns=true"
  },
  "cli": "gizza tool qif-ofx-convert \"<OFX><STMTTRN><TRNTYPE>DEBIT<DTPOSTED>20260704<TRNAMT>-42.50<NAME>Coffee Roasters<FITID>c1</STMTTRN></OFX>\"",
  "tool": {
    "description": "Convert a QIF (Quicken Interchange Format) or OFX/QFX (Open Financial Exchange, both 1.x SGML and 2.x XML) bank export into a single normalized CSV with columns Date, Amount, Payee, Memo, Category, Check Number, Type, FITID — ready to import into budgeting/spreadsheet apps. format='auto' (default) detects QIF vs OFX; date_format normalizes the Date column to iso/us/eu (or raw); delimiter picks the CSV separator (comma/semicolon/tab/pipe); invert_amounts flips every amount's sign; drop_empty_columns omits columns that are empty across all rows. Paste the file contents in the 'data' field. Runs entirely in-browser; nothing is uploaded.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "description": "The QIF or OFX/QFX bank-export text to convert. Paste the whole file contents (QIF records ending in '^', or OFX <STMTTRN> blocks).",
          "type": "string"
        },
        "date_format": {
          "default": "iso",
          "description": "How the Date column is written. iso=YYYY-MM-DD (default), us=MM/DD/YYYY, eu=DD/MM/YYYY, raw=keep the source date text unchanged. QIF month/day order is auto-detected (US month-first unless the first field exceeds 12).",
          "enum": [
            "iso",
            "us",
            "eu",
            "raw"
          ],
          "type": "string"
        },
        "delimiter": {
          "default": "comma",
          "description": "Output CSV field separator. Default comma. Use semicolon or a comma-decimal locale, tab for TSV, or pipe.",
          "enum": [
            "comma",
            "semicolon",
            "tab",
            "pipe"
          ],
          "type": "string"
        },
        "drop_empty_columns": {
          "default": false,
          "description": "Omit output columns that hold no data across all rows (e.g. Type/FITID for QIF, or Category for OFX). Default false keeps the full fixed 8-column set (Date, Amount, Payee, Memo, Category, Check Number, Type, FITID) so import templates stay stable.",
          "type": "boolean"
        },
        "format": {
          "default": "auto",
          "description": "Input format. 'auto' (default) detects it: an OFX marker (<OFX>, <STMTTRN>, or OFXHEADER) selects OFX, otherwise QIF. 'ofx' also accepts QFX.",
          "enum": [
            "auto",
            "qif",
            "ofx"
          ],
          "type": "string"
        },
        "invert_amounts": {
          "default": false,
          "description": "Flip the sign of every amount — for banks/apps that export debits as positive and credits as negative (or vice-versa). Default false (signs kept as in the source).",
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    }
  }
}