Skip to content

Latest commit

 

History

History
95 lines (64 loc) · 3.19 KB

File metadata and controls

95 lines (64 loc) · 3.19 KB

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 https://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.