Qif File — Format

(from Checking to Savings):

!Type:Bank D02/01/2024 T-500.00 PTransfer to Savings L[Savings] ^ In the account file, the reverse: qif file format

read line if line starts with "!Type:" -> set current type else if line == "^" -> save current record and reset else: first char = field code value = line[1:] add field to current record | Software | Import | Export | |----------|--------|--------| | Quicken (modern) | Yes (legacy) | Yes | | GnuCash | Yes | Yes | | MoneyDance | Yes | Yes | | KMyMoney | Yes | Yes | | Excel (via text import) | Manual | Yes | | QuickBooks | No | No (uses IIF or QBO) | Note: Quicken 2016+ prefers QXF or QDF. Use QIF only for basic transactions. 11. Common Errors & Fixes | Error | Likely cause | Fix | |-------|--------------|-----| | "Unsupported file type" | Missing !Type: header or wrong type | Add correct header at line 1 | | "Transaction not imported" | Missing date ( D ) or amount ( T ) | Ensure every record has at least D+T | | "Split total mismatch" | Sum of $ fields ≠ total T | Adjust splits or total | | "Category not found" | Category doesn't exist in destination file | Import categories first ( !Type:Cat ) | 12. Alternatives | Format | Pros | Cons | |--------|------|------| | QFX (OFX) | Supports multiple currencies, account hierarchy, banking automation | Binary-ish, harder to hand-edit | | CSV | Universal, simple | No standard structure, loss of split/payee details | | JSON/XML | Structured, modern | Not natively supported by Quicken | If you need a specific parser or validator for QIF files (e.g., Python, JavaScript, or Excel macro), let me know and I can provide a tailored code example. (from Checking to Savings):

with open("output.qif", "w") as f: f.write("!Type:Bank\n") f.write("D04/14/2026\n") f.write("T-25.00\n") f.write("PCoffee Shop\n") f.write("LFood:Dining\n") f.write("^\n") (pseudo): Common Errors & Fixes | Error | Likely

D01/10/2024 T-150.00 PAmazon L[CreditCard] ← optional main category (if any) SFood ← split 1 category $80.00 SBooks ← split 2 category $70.00 ^ Splits must sum to the total T amount. Use brackets [AccountName] in the L field.