A powerful, configuration-driven bank statement parser that transforms messy CSV exports into clean, categorized financial data. Automatically detects transfers between accounts and exports structured data perfect for budgeting apps.
- 🏛️ Multi-Bank Support: Wise (multi-currency), NayaPay, Erste Bank, Revolut
- 📊 Smart Processing: Parsing, standardization, categorization, description cleaning
- 🔄 Transfer Detection: Automatically identifies and matches transfers between accounts
- 🔧 Configuration-Driven: Customizable rules via simple
.conffiles - 📈 Clean Export: Structured CSV output optimized for Cashew and other budgeting tools
- 🖥️ Desktop App: Native Electron application with modern React UI
- 🛡️ Privacy First: All processing happens locally on your machine
Download the latest release from GitHub Releases
Linux (AppImage):
chmod +x HisaabFlow.AppImage
./HisaabFlow.AppImagemacOS:
# Download HisaabFlow.dmg and drag to ApplicationsWindows:
# Download HisaabFlow.exe
# Note: You may see a security warning since the app is unsigned
# Click "More info" → "Run anyway" to proceedBuild from Source:
git clone https://github.com/ammar-qazi/HisaabFlow.git
cd HisaabFlow
chmod +x start_app.sh
./start_app.sh| Bank | Currency | Status |
|---|---|---|
| Wise | Multiple | ✅ Full Support |
| NayaPay | PKR | ✅ Full Support |
| Erste Bank | HUF | ✅ Full Support |
| Revolut | Multiple | ✅ Full Support |
| Meezan | PKR | ✅ Full Support |
| Other Banks | Single/Multiple | ✅ Full Support Via Unknown Bank Panel |
Can't parse your bank? Open a ticket and I'll add support for it.
- Upload CSV Files: Drag and drop your bank statement CSVs
- Automatic Detection: HisaabFlow identifies the bank and applies the right configuration
- Smart Processing:
- Parses and standardizes transaction data
- Cleans up messy descriptions
- Categorizes transactions using customizable rules
- Detects transfers between your accounts
- Review & Export: Export clean, unified CSV data ready for budgeting apps
HisaabFlow uses .conf files for flexible, bank-specific processing rules:
App-wide settings (configs/app.conf):
[transfer_detection]
confidence_threshold = 0.7
date_tolerance_hours = 72
user_name = Your Name Here
# Category-based patterns applied to all banks
[Shopping]
Amazon.*
Walmart.*
Target.*
[Transport]
Uber.*
Lyft.*
Shell.*
[Food & Dining]
McDonald's.*
KFC.*
Starbucks.*Bank-specific overrides (e.g., configs/nayapay.conf):
[bank_info]
name = nayapay
currency_primary = PKR
[column_mapping]
date = TIMESTAMP
amount = AMOUNT
title = DESCRIPTION
# Bank-specific patterns override global ones
[Groceries]
SaveMart
D. Watson
Grocery
[Bills & Fees]
Mobile top-up.*
Cloud Storage
[description_cleaning]
# Clean up messy transaction descriptions
mobile_topup = Mobile top-up purchased\|.*Nickname: (.*?)(?:\|.*)?$|Mobile topup for \1Automatically identifies transfers between your accounts using:
- Amount matching with configurable tolerance
- Date proximity analysis
- Description pattern recognition
- User name detection in transaction details
- Global Rules: Define patterns in
app.confthat apply to all banks - Bank-Specific Rules: Override global patterns for specific banks
- Regex Support: Use powerful pattern matching for complex categorization
- Description Cleaning: Transform messy bank descriptions into clean, readable text
- Handles multiple currencies within the same processing session
- Preserves original currency information
- Supports currency-specific formatting rules
Currently optimized for Cashew expense tracker with planned support for:
- Money Lover
- YNAB (You Need A Budget)
- Generic CSV formats
MIT License - see LICENSE file for details.
HisaabFlow - Because your financial data deserves better than manual categorization
