Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jakarta-Branch Rebase auf aktuellen Master #98

Open
wants to merge 105 commits into
base: 4.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
6c9b96a
Umstellung von HBCIPassportRAH10.init() auf protected, um die Nutzung…
mwalliczek Mar 11, 2023
699209d
Merge pull request #78 from mwalliczek/master
willuhn Mar 13, 2023
d4f04a5
RAH10 in Feature-Liste aufgenommen
willuhn Mar 13, 2023
85b7593
Versionshinweis
willuhn Mar 13, 2023
1801e48
[maven-release-plugin] prepare release hbci4j-core-3.1.67
willuhn Mar 13, 2023
5785457
[maven-release-plugin] prepare for next development iteration
willuhn Mar 13, 2023
028377b
Einbeziehung der Subnumber als Suchkriterium für ein Konto
mwalliczek Mar 16, 2023
e65e05c
Merge pull request #79 from mwalliczek/master
willuhn Mar 16, 2023
8ba4805
Alter multiple pain versions to use arbitrary currencies
Mar 21, 2023
05b7093
Revert schemata changes
Mar 23, 2023
72b6e5b
Revert usage of arbitrary currencies for different pain versions
Mar 23, 2023
1fdc1d1
Respect optional parameter btg.curr in order to use arbitrary currencies
Mar 23, 2023
0f2c3dd
Merge pull request #80 from simB87/introduceVariableCurrencyCodes
willuhn Mar 23, 2023
a610a77
Fix license headers
jspricke Jun 24, 2023
d5eac4d
Merge pull request #82 from jspricke/fix_licendse
willuhn Jun 24, 2023
3adf962
Exceptions loggen, die beim Einreichen des Schlüssels aufgetreten sind.
willuhn Jul 4, 2023
9c1699a
Merge branch 'master' of [email protected]:hbci4j/hbci4java.git
willuhn Jul 4, 2023
6da53f6
[maven-release-plugin] prepare release hbci4j-core-3.1.68
willuhn Jul 4, 2023
981a939
[maven-release-plugin] prepare for next development iteration
willuhn Jul 4, 2023
cc38813
INIT_FLIP_USER_INST nur noch bei PIN/TAN-Bankzugängen berücksichtigen.
willuhn Jul 5, 2023
244322c
Auch Umsatzbuchungen mit fehlenden Entry-Details übernehmen. Siehe
willuhn Jul 11, 2023
4a84ce8
[maven-release-plugin] prepare release hbci4j-core-3.1.69
willuhn Jul 11, 2023
fcb12f6
[maven-release-plugin] prepare for next development iteration
willuhn Jul 11, 2023
f04cacc
Aktualisierte BLZ-Datei vom 18.07.2023
willuhn Jul 31, 2023
0f7626d
PR #31
willuhn Aug 4, 2023
6cbd0c7
Berücksichtigung von Return-Code 9391
willuhn Aug 24, 2023
1f9eb41
[maven-release-plugin] prepare release hbci4j-core-3.1.70
willuhn Aug 24, 2023
fa64448
[maven-release-plugin] prepare for next development iteration
willuhn Aug 24, 2023
dc74ca6
Neue Server-Adresse der Umweltbank per 09.10.2023 - siehe
willuhn Aug 25, 2023
0176c40
Neue Bankenliste vom 06.09.2023
willuhn Sep 8, 2023
775bc7b
[maven-release-plugin] prepare release hbci4j-core-3.1.71
willuhn Sep 8, 2023
69e581b
[maven-release-plugin] prepare release hbci4j-core-3.1.71
willuhn Sep 8, 2023
bf73b28
[maven-release-plugin] rollback the release of hbci4j-core-3.1.71
willuhn Sep 8, 2023
476412e
Merge branch 'master' of github.com:hbci4j/hbci4java
willuhn Sep 8, 2023
a72e189
[maven-release-plugin] rollback the release of hbci4j-core-3.1.71
willuhn Sep 8, 2023
454687c
[maven-release-plugin] rollback the release of hbci4j-core-3.1.71
willuhn Sep 8, 2023
5dccff5
Merge branch 'master' of [email protected]:hbci4j/hbci4java.git
willuhn Sep 8, 2023
4a126ac
[maven-release-plugin] prepare release hbci4j-core-3.1.71
willuhn Sep 8, 2023
e212972
[maven-release-plugin] rollback the release of hbci4j-core-3.1.71
willuhn Sep 8, 2023
725af2d
revert f04caccfed57a47a3a83f18d40a4a6148761ede5
willuhn Sep 14, 2023
690b0a5
[maven-release-plugin] prepare release hbci4j-core-3.1.71
willuhn Sep 14, 2023
0a22fc0
[maven-release-plugin] prepare for next development iteration
willuhn Sep 14, 2023
52e23da
Neue BLZ-Datei vom 09.10.2023:
willuhn Oct 9, 2023
75a0af1
BIC beim Ändern und Löschen von Daueraufträgen optional
willuhn Oct 23, 2023
0b6f484
[maven-release-plugin] prepare release hbci4j-core-3.1.72
willuhn Oct 23, 2023
78407d3
[maven-release-plugin] prepare for next development iteration
willuhn Oct 23, 2023
3123436
Erweiterung der CAMT-Parser um die Gläubiger-ID
tlei Nov 12, 2023
f681d3d
Formatierung korrigieren
tlei Nov 12, 2023
1602074
Merge pull request #86 from tlei/master
willuhn Nov 13, 2023
59cdeff
[maven-release-plugin] prepare release hbci4j-core-3.1.73
willuhn Nov 14, 2023
71aa768
[maven-release-plugin] prepare for next development iteration
willuhn Nov 14, 2023
8563a7d
[maven-release-plugin] rollback the release of hbci4j-core-3.1.73
willuhn Nov 14, 2023
a51fb00
3.1.73 scheint trotz Fehler trotzdem bei Sonatype angekommen zu sein.
willuhn Nov 14, 2023
8614bc6
DE "curr" nur bis HKSAL4 mitsenden.
willuhn Dec 8, 2023
555dde8
Erster Code für PushTAN Decoupled
willuhn Dec 21, 2023
ad5183f
PushTAN Decoupled: TAN-Prozess S wurde an einigen Stellen noch nicht
willuhn Dec 22, 2023
ead6f37
PushTAN Decoupled: Die PIN fehlte im HNSHA
willuhn Dec 22, 2023
34fd256
PushTAN Decoupled: DE mit der TAN weglassen und nicht leer senden
willuhn Dec 22, 2023
5ceeca3
[maven-release-plugin] prepare release hbci4j-core-3.1.74
willuhn Dec 22, 2023
709bb9e
[maven-release-plugin] prepare for next development iteration
willuhn Dec 22, 2023
4cabd54
Behandlung des Callbacks fehlte noch
willuhn Dec 22, 2023
d2fbc0c
Loglevel auf DEBUG gesenkt - Feature funktioniert zuverlässig
willuhn Jan 10, 2024
86593a9
refactor: let HBCIHandler implement Autoclosable so it can be used wi…
danielr1996 Jan 30, 2024
3768b94
Merge pull request #90 from danielr1996/master
willuhn Jan 31, 2024
8bb68bd
Aktualisierte BLZ-Datei per 27.02.2024
willuhn Feb 28, 2024
d98761a
Merge branch 'master' of [email protected]:hbci4j/hbci4java.git
willuhn Feb 28, 2024
ee68c18
[maven-release-plugin] prepare release hbci4j-core-3.1.75
willuhn Feb 29, 2024
a992144
[maven-release-plugin] prepare for next development iteration
willuhn Feb 29, 2024
18202c4
Das Element "SchmeNm" wurde vergessen, zum Dokument hinzuzufügen. Siehe
willuhn Mar 19, 2024
f2015bd
[maven-release-plugin] prepare release hbci4j-core-3.1.76
willuhn Mar 19, 2024
d79eb07
[maven-release-plugin] prepare for next development iteration
willuhn Mar 19, 2024
c246f67
Erweitertes Logging bei der SCA
willuhn Apr 2, 2024
7105cdd
In DialogInitSCA fehlte das TAN2Step7 sodass bei HTKTAN-Version 7 gar
willuhn Apr 2, 2024
0b2fe26
[maven-release-plugin] prepare release hbci4j-core-3.1.77
willuhn Apr 2, 2024
265f7cc
[maven-release-plugin] prepare for next development iteration
willuhn Apr 2, 2024
1068566
Bei der Dialoginitialisierung mit SCA und HKTAN7 per Decoupled wurde im
willuhn Apr 4, 2024
2140a7b
Fallback auf HHDVersion.DEFAULT/DECCOUPLED, wenn nichts angegeben ist.
willuhn Apr 4, 2024
903d339
[maven-release-plugin] prepare release hbci4j-core-3.1.78
willuhn Apr 4, 2024
b536bc9
[maven-release-plugin] prepare for next development iteration
willuhn Apr 4, 2024
3c74ab6
DECOUPLED nicht mehr als Default-Version und TAN-Prozess S nur bei HKTAN
willuhn Apr 4, 2024
81eaa25
[maven-release-plugin] prepare release hbci4j-core-3.1.79
willuhn Apr 4, 2024
caf6c8c
[maven-release-plugin] prepare for next development iteration
willuhn Apr 4, 2024
b5c9bfd
Neue BLZ-Datei per 08.04.2024:
willuhn Apr 9, 2024
657c808
Name des DE in den BPD geändert, da es in AbstractSEPAGV ausgelesen wird
willuhn Apr 30, 2024
257a550
Nachtrag zu PR #67 - Feature-Flag direkt in HBCI4Java auf true setzen.
willuhn May 15, 2024
cbe23ca
[maven-release-plugin] prepare release hbci4j-core-3.1.80
willuhn May 15, 2024
2783c91
[maven-release-plugin] prepare for next development iteration
willuhn May 15, 2024
198188d
Decoupled-Verfahren status refresh
guyyst May 28, 2024
ae5eb9f
Versionsnummer '7' bei Refresh Parameter Queries durch Wildcard ersetzt
guyyst Jun 3, 2024
a4449ed
Merge pull request #94 from guyyst/master
willuhn Jun 3, 2024
db8cdcf
Da war ein Leerzeichen falsch
willuhn Jun 6, 2024
feae6ea
Log-Ausgaben korrigiert
willuhn Jun 12, 2024
2cb1ae4
"DEV" als Versionsnummer ausgeben, wenn die Anwendung in der IDE läuft
willuhn Jun 12, 2024
117c493
URL bereinigen
willuhn Jun 12, 2024
ec36007
Testen eines Passports incl. Bank-Kommunikation mit vorgefertigten
willuhn Jun 12, 2024
ff9aa51
Unendliche Wiederholungen bei einem abgelehnten Decoupled-Verfahren v…
guyyst Jul 29, 2024
48c53da
Merge pull request #95 from guyyst/master
willuhn Jul 30, 2024
27501c9
Automatisches Decoupled-Refresh per Feature.PINTAN_DECOUPLED_REFRESH
willuhn Aug 29, 2024
ebd315e
[maven-release-plugin] prepare release hbci4j-core-3.1.81
willuhn Aug 30, 2024
fa7f676
[maven-release-plugin] prepare for next development iteration
willuhn Aug 30, 2024
9f42a63
Warnhinweis anzeigen, wenn keine dedizierte Produktregistrierung
willuhn Sep 2, 2024
d5516d0
[maven-release-plugin] prepare release hbci4j-core-3.1.82
willuhn Sep 2, 2024
6d0f4da
[maven-release-plugin] prepare for next development iteration
willuhn Sep 2, 2024
7749660
Fix license headers
jspricke Sep 11, 2024
676ce2c
Merge pull request #96 from jspricke/license
willuhn Sep 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,250 changes: 625 additions & 625 deletions pom.xml

Large diffs are not rendered by default.

12 changes: 8 additions & 4 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
## Vorab

Dies ist die offizielle Quelle von HBCI4Java,
welches u.a. in [Hibiscus](http://www.willuhn.de/products/hibiscus)
zum Einsatz kommt.
Dies ist die offizielle Quelle von HBCI4Java, welches u.a. in [Hibiscus](http://www.willuhn.de/products/hibiscus) zum Einsatz kommt.

## Versionshinweis

- Version 3.x von HBCI4Java verwendet Java EE (javax.*).
- Version 4.x von HBCI4Java verwendet Jakarta EE (jakarta.*).

## Kontakt

Expand All @@ -23,7 +26,8 @@ Seither wurden umfangreiche neue Features hinzugefügt wie etwa:
- Support für alle aktuellen SEPA-PAIN-Versionen
- Unterstützung von PC/SC-Kartenlesern via javax.smartcardio API
- Eine aktuelle Bankenliste (mit BLZ, Server-Adresse, HBCI-Version,...)
- Die Unterstützung der neuen TAN-Verfahren (smsTAN, photoTAN, chipTAN - incl. Implementierung des HHD-Standards mit Flicker-Code)
- Unterstützung der neuen TAN-Verfahren (smsTAN, photoTAN, chipTAN - incl. Implementierung des HHD-Standards mit Flicker-Code)
- Unterstützung von RAH10-Schlüsseldateien

## Lizenz

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/kapott/hbci/GV/GVDauerSEPADel.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public GVDauerSEPADel(HBCIHandler handler) {
addConstraint("src.bic", "sepa.src.bic", null, LogFilter.FILTER_MOST);
addConstraint("src.iban", "sepa.src.iban", null, LogFilter.FILTER_IDS);
addConstraint("src.name", "sepa.src.name", null, LogFilter.FILTER_IDS);
addConstraint("dst.bic", "sepa.dst.bic", null, LogFilter.FILTER_MOST);
addConstraint("dst.bic", "sepa.dst.bic", "", LogFilter.FILTER_MOST); // Kann eventuell entfallen, da BIC optional
addConstraint("dst.iban", "sepa.dst.iban", null, LogFilter.FILTER_IDS);
addConstraint("dst.name", "sepa.dst.name", null, LogFilter.FILTER_IDS);
addConstraint("btg.value", "sepa.btg.value", null, LogFilter.FILTER_NONE);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/kapott/hbci/GV/GVDauerSEPAEdit.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public GVDauerSEPAEdit(HBCIHandler handler) {
addConstraint("src.bic", "sepa.src.bic", null, LogFilter.FILTER_MOST);
addConstraint("src.iban", "sepa.src.iban", null, LogFilter.FILTER_IDS);
addConstraint("src.name", "sepa.src.name", null, LogFilter.FILTER_IDS);
addConstraint("dst.bic", "sepa.dst.bic", null, LogFilter.FILTER_MOST);
addConstraint("dst.bic", "sepa.dst.bic", "", LogFilter.FILTER_MOST); // Kann eventuell entfallen, da BIC optional
addConstraint("dst.iban", "sepa.dst.iban", null, LogFilter.FILTER_IDS);
addConstraint("dst.name", "sepa.dst.name", null, LogFilter.FILTER_IDS);
addConstraint("btg.value", "sepa.btg.value", null, LogFilter.FILTER_NONE);
Expand Down
13 changes: 8 additions & 5 deletions src/main/java/org/kapott/hbci/GV/GVSaldoReq.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,17 @@ public GVSaldoReq(HBCIHandler handler)
{
this(handler,getLowlevelName());


boolean sepa = false;
int version = -1;
try
{
sepa = Integer.parseInt(this.getSegVersion()) >= 7;
version = Integer.parseInt(this.getSegVersion());
}
catch (Exception e)
{
HBCIUtils.log(e);
}


boolean sepa = version >= 7;
boolean nat = this.canNationalAcc(handler);

if (sepa)
Expand All @@ -69,9 +69,12 @@ public GVSaldoReq(HBCIHandler handler)
addConstraint("my.iban","KTV.iban",null, LogFilter.FILTER_IDS);
}

// Die DE mit der Währung wurde in HKSAL5 entfernt
if (version < 5)
addConstraint("my.curr","curr","EUR", LogFilter.FILTER_NONE);

if (nat || !sepa)
{
addConstraint("my.curr","curr","EUR", LogFilter.FILTER_NONE);
addConstraint("my.country","KTV.KIK.country","DE", LogFilter.FILTER_NONE);
addConstraint("my.blz","KTV.KIK.blz",null, LogFilter.FILTER_MOST);
addConstraint("my.number","KTV.number",null, LogFilter.FILTER_IDS);
Expand Down
73 changes: 62 additions & 11 deletions src/main/java/org/kapott/hbci/GV/GVTAN2Step.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,14 @@
import java.util.Properties;

import org.kapott.hbci.GV_Result.GVRSaldoReq;
import org.kapott.hbci.callback.HBCICallback;
import org.kapott.hbci.dialog.KnownReturncode;
import org.kapott.hbci.dialog.KnownTANProcess;
import org.kapott.hbci.exceptions.HBCI_Exception;
import org.kapott.hbci.manager.Feature;
import org.kapott.hbci.manager.HBCIHandler;
import org.kapott.hbci.manager.HBCIUtils;
import org.kapott.hbci.manager.HBCIUtilsInternal;
import org.kapott.hbci.manager.LogFilter;
import org.kapott.hbci.passport.AbstractPinTanPassport;
import org.kapott.hbci.passport.HBCIPassportInternal;
Expand All @@ -49,6 +53,9 @@ public class GVTAN2Step extends HBCIJobImpl
private HBCIJobImpl task;

private HBCIJobImpl redo;

// Die bisherige Anzahl von Decoupled Status refresh requests.
private int decoupledRefreshes = 0;

public static String getLowlevelName()
{
Expand Down Expand Up @@ -177,6 +184,15 @@ protected void saveReturnValues(HBCIMsgStatus status, int sref)
@Override
public HBCIJobImpl redo()
{
// Falls der redo job 'this' ist, wird ein redo für das Decoupled Verfahren durchgeführt, welcher jeweils
// nur ein mal pro 3956 status wiederholt werden soll. Um unendliche Wiederholungen zu vermeiden setzen wir
// also redo=null.
if (this.redo == this)
{
HBCIJobImpl redo = this.redo;
this.redo = null;
return redo;
}
return this.redo;
}

Expand All @@ -203,16 +219,52 @@ protected void extractResults(HBCIMsgStatus msgstatus,String header,int idx)
///////////////////////////////////////////////////////////////////////
// Die folgenden Sonderbehandlungen sind nur bei Prozess-Variante 2 in Schritt 2 noetig,
// weil wir dort ein Response auf einen GV erhalten, wir selbst aber gar nicht der GV sind sondern das HKTAN Step2
if (this.process == KnownTANProcess.PROCESS2_STEP2 && this.task != null)
if ((this.process == KnownTANProcess.PROCESS2_STEP2 || this.process == KnownTANProcess.PROCESS2_STEPS) && this.task != null)
{
// Pruefen, ob die Bank eventuell ein 3040 gesendet hat - sie also noch weitere Daten braucht.
// Das 3040 bezieht sich dann aber nicht auf unser HKTAN sondern auf den eigentlichen GV
// In dem Fall muessen wir dem eigentlichen Task mitteilen, dass er erneut ausgefuehrt werden soll.
if (StringUtil.toInsCode(this.getHBCICode()).equals(segCode) && KnownReturncode.W3040.searchReturnValue(msgstatus.segStatus.getWarnings()) != null && this.task.redoAllowed())
{
HBCIUtils.log("found status code 3040, need to repeat task " + this.task.getHBCICode(),HBCIUtils.LOG_DEBUG);
HBCIUtils.log("Weitere Daten folgen",HBCIUtils.LOG_INFO);
this.redo = this.task;
if (StringUtil.toInsCode(this.getHBCICode()).equals(segCode)) {
if (KnownReturncode.W3040.searchReturnValue(msgstatus.segStatus.getWarnings()) != null && this.task.redoAllowed()) {
// Pruefen, ob die Bank eventuell ein 3040 gesendet hat - sie also noch weitere Daten braucht.
// Das 3040 bezieht sich dann aber nicht auf unser HKTAN sondern auf den eigentlichen GV
// In dem Fall muessen wir dem eigentlichen Task mitteilen, dass er erneut ausgefuehrt werden soll.
HBCIUtils.log("found status code 3040, need to repeat task " + this.task.getHBCICode(),HBCIUtils.LOG_DEBUG);
HBCIUtils.log("Weitere Daten folgen",HBCIUtils.LOG_INFO);
this.redo = this.task;
} else if (Feature.PINTAN_DECOUPLED_REFRESH.isEnabled() && KnownReturncode.W3956.searchReturnValue(msgstatus.segStatus.getWarnings()) != null) {
// Beim Decoupled Verfahren kann die Bank ein 3956 senden, wenn der Nutzer den Prozess noch nicht bestätigt hat.
// In diesem Fall muss dieser task wiederholt werden, um erneut zu prüfen, ob die Bestätigung erfolgt ist.
// Wir benachrichtigen die Applikation mit einem entsprechenden Callback und warten eine mögliche Mindestzeit.
HBCIUtils.log("found status code 3956, need to repeat task " + this.getHBCICode(),HBCIUtils.LOG_DEBUG);
AbstractPinTanPassport pinTanPassport = (AbstractPinTanPassport) getMainPassport();
if (pinTanPassport.getDecoupledMaxRefreshes() != null && this.decoupledRefreshes >= pinTanPassport.getDecoupledMaxRefreshes()) {
throw new HBCI_Exception("*** the maximum number of decoupled refreshes has been reached.");
}
Integer timeBeforeDecoupledRefresh = this.decoupledRefreshes == 0
? pinTanPassport.getMinimumTimeBeforeFirstDecoupledRefresh()
: pinTanPassport.getMinimumTimeBeforeNextDecoupledRefresh();
long callbackDurationMs = System.currentTimeMillis();
HBCIUtilsInternal.getCallback().callback(
getMainPassport(),
HBCICallback.NEED_PT_DECOUPLED_RETRY,
"*** decoupled SCA still required",
HBCICallback.TYPE_TEXT,
new StringBuffer(String.valueOf(timeBeforeDecoupledRefresh != null ? timeBeforeDecoupledRefresh : 0)));
callbackDurationMs = System.currentTimeMillis() - callbackDurationMs;
if (timeBeforeDecoupledRefresh != null && callbackDurationMs < timeBeforeDecoupledRefresh * 1000) {
long sleepMs = timeBeforeDecoupledRefresh * 1000 - callbackDurationMs;
HBCIUtils.log(String.format(
"The pause before the next decoupled request was too short. Sleeping for %dms to reach the required delay.", sleepMs
),HBCIUtils.LOG_INFO);
try {
Thread.sleep(sleepMs);
} catch (InterruptedException e) {
throw new HBCI_Exception("*** Decoupled refresh sleep was interrupted.");
}
}
this.decoupledRefreshes++;
this.redo = this;
} else {
this.redo = null;
}
}

// Das ist das Response auf den eigentlichen GV - an den Task durchreichen
Expand All @@ -222,7 +274,7 @@ protected void extractResults(HBCIMsgStatus msgstatus,String header,int idx)
HBCIUtils.log("this is a response segment for the original task (" + this.task.getName() + ") - storing results in the original job",HBCIUtils.LOG_DEBUG);
this.task.fillJobResultFromTanJob(msgstatus, header, idx);
}

// Wir haben hier nichts weiter zu tun
return;
}
Expand Down Expand Up @@ -252,7 +304,6 @@ protected void extractResults(HBCIMsgStatus msgstatus,String header,int idx)
///////////////////////////////////////////////////////////////////////
// Daten fuer die TAN-Abfrage einsammeln

// Prozess-Variante 1:
final String challenge = result.getProperty(header+".challenge");
if (challenge != null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,10 @@ private DirectDebitTransactionInformation23 createDirectDebitTransactionInformat

final GenericPersonIdentification1 creditor = new GenericPersonIdentification1();
creditor.setId(sepaParams.getProperty(SepaUtil.insertIndex("creditorid", index)));

final PersonIdentificationSchemeName1Choice schema = new PersonIdentificationSchemeName1Choice();
schema.setPrtry("SEPA");
creditor.setSchmeNm(schema);
drctDbtTxInf.getDrctDbtTx().getCdtrSchmeId().getId().getPrvtId().getOthr().add(creditor);

drctDbtTxInf.getDrctDbtTx().setMndtRltdInf(new MandateRelatedInformation14());
Expand Down Expand Up @@ -232,7 +234,12 @@ private DirectDebitTransactionInformation23 createDirectDebitTransactionInformat
drctDbtTxInf.setInstdAmt(new ActiveOrHistoricCurrencyAndAmount());
drctDbtTxInf.getInstdAmt().setValue(new BigDecimal(sepaParams.getProperty(SepaUtil.insertIndex("btg.value", index))));

drctDbtTxInf.getInstdAmt().setCcy("EUR");
String currencyCode = sepaParams.getProperty(SepaUtil.insertIndex("btg.curr", index));
if(currencyCode != null && currencyCode.length() > 0) {
drctDbtTxInf.getInstdAmt().setCcy(currencyCode);
} else {
drctDbtTxInf.getInstdAmt().setCcy("EUR");
}

// Payment Information - Credit Transfer Transaction Information - Usage
String usage = sepaParams.getProperty(SepaUtil.insertIndex("usage", index));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ private DirectDebitTransactionInformation28 createDirectDebitTransactionInformat
creditor.setId(sepaParams.getProperty(SepaUtil.insertIndex("creditorid", index)));
final PersonIdentificationSchemeName1Choice schema = new PersonIdentificationSchemeName1Choice();
schema.setPrtry("SEPA");
creditor.setSchmeNm(schema);
drctDbtTxInf.getDrctDbtTx().getCdtrSchmeId().getId().getPrvtId().getOthr().add(creditor);

drctDbtTxInf.getDrctDbtTx().setMndtRltdInf(new MandateRelatedInformation15());
Expand Down Expand Up @@ -232,7 +233,12 @@ private DirectDebitTransactionInformation28 createDirectDebitTransactionInformat
drctDbtTxInf.setInstdAmt(new ActiveOrHistoricCurrencyAndAmount());
drctDbtTxInf.getInstdAmt().setValue(new BigDecimal(sepaParams.getProperty(SepaUtil.insertIndex("btg.value", index))));

drctDbtTxInf.getInstdAmt().setCcy("EUR");
String currencyCode = sepaParams.getProperty(SepaUtil.insertIndex("btg.curr", index));
if(currencyCode != null && currencyCode.length() > 0) {
drctDbtTxInf.getInstdAmt().setCcy(currencyCode);
} else {
drctDbtTxInf.getInstdAmt().setCcy("EUR");
}

// Payment Information - Credit Transfer Transaction Information - Usage
String usage = sepaParams.getProperty(SepaUtil.insertIndex("usage", index));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,12 @@ private CreditTransferTransactionInformation2 createCreditTransferTransactionInf
cdtTrxTxInf.getAmt().setInstdAmt(new EuroMax9Amount());
cdtTrxTxInf.getAmt().getInstdAmt().setValue(new BigDecimal(sepaParams.getProperty(SepaUtil.insertIndex("btg.value", index))));

cdtTrxTxInf.getAmt().getInstdAmt().setCcy("EUR");
String currencyCode = sepaParams.getProperty(SepaUtil.insertIndex("btg.curr", index));
if(currencyCode != null && currencyCode.length() > 0) {
cdtTrxTxInf.getAmt().getInstdAmt().setCcy(currencyCode);
} else {
cdtTrxTxInf.getAmt().getInstdAmt().setCcy("EUR");
}

//Payment Information - Credit Transfer Transaction Information - Usage
String usage = sepaParams.getProperty(SepaUtil.insertIndex("usage", index));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,12 @@ private CreditTransferTransaction34 createCreditTransferTransaction(Properties s
cdtTrxTxInf.getAmt().setInstdAmt(new ActiveOrHistoricCurrencyAndAmount());
cdtTrxTxInf.getAmt().getInstdAmt().setValue(new BigDecimal(sepaParams.getProperty(SepaUtil.insertIndex("btg.value", index))));

cdtTrxTxInf.getAmt().getInstdAmt().setCcy("EUR");
String currencyCode = sepaParams.getProperty(SepaUtil.insertIndex("btg.curr", index));
if(currencyCode != null && currencyCode.length() > 0) {
cdtTrxTxInf.getAmt().getInstdAmt().setCcy(currencyCode);
} else {
cdtTrxTxInf.getAmt().getInstdAmt().setCcy("EUR");
}

//Payment Information - Credit Transfer Transaction Information - Usage
String usage = sepaParams.getProperty(SepaUtil.insertIndex("usage", index));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,12 @@ private CreditTransferTransaction54 createCreditTransferTransaction(Properties s
cdtTrxTxInf.getAmt().setInstdAmt(new ActiveOrHistoricCurrencyAndAmount());
cdtTrxTxInf.getAmt().getInstdAmt().setValue(new BigDecimal(sepaParams.getProperty(SepaUtil.insertIndex("btg.value", index))));

cdtTrxTxInf.getAmt().getInstdAmt().setCcy("EUR");
String currencyCode = sepaParams.getProperty(SepaUtil.insertIndex("btg.curr", index));
if(currencyCode != null && currencyCode.length() > 0) {
cdtTrxTxInf.getAmt().getInstdAmt().setCcy(currencyCode);
} else {
cdtTrxTxInf.getAmt().getInstdAmt().setCcy("EUR");
}

//Payment Information - Credit Transfer Transaction Information - Usage
String usage = sepaParams.getProperty(SepaUtil.insertIndex("usage", index));
Expand Down
Loading