Nº 3 Bibliotheken für Dart & TypeScript
FinTS
Direkt mit deutschen Banken sprechen.
- Dart
- fints auf pub.dev; BSD-3-Clause
- TypeScript
- @coderoftime/fints auf npm; Keine Laufzeitabhängigkeiten
- Deine Daten
- Nur zwischen deiner App und deiner Bank
fints auf pub.dev @coderoftime/fints auf npm Dart-QuellcodeTypeScript-Quellcode
Das Paket fints ist ein FinTS-Client in reinem Dart für deutsche Banken, nutzbar in jeder
Flutter-App auf iOS, Android und dem Desktop. Es übernimmt, was FinTS in der Praxis schwierig macht:
starke Kundenauthentifizierung nach PSD2, entkoppelte Freigabe per App, TAN-Medien und
chipTAN-Flickercodes sowie die Bankparameterdaten der jeweiligen Bank, an die es sich strikt hält.
Lassen diese Parameter eine Anfrage nicht zu, scheitert sie, bevor die Bank überhaupt kontaktiert
wird.
Der TypeScript-Port, auf npm als @coderoftime/fints erhältlich, kommt ohne Laufzeitabhängigkeiten aus und verhält sich genauso: dieselbe
Sitzungslogik, dieselben Schutzmechanismen, dieselben Tests. Er läuft unter Node.js, Deno und Bun
oder im Browser hinter deinem eigenen Server.
Banken sprechen nur mit registrierter Software. Bevor sich deine App verbinden kann, registrierst du
sie kostenlos bei der Deutschen Kreditwirtschaft
und übergibst die ID, die du dort bekommst, als productId.
Ein Blick in den Code
dart pub add fintsfinal client = FinTs3Client(
config: FinTsConfig(
url: bankUrl,
bankCode: '12345678',
userId: login,
productId: productId,
),
pin: pin,
options: FinTsClientOptions(
tanCallback: askForTan,
),
);
final accounts = await client.getAccounts();
final balance =
await client.getBalance(accounts.first);
await client.close();npm install @coderoftime/fintsconst client = new FinTs3Client({
config: {
url: bankUrl,
bankCode: '12345678',
userId: login,
productId,
},
pin,
options: { tanCallback: askForTan },
});
const accounts = await client.getAccounts();
const balance =
await client.getBalance(accounts[0]!);
await client.close();Funktionen
Was es kann
FinTS 3.0 und 4.1
Das Dart-Paket spricht beide Versionen; 4.1 ist experimentell. Der TypeScript-Port deckt 3.0 ab.
Starke Kundenauthentifizierung
Ein- und Zwei-Schritt-TAN-Verfahren und Freigabe per App (pushTAN, SecureGo plus), abgefragt im Takt, den die Bank vorgibt.
chipTAN und photoTAN
Flickercodes nach HHD 1.3 und 1.4 als Einzelbilder gerendert, dazu Foto- und QR-Challenges.
Salden und Umsätze
camt.052 oder MT940/942 mit automatischem Nachladen über Aufsetzpunkte, dazu Parser für MT940 und camt.
Schutz vor Sperrung
Schickt eine PIN, die die Bank abgelehnt hat, nie ein zweites Mal und maskiert PIN und TAN in jedem Log.
Übertragbarer Sitzungszustand
Bankparameterdaten, TAN-Einrichtung und Kontenliste in einem gespeicherten Zustands-String, nie die PIN oder eine TAN, im selben Format für Dart und TypeScript.
Direkt
Nichts steht zwischen deiner App und deiner Bank.
Die Bibliotheken sammeln nichts und sprechen nur mit der Bank, die du konfigurierst.
- Telemetrie
- Keine
- Aggregator
- Keiner
- Lizenz
- BSD-3-Clause
Verfügbarkeit
Auf pub.dev und npm
Das Dart-Paket gibt es auf pub.dev, den TypeScript-Port auf npm – beide unter der BSD-3-Clause-Lizenz.
fints auf pub.dev @coderoftime/fints auf npm Dart-QuellcodeTypeScript-QuellcodeNeuigkeiten verfolgen
Hilfe
Hilfe & Kontakt
Fragen sind per E‑Mail willkommen; Fehler kannst du auch in den Issues der beiden Repositorys auf GitLab melden.
coderoftime@gmail.com