Skip to content

phelmig/fints-cli

Repository files navigation

fints-cli

npm version

CLI for German online banking via FinTS 3.0. Supports SEPA transfers, account listing, and statement retrieval — including credit card accounts.

Installation

npm install -g @phelmig/fints-cli

Then run the interactive setup:

fints-cli init

This creates ~/.config/fints-cli/config.env with your bank credentials. On first run, a config template with default values is created automatically — edit it or run fints-cli init for interactive setup. Environment variables always override config file values.

From source

git clone http://github.com/phelmig/fints-cli.git
cd fints-cli
npm install
cp .env.example .env   # fill in your bank credentials
npm run build

Configuration

fints-cli init writes to ~/.config/fints-cli/config.env (or $XDG_CONFIG_HOME/fints-cli/config.env). The file uses standard KEY=value format. Environment variables always take precedence over the config file.

Variable Description
FVB_BLZ Bank code (Bankleitzahl)
FVB_USER Online banking user ID
FVB_PIN Online banking PIN
FVB_URL FinTS/HBCI endpoint URL
FVB_PRODUCT_ID FinTS product registration ID
FINTS_DEBUG Set to 1 for verbose debug output (optional)

Usage

List accounts and balances

fints-cli accounts

Outputs JSON array with account numbers, IBANs, types, and balances. Credit card accounts are listed alongside regular checking accounts.

Get account statements

fints-cli statements [--account <iban-or-number>] [--from YYYY-MM-DD] [--to YYYY-MM-DD]

Options:

  • --account — filter by IBAN or account number (default: first account)
  • --from / --to — date range

Works for both regular accounts (via HKCAZ/HKKAZ) and credit card accounts. Credit card accounts are detected automatically based on the account type reported by the bank.

Outputs JSON array of transactions.

SEPA credit transfer

fints-cli transfer --recipient "Max Mustermann" --iban DE89370400440532013000 --amount 12.50 [--bic COBADEFFXXX] [--purpose "Invoice 123"] [--source-iban DE...] [--instant]

Options:

  • --recipient — recipient name (required)
  • --iban — recipient IBAN (required)
  • --amount — amount in EUR (required)
  • --bic — recipient BIC (optional, resolved by bank)
  • --purpose — payment reference (optional)
  • --source-iban — source account IBAN (default: first account)
  • --instant — use SEPA Instant Payment (Echtzeitüberweisung) via HKIPZ

Both regular (HKCCS) and instant (HKIPZ) transfers support Verification of Payee (VoP/Namensabgleich). The VoP flow is handled automatically: the CLI polls for name verification and resubmits the payment once confirmed.

TAN handling

All commands that require a TAN will prompt interactively on stderr. Status messages go to stderr, data output goes to stdout — so you can pipe the JSON output safely.

Acknowledgements

Built on lib-fints by robocode13 — a TypeScript FinTS 3.0 client library.

License

LGPL-2.1 — see LICENSE.

About

CLI for German online banking via FinTS 3.0. Supports SEPA transfers, account listing, and statement retrieval.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors