Go to file
dankl 4012c6105f Added convenience function TransferMoneyData.fromAccountTransaction() 2020-01-11 23:20:54 +01:00
BankListCreator Added description to @Ignore 2019-10-13 01:14:01 +02:00
BankingJavaFxApp Renamed main.window.title to application.title 2020-01-11 17:00:17 +01:00
BankingJavaFxControls Replaced + Button by AddButton 2020-01-11 14:38:36 +01:00
BankingUiCommon Added convenience function TransferMoneyData.fromAccountTransaction() 2020-01-11 23:20:54 +01:00
docs Implemented SEPA bank transfer 2019-10-12 20:15:45 +02:00
fints4javaAndroidApp Added convenience function TransferMoneyData.fromAccountTransaction() 2020-01-11 23:20:54 +01:00
fints4javaBankingClient Trying to get inner exception for errorToShowToUser 2020-01-08 22:59:33 +01:00
fints4javaLib Implemented BankingClientCallback to abstract away FinTsClientCallback 2020-01-03 00:35:36 +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
.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.