firefly-iii-importer
Overview
The Firefly III Importer is a tool designed to automate the process of importing banking transactions from banks into Firefly III, a self-hosted personal finance manager.
Supported Banks
PrivatBank (next.privat24.ua)
- Protocol: Telegram Notifications
- Supported Transaction Types:
- Income
- Withdrawal
- Transfer
- Duplicate cleaner
Paribas (goonline.bnpparibas.pl)
- Protocol: XLSX (statements export)
- Supported Transaction Types:
- Income
- Withdrawal
- Transfer
- Duplicate cleaner
MonoBank (monobank.ua)
- Protocol: CSV
- Supported Transaction Types:
- Income
- Withdrawal
- Transfer
- Duplicate cleaner
Revolut (revolut.com)
- Protocol: CSV
- Supported Transaction Types:
- Income
- Withdrawal
- Transfer
- Duplicate cleaner
Server deployment
- cd cmd/server && go build -o server
- deploy to your environment
- Setup environment variables
export CHAT_MAP = {"<telegram_chat_id>" : "privatbank", "<telegram_chat_id_2>" : "paribas"}
export COSMO_DB_CONNECTION_STRING = "AccountEndpoint=..."
export COSMO_DB_NAME = "firefly-importer"
export FIREFLY_URL = "https://firefly.example.com"
export FIREFLY_TOKEN= "your_firefly_token"
export TELEGRAM_BOT_TOKEN = "your_telegram_bot_token"
export FIREFLY_ADDITIONAL_HEADERS = {"header1" : "val1", "header2" : "val2"}
- Set telegram webhook url to your host (endpoint /api/github/webhook)
Bot Usage
To use the Firefly III Importer, you need to set up a Telegram bot and connect it to your group.
For PrivateBank
Forward Privat notifications to Importer group.
Default Bot Commands
/commit - Commit all pending transactions to Firefly III. This command processes and imports all pending transactions.
/stat - Display the current status of the importer. This command shows the number of pending transactions.
/errors - Display the current errors. This command shows the number of errors that occurred during the import process.
/duplicates - Display the current duplicates. This command shows the number of duplicate transactions that were detected.
/clear - Clear all pending transactions. Use this command to remove any messages that you do not want to import.