Raiffeisen ELBA Banking Automation
Fetch current account balances, securities depot positions, and transactions for all account types in JSON format for automatic processing. Uses Playwright to automate Raiffeisen ELBA online banking.
⚠️ Security & Data Handling
This skill performs browser automation and requires you to understand its data handling before use:
-
Local Credential File (
config.json): You must create aconfig.jsonfile containing your ELBA user ID and 5-digit PIN. This file is stored locally with strict0600permissions (owner read/write only). The PIN alone cannot access your account — it only initiates the login flow. -
Mandatory 2FA Approval: Every login requires you to manually approve a pushTAN request on your registered mobile device. Without this approval, the skill cannot access any bank data.
-
Ephemeral Bearer Token: After successful 2FA approval, the skill extracts the Bearer token from browser storage (or by observing outgoing API requests within the same browser context). This token enables chaining multiple operations (accounts → transactions → portfolio) without re-authenticating. The token is short-lived (expires within minutes) and is stored in a local cache file with
0600permissions. -
Always Logout: Run
logoutafter completing your operations. This deletes the browser profile and cached token, ensuring no valid session state remains on disk.
If you are not comfortable with browser automation that extracts session tokens, do not use this skill with real credentials.
Setup
See SETUP.md for prerequisites and configuration instructions.
Commands
python3 {baseDir}/scripts/elba.py login # Authenticate (requires pushTAN approval)
python3 {baseDir}/scripts/elba.py accounts # List all accounts
python3 {baseDir}/scripts/elba.py transactions --account <iban> --from YYYY-MM-DD --until YYYY-MM-DD
python3 {baseDir}/scripts/elba.py portfolio --depot-id <id>
python3 {baseDir}/scripts/elba.py logout # Clear session and cached token
Recommended Flow
login → accounts → transactions → portfolio → logout
Entry point: {baseDir}/scripts/elba.py