GithubHelp home page GithubHelp logo

torstenprivate / libfintx Goto Github PK

View Code? Open in Web Editor NEW
116.0 27.0 41.0 77.35 MB

Moved to https://github.com/libfintx/libfintx - please use the new repository!

Home Page: https://github.com/libfintx/libfintx

License: GNU Lesser General Public License v3.0

C# 100.00%
hbci fints german balance transfer-money fintech bank banker-orders xamarin mono banking payment dotnet pintan android ios banking-applications banking-api mobile-banking ebics

libfintx's Introduction

Wir sind umgezogen!

Bitte verwende das neue Repository unter https://github.com/libfintx/libfintx

Dort werden wir ebenfalls ein Nuget Package und ausführlichere Tests zur Verfügung stellen.

Wir versprechen uns von dem Umzug ebenfalls, dass wir Updates und Bugfixes schneller umsetzen und zur Verfügung stellen können.

libfintx's People

Contributors

abid76 avatar akordowski avatar christiankohrn avatar codacy-badger avatar codebude avatar dependabot[bot] avatar eberdna avatar feliwir avatar iamtorsten avatar korneliuscode avatar leo-schick avatar party-pansen avatar sebfrie avatar thisistorsten avatar x39 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libfintx's Issues

IngDiba still not working

Hi all,

after a half year I spend some time into my project I want to realize and tried again to connect to IngDiBa without success.

Trace:

[29.07.18 08:39:51]
HNHBK:1:3+000000000394+300+0+1'
HNVSK:998:3+PIN:1+998+1+1::0+1:20180729:083935+2:2:13:@8@00000000:5:1+280:50010517:*replaced*:V:0:0+0'
HNVSD:999:1+@231@HNSHK:2:4+PIN:1+999+1765336067662168+1+1+1::0+1+1:20180729:083935+1:999:1+6:10:16+280:50010517:*replaced*:S:0:0'
HKIDN:3:2+280:50010517+*replaced*+0+1'
HKVVB:4:3+0+0+0+Checker+1.0.0'
HKSYN:5:3+0'
HNSHA:6:2+1765336067662168++*replaced*'
HNHBS:7:1+1'

[29.07.18 08:39:51]
HNHBK:1:3+000000000211+300+000006N4OF0IG1UN6IH8SCTBMUCKVM+1+000006N4OF0IG1UN6IH8SCTBMUCKVM:1'
HIRMG:2:2:+9800::Der Dialog wurde abgebrochen.+9010::Ungültiger Signaturaufbau?: Fehler im Segmentaufbau.'
HNHBS:3:1+1'

I compared the Message with the Log from Outbank and there are some differences:
OB: HNHBK:1:3+000000000464+300+0+1'
FinTX: HNHBK:1:3+000000000436+300+0+1'

OB: HNVSD:999:1+@272@
FinTX: HNVSD:999:1+@244@

I used my AccountNumber in UserId and Account and Version 300.

Here's my Code:

public static void Main(string[] args)
        {
            Log.Enabled = true;
            libfintx.Main.Tracing(true, true);

            libfintx.Main.Assembly("Checker", "1.0.0");

            var connection = new libfintx.Data.ConnectionDetails();
            connection.Url = "https://fints.ing-diba.de/fints/";
            connection.IBAN = "DE1550010517*Kontonummer*";
            connection.Blz = 50010517;
            connection.Account = "*Kontonummer*";
            connection.AccountHolder = "My Name";
            connection.HBCIVersion = 300;
            connection.UserId = "*Kontonummer*";
            connection.Pin = "*replaced*";

            var result = libfintx.Main.Balance(connection, false);

        }

Can you provide me an Example how the Configuration should look like for IngDiBa?

Fehler im Segmentaufbau

Hi Torsten,

I have the same problem with IngDiba like in this post: #5

Tried to change back the 2 into one in your fix but same problem.

ING Diba Kontostand abrufen: Unbekannter Aufbau der Kundennachricht.

Ich versuche gerade den Kontostand bei einem ING DiBa Konto abzurufen.
Um eigene Fehler auszuschließen habe ich es jetzt mal über das Sample.UI Projekt probiert.

Die Synchronisation scheint durchzulaufen, beim Kontostand abrufen wird abgebrochen.

Woran kann's liegen?!

Hier Console und Trace:

Die Konsole Zeigt:
Code: 3060 | Typ: Warning | Nachricht: Teilweise liegen Warnungen/Hinweise vor.
Code: 0020 | Typ: Success | Nachricht: Angemeldet.
Code: 0020 | Typ: Success | Nachricht: Informationen fehlerfrei entgegengenommen.
Code: 3050 | Typ: Warning | Nachricht: BPD nicht mehr aktuell. Aktuelle Version folgt.
Code: 3920 | Typ: Warning | Nachricht: Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer:900
Code: 0020 | Typ: Success | Nachricht: Die Synchronisierung der Kundensystem-ID war erfolgreich.
Code: 3060 | Typ: Warning | Nachricht: Teilweise liegen Warnungen/Hinweise vor.
Code: 0020 | Typ: Success | Nachricht: Angemeldet.
Code: 0020 | Typ: Success | Nachricht: Informationen fehlerfrei entgegengenommen.
Code: 3050 | Typ: Warning | Nachricht: BPD nicht mehr aktuell. Aktuelle Version folgt.
Code: 3920 | Typ: Warning | Nachricht: Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer:900
Code: 0020 | Typ: Success | Nachricht: Die Synchronisierung der Kundensystem-ID war erfolgreich.
Code: 9800 | Typ: Error | Nachricht: Der Dialog wurde abgebrochen.
Code: 9110 | Typ: Error | Nachricht: Unbekannter Aufbau der Kundennachricht.

Trace:
[01.04.2020 11:17:41] HNHBK:1:3+000000000412+300+0+1'HNVSK:998:3+PIN:1+998+1+1::0+1:20200401:111741+2:2:13:@800000000:5:1+280:50010517:1234567890:V:0:0+0'HNVSD:999:1+@249@HNSHK:2:4+PIN:1+999+1077728209270714+1+1+1::0+1+1:20200401:111741+1:999:1+6:10:16+280:50010517:1234567890:S:0:0'HKIDN:3:2+280:50010517+1234567890+0+1'HKVVB:4:3+0+0+0+9FA6681DEC0CF3046BFC2F8A6+0.0.1'HKSYN:5:3+0'HNSHA:6:2+1077728209270714++1234567890''HNHBS:7:1+1'
[01.04.2020 11:17:41] HNHBK:1:3+000000001602+300+000006HL10KTQTEGIAS0PEB8E5H0D5+1+000006HL10KTQTEGIAS0PEB8E5H0D5:1'HNVSK:998:3+PIN:1+998+1+2::0+1+2:2:13:@8@ :6:1+280:50010517:1234567890:V:0:0+0'HNVSD:999:1+@1391@HIRMG:2:2:+3060::Teilweise liegen Warnungen/Hinweise vor.'HIRMS:3:2:3+0020::Angemeldet.'HIRMS:4:2:4+0020::Informationen fehlerfrei entgegengenommen.+3050::BPD nicht mehr aktuell. Aktuelle Version folgt.+3920::Zugelassene Ein- und Zwei-Schritt-Verfahren f�r den Benutzer:900'HIRMS:5:2:5+0020::Die Synchronisierung der Kundensystem-ID war erfolgreich.'HIBPA:6:3:4+7+280:50010517+ING-DiBa+0+1+220:300+200'HIKOM:7:4:4+280:50010517+1+3:https?://fints.ing-diba.de/fints/'HISPAS:8:1:4+1+1+0+J:J:J:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.003.03'HIPAES:9:1:4+1+1+0'HICCSS:10:1:4+1+1+0'HITANS:11:1:4+1+1+0+J:N:0:0:900:2:iTAN:iTAN:6:1:Index:3:1:N:N'HIKAZS:12:5:4+1+1+390:N:N'HICDNS:13:1:4+1+1+1+0:1:360:J:J:J:J:J:N:N:N:J:00:00::0'HICSBS:14:1:4+1+1+0+N:N'HICSAS:15:1:4+1+1+0+1:360'HIWPDS:16:6:4+1+1+0+N:N:N'HIWPDS:17:5:4+1+1+N:N:N'DIPAES:18:1:4+1+1'HICDLS:19:1:4+1+1+1+1:360:N:J'HIPROS:20:3:4+1+1'HICSES:21:1:4+1+1+0+1:360'HICSLS:22:1:4+1+1+0+J'HICDBS:23:1:4+1+1+0+N'HISALS:24:5:4+1+1'HICDES:25:1:4+1+1+1+4:1:360:00:00::0'DIPINS:26:1:4+1+1+HKSPA:N:HKPAE:J:HKCCS:J:HKTAN:N:HKKAZ:N:HKCDN:J:HKCSB:N:HKCSA:J:HKWPD:N:DKPAE:J:HKCDL:J:HKPRO:N:HKCSE:J:HKCSL:J:HKCDB:N:HKSAL:N:HKCDE:J'HIPINS:27:1:4+1+1+0+5:10:6:Kontonummer::HKSPA:N:HKPAE:J:HKCCS:J:HKTAN:N:HKKAZ:N:HKCDN:J:HKCSB:N:HKCSA:J:HKWPD:N:DKPAE:J:HKCDL:J:HKPRO:N:HKCSE:J:HKCSL:J:HKCDB:N:HKSAL:N:HKCDE:J'HISYN:28:4:5+000006HL10L2SP733L1KVLG07QJ00S''HNHBS:29:1+1'
[01.04.2020 11:17:44] HNHBK:1:3+000000000410+300+0+1'HNVSK:998:3+PIN:1+998+1+1::0+1:20200401:111744+2:2:13:@800000000:5:1+280:50010517:1234567890:V:0:0+0'HNVSD:999:1+@247@HNSHK:2:4+PIN:1+999+831998532000637+1+1+1::0+1+1:20200401:111744+1:999:1+6:10:16+280:50010517:1234567890:S:0:0'HKIDN:3:2+280:50010517+1234567890+0+1'HKVVB:4:3+0+0+0+9FA6681DEC0CF3046BFC2F8A6+0.0.1'HKSYN:5:3+0'HNSHA:6:2+831998532000637++1234567890''HNHBS:7:1+1'
[01.04.2020 11:17:44] HNHBK:1:3+000000001602+300+000006HL10QF9UUFQ7CEQNFPLNS7VG+1+000006HL10QF9UUFQ7CEQNFPLNS7VG:1'HNVSK:998:3+PIN:1+998+1+2::0+1+2:2:13:@8@ :6:1+280:50010517:1234567890:V:0:0+0'HNVSD:999:1+@1391@HIRMG:2:2:+3060::Teilweise liegen Warnungen/Hinweise vor.'HIRMS:3:2:3+0020::Angemeldet.'HIRMS:4:2:4+0020::Informationen fehlerfrei entgegengenommen.+3050::BPD nicht mehr aktuell. Aktuelle Version folgt.+3920::Zugelassene Ein- und Zwei-Schritt-Verfahren f�r den Benutzer:900'HIRMS:5:2:5+0020::Die Synchronisierung der Kundensystem-ID war erfolgreich.'HIBPA:6:3:4+7+280:50010517+ING-DiBa+0+1+220:300+200'HIKOM:7:4:4+280:50010517+1+3:https?://fints.ing-diba.de/fints/'HISPAS:8:1:4+1+1+0+J:J:J:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.003.03'HIPAES:9:1:4+1+1+0'HICCSS:10:1:4+1+1+0'HITANS:11:1:4+1+1+0+J:N:0:0:900:2:iTAN:iTAN:6:1:Index:3:1:N:N'HIKAZS:12:5:4+1+1+390:N:N'HICDNS:13:1:4+1+1+1+0:1:360:J:J:J:J:J:N:N:N:J:00:00::0'HICSBS:14:1:4+1+1+0+N:N'HICSAS:15:1:4+1+1+0+1:360'HIWPDS:16:6:4+1+1+0+N:N:N'HIWPDS:17:5:4+1+1+N:N:N'DIPAES:18:1:4+1+1'HICDLS:19:1:4+1+1+1+1:360:N:J'HIPROS:20:3:4+1+1'HICSES:21:1:4+1+1+0+1:360'HICSLS:22:1:4+1+1+0+J'HICDBS:23:1:4+1+1+0+N'HISALS:24:5:4+1+1'HICDES:25:1:4+1+1+1+4:1:360:00:00::0'DIPINS:26:1:4+1+1+HKSPA:N:HKPAE:J:HKCCS:J:HKTAN:N:HKKAZ:N:HKCDN:J:HKCSB:N:HKCSA:J:HKWPD:N:DKPAE:J:HKCDL:J:HKPRO:N:HKCSE:J:HKCSL:J:HKCDB:N:HKSAL:N:HKCDE:J'HIPINS:27:1:4+1+1+0+5:10:6:Kontonummer::HKSPA:N:HKPAE:J:HKCCS:J:HKTAN:N:HKKAZ:N:HKCDN:J:HKCSB:N:HKCSA:J:HKWPD:N:DKPAE:J:HKCDL:J:HKPRO:N:HKCSE:J:HKCSL:J:HKCDB:N:HKSAL:N:HKCDE:J'HISYN:28:4:5+000006HL10QKFPIUMARFKHMA69ERQH''HNHBS:29:1+1'
[01.04.2020 11:17:44] HNHBK:1:3+000000000410+300+0+1'HNVSK:998:3+PIN:1+998+1+1::0+1:20200401:111744+2:2:13:@800000000:5:1+280:50010517:1234567890:V:0:0+0'HNVSD:999:1+@247@HNSHK:2:4+PIN:1+999+173867937131890+1+1+1::0+1+1:20200401:111744+1:999:1+6:10:16+280:50010517:1234567890:S:0:0'HKIDN:3:2+280:50010517+1234567890+0+1'HKVVB:4:3+0+0+0+9FA6681DEC0CF3046BFC2F8A6+0.0.1'HKSYN:5:3+0'HNSHA:6:2+173867937131890++1234567890''HNHBS:7:1+1'
[01.04.2020 11:17:44] HNHBK:1:3+000000001602+300+000006HL10QRIAML7E5U8856EO2J60+1+000006HL10QRIAML7E5U8856EO2J60:1'HNVSK:998:3+PIN:1+998+1+2::0+1+2:2:13:@8@ :6:1+280:50010517:1234567890:V:0:0+0'HNVSD:999:1+@1391@HIRMG:2:2:+3060::Teilweise liegen Warnungen/Hinweise vor.'HIRMS:3:2:3+0020::Angemeldet.'HIRMS:4:2:4+0020::Informationen fehlerfrei entgegengenommen.+3050::BPD nicht mehr aktuell. Aktuelle Version folgt.+3920::Zugelassene Ein- und Zwei-Schritt-Verfahren f�r den Benutzer:900'HIRMS:5:2:5+0020::Die Synchronisierung der Kundensystem-ID war erfolgreich.'HIBPA:6:3:4+7+280:50010517+ING-DiBa+0+1+220:300+200'HIKOM:7:4:4+280:50010517+1+3:https?://fints.ing-diba.de/fints/'HISPAS:8:1:4+1+1+0+J:J:J:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.003.03'HIPAES:9:1:4+1+1+0'HICCSS:10:1:4+1+1+0'HITANS:11:1:4+1+1+0+J:N:0:0:900:2:iTAN:iTAN:6:1:Index:3:1:N:N'HIKAZS:12:5:4+1+1+390:N:N'HICDNS:13:1:4+1+1+1+0:1:360:J:J:J:J:J:N:N:N:J:00:00::0'HICSBS:14:1:4+1+1+0+N:N'HICSAS:15:1:4+1+1+0+1:360'HIWPDS:16:6:4+1+1+0+N:N:N'HIWPDS:17:5:4+1+1+N:N:N'DIPAES:18:1:4+1+1'HICDLS:19:1:4+1+1+1+1:360:N:J'HIPROS:20:3:4+1+1'HICSES:21:1:4+1+1+0+1:360'HICSLS:22:1:4+1+1+0+J'HICDBS:23:1:4+1+1+0+N'HISALS:24:5:4+1+1'HICDES:25:1:4+1+1+1+4:1:360:00:00::0'DIPINS:26:1:4+1+1+HKSPA:N:HKPAE:J:HKCCS:J:HKTAN:N:HKKAZ:N:HKCDN:J:HKCSB:N:HKCSA:J:HKWPD:N:DKPAE:J:HKCDL:J:HKPRO:N:HKCSE:J:HKCSL:J:HKCDB:N:HKSAL:N:HKCDE:J'HIPINS:27:1:4+1+1+0+5:10:6:Kontonummer::HKSPA:N:HKPAE:J:HKCCS:J:HKTAN:N:HKKAZ:N:HKCDN:J:HKCSB:N:HKCSA:J:HKWPD:N:DKPAE:J:HKCDL:J:HKPRO:N:HKCSE:J:HKCSL:J:HKCDB:N:HKSAL:N:HKCDE:J'HISYN:28:4:5+000006HL10R08AUUPTBQD016SAAPQ3''HNHBS:29:1+1'
[01.04.2020 11:17:44] HNHBK:1:3+000000000485+300+0+1'HNVSK:998:3+PIN:2+998+1+1::000006HL10R08AUUPTBQD016SAAPQ3+1:20200401:111744+2:2:13:@800000000:5:1+280:50010517:1234567890:V:0:0+0'HNVSD:999:1+@293@HNSHK:2:4+PIN:2+900+637636039363324+1+1+1::000006HL10R08AUUPTBQD016SAAPQ3+1+1:20200401:111744+1:999:1+6:10:16+280:50010517:1234567890:S:0:0'HKIDN:3:2+280:50010517+1234567890+000006HL10R08AUUPTBQD016SAAPQ3+1'HKVVB:4:3+0+0+0+9FA6681DEC0CF3046BFC2F8A6+0.0.1'HNSHA:6:2+637636039363324++1234567890''HNHBS:7:1+1'
[01.04.2020 11:17:44] HNHBK:1:3+000000000198+300+000006HL10R8396IV63VH83P3RUSHO+1+000006HL10R8396IV63VH83P3RUSHO:1'HIRMG:2:2:+9800::Der Dialog wurde abgebrochen.+9110::Unbekannter Aufbau der Kundennachricht.'HNHBS:3:1+1'

FinTS3.0 Server meldet "abschliessendes Trennzeichen fehlt"

An was kann es liegen, wenn ich bei folgendem Code einen Meldung zurück bekomme "abschließendes Trennzeichen fehlt"??

ConnectionDetails connectionDetails = new ConnectionDetails() { Account = "XXXXX", Blz = Convert.ToInt32("62050000"), Url = "https://banking-bw2.s-fints-pt-bw.de/fints30", HBCIVersion = Convert.ToInt32(300), UserId = "XXXXXXX", Pin = "XXXXX" }; var sync = libfintx.Main.Synchronization(connectionDetails);

{"Data":null,"IsSuccess":false,"HasInfo":false,"HasWarning":false,"HasError":true,"HasUnknown":true,"Messages":[{"Type":3,"IsSuccess":false,"IsInfo":false,"IsWarning":false,"IsError":true,"IsUnknown":true,"Code":"9050","Message":"Die Nachricht enthält Fehler."},{"Type":3,"IsSuccess":false,"IsInfo":false,"IsWarning":false,"IsError":true,"IsUnknown":true,"Code":"9130","Message":"abschliessendes Trennzeichen fehlt"}]}

9050: Die Nachricht enthält Fehler., 9130: abschliessendes Trennzeichen fehlt

Danke für die Hilfe!

.NET Standard library

Greetings,

thank you so much for this wonderful project. One question though: Do you consider to implement netstandard instead of specific frameworks to make your library framework independent?

Many thanks and Best regards
-Simon

Can't get transactions or balance from 1822direkt account

Hi,

currently I try to get the balance or transactions from my 1822direkt account, but I always get a error message. I use the following settings:

BLZ: 50050222
UserID: My online banking account user name
URL: https://fints.1822direkt.com/fints/hbci
Version: 300

The return message is always:
"HNHBK:1:3+000000000246+300+0+1+0:1'HNVSK:998:3+PIN:1+998+1+2::0+1:20170519:183634+2:2:13:@8@\0\0\0\0\0\0\0\0:5:1+280:50050222:XXXXXXXA:V:0:0+0'HNVSD:999:1+@82@HIRMG:2:2+9800::Dialogintialisierung abgebrochen.+9120::Nachricht nicht erwartet.''HNHBS:3:1+1'"

I replace my username with XXXXXXXA in the return message.

Best regards,
Steffen

HKKAZ Error

Downloading transactions fails, HBCI response:
9050::Die Nachricht enth?lt Fehler.'HIRMS:4:2:3+9380::Der Auftrag wurde abgelehnt.+9380::Berechtigung f?r diesen Gesch?ftsvorfall nicht ausreichend.

HBCI RDH-10 support

It is to be considered whether this security procedure should be incorporated.

I already have source code which just does not work yet. The signing of the message and the creation of the INI letter are not working yet.

Does anyone have any interest in doing this?

Implement missing banks

Currently the code needs to be fixed to work with every german bank.

Maybe someone can commit source code for this.

SCA / PSD2

Hi, is there a plan to support SCA? I've seen there is a branch, what's the status/support needed on that?

Implement photoTAN support

The tan procedure phototan should be incorporated into the library as the last missing TAN procedure.

Make "write to filesystem" optional (or add encryption)

Current situation:
Multiple functions of the lib write data into the user's document folder. From a data security point of view this isn't that good. For example if someone uses this lib to build a banking software and one of the users shares a computer with his familiy. Every family member could get access to his private bank account data.

Ideas:

  • Make write to diks optional (by method parameters or config variable)
  • Encrypt data before writing it to disk (AES key for example could be set in the Init-method of the library)

Questions:
I really like to understand your motivation for writing this data to disk/implementing it this way. Can you help me to get a understanding of this?

Can't get transactions from Sparkasse (solved) / ING DIBA (open)

Hi Torsten,

first thanks for your astonishing work. Unfortunately I can't get the transactions from an Sparkasse (Hildesheim) account.

That's my code so far:

libfintx.Main.Assembly("libfintx", "0.1");
var sync = libfintx.Main.Synchronization(25950130, "https://banking-ni2.s-fints-pt-ni.de/fints30", 300, "XXXXXXXXX", "XXXXXX", false);
var balance = libfintx.Main.Balance("XXXXXXXXX", 25950130, "DE42259501300XXXXXXXXX", "NOLADE21HIK", "https://banking-ni2.s-fints-pt-ni.de/fints30", 300,"XXXXXXXXX", "XXXXXX", false);
var trans = libfintx.Main.Transactions("XXXXXXXXX", 25950130, "DE42259501300XXXXXXXXX", "NOLADE21HIK", "https://banking-ni2.s-fints-pt-ni.de/fints30", 300, "XXXXXXXXX", "XXXXXX", false);

Synchronization() gives true and Balance() gives thes correct balance. But Transactions() gives "OK", but no MT940 folder is created. (If I'm right the transactions should be saved as MT940 files?!)

Via debugger I grabbed the following bankCode. I think it's the response from the bank.

HNHBK:1:3+000000000535+300+975229635374=001912201161CN5T=+2+975229635374=001912201161CN5T=:2'HNVSK:998:3+PIN:1+998+1+2::?+PumhqCOdWEBAACsmx1zqukWrAQA+1:20180208:143703+2:2:13:@8@00000000:5:1+280:25950130:XXXXXXXXX:V:0:0+0'HNVSD:999:1+@283@HNSHK:2:4+PIN:2+910+1789155502842709+1+1+2::?+PumhqCOdWEBAACsmx1zqukWrAQA+1+1:20180208:143703+1:999:1+6:10:16+280:25950130:XXXXXXXXX:S:0:0'HIRMG:3:2+9050::Die Nachricht enth?lt Fehler.'HIRMS:4:2:3+9110:2,2:Ung?ltige Auftragsnachricht?: Unbekannter Aufbau.'HNSHA:5:2+1789155502842709''HNHBS:6:1+2'

The libfintx log looks as follows:

[08.02.2018 14:37:04] Starting job HKKAZ: Request transactions
[08.02.2018 14:37:04] HNVSK:998:3+PIN:1+998+1+1::?+PumhqCOdWEBAACsmx1zqukWrAQA+1:20180208:143704+2:2:13:@8@00000000:5:1+280:25950130:XXXXXX:V:0:0+0'
[08.02.2018 14:37:04] HNSHK:2:4+PIN:2+XXXXXX+1789155502842709+1+1+1::?+PumhqCOdWEBAACsmx1zqukWrAQA+1+1:20180208:143704+1:999:1+6:10:16+280:25950130:XXXXXX:S:0:0'
[08.02.2018 14:37:04] HNSHA:4:2+1789155502842709++XXXXXX'
[08.02.2018 14:37:04] HNVSD:999:1+@209@HNSHK:2:4+PIN:2+XXXXXX+1789155502842709+1+1+1::?+PumhqCOdWEBAACsmx1zqukWrAQA+1+1:20180208:143704+1:999:1+6:10:16+280:25950130:XXXXXX:S:0:0'HKKAZ:3:4+XXXXXX::280:25950130+N'HNSHA:4:2+1789155502842709++XXXXXX''
[08.02.2018 14:37:04] HNHBK:1:3+000000000428+300+975229635374=001912201161CN5T=+2'
[08.02.2018 14:37:04] HNHBS:5:1+2'
[08.02.2018 14:37:04] Connect to FinTS Server
[08.02.2018 14:37:04] Url: https://banking-ni2.s-fints-pt-ni.de/fints30

Endless loop in Transactions()-method

When there is more than one HKKAZ message, the others should be called with the startpoint.

Currently the check logic is:

if (BankCode.Contains("+3040::"))
{
       Helper.Parse_Message(BankCode);
       var Startpoint = Helper.Parse_String(BankCode, "vor:", "'");
       //....

Unfortunately this doesn't catch the startpoint (at least not for Sparkasse). The response looks like:

+3040::Es liegen weitere Informationen vor.:XXXX-XX-XX-XX.XX.XX.XXXXX'HI...

I try to fix this with a Regex and send in a PR later.

While fixing this I would like to replace the "GOTO"-code with a while loop, because GOTO shouldn't be used. (GOTO=bad style --> https://stackoverflow.com/questions/46586/goto-still-considered-harmful ) Hope this is ok for you?!

Suggestion: Reduce usage of static classes

As this libary is heavily depending on static classes theres no way to make concurrent transactions
as mentioned in #41

Would you mind if someone would rework the usage of static classes?

Consorsbank won't work

hi,
I'm trying to work with Consorsbank, but it throws an error:

Code: 3060 | Typ: Warning | Nachricht: Teilweise liegen Warnungen/Hinweise vor.
Code: 0020 | Typ: Success | Nachricht: Angemeldet.
Code: 0020 | Typ: Success | Nachricht: Informationen fehlerfrei entgegengenommen.
Code: 3050 | Typ: Warning | Nachricht: BPD nicht mehr aktuell. Aktuelle Version folgt.
Code: 3050 | Typ: Warning | Nachricht: UPD nicht mehr aktuell. Aktuelle Version folgt.
Code: 3920 | Typ: Warning | Nachricht: Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer:999
Code: 0020 | Typ: Success | Nachricht: Die Synchronisierung der Kundensystem-ID war erfolgreich.
Code: 9800 | Typ: Error | Nachricht: Der Dialog wurde abgebrochen.
Code: 9010 | Typ: Error | Nachricht: Ungültiger Signaturaufbau: Fehler im Segmentaufbau.

Other banks works just fine and the same data also works with Subsembly. I tried version 300 (results in the above) and 220 (results in below)

Code: 9800 | Typ: Error | Nachricht: Der Dialog wurde abgebrochen.
Code: 3060 | Typ: Warning | Nachricht: Teilweise liegen Warnungen/Hinweise vor.
Code: 9400 | Typ: Error | Nachricht: Das Sicherheitsverfahren der Signatur wird nicht unterstützt.

Any idea?

Nuget package

Hi,

I just stumbled upon your library and wanted to give it a try. Would be great if you create a Nuget package for it for easy integration into other projects.

Regards,

Pavel

Refactor FlickerCode

Current behaviour:
FlickerCode uses the FlickerRenderer to render the code onto a PictureBox.

Problem:
This process uses the PictureBox control which is not available on all frameworks.

Possible solution:
Remove parts where System.Windows.Forms-controls (like PictureBox) are used. Instead render the FlickerCode as animated GIF-image. This way the user of this lib can decide in which control he wants to render/show the FlickerCode.

Let me know, what you think about this solution and if I shall implement this.

Branch flex_account_switching

Hi,
schau dir mal bitte die Änderungen im Branch flex_account_switching an. Für mich selbst benötige ich das "neue" Feature nur in HKKAZ und HKSAL.
Wenn das ganze auf Interesse stösst, kann ich es natürlich in alle Segmente einbauen.
Um den Nutzen zu verdeutlichen, kann ich in den nächsten Tagen eines der Demoprogramme entsprechend ändern, oder ein Neues erstellen?
Bitte um Feedback, damit ich sinnvoll weitermachen kann.
Gruss
party-pansen

Integration in Framework 4.7.2

I'm unable to call a simple transfer when integrating the lib into a framework 4.7.2 projects. The sample application is working. I have compared every single step - line by line. All the codes and messages in my app and the given sample are really identical.

But I receive an error immediately: "challenge has been aborted" (method 942, mobile TAN)

I'm pretty sure there is a problem in the communication between the TANDialog and my form that is connected - like the sample - with a picturebox.

Is there any requirement due to compiler settings that could be responsible for the abort of the challenge?

Use HttpClient instead of HttpWebRequest

Currently each transaction performs a HttpWebRequest. The issue with this approach is that there is an overhead, since we keep connecting to the same URL an keep doing a new SSL each handshake each time.

With #57 we can hold a HttpClient for each Client class, which will reduce the amount of SSL handshakes required (we can perform multiple operations on the same connection). Also it allows the better use of asynchronous functions in the future.

XS2A Support

It would be great to also have XS2A support in this libary for more supported banks and other fin services across Europe.

Programm nicht PSD2-fähig

Hallo,
das libfintx-Sample hat vor ca. 2 Monaten funktioniert, nun bekomme ich von meiner Sparkasse beim Abruf des Kontostands diese Meldungen:

Code: 3060 | Typ: Warning | Nachricht: Bitte beachten Sie die enthaltenen Warnungen/Hinweise.
Code: 0020 | Typ: Success | Nachricht: Auftrag ausgeführt.
Code: 3050 | Typ: Warning | Nachricht: BPD nicht mehr aktuell, aktuelle Version enthalten.
Code: 3920 | Typ: Warning | Nachricht: Zugelassene Zwei-Schritt-Verfahren für den Benutzer.:921
Code: 0020 | Typ: Success | Nachricht: Der Auftrag wurde ausgeführt.
Code: 9050 | Typ: Error | Nachricht: Die Nachricht enthält Fehler.
Code: 9075 | Typ: Error | Nachricht: Banking-Programm nicht PSD2-fähig, bitte aktualisieren.
Code: 9800 | Typ: Error | Nachricht: Dialog abgebrochen
Code: 9340 | Typ: Error | Nachricht: Ungültige Auftragsnachricht: Ungültige Signatur.

Muss ich was tun oder hat die Sparkasse zwischenzeitlich ihren FintTS-Server upgedated und meine/die library ist nicht auf dem neuesten Stand?

Viele Grüße
Oliver

Change Android/iOS projects

Currently the Andoird and iOS projects have their own copy of code. It would be better to share the same codebase. So just create three projects (.csproj) for each target framework, but let them all link to the same code. So changes must only be made once.

If some parts have to be coded different for iOS/Android/.NET-full, then we can handle this with compiler flags (and still keep only one code base).

Test environment

For the execution of tests different test projects should be created.

Swap connection details into an own class

Current behaviour:
Nearly all methods of the Main-class share a set of same parameters. (string Account, int BLZ, string IBAN, string BIC, string URL, int HBCIVersion, string UserID, string PIN, bool Anonymous)

Problem:
Users of this library have to pass those parameters again and again.

Possible solution:
Create a class (e.g. ConnectionDetails) which holds those fields and just pass this class object to all the function of the Main-class. This would make the usage of this lib easier and more comfortable.

Let me know, what you think about this solution and if I shall implement this.

HBCI DDV Chipcard support

It is to be considered whether this security procedure should be incorporated.

Does anyone have any interest in doing this?

Bug: photoTAN Image

"Invalid photoTan image returned. Error: Das Quellarray ist nicht lang genug. Überprüfen Sie srcIndex, die Länge und die Untergrenze des Arrays."

mcode2.txt

This is the received matrix code from Raiffeisenbank.

Nur 1 Konto/Account pro connectionDetails auslesbar?

Hallo,
bereits in den connectionDetails muss man Iban/BIC oder Account/Blz angeben um später Kontostand und Transaktionen zu überprüfen. Hat man unter gleichem Login mehrere Konten, muss man komplett separate Verbindungen aufbauen.
Ist das Verständnis so korrekt, oder habe ich was übersehen?

Ich habe gerade folgendes getestet: in den connectionDetails habe ich nur noch die Felder Blz, Bic, Url, HbciVersion, UserId und Pin
Damit kann ich erfolgreich meine Konten/Accounts über client.Accounts() auslesen.
Jetzt würde ich gerne über diese Accounts iterieren und die Kontostände sowie Transaktionen abrufen. So wie ich das sehe ist das mit der aktuellen libfintx implementierung nicht möglich...

Wenn von Seiten des FinTS Protokolls nichts dagegen spricht, würde ich versuchen, so etwas zu integrieren?
@mrklintscher: Was hälst du davon?

Gruss
party-pansen

Fehler im Segmentaufbau

Wow! Must be a lot of work to implement FinTS! Nice Work!

I am trying to read the balance from my Ing Diba and Sparkasse account, but id did´t work.

My simple approach (data anonymized):

int BLZ = 50010517;
string IBAN = "DE00000000000000000000";
string BIC = "INGDDDEFFXXX";
string URL = "https://fints.ing-diba.de/fints/";
int ver = 300;
string USERID = "0000000000";
string PIN = "xxxxxxxx";
int ACCOUNT = 0;

libfintx.Main.Assembly("Test", "Alpha");
libfintx.Main.Synchronization(BLZ, URL, ver, USERID, PIN, false);
string balance = libfintx.Main.Balance(ACCOUNT, BLZ, IBAN, BIC, URL, ver, USERID, PIN, true);
Console.WriteLine(balance);

When a message is send FinTSMessage.cs "send()" the bank server returns:

'.....HIRMG:2:2:+9800::Der Dialog wurde abgebrochen.+9010::Ung?ltiger Signaturaufbau?: Fehler im Segmentaufbau.'HNHBS:3:1+1'

And: I don´t know how to use the ACCOUNT-Parameter, a account number is to big to be a integer type.

Beispiel Überweisung abschließen

Hi,
sehr genial die Lib! Habe noch ein letztes Problem mit der Überweisung und PushTan.
Leider bekomme ich die Transaktion noch nicht abgeschlossen.

string tan = "123456";
var result = libfintx.Main.TAN(connectionDetails, tan);
//bzw
var result = libfintx.Main.TAN4(connectionDetails, tan, "");

abgeschlossen. Nach TAN Anfoderung noch etwas zu beachten? Herausgebersignatur?

Fehler im Trace und Log (gegen https://hbci11.fiducia.de/cgi-bin/hbciservlet)
Beim erstellen mit

HBCI.Transfer(connectionDetails, receiver, receiverIBAN, receiverBIC,amount, usage, Segment.HIRMS, null, anonymous);

HIRMG:3:2+9050::Die Nachricht enthält Fehler.'
HIRMS:4:2:4+9010::SEPA?: Angaben unvollständig.'
HNSHA:5:2+381535068464551''HNHBS:6:1+2'

Die SMS mit der PushTAN wir aber dennoch verschickt, dann aber mit libfintx.Main.TAN/TAN4 =>

Starting job TAN process 4
...
HIRMG:3:2+9050::Die Nachricht enthält Fehler.+3905::Antwortliste konnte nicht signiert werden.'
HIRMS:4:2:3+9370::Herausgebersignatur für bezogenen Benutzer fehlt.'
HNSHA:5:2+2083820639177278''HNHBS:6:1+3'

Viele Grüße

Error getting transactions from netbank account

I am trying to get the transaction from my netbank account but i get the following error:
[Warning] 3060 Bitte beachten Sie die enthaltenen Warnungen/Hinweise.
[Warning] 3110 Segment unbekannt

The same code using your library works for my MLP accounts.
I can get the transactions for the netbank count using the Subsembly FinTS API. I am looking into your project because Subsembly changed their licence is not free any more for personal use.

        private static int GetTransactions(ConnectionDetails connectionDetails)
        {
            Segment.Reset();
            var sync = libfintx.Main.Synchronization(connectionDetails);
            Program.WriteMessages(sync.Messages);
            if (!sync.IsSuccess)
                return 1;
            var transactions = libfintx.Main.Transactions(connectionDetails, false);
            Program.WriteMessages(transactions.Messages);
            if (!transactions.IsSuccess)
                return 1;
            foreach (var item in transactions.Data)
            {
                foreach (var i in item.SWIFTTransactions)
                {
                    Console.WriteLine("Datum: {0} | Empfänger / Auftraggeber: {1} | Verwendungszweck: {2} | Betrag: {3}", i.inputDate, i.partnerName, i.text, i.amount);
                }
            }
            return 0;
        }

Example: TANDialog

Could someone explain, how TANDialog is used, for example when calling main.Balance(...) ?
Can't figure out how to get it working, and the included unit test doesn't work.

With the older Version in https://github.com/mrklintscher/libfintx_test for example, it works still fine with my account.

Sorry for this beginners question!

[question] TX Unique ID?

Hi,

I would like to synchronize transactions with a database. How can I clearly assign the transactions to existing ones to avoid duplication? Is there no unique ID? Have someone a solution for it? Is there a combination of fields that result in a unique ID? In case of two equivalent transactions, same day, adress, description is there a possibility to differentiate?


Hi,

ich würde gerne Transaktionen mit einer Datenbank abgleichen. Mir stellt sich nur die Frage wie ich die Transaktionen eindeutig zuordnen kann zu bestehenden um Dopplungen zu vermeiden. Gibt es hier keine unique ID bzw. hat jemand eine Lösung dafür? Gibt es eine Kombination an Feldern die eine unique ID ergeben? Wenn ich so an eine Doppelüberweisung denke, wo alles gleich ist, Tag, Ziel, Verwendungszweck etc..

Expose transaction data in code

Intro:
If I analyzed your code correct, then currently when requesting transactions the transactions will read into structured data/classes like SWIFTStatements, SWIFTTransactions only to write them into a plain text file later ({account}.MT940).

Current situation:
If someone wanted to use your library to show transaction of a bankaccount in his application, he has to call libfintx.Main.Transactions(...) and after that manually read in and parse the MT940 file.

Idea / questions:

  • What do you think of exposing the SWIFTStatements, SWIFTTransactions in code? (May it be in the libfintx.Main.Transactions(...) or in a new function like libfintx.Main.GetTransactions(...))
  • Did you plan to write such method or would you merge this, if I would implement it for you?

Special charactars in PIN

I had a pin including & and : and could not logon to my netbank account. After changing to a purely alpha numerical PIN i could log in.
I am getting some warnings in the messages list though:
[Warning] 3060 Bitte beachten Sie die enthaltenen Warnungen/Hinweise.
[Success] 0020 Auftrag ausgeführt.
[Warning] 3050 UPD nicht mehr aktuell, aktuelle Version enthalten.
[Warning] 3050 BPD nicht mehr aktuell, aktuelle Version enthalten.
[Success] 0020 Auftrag ausgeführt.
[Warning] 3920 Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer.:901

Freelancing

Maybe there is a freelancer, which can finish this library to work with all banks.

Please make some offers.

Problem with DKB Bank

Hi,
I am already successfully using this library for accessing a Volksbank.

I am currently switching to DKB. Unfortunately it ist not working...

I executed the following code:

Console.WriteLine(Environment.NewLine + "Synchronization..." + Environment.NewLine + "-------------------------------------------");
var result_sync = await client.Synchronization();

HBCIOutput(result_sync.Messages);
if (!result_sync.IsSuccess)
  return;

Console.WriteLine(Environment.NewLine + "Accounts..." + Environment.NewLine + "-------------------------------------------");
var result_accounts = await client.Accounts(new libfintx.TANDialog(WaitForTanAsync));
if (!result_accounts.IsSuccess) {
  HBCIOutput(result_accounts.Messages);
  return;
}

and received:

Synchronization...

Code: 3060 | Typ: Warning | Nachricht: Bitte beachten Sie die enthaltenen Warnungen/Hinweise.
Code: 0020 | Typ: Success | Nachricht: Auftrag ausgeführt.
Code: 3050 | Typ: Warning | Nachricht: BPD nicht mehr aktuell, aktuelle Version enthalten.
Code: 3920 | Typ: Warning | Nachricht: Zugelassene Zwei-Schritt-Verfahren für den Benutzer.:921
Code: 0020 | Typ: Success | Nachricht: Der Auftrag wurde ausgeführt.

Accounts...

Code: 9050 | Typ: Error | Nachricht: Die Nachricht enthält Fehler.
Code: 3905 | Typ: Warning | Nachricht: Es wurde keine Challenge erzeugt.
Code: 9800 | Typ: Error | Nachricht: Dialog abgebrochen
Code: 3920 | Typ: Warning | Nachricht: Zugelassene Zwei-Schritt-Verfahren für den Benutzer.:921
Code: 9933 | Typ: Error | Nachricht: Ihr Zugang ist gesperrt - Bitte informieren Sie Ihren Berater. (MBV07390100170)

Any idea what happended?
What can I do to debug this?

I read something about an additional "Legitimations-ID" from DKB that can be used by external software. Any idea whether this is necessary to put into the coonnectionDetails? But which field?

Any experience with DKB?
I already contact them to unlock the account. Maybe they can give any hint?

Best regards
party-pansen

[Feedback Requested] PSD2 Support

I probably will have to, rather than FinTS, look into implementing the whole PSD2 Standard.
I plan on creating a PR once that is done to this library, so i wonder if someone has any opinions about how i should structure the code, for it to get Part of the library.

I thought about making it its own client for starters, allowing to later integrating it properly into any possible form to the library, providing the basic capabilities first.

Multiple accounts at differant banks

Hello,

I copiled it to a DLL and integrated it into my .net Web Application.
If I get a balance from account 1 it works fine.
Account 2 directly afterwards fails. (Error during initialisation)

If i then stop the debugging and restart and get balance from 2 it works (So the login is correct) and fails for 1.
It only works for one account until I halt and restart.

The Accounts are with differant banks.

Do I need to re-initialize something? I always use a new connectiondata object.

Thanks for your help.

Regards
Thomas

Log Extract:
[22.08.2018 20:47:15] Connect to FinTS Server
[22.08.2018 20:47:15] Url: https://hbci11.fiducia.de/cgi-bin/hbciservlet
[22.08.2018 20:47:17] System.Exception: Invalid HIRMS/Tan-Mode detected. Please choose one of the allowed modes: 962;972;982;901
at libfintx.Helper.Parse_Segment(String UserID, Int32 BLZ, Int32 HBCIVersion, String Message)
[22.08.2018 20:47:17] Sync failed
[22.08.2018 20:47:17] Error in initialization.

RDH-10 encryption error

HNHBK:1:3+000000000253+300+633208565699595+1+633208565699595:1'
HIRMG:2:2+9050::Die Nachricht enthält Fehler.+9800::Dialog abgebrochen'
HIRMS:3:2:999+9030::Fehler bei der Entschlüsselung der Nachricht.+9800::Daten sind nicht zu entschlüsseln.'
HNHBS:4:1+1'

Wrong decoding of FinTSMessage responses

Why do you use DecodeFrom64(...) which uses ASCII encoding in the webresponse?
https://github.com/mrklintscher/libfintx/blob/8c312f4cf8f60acbace7e3ddfa5807fa7149d45f/libfintx/Message/FinTSMessage.cs#L221
I don't know the reason, but I think it should be decoded as "ISO-8859-1". Because as ASCII there are encoding errors like:
Auftrag wurde ausgef?hrt
instead of:
Auftrag wurde ausgeführt

If there's no special reason, I would fix this with my next PR. (I would exchange DecodeFrom64 with DecodeFrom64EncodingDefault and change its encoding from "iso8859-1" to "ISO-8859-1".)

Proglem beim Abruf der Daten von Sparkasse

Hallo mrklintscher,

erst mal danke dafür, das du deine Arbeit mit allen teilst.
Ich wüßte gern, ob deine Version aktuelle noch laufen müßte. Hab da
ein paar Probleme mit dem Ablauf.
Ich habe folgendes gemacht:

static int BLZ = 4325XXXX;
    static string URL = "https://banking-wl5.s-fints-pt-wl.de/fints30";
    static int HBCIVersion = 300;
    static string UserID = "xxxxxxxxxx";
    static string PIN = "xxxxx";
    static bool Anonymous = false;
    static int Account = 0815;
    static string IBAN = "DEXXXXXXXXXXXXXXX";
    static string BIC = "BICxxxxxxxx";

    if (libfintx.Main.Synchronization(BLZ, URL, HBCIVersion, UserID, PIN, Anonymous))
        {
                string trans = libfintx.Main.Transactions(Account, BLZ, IBAN, BIC, URL, HBCIVersion, UserID, PIN, Anonymous);
            string balance = libfintx.Main.Balance(Account, BLZ, IBAN, BIC, URL, HBCIVersion, UserID, PIN, Anonymous);
         }

Der String "trans" hat als inhalt "OK".
Der String "balance" hat als Inhalt "??9160:7,4:Pflichtfeld nicht gefunden".
Ich bin mir auch nicht ganz sicher, was bei UserID angegeben werden muß.
Entweder die Kunden-ID oder der Benutzername der beim Browser-Banking angegbeben wird.

Vielleicht kannst du ja helfen.

Danke
WildBilly

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.