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
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.
- Navigate to imports: Go to Settings → Imports or use the import button in the app
- Upload: Drag and drop your file or click to browse
- Configure: Choose the date format, number format, and column assignments
- Select (QIF only): Review the detected date format and choose which categories and tags from your QIF file to import
- Clean: Fix any invalid rows flagged in the table
- Map (when needed): Assign imported accounts, categories, or tags to existing ones in Sure
- 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.
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/YYYYandMM/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
- Use templates: Download CSV templates from the import screen for the correct format
- Check encoding: Ensure your CSV file is UTF-8 encoded
- Validate dates: Make sure dates match your selected format
- Test with small files: Try importing a few rows first to verify the format
- 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 anull 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 aduplicate_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:- Check the troubleshooting guide
- Ask in the Discord
- Open an issue