FinTS German Bank Institute Database
fints-institute-db is a JavaScript package providing a structured database of German banking institutes, primarily for use with FinTS/HBCI client applications. It contains crucial connection details such as Bankleitzahl (BLZ), Business Identifier Code (BIC), bank name, location, FinTS endpoint URLs (e.g., `pinTanURL`), and supported FinTS protocol versions. The current stable version is 0.16.0. The package typically receives updates as the German banking landscape changes (e.g., mergers, updated FinTS endpoints) or new data becomes available, making its release cadence data-driven. It serves as a static registry, differentiating itself by offering a readily consumable, open-source dataset specifically tailored for integrating with the German FinTS standard.
Common errors
-
Error: Cannot find module 'fints-institute-db'
cause The package has not been installed or is not correctly resolved in the module path.fixRun `npm install fints-institute-db` in your project directory. Ensure your module bundler or Node.js environment is configured to find `node_modules`. -
TypeError: banks.filter is not a function
cause The imported `banks` variable is not an array as expected. This could happen if the package's export structure changed or if the import statement is incorrect (e.g., trying to destructure a default export).fixEnsure you are using the correct import statement for the default export: `import banks from 'fints-institute-db';` (ESM) or `const banks = require('fints-institute-db');` (CommonJS). -
Property 'blz' does not exist on type 'BankInstitute'.
cause When using TypeScript, the type definitions might be outdated, incorrect, or missing for the 'blz' field (or any other field you are trying to access).fixCheck for `@types/fints-institute-db` or ensure the package's built-in types (if any) are correctly referenced. If the types are genuinely missing or incorrect for a specific field, consider using type assertions (`(bank as any).blz`) or extending the type definitions in your project.
Warnings
- breaking Major version updates (e.g., v0.x.x to v1.x.x) may introduce changes to the data schema (e.g., renaming fields like `blz`, `bic`, `pinTanURL`, or adding/removing flags like `rdh7`). This could break applications relying on specific field names or data types.
- gotcha The `pinTanURL` and `hbciDomain` fields, which are critical for FinTS connections, can change without immediate package updates. Relying solely on this static database for real-time endpoint validity in production environments might lead to connection failures.
- gotcha The `updated` field for individual bank entries is often `null` in the provided data format. This makes it difficult to ascertain the freshness of specific bank data points directly from the entry itself.
- gotcha While the package aims for comprehensive coverage, it might not always include every niche banking institute or reflect the very latest changes from all German financial institutions immediately. Data is community-driven and updated periodically.
Install
-
npm install fints-institute-db -
yarn add fints-institute-db -
pnpm add fints-institute-db
Imports
- banks
import { banks } from 'fints-institute-db';import banks from 'fints-institute-db';
- banks
const banks = require('fints-institute-db'); - BankInstitute
import { BankInstitute } from 'fints-institute-db';import type { BankInstitute } from 'fints-institute-db/types';
Quickstart
import banks from 'fints-institute-db';
// Find a bank by its Bankleitzahl (BLZ)
const blzToFind = '10030600'; // Example BLZ for 'Bankhaus Kruber'
const bankByBlz = banks.find(bank => bank.blz === blzToFind);
if (bankByBlz) {
console.log(`Found bank '${bankByBlz.name}' in '${bankByBlz.location}' with HBCI URL: ${bankByBlz.pinTanURL}`);
} else {
console.log(`Bank with BLZ ${blzToFind} not found.`);
}
// Filter banks by organization (e.g., 'DSGV' for Sparkassen)
const dsgvBanks = banks.filter(bank => bank.organisation === 'DSGV');
console.log(`
Found ${dsgvBanks.length} banks belonging to DSGV (Sparkassen-Finanzgruppe). Example:`);
if (dsgvBanks.length > 0) {
console.log(` - ${dsgvBanks[0].name}, BIC: ${dsgvBanks[0].bic}`);
}
// Get a count of all registered banks
console.log(`\nTotal number of banks in the database: ${banks.length}`);