Skip to main content

CSV imports

Sure supports importing financial data from CSV files, making it easy to migrate from other financial apps or add bulk data.

Supported import types

You can import the following types of data via CSV:
  • Accounts: Create multiple accounts with opening balances
  • Actual Budget transactions: Import transaction history exported from Actual Budget
  • Mint transactions: Import transaction history exported from Mint
  • Merchants: Create merchant records in bulk
  • Transactions: Import transaction history
  • Trades: Import investment trades
  • Categories: Set up your category structure
  • Rules: Import transaction rules

Importing accounts

Account imports let you quickly set up multiple accounts with their opening balances.

CSV format

Your CSV file should include these columns:

Example CSV

Balance date column

The optional Balance Date column lets you specify when the opening balance should be recorded. This is useful when:
  • Migrating historical data from another app
  • Setting up accounts with balances from a specific date
  • Maintaining accurate historical balance tracking
If you don’t provide a balance date, Sure will use the current date for the opening balance.
The date format should match your import settings. Common formats include MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD, and DD/MM/YY. The DD/MM/YY format (two-digit year) is available for CSV imports only. Two-digit years are interpreted as 1969–2068, so verify the parsed preview before confirming the import.

Supported account types

  • Checking
  • Savings
  • Credit Card
  • Investment
  • Loan
  • Property
  • Vehicle
  • Crypto
  • Other Asset
  • Other Liability

Importing transactions

Transaction imports let you add historical transaction data to your accounts.

CSV format

Your CSV file should include these columns:

Example CSV

Import process

The import wizard shows a step indicator at the top of the page. Step labels display in your configured language (set under Settings → Preferences → Language). On mobile, the indicator shows a “Step X of Y” progress count instead. The steps vary by import type: The Map step only appears when your data requires column or account mapping; it is skipped automatically when no mapping is needed.
  1. Navigate to imports: Go to Settings → Imports or use the import button in the app
  2. Upload: Drag and drop your file or click to browse
  3. Configure: Choose the date format, number format, and column assignments
  4. Select (QIF only): Review the detected date format and choose which categories and tags from your QIF file to import
  5. Clean: Fix any invalid rows flagged in the table
  6. Map (when needed): Assign imported accounts, categories, or tags to existing ones in Sure
  7. Confirm: Review the import summary and publish

QIF imports

QIF (Quicken Interchange Format) files are exported from Quicken and similar personal finance apps. Sure parses the QIF format directly — no column mapping is needed.

Supported QIF account types

Split transactions

QIF files can contain split transactions — single entries that are broken into multiple line items with individual categories, amounts, and notes. When your file contains splits, Sure imports each split line as a child entry under the parent transaction, preserving the original breakdown. Split categories are shown separately on the Select step so you can choose which ones to include. If the split amounts do not sum to the parent total, Sure skips the split lines and imports the transaction as a single entry.

Multi-account QIF files

A QIF file exported from Quicken can contain multiple accounts in a single file (identified by !Account sections). When Sure detects account metadata in the file:
  • Each account in the QIF file is matched to an existing Sure account by name, or created automatically if no match is found.
  • Opening balances declared in the file are applied to the corresponding accounts.
  • You do not need to assign a single target account before publishing — Sure routes each transaction to the correct account automatically.
When the QIF file does not contain account metadata, you must select a target account before publishing, as with a standard single-account import.

Date format detection

Sure automatically detects the date format used in your QIF file by sampling the D-fields and selecting the best match. You can review and change the detected format on the Select step before proceeding. The default fallback is MM/DD/YYYY (US convention). QIF files support several date styles including:
  • MM/DD/YYYY and MM/DD/YY (Quicken US)
  • DD.MM.YYYY (European dot-separated)
  • DD-MM-YYYY (dash-separated)
  • DD MMM YYYY (e.g. 26 Jan 2026, Amex-style)

Investment transactions

QIF !Type:Invst sections are imported as investment activity. Trade actions (Buy, Sell, Cover, ShtSell, ReinvDiv) create Trade records. Non-trade actions (Div, IntInc, CGLong, CGShort, XIn, XOut, MiscInc, MiscExp) create Transaction records with appropriate labels. Securities are resolved by matching the QIF security name to the ticker defined in the file’s !Type:Security sections.

Tips for successful imports

  1. Use templates: Download CSV templates from the import screen for the correct format
  2. Check encoding: Ensure your CSV file is UTF-8 encoded
  3. Validate dates: Make sure dates match your selected format
  4. Test with small files: Try importing a few rows first to verify the format
  5. Clean your data: Remove any extra columns or formatting before importing

Troubleshooting

Import fails with date errors

Check that your date format matches the setting you selected during import. The Balance Date column in account imports must use the same format as other date fields. Sure supports the following date formats for CSV imports:
The DD/MM/YY format is available for CSV imports only. Because two-digit years are ambiguous (Sure interprets them as 1969–2068), this format is not available as a global date preference. Always verify the parsed preview against your CSV data before confirming the import.

Accounts not found

When importing transactions, ensure the account names in your CSV exactly match existing account names in Sure.

Duplicate transactions

Sure will import all rows from your CSV. Review your data before importing to avoid duplicates.

Sure NDJSON import fails with a null rule name

Rules exported from Sure may have a null name field, which is valid. If a full all.ndjson export fails preflight with an error about a missing rule name, ensure you are using a current version of Sure — older versions incorrectly required the name field to be present.

Sure NDJSON import fails with a missing reference on rejected transfers

If your export contains rejected transfers whose original transactions were later deleted, Sure will skip those orphaned rows and report them as warnings rather than blocking the import. Check the preflight warnings in the import response for details on any skipped records. Preflight missing-reference error and warning messages are displayed in your configured interface language (set under Settings → Preferences → Language).

Sure NDJSON import fails with a duplicate category or tag name

Category and tag names must be unique within a family. If your NDJSON file contains two or more Category (or Tag) records with the same name, preflight will reject the import with a duplicate_taxonomy_name error. Remove or rename the duplicate entries in your export file before retrying. If the duplicate names already exist in your Sure database from before this constraint was enforced, Sure automatically merges them during the upgrade migration. The oldest record (by creation date) is kept, and all references — transactions, rules, budget lines, and import mappings — are updated to point to the surviving record.

Limits

  • Account imports: Maximum 50 accounts per import
  • Transactions: Maximum 10,000 rows per import
  • Actual Budget imports: Maximum 10,000 rows per import
  • Mint imports: Maximum 10,000 rows per import
  • Trade imports: Maximum 10,000 rows per import
  • Category imports: Maximum 10,000 rows per import
  • Rule imports: Maximum 10,000 rows per import
  • Merchant imports: Maximum 10,000 rows per import
  • CSV file size: Maximum 10 MB per import
If a CSV import fails during upload or publish, check both the row count and the file size. An import can be under the row limit and still fail if the CSV file is larger than 10 MB.

Getting help

If you encounter issues with CSV imports: