FinTS command line interface.
npm install fints-lib-cli

A command line interface for communicating with FinTS servers.
> Note: This is a fork and continuation of Prior99/fints. Published as fints-lib-cli on npm.
``bash`
npm install -g fints-lib-clior
yarn global add fints-lib-cli
- Load list of accounts.
- Load list of transactions in specified range.
- Fetch the current balance for an account.
- List holdings for depot accounts.
- Submit SEPA credit transfers.
- Submit SEPA direct debits.
`
List the accounts available for the specified user.
USAGE
fints-lib list-accounts --url
OPTIONS
-u, --url
-n, --name
-p, --pin
-b, --blz
-d, --debug
-v, --verbose
-j, --json
`
``
fints-lib list-accounts --url https://example.com/fints -n username -p 12345 -b 12345678
`
Fetch the statements for a specified account.
USAGE
fints-lib fetch-transactions --url
OPTIONS
-u, --url
-n, --name
-p, --pin
-b, --blz
-d, --debug
-v, --verbose
-j, --json
-i, --iban
-s, --start
-e, --end
`
``
fints-lib fetch-transactions --url http://example.com/fints -n username -p 12345 -b 12345678 -i DE111234567800000001 -s 2018-01-01 -e 2018-10-01
`
Fetch the current balance for a specified account.
USAGE
fints-lib get-balance --url
OPTIONS
-u, --url
-n, --name
-p, --pin
-b, --blz
-d, --debug
-v, --verbose
-j, --json
-i, --iban
`
``
fints-lib get-balance --url https://example.com/fints -n username -p 12345 -b 12345678 -i DE111234567800000001
`
List the holdings of a depot account.
USAGE
fints-lib list-holdings --url
OPTIONS
-u, --url
-n, --name
-p, --pin
-b, --blz
-d, --debug
-v, --verbose
-j, --json
-i, --iban
`
``
fints-lib list-holdings --url https://example.com/fints -n username -p 12345 -b 12345678 -i DE111234567800000001
`
Submit a SEPA credit transfer request.
USAGE
fints-lib submit-credit-transfer --url
--creditor-iban
OPTIONS
-u, --url
-n, --name
-p, --pin
-b, --blz
--account-iban
--debtor-name
--creditor-name
--creditor-iban
--creditor-bic
--amount
--execution-date
--end-to-end-id
--remittance
--purpose-code - Purpose code for the transfer.`
--message-id
--payment-information-id
--batch - Request batch booking.
--tan
-d, --debug
-v, --verbose
-j, --json
``
fints-lib submit-credit-transfer --url https://example.com/fints --name username --pin 12345 --blz 12345678 \
--account-iban DE02120300000000202051 --debtor-name "John Doe" --creditor-name "ACME GmbH" \
--creditor-iban DE44500105175407324931 --amount 100.00 --remittance "Invoice 0815"
`
Submit a SEPA direct debit request.
USAGE
fints-lib submit-direct-debit --url
--creditor-id
--collection-date
OPTIONS
-u, --url
-n, --name
-p, --pin
-b, --blz
--account-iban
--creditor-name
--creditor-id
--debtor-name
--debtor-iban
--amount
--mandate-id
--mandate-date
--collection-date
--sequence-type
--local-instrument - Local instrument (CORE or B2B).
--end-to-end-id
--remittance
--purpose-code - Purpose code for the debit.`
--message-id
--payment-information-id
--batch - Request batch booking.
--tan
-d, --debug
-v, --verbose
-j, --json
``
fints-lib submit-direct-debit --url https://example.com/fints --name username --pin 12345 --blz 12345678 \
--account-iban DE111234567800000001 --creditor-name "ACME GmbH" --creditor-id DE98ZZZ09999999999 \
--debtor-name "John Doe" --debtor-iban DE02120300000000202051 --amount 42.50 --mandate-id MANDATE-123 \
--mandate-date 2022-01-10 --collection-date 2022-01-15 --remittance "Invoice 0815"
To avoid typing credentials repeatedly, create a shell script or use environment variables:
`bash
#!/bin/bashsave as fints-env.sh
export FINTS_URL="https://banking.example.com/fints"
export FINTS_USER="myusername"
export FINTS_PIN="mypin"
export FINTS_BLZ="12345678"
$3
`bash
Get account list in JSON format for processing
fints-lib list-accounts \
--url https://banking.example.com/fints \
-n username -p 12345 -b 12345678 \
--json | jq '.'Check balance for a specific account
fints-lib get-balance \
--url https://banking.example.com/fints \
-n username -p 12345 -b 12345678 \
-i DE89370400440532013000 \
--json | jq '.value'
`$3
`bash
Fetch and save transactions as JSON
fints-lib fetch-transactions \
--url https://banking.example.com/fints \
-n username -p 12345 -b 12345678 \
-i DE89370400440532013000 \
-s 2024-01-01 -e 2024-12-31 \
--json > transactions-2024.jsonOr save verbose output to text file
fints-lib fetch-transactions \
--url https://banking.example.com/fints \
-n username -p 12345 -b 12345678 \
-i DE89370400440532013000 \
-s 2024-01-01 -e 2024-12-31 \
--verbose > transactions-2024.txt
`$3
`bash
#!/bin/bash
monthly-statement.sh - Fetch last month's transactions
Calculate date range for last month
For Linux (GNU date):
START_DATE=$(date -d "last month" +%Y-%m-01)
END_DATE=$(date -d "-1 day $(date +%Y-%m-01)" +%Y-%m-%d)For macOS (BSD date), install GNU coreutils and use 'gdate':
brew install coreutils
START_DATE=$(gdate -d "last month" +%Y-%m-01)
END_DATE=$(gdate -d "-1 day $(gdate +%Y-%m-01)" +%Y-%m-%d)
Fetch transactions
fints-lib fetch-transactions \
--url "$FINTS_URL" \
-n "$FINTS_USER" \
-p "$FINTS_PIN" \
-b "$FINTS_BLZ" \
-i "$ACCOUNT_IBAN" \
-s "$START_DATE" \
-e "$END_DATE" \
--json > "statement-$(date +%Y-%m).json"echo "Statement saved for period: $START_DATE to $END_DATE"
`$3
`bash
#!/bin/bash
check-all-accounts.sh
ACCOUNTS=("DE89370400440532013000" "DE89370400440532013001")
for IBAN in "${ACCOUNTS[@]}"; do
echo "Checking account: $IBAN"
fints-lib get-balance \
--url "$FINTS_URL" \
-n "$FINTS_USER" \
-p "$FINTS_PIN" \
-b "$FINTS_BLZ" \
-i "$IBAN" \
--json | jq -r '" Balance: \(.value.value) \(.value.currency)"'
echo ""
done
`Tips
- Use
--json flag for machine-readable output that can be processed with tools like jq
- Use --verbose flag to see detailed information during development
- Use --debug` flag to troubleshoot connection issues