Quickstart
This path gets from a fresh checkout to a private local archive. Use synthetic dates and placeholders until you are ready to connect a real provider account.
#1. Build And Initialize
make build
./bin/gobankcli init
./bin/gobankcli doctor
Default local paths:
- config:
~/.config/gobankcli/config.toml - database:
~/.local/share/gobankcli/gobankcli.db - exports:
~/Finance/gobankcli/exports
doctor prints credential presence as set, missing, or default; secret values are never printed.
#2. Choose A Provider
Recommended live Belfius path: Enable Banking AIS. It supports a restricted production setup for your own dashboard-linked accounts.
Alternative path: GoCardless Bank Account Data. It is supported for read-only account information and transaction sync, but Enable Banking is the main documented Belfius path.
Before running the live commands below, complete Provider Setup for your chosen provider. For Enable Banking, that means:
- dashboard application created with the HTTPS loopback redirect URL
- account linked in restricted production
GOBANKCLI_ENABLEBANKING_APP_IDsetGOBANKCLI_ENABLEBANKING_PRIVATE_KEY_PATHpoints at a readable PEM key~/.config/gobankcli/tls/localhost.crtand~/.config/gobankcli/tls/localhost.keyexist for the HTTPS callback listener
source ~/.config/gobankcli/enablebanking.env
test -r "$GOBANKCLI_ENABLEBANKING_PRIVATE_KEY_PATH"
test -r ~/.config/gobankcli/tls/localhost.crt
test -r ~/.config/gobankcli/tls/localhost.key
#3. Find An Institution
./bin/gobankcli institutions --provider enablebanking --country BE --query belfius
Use the returned provider institution ID in the consent flow. For Enable Banking this is normalized as COUNTRY:Name, for example BE:Belfius.
#4. Connect
Enable Banking production uses an HTTPS loopback callback. The provider dashboard must allow the same redirect URL that the CLI listens on:
https://127.0.0.1:28787/enablebanking/callback
./bin/gobankcli connect \
--provider enablebanking \
--institution BE:Belfius \
--listen 127.0.0.1:28787 \
--listen-https \
--listen-cert ~/.config/gobankcli/tls/localhost.crt \
--listen-key ~/.config/gobankcli/tls/localhost.key \
--callback-timeout 10m
Open the printed browser URL, complete provider and bank authorization, then return to the terminal. The successful report includes:
provider_connection_id: provider session or requisition ID for later live commands.connection_id: local archive ID.accounts: archived account count.
#5. Sync Booked Transactions
./bin/gobankcli sync --provider enablebanking --connection SESSION_ID --from 2026-01-01
./bin/gobankcli status
Only booked transactions are archived. Pending transactions from provider payloads are ignored for now.
#6. Export CSV
./bin/gobankcli export --out ~/Finance/gobankcli/exports/normalized.csv
Use --from, --to, and --account to narrow the export. Use --out - to stream CSV to stdout.
#7. Inspect Locally
./bin/gobankcli query "select count(*) as transactions from transactions"
./bin/gobankcli query "select booking_date, amount, description from transactions order by booking_date desc limit 20"
query and sql accept one read-only SELECT or WITH statement. Mutating SQL and multiple statements are rejected.
#Safety Check
gobankcli does not scrape bank websites, initiate payments, store bank passwords, perform cloud upload, or include real bank data in examples. The archive stays local unless you explicitly export to a path you choose.