Ynabber is a tool that reads and writes bank transactions from one or more sources (called readers) to one or more destinations (called writers). This makes it easier to pull in your bank transactions automatically and push them to personal finance apps like YNAB.
See subsection readers and writers for a list of supported banks and services.
You can use Go or Docker to install and run Ynabber. Choose whichever option you find more convenient.
# Install with Go
go install github.com/martinohansen/ynabber/cmd/ynabber@latest
# Install with Docker
docker pull ghcr.io/martinohansen/ynabber:latest
Ynabber is configured via environment variables. Below is an example setup for reading transactions from GoCardless (formerly known as Nordigen) and writing them to YNAB.
cat <<EOT >> ynabber.env
# YNAB
YNAB_BUDGETID=<budget_id>
YNAB_TOKEN=<account token>
YNAB_ACCOUNTMAP={"<IBAN>": "<YNAB account ID>"}
# Nordigen
NORDIGEN_BANKID=<nordigen bank ID>
NORDIGEN_SECRET_ID=<nordigen secret ID>
NORDIGEN_SECRET_KEY=<nordigen secret key>
EOT
Then run Ynabber:
# Load environment variables from the file
set -a; . ./ynabber.env; set +a; ynabber
# Then run
ynabber
Or using Docker:
docker run \
--volume ${PWD}:/data \
--env 'YNABBER_DATADIR=/data' \
--env-file=ynabber.env \
ghcr.io/martinohansen/ynabber:latest
All valid config variables can be found here
Readers are how Ynabber fetches your transactions from the bank. Below are some tested examples. Generally, any bank supported by GoCardless (formerly known as Nordigen) should work:
Reader | Bank | Verified? |
---|---|---|
Nordigen1 | ALANDSBANKEN_AABAFI22 | ✅ |
NORDEA_NDEADKKK | ✅ | |
NORDEA_NDEAFIHH | ✅ | |
NORWEGIAN_FI_NORWNOK1 | ✅ | |
S_PANKKI_SBANFIHH | ✅ |
Writers tell Ynabber where to send the fetched transactions.
Writer | Description |
---|---|
YNAB | Pushes transactions to a YNAB budget |
JSON | Writes transactions as JSON to stdout (useful for testing) |
Pull requests are welcome! If you encounter a bug or have an idea for improvement, feel free to open an issue. We’d love your help in making Ynabber better for everyone!