Import methods
CSV import
Import from bank exports and other applications
Data Importer
Official tool for bank connections and automated imports
API import
Programmatic import via REST API
Migration tools
Migrate from other financial apps
CSV import
The built-in CSV importer allows you to import transactions from CSV files exported by your bank or other financial software.Preparing your CSV file
Ensure your CSV file:- Has headers in the first row
- Uses consistent date format
- Includes at minimum: date, description, amount
- Uses UTF-8 encoding
Import process
Configure columns
Map CSV columns to Firefly III fields:
- Date
- Description
- Amount (or separate debit/credit columns)
- Account information
- Optional: category, budget, tags
Set import options
Configure:
- Date format
- Decimal separator
- Thousands separator
- Account to import into
- Duplicate detection
Column mapping
Common CSV column mappings:| CSV Column | Firefly III Field | Required |
|---|---|---|
| Date | Transaction date | Yes |
| Description | Description | Yes |
| Amount | Amount | Yes |
| Account | Source/Destination | Recommended |
| Category | Category | Optional |
| Notes | Notes | Optional |
| Reference | External ID | Optional |
Save column mappings for reuse with future imports from the same source
Duplicate detection
Firefly III can detect duplicate transactions based on:- Date and amount: Match on same date and amount
- Description: Include description in matching
- External ID: Match by unique transaction ID
Firefly III Data Importer
The official Data Importer is a separate application that provides advanced import capabilities.Features
- Bank connections: Direct connection to banks via Nordigen or Salt Edge
- Automated imports: Schedule regular imports
- Advanced mapping: Sophisticated field mapping and transformation
- Rule application: Apply rules during import
- CSV support: Enhanced CSV import with configurations
Installation
- Docker
- Self-hosted
Bank connections
Connect to banks using:Nordigen (European banks)
Nordigen (European banks)
Free service for European bank connections:
- Register at Nordigen
- Get API credentials
- Configure in Data Importer
- Authorize bank connection
- Import transactions automatically
Salt Edge (Global banks)
Salt Edge (Global banks)
Paid service for worldwide bank connections:
- Register at Salt Edge
- Get API credentials
- Configure in Data Importer
- Connect to your banks
- Schedule automated imports
Plaid (US/Canada)
Plaid (US/Canada)
Currently requires third-party bridge tools:
- Use community-built connectors
- Consider using CSV export from Plaid
- API integration possible with custom development
Automated imports
Set up scheduled imports:- Run daily at 2 AM
- Import from all configured connections
- Apply rules automatically
- Skip detected duplicates
Automated imports require the Data Importer to have valid bank connection tokens
API import
For custom integrations, use the Firefly III API:Best practices for API import
Use external IDs
Use external IDs
Always include
external_id to enable duplicate detection and prevent reimporting the same transactions.Apply rules
Apply rules
Set
apply_rules: true to automatically categorize and process imported transactions.Batch imports
Batch imports
Import multiple transactions in a single request for better performance. Maximum 100 transactions per request.
Error handling
Error handling
Check API responses for errors and implement retry logic for failed imports.
Migration tools
Migrate from other financial management applications:From YNAB
Use the YNAB to Firefly III converter:From GnuCash
Export from GnuCash as CSV:- In GnuCash: File > Export > Export Transactions to CSV
- Import CSV into Firefly III using CSV importer
- Map accounts and categories manually
From Mint
- Export all transactions from Mint as CSV
- Prepare CSV file (Mint format is well-supported)
- Use CSV importer in Firefly III
- Map Mint categories to Firefly III categories
From other Firefly III instance
Import configuration
Rules during import
Apply rules automatically:- Create rules for import processing
- Group rules in “Import” rule group
- Set rule group to run on import
- Enable “Apply rules” during import
Account mapping
For imports with multiple accounts:- Use IBAN/Account numbers: Map by account identifier when available
- Create accounts automatically: Let Firefly III create missing accounts
- Manual mapping: Specify source and destination accounts explicitly
Currency handling
When importing multi-currency transactions:- Ensure currency codes in CSV match Firefly III currency codes
- Enable the required currencies before import
- Set up exchange rates for accurate conversion
Troubleshooting
Import fails with date errors
Import fails with date errors
Problem: Date format not recognizedSolutions:
- Check date format matches configuration
- Common formats:
Y-m-d,d/m/Y,m/d/Y - Ensure consistent date format throughout CSV
- Try different date format settings
Duplicate transactions
Duplicate transactions
Problem: Same transactions imported multiple timesSolutions:
- Enable duplicate detection
- Use external IDs from bank
- Check date/amount matching threshold
- Review and remove duplicates manually if needed
Missing accounts
Missing accounts
Problem: Accounts not created or mapped correctlySolutions:
- Enable automatic account creation
- Create accounts manually before import
- Check account name matching is working
- Verify account types are correct
Bank connection fails
Bank connection fails
Problem: Can’t connect to bank via Data ImporterSolutions:
- Verify API credentials are correct
- Check bank is supported by provider
- Reauthorize bank connection
- Check Data Importer logs for errors
- Ensure 2FA/authorization is completed
Best practices
Start with small imports
Start with small imports
Test import process with a small CSV file (10-20 transactions) before importing years of data.
Backup before importing
Backup before importing
Always backup your database before large imports in case you need to rollback.
Review after import
Review after import
Check imported transactions for:
- Correct accounts
- Proper categorization
- Accurate amounts
- No duplicates
Save import configurations
Save import configurations
Save column mappings and settings for recurring imports from the same source.
Use external IDs
Use external IDs
Always use bank transaction IDs as external IDs for reliable duplicate detection.
Related documentation
Rules
Process imported transactions automatically
Transactions
Understand transaction structure
API
Programmatic transaction import
Data export
Export your Firefly III data