Ynabber reads bank transactions from one or more sources (readers) and writes them to one or more destinations (writers). Use it to pull in your bank transactions automatically and push them to personal finance apps like YNAB.
See readers and writers below for supported banks and services.
Install with Go, Docker, or download the binary. Choose whatever fits your setup.
# Go
go install github.com/martinohansen/ynabber/cmd/ynabber@latest
# Docker
docker pull ghcr.io/martinohansen/ynabber:latestYnabber is configured with environment variables. Quickstart with these examples:
# YNAB
cat <<EOT > ynabber.env
YNAB_BUDGETID=<budget_id>
YNAB_TOKEN=<account_token>
EOT
# Nordigen/GoCardless
cat <<EOT >> ynabber.env
YNAB_ACCOUNTMAP={"<IBAN>": "<YNAB_account_ID>"}
NORDIGEN_BANKID=<nordigen_bank_ID>
NORDIGEN_SECRET_ID=<nordigen_secret_ID>
NORDIGEN_SECRET_KEY=<nordigen_secret_key>
EOT
# Or EnableBanking
cat <<EOT >> ynabber.env
YNAB_ACCOUNTMAP={"<account id>": "<YNAB_account_ID>"}
ENABLEBANKING_APP_ID=<your_app_id_here>
ENABLEBANKING_COUNTRY=<country code>
ENABLEBANKING_ASPSP=<bank identifier>
ENABLEBANKING_PEM_FILE=<private key pem file>
EOTRun Ynabber locally:
env $(cat ynabber.env | xargs) ynabberOr using Docker:
docker run \
--volume "${PWD}:/data" \
--env ‘YNABBER_DATADIR=/data’ \
--env-file=ynabber.env \
ghcr.io/martinohansen/ynabber:latestOr as a systemd service:
sudo cp ynabber.env /etc/ynabber/ynabber.env
sudo cat <<EOT > /etc/systemd/system/ynabber.service
[Unit]
Description=Ynabber
After=network-online.target
Wants=network-online.target
[Service]
EnvironmentFile=/etc/ynabber/ynabber.env
ExecStart=$(which ynabber)
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOT
sudo systemctl enable --now ynabberSee Configuration for all available settings.
Readers fetches transactions from your bank(s) and pushes them to writers.
| Reader | Description |
|---|---|
| Nordigen | Now known as GoCardless, this is for their "Bank Account Data" product |
| EnableBanking | Supports lots of financial institutions across Europe |
Writers are destinations for fetched transactions.
| Writer | Description |
|---|---|
| YNAB | Pushes transactions to a YNAB budget |
| JSON | Writes transactions as JSON to stdout (useful for testing) |
Pull requests welcome. Found a bug or have ideas? Open an issue. Help make Ynabber better for everyone.
bitcoin:bc1qct2au09va7rk5psevmesalkaxtjmdjun9x2r3a