This project provides an importer from Israeli banks (via israeli-bank-scrapers) into Actual Budget.
-
Multi Bank Support: Supports all of the institutions that the israeli-bank-scrapers library covers (Bank Hapoalim, Cal, Leumi, Discount, etc.).
-
Prevents duplicate transactions using Actual’s
imported_id
logic. -
Automatic Account Creation: If the bank account does not exist in Actual, it will be created automatically.
-
Reconciliation: Optional reconciliation to adjust account balances automatically.
-
Concurrent Processing: Uses a queue (via p-queue) to manage scraping tasks concurrently.
https://hub.docker.com/r/tomerh2001/israeli-banks-actual-budget-importer
services:
importer:
image: tomerh2001/israeli-banks-actual-budget-importer:latest
restart: always
cap_add:
- SYS_ADMIN
environment:
- TZ=Asia/Jerusalem
- SCHEDULE=0 0 * * * # Optional (Used to run periodically - remove to run once)
volumes:
- ./config.json:/app/config.json
- ./cache:/app/cache # Optional
- ./chrome-data:/app/chrome-data # Optional (Used to solve 2FA issues like with hapoalim)
The application configuration is defined using JSON and validated against a schema. The key configuration file is config.json
and its schema is described in config.schema.json
.
-
actual:
Contains settings for the Actual API integration:init
: Initialization parameters (e.g., server URL, password).budget
: Contains properties likesyncId
andpassword
for synchronizing budgets.
-
banks:
Defines bank-specific settings for each supported bank. Each entry typically requires:actualAccountId
: The account identifier in Actual.password
: The bank account password.- Additional properties (e.g.,
userCode
,username
, or other bank-specific credentials) as required. reconcile
(optional): A flag to enable balance reconciliation.
Make sure your config.json
follows the schema defined in config.schema.json
.
Example snippet:
{
"actual": {
"init": {
"dataDir": "./data",
"password": "your_actual_password",
"serverURL": "https://your-actual-server.com"
},
"budget": {
"syncId": "your_sync_id",
"password": "your_budget_password"
}
},
"banks": {
"hapoalim": {
"actualAccountId": "account-123",
"userCode": "bank_user",
"password": "bank_password",
"reconcile": true
},
"leumi": {
"actualAccountId": "account-456",
"username": "bank_username",
"password": "bank_password"
}
// Additional bank configurations go here...
}
}
This project is open-source. Please see the LICENSE file for licensing details.
- israeli-bank-scrapers: Thanks to the contributors of the bank scraper libraries.
- Actual App: For providing a powerful budgeting API.
- Open-source Community: Your support and contributions are appreciated.