ynabber

Ynabber

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.

Installation

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:latest

Usage

Ynabber 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>
EOT

Run Ynabber locally:

env $(cat ynabber.env | xargs) ynabber

Or using Docker:

docker run \
    --volume "${PWD}:/data" \
    --env ‘YNABBER_DATADIR=/data’ \
    --env-file=ynabber.env \
    ghcr.io/martinohansen/ynabber:latest

Or 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 ynabber

See Configuration for all available settings.

Readers

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

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)

Contributing

Pull requests welcome. Found a bug or have ideas? Open an issue. Help make Ynabber better for everyone.

bitcoin:bc1qct2au09va7rk5psevmesalkaxtjmdjun9x2r3a