-
Notifications
You must be signed in to change notification settings - Fork 36
Importing Transactions
This guide covers importing transactions from bank-exported CSV files and OFX/QFX files. For migrating from Microsoft Money using QIF files, see Importing from Microsoft Money.
- Overview
- Supported Formats
- Getting Started
- Importing CSV Files
- Importing OFX/QFX Files
- CSV vs OFX/QFX Comparison
- Transfer Detection
- Saved Column Mappings
- Payee Matching During Import
- Tips and Best Practices
- Troubleshooting
Monize can import transactions from files downloaded from your bank or financial institution. This is useful for:
- Regularly importing new transactions from your bank
- Importing historical transactions from a bank statement download
- Consolidating accounts from multiple institutions
The import process uses a step-by-step wizard that guides you through file upload, column mapping (for CSV), account selection, category mapping, and review before committing the import.
| Format | Extension | Description |
|---|---|---|
| CSV | .csv |
Comma-separated values. Flexible format -- requires column mapping. |
| OFX | .ofx |
Open Financial Exchange. Standardized format used by most banks. |
| QFX | .qfx |
Quicken Financial Exchange. Identical to OFX with a Quicken-specific wrapper. |
| QIF | .qif |
Quicken Interchange Format. See Importing from Microsoft Money. |
Navigate to Tools > Import Transactions to open the import wizard.
You can also start an import from a specific account page -- click the account's menu and select Import Transactions. This pre-selects the account as the import destination.
CSV is the most flexible import format. Because CSV files have no standard column layout, you must tell Monize which columns contain the date, amount, payee, and other fields.
- Click the upload area or drag your CSV file(s) onto it
- Monize reads the file and extracts the column headers and sample rows
- You can select multiple CSV files for bulk import
File Format: Monize auto-detects the delimiter (comma, semicolon, or tab) and whether the first row is a header. You can override both settings in the next step.
This step is unique to CSV imports. You configure how Monize interprets your CSV columns.

At the top of the mapping step, an options bar lets you configure:
| Option | Description |
|---|---|
| First row is header | Checkbox. When checked, the first row is treated as column headers and excluded from import. |
| Delimiter | Dropdown: Comma (,), Semicolon (;), or Tab. Changing the delimiter re-parses the file. |
| Date format | Dropdown with common formats plus a Custom option. Auto-detected from sample data. |
| Format | Example | Notes |
|---|---|---|
| MM/DD/YYYY | 03/15/2026 | US format (default if ambiguous) |
| DD/MM/YYYY | 15/03/2026 | International format |
| YYYY-MM-DD | 2026-03-15 | ISO format |
| YYYY-DD-MM | 2026-15-03 | Alternate ISO |
| Custom | DD.MM.YYYY | Enter any pattern using YYYY/YY, MM, DD tokens with any separator (-, /, .) |
Monize auto-detects the date format from sample data. If dates appear wrong, select the correct format from the dropdown or enter a custom pattern.
A table shows the first 5 rows of your CSV file with column headers. Use this to verify the delimiter and header settings are correct, and to identify which columns contain which data.
Map your CSV columns to transaction fields using dropdowns. Each dropdown lists the columns found in your file.
| Field | Required | Description |
|---|---|---|
| Date | Yes | The transaction date column |
| Amount | Yes (if single) | A single column containing the transaction amount |
| Debit | Yes (if split) | The withdrawal/debit column |
| Credit | Yes (if split) | The deposit/credit column |
| Payee | No | The payee or description column |
| Category | No | A category column (if your bank provides one) |
| Memo | No | Additional notes or description |
| Reference Number | No | Cheque number or reference ID |
Select the amount type based on how your CSV represents transaction amounts:
Single amount column -- One column with positive values for deposits and negative values for withdrawals (or vice versa). This is the most common format.
- Sign option: Choose "As-is (positive = deposit)" or "Reverse (positive = withdrawal)". Use Reverse for credit card statements where charges appear as positive numbers.
Separate debit/credit -- Two columns: one for withdrawals (debit) and one for deposits (credit). Common in some bank exports.
Amount Parsing: Monize handles currency symbols ($, EUR, etc.), thousands separators (commas), and parenthesized negatives -- e.g.,
($50.00)is treated as-$50.00.
See Transfer Detection below for details on configuring rules that automatically identify transfer transactions in your CSV data.
See Saved Column Mappings below for details on saving and reusing your column mapping configuration.
Choose which Monize account the transactions should be imported into.
- Select from the "Import into account" dropdown
- Or click "+ Create new account" to create a new account inline
Auto-Matching: If you navigated to the import page from a specific account, that account is pre-selected.
If your CSV file has a category column, Monize extracts the unique category values and asks you to map them to existing Monize categories or create new ones.
Categories are displayed in groups:
- Needs Attention (amber) -- Categories that could not be auto-matched
- Auto-Matched (green, collapsed) -- Categories that matched existing Monize categories
For each category, you can:
- Map to existing -- Select an existing Monize category
- Create new -- Enter a new category name, optionally under a parent category
- Skip -- Leave unmapped; transactions import without a category
No Category Column? If you did not map a category column, this step is skipped. Payee default categories are still applied automatically during import (see Payee Matching During Import).
If transfer detection rules matched any transactions (see Transfer Detection), you need to map the target account names to existing Monize accounts or create new ones.
The review step shows a summary of the import:
- File name and transaction count
- Target account
- Categories, accounts, and payees to be created
Click "Import Transactions" to execute the import. The operation runs inside a database transaction -- if an error occurs, all changes are rolled back.
After a successful import, you see:
| Metric | Description |
|---|---|
| Imported | Transactions successfully imported |
| Skipped | Duplicate transactions skipped |
| Errors | Transactions that failed (with error details) |
| Categories created | New categories added |
| Accounts created | New accounts added |
| Payees created | New payees added |
Click "View Transactions" to see your imported data, or "Import More Files" to continue importing.
OFX (Open Financial Exchange) and QFX (Quicken Financial Exchange) are standardized file formats that banks use to provide transaction downloads. Unlike CSV, these formats have a defined structure -- no column mapping is needed.
Most banks offer OFX or QFX downloads from their online banking portals, typically under a "Download transactions" or "Export" option.
| Aspect | CSV | OFX/QFX |
|---|---|---|
| Column mapping | Required | Not needed (fixed format) |
| Date format | User-selected or auto-detected | Automatic (embedded in file) |
| Payee | From mapped column | From NAME field in file |
| Memo | From mapped column | From MEMO field (if different from NAME) |
| Category | From mapped column (optional) | Not provided -- mapped during import or via payee defaults |
| Cleared status | Not provided | All transactions marked as cleared (posted) |
| Transfer detection | Via user-defined rules | Automatic for XFER transaction types |
| Amount handling | User configures sign and column | Automatic (signed amounts in file) |
| Reference number | From mapped column (optional) | From CHECKNUM field |
The OFX/QFX import follows the same wizard but skips the column mapping step:
-
Upload -- Select your
.ofxor.qfxfile(s) - Select Account -- Choose the destination account
- Map Categories -- Map any categories found (OFX files rarely include categories)
- Map Transfer Accounts -- Map accounts for transfer transactions
- Review and Import -- Confirm and execute
- Complete -- View results
| Statement Type | Description |
|---|---|
| BANKMSGSRSV1 | Chequing and savings accounts |
| CREDITCARDMSGSRSV1 | Credit card accounts |
Note: Investment statements (INVSTMTMSGSRSV1) are not supported in OFX format. Use QIF for investment account imports.
Monize recognizes the following OFX transaction types:
| OFX Type | Handling |
|---|---|
| DEBIT | Standard withdrawal |
| CREDIT | Standard deposit |
| CHECK | Cheque transaction |
| DEP | Deposit |
| ATM | ATM withdrawal/deposit |
| POS | Point-of-sale transaction |
| XFER | Transfer (see OFX Transfer Detection) |
| INT | Interest |
| DIV | Dividend |
| FEE | Fee |
| SRVCHG | Service charge |
| PAYMENT | Payment |
| OTHER | Other transaction |
| Feature | CSV | OFX/QFX |
|---|---|---|
| Ease of setup | Requires column mapping | No mapping needed |
| Flexibility | Works with any CSV layout | Fixed format |
| Date format | Must be specified | Automatic |
| Amount sign | Configurable (normal or reverse) | Automatic |
| Categories | Can map from file column | Not in file -- use payee defaults |
| Transfer detection | Rule-based (user configures) | Automatic for XFER type |
| Saved presets | Yes (saved column mappings) | Not needed |
| Cleared status | Not set | Always cleared |
| Best for | Banks with non-standard exports, custom data | Standard bank downloads |
Since CSV files have no standard way to indicate transfers, Monize lets you define rules that identify transfer transactions based on patterns in the payee or category fields.

Each rule has three parts:
| Part | Description |
|---|---|
| Field | Which column to match: Payee or Category |
| Pattern | Text to search for (case-insensitive, "contains" matching) |
| Target Account | The Monize account the transfer goes to |
| Field | Pattern | Target Account | Matches |
|---|---|---|---|
| Payee | Transfer to Savings | Savings | "Transfer to Savings - Jan" |
| Payee | INTERAC e-Transfer | Chequing | "INTERAC e-Transfer JOHN DOE" |
| Category | Transfer | Savings | Any transaction where category contains "Transfer" |
When a rule matches, the transaction is:
- Marked as a transfer
- Linked to the target account
- Category is cleared (transfers do not have categories)
Rules are evaluated in order. The first matching rule wins.
Tip: Transfer rules are saved along with your column mapping preset, so you only need to configure them once per bank format.
OFX files include a transaction type field. Transactions with type XFER are automatically treated as transfers. The payee name (NAME field) is used as the transfer account name, which you map during the import wizard.
If you regularly import CSV files from the same bank, you can save your column mapping configuration as a named preset to avoid re-mapping each time.
- Configure your column mapping, date format, delimiter, and transfer rules
- Click "Save Current" in the Saved Mappings section
- Enter a descriptive name (e.g., "TD Chequing CSV", "Visa Statement")
- Click Save
If a mapping with the same name already exists, it is overwritten (an "Will overwrite" warning appears).
- Select a saved mapping from the "Load a saved mapping..." dropdown
- All settings are restored: column assignments, delimiter, date format, header toggle, and transfer rules
Click the x button next to any saved mapping name to delete it.
Saved mappings include transfer rules. When you save a column mapping preset, the transfer detection rules are saved with it.
During import, Monize automatically resolves payee names using the following process:
- Exact match -- If a payee with the same name already exists, the transaction is assigned to it
- Alias match -- If a payee alias pattern matches the imported name (see Payee Aliases), the transaction is assigned to the canonical payee
- Create new -- If no match is found, a new payee is created
When a payee is matched (by name or alias), its default category is applied to the transaction -- unless the transaction already has a category from the import file.
Payee name cleanup: All-caps payee names from bank files are automatically converted to Proper Case (e.g., "STARBUCKS" becomes "Starbucks").
This matching process is identical for CSV, OFX/QFX, and QIF imports. To make the most of it, set up payee aliases before your first import (see Payee Aliases).
- Create your accounts in Monize first, so they are available as import destinations
- Set up payee aliases for common payees that appear with varying names in bank files (e.g., "STARBUCKS #1234" vs "STARBUCKS #5678")
- Set default categories on payees to automate categorization during import
- Save a column mapping the first time you import from a bank -- it saves time on future imports
- Set up transfer rules if your bank includes inter-account transfers in the CSV
- Use the "Reverse sign" option for credit card statements where charges are positive numbers
- Import all files for the same period at once for better transfer matching
- After import, review uncategorized transactions (Reports > Uncategorized Transactions)
- Use the Recalculate button on the Net Worth report after large imports to update balance snapshots
Cause: The date format was auto-detected incorrectly.
Solution: Change the date format in the options bar (for CSV) or the date format dropdown (for OFX). Monize defaults to MM/DD/YYYY when dates are ambiguous (e.g., both parts are 12 or less).
Cause: Your bank exports withdrawals as positive numbers (common for credit card statements).
Solution: In the CSV column mapping step, change the Sign option to "Reverse (positive = withdrawal)".
Cause: The delimiter was auto-detected incorrectly (e.g., a semicolon-delimited file detected as comma).
Solution: Change the delimiter in the options bar and the file will be re-parsed.
Cause: Importing the same file twice, or overlapping date ranges between imports.
Solution: Monize does not automatically detect duplicates in CSV/OFX imports (unlike QIF transfers). Use the Duplicate Transaction Finder report to identify and remove duplicates.
Cause (CSV): No transfer rule matched the transaction, or the rule pattern did not match.
Solution: Check your transfer rules. Matching is case-insensitive "contains" -- the pattern must appear somewhere in the payee or category text.
Cause (OFX): The transaction type was not XFER.
Solution: Manually edit the transaction and convert it to a transfer.
Cause: The file may use an unsupported OFX statement type (e.g., investment statements).
Solution: Try exporting as CSV from your bank instead, or use QIF format for investment accounts.
Cause: Very large files or files with thousands of transactions.
Solution: The import has a 5-minute timeout. If the file is too large, try splitting it into smaller date ranges.