libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 6bc1fa55c1b1363908a958aad46f1264d55e2920
parent 3172664f1e0df86e576ade5f940886c7e01c2cd1
Author: Florian Dold <florian.dold@gmail.com>
Date:   Fri, 19 Jun 2020 00:34:28 +0530

handle missing debtor BIC according to standard

Diffstat:
Mnexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt | 19+++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt @@ -225,13 +225,14 @@ data class NexusPaymentInitiationData( val debtorName: String, val messageId: String, val paymentInformationId: String, + val endToEndId: String?, val amount: String, val currency: String, val subject: String, val preparationTimestamp: Long, val creditorName: String, val creditorIban: String, - val instructionId: String + val instructionId: String? ) /** @@ -307,19 +308,21 @@ fun createPain001document(paymentData: NexusPaymentInitiationData): String { element("DbtrAcct/Id/IBAN") { text(paymentData.debtorIban) } - paymentData.debtorBic?.let { - element("DbtrAgt/FinInstnId/BIC") { - text(paymentData.debtorBic) - } + when (val b = paymentData.debtorBic) { + null -> element("DbtrAgt/FinInstnId/Othr/Id") { text("NOTPROVIDED") } + else -> element("DbtrAgt/FinInstnId/BIC") { text(b) } } element("ChrgBr") { text("SLEV") } element("CdtTrfTxInf") { element("PmtId") { - element("EndToEndId") { - // text(pain001Entity.id.value.toString()) - text("NOTPROVIDED") + when (val eeid = paymentData.endToEndId) { + null -> element("EndToEndId") { text("NOTPROVIDED") } + else -> element("EndToEndId") { text(eeid) } + } + paymentData.instructionId?.let { + element("InstrId") { text(it) } } } element("Amt/InstdAmt") {