libeufin

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

commit 5596d7321e45c93cf39e6d4b1e0ca336aa9e47e5
parent 0a39bbc41c5502dd1305c41ed7e28e174223b0e9
Author: Antoine A <>
Date:   Wed, 24 Sep 2025 13:16:27 +0200

nexus: parse accounts BIC during setup

Diffstat:
Mnexus/src/main/kotlin/tech/libeufin/nexus/cli/EbicsSetup.kt | 9+++++++--
Mnexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsAdministrative.kt | 9++++++++-
2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/cli/EbicsSetup.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/cli/EbicsSetup.kt @@ -266,10 +266,13 @@ class EbicsSetup: TalerCmd() { append(partner.name) append("' - ") } - for ((iban, currency) in partner.accounts) { + for ((currency, iban, bic) in partner.accounts) { + append(currency) + append('_') append(iban) append('_') - append(currency) + append(bic) + append(' ') } append('\n') } @@ -299,6 +302,8 @@ class EbicsSetup: TalerCmd() { if (account != null) { if (account.currency != null && account.currency != cfg.currency) logger.error("Expected CURRENCY '${cfg.currency}' from config got '${account.currency}' from bank") + if (account.bic != cfg.ebics.account.bic) + logger.error("Expected BIC '${cfg.ebics.account.bic}' from config got '${account.bic}' from bank") } else if (partner.accounts.isNotEmpty()) { val ibans = partner.accounts.map { it.iban }.joinToString(" ") logger.error("Expected IBAN ${cfg.ebics.account.iban} from config got $ibans from bank") diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsAdministrative.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsAdministrative.kt @@ -45,6 +45,7 @@ data class OrderInfo( data class AccountInfo( val currency: String, val iban: String, + val bic: String ) data class UserInfo( val id: String, @@ -115,12 +116,18 @@ object EbicsAdministrative { val accounts = map("AccountInfo") { var currency = attr("Currency") lateinit var iban: String + lateinit var bic: String each("AccountNumber") { if (attr("international") == "true") { iban = text() } } - AccountInfo(currency, iban) + each("BankCode") { + if (attr("international") == "true") { + bic = text() + } + } + AccountInfo(currency, iban, bic) } val orders = map("OrderInfo") { OrderInfo(