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:
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") {