Go to file
dankl 69f058b753 Implemented that all accounts from message get added to CustomerData 2020-01-19 17:02:09 +01:00
BankListCreator Added description to @Ignore 2019-10-13 01:14:01 +02:00
BankingJavaFxApp Added IBankingPersistence to be able to store and deserialize added accounts and retrieved account transactions. Implemented BankingPersistenceJson not meant to be a real IBankingPersistence implementation but to get one up and running fast. 2020-01-15 23:55:16 +01:00
BankingJavaFxControls Added IBankingPersistence to be able to store and deserialize added accounts and retrieved account transactions. Implemented BankingPersistenceJson not meant to be a real IBankingPersistence implementation but to get one up and running fast. 2020-01-15 23:55:16 +01:00
BankingUiCommon Implemented that TAN media und procedures get updated and its changes persisted 2020-01-19 16:22:43 +01:00
docs Implemented SEPA bank transfer 2019-10-12 20:15:45 +02:00
fints4javaAndroidApp Fixed that for customer id no letters could be entered 2020-01-19 16:20:30 +01:00
fints4javaBankingClient Re-added askUserForTanProcedure() so user (also that one of the library) really has a change to select a TAN procedure. As default selection otherwise gets hidden deep inside fints4java lib and if library user's enter tan dialog does not support selecting TAN procedure user would never have the choice to select her preferred procedure. 2020-01-19 16:50:26 +01:00
fints4javaLib Implemented that all accounts from message get added to CustomerData 2020-01-19 17:02:09 +01:00
gradle/wrapper Set Gradle wrapper version to 5.4.1 and Gradle plugin version to 3.5.1 2019-10-30 22:29:39 +01:00
persistence/json/BankingPersistenceJson Added IBankingPersistence to be able to store and deserialize added accounts and retrieved account transactions. Implemented BankingPersistenceJson not meant to be a real IBankingPersistence implementation but to get one up and running fast. 2020-01-15 23:55:16 +01:00
.gitignore Added docs/received_messages to .gitignore 2019-10-12 21:15:46 +02:00
README.md Started README 2019-10-12 21:46:20 +02:00
build.gradle Added FloatingActionMenuButton so that users can trigger a money transfer without having to long click on an account transaction 2020-01-03 17:57:05 +01:00
gradle.properties Initial commit 2019-10-02 19:54:11 +02:00
gradlew Initial commit 2019-10-02 19:54:11 +02:00
gradlew.bat Initial commit 2019-10-02 19:54:11 +02:00
settings.gradle Added modules BankingJavaFxControls and BankingJavaFxApp 2020-01-08 20:31:16 +01:00

README.md

fints4java

fints4java is an implementation of the FinTS 3.0 online banking protocol used by most German banks.

There's already a full functional FinTS/HBCI library for Java: hbci4java. So why did I take the trouble to write a new one?

  • hbci4java does not run on Android.
  • It's hard to configure (e.g. to get the account transactions from a particular day onwards you have to browse the source to find out that you have to add the key "startdate" to a Map and as value the date as a string with format "yyyy-MM-dd").
  • It's hard to extend. I wanted to implement SEPA instant payments, but you would have to dive deep into the source and implement it there. There's absolutely no way to (quickly) add it from your source by extending the library.

Features / Limitations

  • Supports only FinTS 3.0 which is used by most banks (HBCI 2.x is obsolete, FinTS 4.x is only used by one bank according to offical bank list).
  • Supports only PIN/TAN (used by most users), no signature cards.
  • Supports only chipTAN.
  • Supported operations:
    • Get account info
    • Get account transactions
    • Normal, scheduled and instant payment (SEPA) cash transfer

Setup

Not uploaded to Maven Central yet, will do this the next few days!

Gradle:

dependencies {
  compile 'net.dankito.banking:fints4java:0.1'
}

Maven:

<dependency>
   <groupId>net.dankito.banking</groupId>
   <artifactId>fints4java</artifactId>
   <version>0.1</version>
</dependency>

Usage

Get your bank's FinTS server address and BIC from this file:

FinTsClient client = new FinTsClient();

Logging

fints4java uses slf4j as logging facade.

So you can use any logger that supports slf4j, like Logback and log4j, to configure and get fints4java's log output.

License

tbd.

In short: Non commercial projects can use it absolutely for free, commercial projects have to pay.