coderoftime

Nº 3 Libraries for Dart & TypeScript

FinTS

Talk to German banks directly.

Dart
fints on pub.dev; BSD-3-Clause
TypeScript
@coderoftime/fints on npm; Zero runtime dependencies
Your data
Only between your app and your bank

The fints package is a pure Dart FinTS client for German banks, usable from any Flutter app on iOS, Android and desktop. It handles what makes FinTS hard in practice: PSD2 strong customer authentication, decoupled app approval, TAN media and chipTAN flicker codes, and the bank’s own parameter data, which it follows strictly. A request the bank’s parameters rule out fails before the bank is contacted.

The TypeScript port, @coderoftime/fints on npm, has no runtime dependencies and behaves the same: same session logic, same safeguards, same tests. It runs on Node.js, Deno and Bun, or in a browser behind your own server.

Banks only talk to registered software. Before your app can connect, register it for free with the German banking industry (Die Deutsche Kreditwirtschaft) and pass the ID you get as productId.

 Features

What it does

  1. FinTS 3.0 and 4.1

    The Dart package speaks both; 4.1 is experimental. The TypeScript port covers 3.0.

  2. Strong customer authentication

    One- and two-step TAN and app approval (pushTAN, SecureGo plus), polled on the bank’s own timing.

  3. chipTAN and photoTAN

    HHD 1.3 and 1.4 flicker codes rendered to frames, and photo and QR challenges.

  4. Balances and transactions

    camt.052 or MT940/942 with automatic paging, plus parsers for MT940 and camt.

  5. Lockout protection

    Never re-sends a PIN the bank refused, and masks PIN and TAN in every log.

  6. Portable session state

    Bank parameters, TAN setup and the account list in one saved state string, never the PIN or a TAN, in the same format for Dart and TypeScript.

Direct

Nothing sits between your app and your bank.

The libraries collect nothing and only talk to the bank you configure.

Telemetry
None
Aggregator
None
Licence
BSD-3-Clause

 Availability

On pub.dev and npm

The Dart package is on pub.dev and the TypeScript port on npm, both under the BSD-3-Clause licence.

 Support

Support & contact

Questions are welcome by email; bugs can also go to the issues of either repository on GitLab.

coderoftime@gmail.com