gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] branch master updated (1a8fd6b5 -> 4f2f3926)


From: gnunet
Subject: [libeufin] branch master updated (1a8fd6b5 -> 4f2f3926)
Date: Mon, 04 Mar 2024 16:47:41 +0100

This is an automated email from the git hooks/post-receive script.

antoine pushed a change to branch master
in repository libeufin.

    from 1a8fd6b5 Add JSON error for common 404 and 405 errors, and more strict 
status/error checks
     new d681801e Add sample files from test platforms
     new 769d458c Parse reversal transaction
     new 4f2f3926 Improve ack parsing and logging

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ebics/src/main/kotlin/Ebics.kt                     |   3 +
 .../main/kotlin/tech/libeufin/nexus/Database.kt    |   3 +
 .../main/kotlin/tech/libeufin/nexus/EbicsFetch.kt  |  50 ++--
 .../main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt |   7 +-
 .../main/kotlin/tech/libeufin/nexus/Iso20022.kt    |  80 ++++---
 .../kotlin/tech/libeufin/nexus/ebics/Ebics3.kt     |   3 +-
 .../tech/libeufin/nexus/ebics/EbicsCommon.kt       |  65 ++----
 ...lavisierung mit Einzelbuchung_ISO2019_v2019.xml | 124 ++++++++++
 ...rn_Detailavisierung mit Einzelbuchung_v2009.xml | 120 ++++++++++
 ...0000250094239_1110092691_0_2019042421291293.xml |  65 ++++++
 ...0000250094239_1110092692_0_2019042401501580.xml |  68 ++++++
 ...094239_1110097484_0_20190520700381159_v2019.xml | 174 ++++++++++++++
 ...0094239_1111091335_0_2020061900081727_v2009.xml | 207 +++++++++++++++++
 ...0094239_1111091335_0_2020061900081727_v2019.xml | 212 +++++++++++++++++
 testbench/sample/2_pain002 B-Level ACCP_v2009.xml  |   2 +
 testbench/sample/2_pain002 B-Level ACCP_v2019.xml  |  24 ++
 ...n002 B-Level und C-Level RJCT_ISO2019_v2019.xml |  30 +++
 .../3_pain002 B-Level und C-Level RJCT_v2009.xml   |  39 ++++
 ...Level ACTC (Empfangsbestaetigung FDS)_v2009.xml |  23 ++
 ...Level ACTC (Empfangsbestaetigung FDS)_v2019.xml |  21 ++
 ...Level RJCT (Empfangsbestaetigung FDS)_v2009.xml |  27 +++
 ...Level RJCT (Empfangsbestaetigung FDS)_v2019.xml |  27 +++
 ...lavisierung mit Sammelbuchung_ISO2019_v2019.xml | 124 ++++++++++
 ...rn_Detailavisierung mit Sammelbuchung_v2009.xml | 120 ++++++++++
 ...0094239_1110092698_0_2020062503071366_v2009.xml | 243 ++++++++++++++++++++
 ...0094239_1110092698_0_2020112503071366_v2019.xml | 253 +++++++++++++++++++++
 ...094239_1110097484_0_20220615375204228751067.xml | 143 ++++++++++++
 ...0094239_1111111112_0_2022031011011199_v2009.xml | 124 ++++++++++
 ...0094239_1111111112_0_2022031011011199_v2019.xml | 127 +++++++++++
 ...0094239_1111111119_0_2022030911011199_v2009.xml | 126 ++++++++++
 ...0094239_1111111119_0_2022030911011199_v2019.xml | 129 +++++++++++
 ...094239_1110097483_0_20220614375204216308259.xml |  24 ++
 testbench/src/test/kotlin/Iso20022Test.kt          |  18 +-
 33 files changed, 2718 insertions(+), 87 deletions(-)
 create mode 100644 testbench/sample/10_camt054_Return_Detailavisierung mit 
Einzelbuchung_ISO2019_v2019.xml
 create mode 100644 testbench/sample/10_camt054_Return_Detailavisierung mit 
Einzelbuchung_v2009.xml
 create mode 100644 
testbench/sample/200519_camt054-Credit_P_CH2909000000250094239_1110092691_0_2019042421291293.xml
 create mode 100644 
testbench/sample/200519_camt054-Debit_P_CH2909000000250094239_1110092692_0_2019042401501580.xml
 create mode 100644 
testbench/sample/200519_camt054-chdd_p_ch2909000000250094239_1110097484_0_20190520700381159_v2019.xml
 create mode 100644 
testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2009.xml
 create mode 100644 
testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2019.xml
 create mode 100644 testbench/sample/2_pain002 B-Level ACCP_v2009.xml
 create mode 100644 testbench/sample/2_pain002 B-Level ACCP_v2019.xml
 create mode 100644 testbench/sample/3_pain002 B-Level und C-Level 
RJCT_ISO2019_v2019.xml
 create mode 100644 testbench/sample/3_pain002 B-Level und C-Level 
RJCT_v2009.xml
 create mode 100644 testbench/sample/5_pain002 A-Level ACTC 
(Empfangsbestaetigung FDS)_v2009.xml
 create mode 100644 testbench/sample/5_pain002 A-Level ACTC 
(Empfangsbestaetigung FDS)_v2019.xml
 create mode 100644 testbench/sample/6_pain002 A-Level RJCT 
(Empfangsbestaetigung FDS)_v2009.xml
 create mode 100644 testbench/sample/6_pain002 A-Level RJCT 
(Empfangsbestaetigung FDS)_v2019.xml
 create mode 100644 testbench/sample/9_camt054 Return_Detailavisierung mit 
Sammelbuchung_ISO2019_v2019.xml
 create mode 100644 testbench/sample/9_camt054 Return_Detailavisierung mit 
Sammelbuchung_v2009.xml
 create mode 100644 
testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020062503071366_v2009.xml
 create mode 100644 
testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020112503071366_v2019.xml
 create mode 100644 
testbench/sample/camt054-CHDD_P_CH2909000000250094239_1110097484_0_20220615375204228751067.xml
 create mode 100644 
testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2009.xml
 create mode 100644 
testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2019.xml
 create mode 100644 
testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2009.xml
 create mode 100644 
testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2019.xml
 create mode 100644 
testbench/sample/pain002_CHDD_P_CH2909000000250094239_1110097483_0_20220614375204216308259.xml

diff --git a/ebics/src/main/kotlin/Ebics.kt b/ebics/src/main/kotlin/Ebics.kt
index 31efa07c..ab591b61 100644
--- a/ebics/src/main/kotlin/Ebics.kt
+++ b/ebics/src/main/kotlin/Ebics.kt
@@ -287,6 +287,7 @@ enum class EbicsReturnCode(val errorCode: String) {
 
 data class EbicsResponseContent(
     val transactionID: String?,
+    val orderID: String?,
     val dataEncryptionInfo: DataEncryptionInfo?,
     val orderDataEncChunk: String?,
     val technicalReturnCode: EbicsReturnCode,
@@ -362,6 +363,7 @@ fun ebics3toInternalRepr(response: Document): 
EbicsResponseContent {
 
     return EbicsResponseContent(
         transactionID = resp.value.header._static.transactionID,
+        orderID = resp.value.header.mutable.orderID,
         bankReturnCode = bankReturnCode,
         technicalReturnCode = techReturnCode,
         reportText = reportText,
@@ -398,6 +400,7 @@ fun ebics25toInternalRepr(response: Document): 
EbicsResponseContent {
 
     return EbicsResponseContent(
         transactionID = resp.value.header._static.transactionID,
+        orderID = resp.value.header.mutable.orderID,
         bankReturnCode = bankReturnCode,
         technicalReturnCode = techReturnCode,
         reportText = reportText,
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Database.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Database.kt
index 956ae58c..8a2b9185 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Database.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Database.kt
@@ -169,6 +169,9 @@ private fun PreparedStatement.maybeUpdate(): Boolean {
  */
 class Database(dbConfig: String): DbPool(dbConfig, "libeufin_nexus") {
 
+    // Temporary in memory database to store EBICS order status until we 
modify the schema to actually store it in the database
+    var mem: MutableMap<String, String> = mutableMapOf()
+
     // OUTGOING PAYMENTS METHODS
 
     /**
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
index cd69ada1..e8d4b049 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsFetch.kt
@@ -147,7 +147,7 @@ suspend fun ingestOutgoingPayment(
         else 
             logger.warn("$payment recovered")
     } else {
-        logger.debug("OUT '${payment.messageId}' already seen")
+        logger.debug("$payment already seen")
     }
 }
 
@@ -158,7 +158,6 @@ private val PATTERN = Regex("[a-z0-9A-Z]{52}")
  * or bounces it, according to the subject.
  *
  * @param db database handle.
- * @param currency fiat currency of the watched bank account.
  * @param payment payment to (maybe) ingest.
  */
 suspend fun ingestIncomingPayment(
@@ -171,7 +170,7 @@ suspend fun ingestIncomingPayment(
             if (result.new) {
                 logger.info("$payment")
             } else {
-                logger.debug("IN '${payment.bankId}' already seen")
+                logger.debug("$payment already seen")
             }
         },
         onFailure = { e ->
@@ -183,12 +182,26 @@ suspend fun ingestIncomingPayment(
             if (result.new) {
                 logger.info("$payment bounced in '${result.bounceId}': 
${e.message}")
             } else {
-                logger.debug("IN '${payment.bankId}' already seen and bounced 
in '${result.bounceId}': ${e.message}")
+                logger.debug("$payment already seen and bounced in 
'${result.bounceId}': ${e.message}")
             }
         }
     )
 }
 
+/**
+ * Ingests an outgoing payment bounce.
+ *
+ * @param db database handle.
+ * @param reversal reversal ingest.
+ */
+suspend fun ingestReversal(
+    db: Database,
+    reversal: OutgoingReversal
+) {
+    logger.warn("BOUNCE '${reversal.bankId}': ${reversal.reason}")
+    // TODO store in db=
+}
+
 private fun ingestDocument(
     db: Database,
     currency: String,
@@ -198,16 +211,16 @@ private fun ingestDocument(
     when (whichDocument) {
         SupportedDocument.CAMT_054 -> {
             try {
-                val incomingPayments = mutableListOf<IncomingPayment>()
-                val outgoingPayments = mutableListOf<OutgoingPayment>()
-                parseTxNotif(xml, currency, incomingPayments, outgoingPayments)
+                val notifications = mutableListOf<TxNotification>()
+                parseTxNotif(xml, currency, notifications)
 
                 runBlocking {
-                    incomingPayments.forEach {
-                        ingestIncomingPayment(db, it)
-                    }
-                    outgoingPayments.forEach {
-                        ingestOutgoingPayment(db, it)
+                    notifications.forEach {
+                        when (it) {
+                            is TxNotification.Incoming -> 
ingestIncomingPayment(db, it.payment)
+                            is TxNotification.Outgoing -> 
ingestOutgoingPayment(db, it.payment)
+                            is TxNotification.Reversal -> ingestReversal(db, 
it.reversal)
+                        }
                     }
                 }
             } catch (e: Exception) {
@@ -217,6 +230,17 @@ private fun ingestDocument(
         SupportedDocument.PAIN_002_LOGS -> {
             val acks = parseCustomerAck(xml)
             for (ack in acks) {
+                val msg = if (ack.orderId != null) {
+                    if (ack.code != null) {
+                        val msg = ack.msg()
+                        db.mem[ack.orderId] = msg
+                        msg
+                    } else {
+                        db.mem[ack.orderId] 
+                    }
+                } else {
+                    null
+                }
                 when (ack.actionType) {
                     HacAction.FILE_DOWNLOAD -> logger.debug("$ack")
                     HacAction.ORDER_HAC_FINAL_POS -> {
@@ -227,7 +251,7 @@ private fun ingestDocument(
                     HacAction.ORDER_HAC_FINAL_NEG -> {
                         // TODO update pending transaction status
                         logger.debug("$ack")
-                        logger.warn("Order '${ack.orderId}' was refused at 
${ack.timestamp.fmtDateTime()}")
+                        logger.warn("Order '${ack.orderId}' was refused at 
${ack.timestamp.fmtDateTime()}: $msg")
                     }
                     else -> {
                         // TODO update pending transaction status
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
index e96e3db2..ce02f865 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
@@ -91,7 +91,7 @@ class NexusSubmitException(
 private suspend fun submitInitiatedPayment(
     ctx: SubmissionContext,
     payment: InitiatedPayment
-) { 
+): String { 
     val creditAccount = try {
         val payto = Payto.parse(payment.creditPaytoUri).expectIban()
         IbanAccountMetadata(
@@ -114,7 +114,7 @@ private suspend fun submitInitiatedPayment(
     )
     ctx.fileLogger.logSubmit(xml)
     try {
-        submitPain001(
+        return submitPain001(
             xml,
             ctx.cfg,
             ctx.clientPrivateKeysFile,
@@ -166,7 +166,8 @@ private fun submitBatch(
         db.initiatedPaymentsSubmittableGet(ctx.cfg.currency).forEach {
             logger.debug("Submitting payment initiation with row ID: ${it.id}")
             val submissionState = try {
-                submitInitiatedPayment(ctx, it)
+                val orderId = submitInitiatedPayment(ctx, it)
+                db.mem[orderId] = "Init"
                 DatabaseSubmissionState.success
             } catch (e: NexusSubmitException) {
                 logger.error(e.message)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
index 6d9a259a..fb9c03ce 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
@@ -25,7 +25,6 @@ import java.net.URLEncoder
 import java.time.*
 import java.time.format.*
 
-
 /**
  * Collects details to define the pain.001 namespace
  * XML attributes.
@@ -130,15 +129,19 @@ data class CustomerAck(
     val code: ExternalStatusReasonCode?,
     val timestamp: Instant
 ) {
-    override fun toString(): String {
-        var str = "${timestamp.fmtDateTime()}"
-        if (orderId != null) str += " ${orderId}"
-        str += " ${actionType}"
+    fun msg(): String {
+        var str = "${actionType}"
         if (code != null) str += " ${code.isoCode}"
         str += " - '${actionType.description}'"
         if (code != null) str += " '${code.description}'"
         return str
     }
+
+    override fun toString(): String {
+        var str = "${timestamp.fmtDateTime()}"
+        if (orderId != null) str += " ${orderId}"
+        return str + " ${msg()}"
+    }
 }
 
 /**
@@ -247,6 +250,17 @@ fun parseCustomerPaymentStatusReport(xml: InputStream): 
PaymentStatus {
     }
 }
 
+sealed interface TxNotification {
+    data class Incoming(val payment: IncomingPayment): TxNotification
+    data class Outgoing(val payment: OutgoingPayment): TxNotification
+    data class Reversal(val reversal: OutgoingReversal): TxNotification
+}
+
+data class OutgoingReversal(
+    val bankId: String,
+    val reason: String?
+)
+
 /**
  * Searches payments in a camt.054 (Detailavisierung) document.
  *
@@ -258,10 +272,9 @@ fun parseCustomerPaymentStatusReport(xml: InputStream): 
PaymentStatus {
 fun parseTxNotif(
     notifXml: InputStream,
     acceptedCurrency: String,
-    incoming: MutableList<IncomingPayment>,
-    outgoing: MutableList<OutgoingPayment>
+    notifications: MutableList<TxNotification>,
 ) {
-    notificationForEachTx(notifXml) { bookDate ->
+    notificationForEachTx(notifXml) { bookDate, reversal, info ->
         val kind = one("CdtDbtInd").text()
         val amount: TalerAmount = one("Amt") {
             val currency = attr("Ccy")
@@ -271,6 +284,19 @@ fun parseTxNotif(
             if (currency != acceptedCurrency) throw Exception("Currency 
$currency not supported")
             TalerAmount("$currency:${text()}")
         }
+        if (reversal) {
+            require("CRDT" == kind)
+            val msgId = one("Refs").opt("MsgId")?.text()
+            if (msgId == null) {
+                logger.debug("Unsupported reversal without message id")
+            } else {
+                notifications.add(TxNotification.Reversal(OutgoingReversal(
+                    bankId = msgId,
+                    reason = info
+                )))
+            }
+            return@notificationForEachTx
+        }
         when (kind) {
             "CRDT" -> {
                 val bankId: String = one("Refs").one("AcctSvcrRef").text()
@@ -293,7 +319,7 @@ fun parseTxNotif(
                         debtorPayto.append("?receiver-name=$urlEncName")
                     }
                 }
-                incoming.add(
+                notifications.add(TxNotification.Incoming(
                     IncomingPayment(
                         amount = amount,
                         bankId = bankId,
@@ -301,17 +327,17 @@ fun parseTxNotif(
                         executionTime = bookDate,
                         wireTransferSubject = subject.toString()
                     )
-                )
+                ))
             }
             "DBIT" -> {
                 val messageId = one("Refs").one("MsgId").text()
-                outgoing.add(
+                notifications.add(TxNotification.Outgoing(
                     OutgoingPayment(
                         amount = amount,
                         messageId = messageId,
                         executionTime = bookDate
                     )
-                )
+                ))
             }
             else -> throw Exception("Unknown transaction notification kind 
'$kind'")
         }        
@@ -326,28 +352,26 @@ fun parseTxNotif(
  */
 private fun notificationForEachTx(
     xml: InputStream,
-    directionLambda: XmlDestructor.(Instant) -> Unit
+    directionLambda: XmlDestructor.(Instant, Boolean, String?) -> Unit
 ) {
     destructXml(xml, "Document") {
         opt("BkToCstmrDbtCdtNtfctn")?.each("Ntfctn") {
             each("Ntry") {
-                if (opt("RvslInd")?.bool() == true) {
-                    logger.warn("Skip reversal transaction")
-                } else {
-                    one("Sts") {
-                        if (text() != "BOOK") {
-                            one("Cd") {
-                                if (text() != "BOOK")
-                                    throw Exception("Found non booked 
transaction, " +
-                                            "stop parsing.  Status was: 
${text()}"
-                                    )
-                            }
+                val reversal = opt("RvslInd")?.bool() ?: false
+                val info = opt("AddtlNtryInf")?.text()
+                one("Sts") {
+                    if (text() != "BOOK") {
+                        one("Cd") {
+                            if (text() != "BOOK")
+                                throw Exception("Found non booked transaction, 
" +
+                                        "stop parsing.  Status was: ${text()}"
+                                )
                         }
                     }
-                    val bookDate: Instant = 
one("BookgDt").one("Dt").date().atStartOfDay().toInstant(ZoneOffset.UTC)
-                    one("NtryDtls").each("TxDtls") {
-                        directionLambda(this, bookDate)
-                    }
+                }
+                val bookDate: Instant = 
one("BookgDt").one("Dt").date().atStartOfDay().toInstant(ZoneOffset.UTC)
+                one("NtryDtls").each("TxDtls") {
+                    directionLambda(this, bookDate, reversal, info)
                 }
             }
         }
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
index 52bdeb0b..09aac3df 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/Ebics3.kt
@@ -234,7 +234,7 @@ suspend fun submitPain001(
     clientKeys: ClientPrivateKeysFile,
     bankkeys: BankPublicKeysFile,
     httpClient: HttpClient
-) {
+): String {
     val orderService: Ebics3Request.OrderDetails.Service = 
Ebics3Request.OrderDetails.Service().apply {
         serviceName = "MCT"
         scope = "CH"
@@ -255,6 +255,7 @@ suspend fun submitPain001(
             " EBICS technical code is: ${maybeUploaded.technicalReturnCode}," +
             " bank technical return code is: ${maybeUploaded.bankReturnCode}"
     )
+    return maybeUploaded.orderID!!
 }
 
 /**
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
index f497799e..7eebcea8 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsCommon.kt
@@ -225,11 +225,30 @@ suspend fun postEbics(
             e
         )
     }
-    return parseAndValidateEbicsResponse(
-        bankKeys,
-        respXml,
+
+    // Parses the bank response from the raw XML and verifies
+    // the bank signature.
+    val doc = try {
+        XMLUtil.parseIntoDom(respXml)
+    } catch (e: Exception) {
+        throw EbicsSideException(
+            "Bank response apparently invalid",
+            sideEc = EbicsSideError.BANK_RESPONSE_IS_INVALID
+        )
+    }
+    if (!XMLUtil.verifyEbicsDocument(
+        doc,
+        bankKeys.bank_authentication_public_key,
         isEbics3
-    )
+    )) {
+        throw EbicsSideException(
+            "Bank signature did not verify",
+            sideEc = EbicsSideError.BANK_SIGNATURE_DIDNT_VERIFY
+        )
+    }
+    if (isEbics3)
+        return ebics3toInternalRepr(doc)
+    return ebics25toInternalRepr(doc)
 }
 
 /**
@@ -383,43 +402,6 @@ class EbicsSideException(
     cause: Exception? = null
 ) : Exception(msg, cause)
 
-/**
- * Parses the bank response from the raw XML and verifies
- * the bank signature.
- *
- * @param bankKeys provides the bank auth pub, to verify the signature.
- * @param responseStr raw XML response from the bank
- * @param withEbics3 true if the communication is EBICS 3, false otherwise.
- * @return [EbicsResponseContent] or throw [EbicsSideException]
- */
-fun parseAndValidateEbicsResponse(
-    bankKeys: BankPublicKeysFile,
-    resp: InputStream,
-    withEbics3: Boolean
-): EbicsResponseContent {
-    val doc = try {
-        XMLUtil.parseIntoDom(resp)
-    } catch (e: Exception) {
-        throw EbicsSideException(
-            "Bank response apparently invalid",
-            sideEc = EbicsSideError.BANK_RESPONSE_IS_INVALID
-        )
-    }
-    if (!XMLUtil.verifyEbicsDocument(
-        doc,
-        bankKeys.bank_authentication_public_key,
-        withEbics3
-    )) {
-        throw EbicsSideException(
-            "Bank signature did not verify",
-            sideEc = EbicsSideError.BANK_SIGNATURE_DIDNT_VERIFY
-        )
-    }
-    if (withEbics3)
-        return ebics3toInternalRepr(doc)
-    return ebics25toInternalRepr(doc)
-}
-
 /**
  * Signs and the encrypts the data to send via EBICS.
  *
@@ -527,6 +509,7 @@ suspend fun doEbicsUpload(
     orderService: Ebics3Request.OrderDetails.Service,
     payload: ByteArray,
 ): EbicsResponseContent {
+    // TODO use a lambda and pass the order detail there for atomicity ?
     val preparedPayload = prepareUploadPayload(cfg, clientKeys, bankKeys, 
payload, isEbics3 = true)
     val initXml = createEbics3RequestForUploadInitialization(
         cfg,
diff --git a/testbench/sample/10_camt054_Return_Detailavisierung mit 
Einzelbuchung_ISO2019_v2019.xml 
b/testbench/sample/10_camt054_Return_Detailavisierung mit 
Einzelbuchung_ISO2019_v2019.xml
new file mode 100644
index 00000000..cd3c3833
--- /dev/null
+++ b/testbench/sample/10_camt054_Return_Detailavisierung mit 
Einzelbuchung_ISO2019_v2019.xml   
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08 
file:///C:/camt.054.001.08.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20201124375204228763929</MsgId>
+                       <CreDtTm>2022-05-25T00:29:29</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.7/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20201124375204228763930</Id>
+                       <CreDtTm>2022-05-25T00:29:29</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2022-05-24T00:00:00</FrDtTm>
+                               <ToDtTm>2022-05-24T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH5109000000250092291</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Bernasconi Maria Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <Amt Ccy="CHF">500.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>true</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>075820002ZZTJR1K</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>ICDT</Cd>
+                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>190520CH02ZZTJR1</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-001-03</PmtInfId>
+                                                       
<InstrId>InstrId-001-03-04</InstrId>
+                                                       
<EndToEndId>EndToEndId-001-03-04</EndToEndId>
+                                               </Refs>
+                                               <Amt Ccy="CHF">500.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>ICDT</Cd>
+                                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Robert Schneider SA</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Rue du Lac 177</AdrLine>
+                                                                               
<AdrLine>2503 Biel/Bienne</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH8709000000929471495</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<ClrSysMmbId>
+                                                                               
<MmbId>9000</MmbId>
+                                                                       
</ClrSysMmbId>
+                                                                       
<Nm>PostFinance AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Mingerstrasse 20</AdrLine>
+                                                                               
<AdrLine>3030 Bern</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       
<Ustrd>Kontouebertrag</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-05-24T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                               <RtrInf>
+                                                       <Rsn>
+                                                               <Cd>AC01</Cd>
+                                                       </Rsn>
+                                                       <AddtlInf>Kontonummer 
falsch</AddtlInf>
+                                               </RtrInf>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>EndToEndId-001-03-04 RETOUR 
TRANSAKTION NICHT AUSFÜHRBAR Kontouebertrag</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git a/testbench/sample/10_camt054_Return_Detailavisierung mit 
Einzelbuchung_v2009.xml b/testbench/sample/10_camt054_Return_Detailavisierung 
mit Einzelbuchung_v2009.xml
new file mode 100644
index 00000000..99689715
--- /dev/null
+++ b/testbench/sample/10_camt054_Return_Detailavisierung mit 
Einzelbuchung_v2009.xml   
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20201124375204228763929</MsgId>
+                       <CreDtTm>2020-11-25T00:29:29</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.7/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20201124375204228763930</Id>
+                       <CreDtTm>2020-11-25T00:29:29</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2020-11-24T00:00:00</FrDtTm>
+                               <ToDtTm>2020-11-24T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH5109000000250092291</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Bernasconi Maria Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <Amt Ccy="CHF">500.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>true</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>075820002ZZTJR1K</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>ICDT</Cd>
+                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>190520CH02ZZTJR1</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-001-03</PmtInfId>
+                                                       
<InstrId>InstrId-001-03-04</InstrId>
+                                                       
<EndToEndId>EndToEndId-001-03-04</EndToEndId>
+                                               </Refs>
+                                               <Amt Ccy="CHF">500.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>ICDT</Cd>
+                                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Robert 
Schneider SA</Nm>
+                                                               <PstlAdr>
+                                                                       
<AdrLine>Rue du Lac 177</AdrLine>
+                                                                       
<AdrLine>2503 Biel/Bienne</AdrLine>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH8709000000929471495</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<ClrSysMmbId>
+                                                                               
<MmbId>9000</MmbId>
+                                                                       
</ClrSysMmbId>
+                                                                       
<Nm>PostFinance AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Mingerstrasse 20</AdrLine>
+                                                                               
<AdrLine>3030 Bern</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       
<Ustrd>Kontouebertrag</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2020-11-24T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                               <RtrInf>
+                                                       <Rsn>
+                                                               <Cd>AC01</Cd>
+                                                       </Rsn>
+                                                       <AddtlInf>Kontonummer 
falsch</AddtlInf>
+                                               </RtrInf>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>EndToEndId-001-03-04 RETOUR 
TRANSAKTION NICHT AUSFÜHRBAR Kontouebertrag</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/200519_camt054-Credit_P_CH2909000000250094239_1110092691_0_2019042421291293.xml
 
b/testbench/sample/200519_camt054-Credit_P_CH2909000000250094239_1110092691_0_2019042421291293.xml
new file mode 100644
index 00000000..5d9acb73
--- /dev/null
+++ 
b/testbench/sample/200519_camt054-Credit_P_CH2909000000250094239_1110092691_0_2019042421291293.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 
file:///C:/Users/alihodzica/Desktop/camt.054/camt.054.001.04.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>201904245375204223076552</MsgId>
+                       <CreDtTm>2019-04-24T21:28:58</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.6/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20190424375204223076553</Id>
+                       <CreDtTm>2019-04-24T21:28:58</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2019-04-24T21:28:58</FrDtTm>
+                               <ToDtTm>2019-04-24T21:28:58</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>CDTN</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <Amt Ccy="CHF">1500.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2019-04-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2019-04-25</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>074820002ZZ9J42U</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>VCOM</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>074820002ZZ9J42U</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1500.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT ESR VERARBEITUNG 
VOM 24.04.2019 KUNDENNUMMER 01-429580-3 PAKET ID: 
180315CH00000HPA</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/200519_camt054-Debit_P_CH2909000000250094239_1110092692_0_2019042401501580.xml
 
b/testbench/sample/200519_camt054-Debit_P_CH2909000000250094239_1110092692_0_2019042401501580.xml
new file mode 100644
index 00000000..c5cfc7a9
--- /dev/null
+++ 
b/testbench/sample/200519_camt054-Debit_P_CH2909000000250094239_1110092692_0_2019042401501580.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 
file:///C:/Users/alihodzica/Desktop/camt.054/camt.054.001.04.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20190424375204222704046</MsgId>
+                       <CreDtTm>2014-04-25T01:49:54</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.6/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20190424375204222704047</Id>
+                       <CreDtTm>2019-04-25T01:49:54</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2019-04-25T01:49:54</FrDtTm>
+                               <ToDtTm>2019-04-25T01:49:54</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>DBTN</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <Amt Ccy="CHF">913.00</Amt>
+                               <CdtDbtInd>DBIT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2019-04-25</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2019-04-25</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>074820002ZU1EQ0K</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>ICDT</Cd>
+                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<MsgId>20190424-000369773</MsgId>
+                                                       
<AcctSvcrRef>25-1120172999-2</AcctSvcrRef>
+                                                       
<PmtInfId>30003101</PmtInfId>
+                                                       
<EndToEndId>20190424001255000100006</EndToEndId>
+                                               </Refs>
+                                               <Amt Ccy="CHF">913.00</Amt>
+                                               <CdtDbtInd>DBIT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GIRO POST CH5109000000250092291 
Bernasconi Maria Place de la Gare 12 2502 Biel/Bienne SENDER REFERENZ: 
30003101</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/200519_camt054-chdd_p_ch2909000000250094239_1110097484_0_20190520700381159_v2019.xml
 
b/testbench/sample/200519_camt054-chdd_p_ch2909000000250094239_1110097484_0_20190520700381159_v2019.xml
new file mode 100644
index 00000000..ce640964
--- /dev/null
+++ 
b/testbench/sample/200519_camt054-chdd_p_ch2909000000250094239_1110097484_0_20190520700381159_v2019.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08 
file:///C:/Users/burkhalterl/Documents/Musterfiles%20ISOV19/Schemen/camt.054.001.08.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20190520375204228751067</MsgId>
+                       <CreDtTm>2019-05-19T00:20:22</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/2.0/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20190516375204228751070</Id>
+                       <CreDtTm>2019-05-20T00:20:22</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2019-05-19T00:00:00</FrDtTm>
+                               <ToDtTm>2019-05-19T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ccy>CHF</Ccy>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>41100000000872849</NtryRef>
+                               <Amt Ccy="CHF">4.50</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2019-05-19</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2019-05-19</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>0758103031480900</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>IDDT</Cd>
+                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>2</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<MsgId>MsgId-CHDD-Musterfile</MsgId>
+                                                       
<AcctSvcrRef>201-31295208-1</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-CHDD-1</PmtInfId>
+                                                       
<InstrId>InstrId-CHDD-1</InstrId>
+                                                       
<EndToEndId>E2EId-CHDD-1</EndToEndId>
+                                                       
<UETR>b009c997-97b3-4a9c-803c-d645a7276bf5</UETR>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1.50</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>IDDT</Cd>
+                                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Maria Bernasconi</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<StrtNm>Place de la Gare 12</StrtNm>
+                                                                               
<PstCd>2502</PstCd>
+                                                                               
<TwnNm>Biel</TwnNm>
+                                                                               
<Ctry>CH</Ctry>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <Cdtr>
+                                                               <Pty>
+                                                                       <Id>
+                                                                               
<OrgId>
+                                                                               
        <Othr>
+                                                                               
                <Id>41100000000872849</Id>
+                                                                               
        </Othr>
+                                                                               
</OrgId>
+                                                                       </Id>
+                                                               </Pty>
+                                                       </Cdtr>
+                                               </RltdPties>
+                                               <RmtInf>
+                                                       <Ustrd>Rechnung 
1001</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2019-05-19T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<MsgId>MsgId-CHDD-Musterfile</MsgId>
+                                                       
<AcctSvcrRef>201-31295208-2</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-CHDD-1</PmtInfId>
+                                                       
<InstrId>InstrId-CHDD-2</InstrId>
+                                                       
<EndToEndId>E2EId-CHDD-2</EndToEndId>
+                                                       
<UETR>b009c997-97b3-4a9c-803c-d645a7276bf5</UETR>
+                                               </Refs>
+                                               <Amt Ccy="CHF">3.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>IDDT</Cd>
+                                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Maria Bernasconi</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<StrtNm>Place de la Gare 12</StrtNm>
+                                                                               
<PstCd>2502</PstCd>
+                                                                               
<TwnNm>Biel</TwnNm>
+                                                                               
<Ctry>CH</Ctry>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <Cdtr>
+                                                               <Pty>
+                                                                       <Id>
+                                                                               
<OrgId>
+                                                                               
        <Othr>
+                                                                               
                <Id>41100000000872849</Id>
+                                                                               
        </Othr>
+                                                                               
</OrgId>
+                                                                       </Id>
+                                                               </Pty>
+                                                       </Cdtr>
+                                               </RltdPties>
+                                               <RmtInf>
+                                                       <Ustrd>Rechnung 
1002</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2019-05-19T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT CH-DD-BASISLASTSCHRIFT 
ID-NR. DES ZAHLUNGSEMPFÄNGERS: 41100000000872849 REFERENZ-NR: 
PmtInfId-CHDD-1</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2009.xml
 
b/testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2009.xml
new file mode 100644
index 00000000..c5ff27b5
--- /dev/null
+++ 
b/testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2009.xml
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 
camt.054.001.04.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20200618375204295372463</MsgId>
+                       <CreDtTm>2020-06-18T23:41:07</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.7/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20200618375204295372465</Id>
+                       <CreDtTm>2020-06-18T23:41:07</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2020-06-18T00:00:00</FrDtTm>
+                               <ToDtTm>2020-06-18T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>CH7730000001250094239</NtryRef>
+                               <Amt Ccy="CHF">1692.22</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2020-06-18</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-06-18</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>1000000000000000</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>VCOM</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>2</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>2000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1006265-25bbb3b1a</InstrId>
+                                                       
<EndToEndId>1006265-aic5dL-75dzf3jk9-cf2d5e9</EndToEndId>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000020</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">778.29</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Bernasconi 
Maria</Nm>
+                                                               <PstlAdr>
+                                                                       
<StrtNm>Place de la Gare</StrtNm>
+                                                                       
<BldgNb>12</BldgNb>
+                                                                       
<PstCd>2502</PstCd>
+                                                                       
<TwnNm>Biel/Bienne</TwnNm>
+                                                                       
<Ctry>CH</Ctry>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH7730000001250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE 20</AdrLine>
+                                                                               
<AdrLine>3030 BERNE</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Strd>
+                                                               <CdtrRefInf>
+                                                                       <Tp>
+                                                                               
<CdOrPrtry>
+                                                                               
        <Prtry>QRR</Prtry>
+                                                                               
</CdOrPrtry>
+                                                                       </Tp>
+                                                                       
<Ref>539115429773825311971477453</Ref>
+                                                               </CdtrRefInf>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2020-06-18T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>3000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1005970-70a75515</InstrId>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000030</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">913.93</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Bernasconi 
Maria</Nm>
+                                                               <PstlAdr>
+                                                                       
<StrtNm>Place de la Gare</StrtNm>
+                                                                       
<BldgNb>12</BldgNb>
+                                                                       
<PstCd>2502</PstCd>
+                                                                       
<TwnNm>Biel/Bienne</TwnNm>
+                                                                       
<Ctry>CH</Ctry>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH7730000001250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE 20</AdrLine>
+                                                                               
<AdrLine>3030 BERNE</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Strd>
+                                                               <CdtrRefInf>
+                                                                       <Tp>
+                                                                               
<CdOrPrtry>
+                                                                               
        <Prtry>QRR</Prtry>
+                                                                               
</CdOrPrtry>
+                                                                       </Tp>
+                                                                       
<Ref>662437765447746478179744715</Ref>
+                                                               </CdtrRefInf>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2020-06-18T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH7730000001250094239 VERARBEITUNG VOM 18.06.2020 PAKET ID: 
200618CH000009TB</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2019.xml
 
b/testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2019.xml
new file mode 100644
index 00000000..199b2216
--- /dev/null
+++ 
b/testbench/sample/200519_camt054_P_CH2909000000250094239_1111091335_0_2020061900081727_v2019.xml
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08 
file:///C:/Users/burkhalterl/Documents/Musterfiles%20ISOV19/Schemen/camt.054.001.08.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20200618375204295372463</MsgId>
+                       <CreDtTm>2020-06-18T23:41:07</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/2.0/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20200618375204295372465</Id>
+                       <CreDtTm>2020-06-18T23:41:07</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2020-06-18T00:00:00</FrDtTm>
+                               <ToDtTm>2020-06-18T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ccy>CHF</Ccy>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>CH7730000001250094239</NtryRef>
+                               <Amt Ccy="CHF">1692.22</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2020-06-18</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-06-18</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>1000000000000000</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>VCOM</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>2</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>2000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1006265-25bbb3b1a</InstrId>
+                                                       
<EndToEndId>1006265-aic5dL-75dzf3jk9-cf2d5e9</EndToEndId>
+                                                       
<UETR>b009c997-97b3-4a9c-803c-d645a7276bf0</UETR>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000020</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">778.29</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Bernasconi Maria</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<StrtNm>Place de la Gare</StrtNm>
+                                                                               
<BldgNb>12</BldgNb>
+                                                                               
<PstCd>2502</PstCd>
+                                                                               
<TwnNm>Biel/Bienne</TwnNm>
+                                                                               
<Ctry>CH</Ctry>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH7730000001250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE 20</AdrLine>
+                                                                               
<AdrLine>3030 BERNE</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Strd>
+                                                               <CdtrRefInf>
+                                                                       <Tp>
+                                                                               
<CdOrPrtry>
+                                                                               
        <Prtry>QRR</Prtry>
+                                                                               
</CdOrPrtry>
+                                                                       </Tp>
+                                                                       
<Ref>539115429773825311971477453</Ref>
+                                                               </CdtrRefInf>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2020-06-18T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>3000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1005970-70a75515</InstrId>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000030</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">913.93</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Bernasconi Maria</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<StrtNm>Place de la Gare</StrtNm>
+                                                                               
<BldgNb>12</BldgNb>
+                                                                               
<PstCd>2502</PstCd>
+                                                                               
<TwnNm>Biel/Bienne</TwnNm>
+                                                                               
<Ctry>CH</Ctry>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH7730000001250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE 20</AdrLine>
+                                                                               
<AdrLine>3030 BERNE</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Strd>
+                                                               <CdtrRefInf>
+                                                                       <Tp>
+                                                                               
<CdOrPrtry>
+                                                                               
        <Prtry>QRR</Prtry>
+                                                                               
</CdOrPrtry>
+                                                                       </Tp>
+                                                                       
<Ref>662437765447746478179744715</Ref>
+                                                               </CdtrRefInf>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2020-06-18T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH7730000001250094239 VERARBEITUNG VOM 18.06.2020 PAKET ID: 
200618CH000009TB</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git a/testbench/sample/2_pain002 B-Level ACCP_v2009.xml 
b/testbench/sample/2_pain002 B-Level ACCP_v2009.xml
new file mode 100644
index 00000000..7b2fa70b
--- /dev/null
+++ b/testbench/sample/2_pain002 B-Level ACCP_v2009.xml 
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document 
xmlns="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd
 
pain.002.001.03.ch.02.xsd"><CstmrPmtStsRpt><GrpHdr><MsgId>20180326375204011678275</MsgId><CreDtTm>2018-03-26T12:09:48</CreDtTm><InitgPty><Id><OrgId><BICOrBEI>POFICHBE</BICOrBEI></OrgId></Id></InitgPty></GrpHdr><OrgnlGrpInfAndSts><OrgnlMsgId>MsgId-006</OrgnlMsgId><Or
 [...]
diff --git a/testbench/sample/2_pain002 B-Level ACCP_v2019.xml 
b/testbench/sample/2_pain002 B-Level ACCP_v2019.xml
new file mode 100644
index 00000000..83cf35d1
--- /dev/null
+++ b/testbench/sample/2_pain002 B-Level ACCP_v2019.xml 
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10 
pain.002.001.10.xsd">
+       <CstmrPmtStsRpt>
+               <GrpHdr>
+                       <MsgId>204691ACFC/071125/023228</MsgId>
+                       <CreDtTm>2022-05-02T05:11:25Z</CreDtTm>
+                       <InitgPty>
+                               <Id>
+                                       <OrgId>
+                                               <AnyBIC>POFICHBE</AnyBIC>
+                                       </OrgId>
+                               </Id>
+                       </InitgPty>
+               </GrpHdr>
+               <OrgnlGrpInfAndSts>
+                       <OrgnlMsgId>MSG-02-QRR-SCOR</OrgnlMsgId>
+                       <OrgnlMsgNmId>pain.001.001.09.ch.03</OrgnlMsgNmId>
+               </OrgnlGrpInfAndSts>
+               <OrgnlPmtInfAndSts>
+                       <OrgnlPmtInfId>PMTINF-01</OrgnlPmtInfId>
+                       <PmtInfSts>ACCP</PmtInfSts>
+               </OrgnlPmtInfAndSts>
+       </CstmrPmtStsRpt>
+</Document>
diff --git a/testbench/sample/3_pain002 B-Level und C-Level 
RJCT_ISO2019_v2019.xml b/testbench/sample/3_pain002 B-Level und C-Level 
RJCT_ISO2019_v2019.xml
new file mode 100644
index 00000000..2b02d826
--- /dev/null
+++ b/testbench/sample/3_pain002 B-Level und C-Level RJCT_ISO2019_v2019.xml     
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10 
pain.002.001.10.xsd">
+       <CstmrPmtStsRpt>
+               <GrpHdr>
+                       <MsgId>204691ACFC/071125/023362</MsgId>
+                       <CreDtTm>2022-05-02T05:11:25Z</CreDtTm>
+                       <InitgPty>
+                               <Id>
+                                       <OrgId>
+                                               <AnyBIC>POFICHBE</AnyBIC>
+                                       </OrgId>
+                               </Id>
+                       </InitgPty>
+               </GrpHdr>
+               <OrgnlGrpInfAndSts>
+                       <OrgnlMsgId>MSG-02-QRR-SCOR</OrgnlMsgId>
+                       <OrgnlMsgNmId>pain.001.001.09.ch.03</OrgnlMsgNmId>
+               </OrgnlGrpInfAndSts>
+               <OrgnlPmtInfAndSts>
+                       <OrgnlPmtInfId>PMTINF-02</OrgnlPmtInfId>
+                       <PmtInfSts>RJCT</PmtInfSts>
+                       <StsRsnInf>
+                               <Rsn>
+                                       <Cd>AC01</Cd>
+                               </Rsn>
+                               <AddtlInf>0999;CH7280005000088877766 Lastkonto 
unbekannt</AddtlInf>
+                       </StsRsnInf>
+               </OrgnlPmtInfAndSts>
+       </CstmrPmtStsRpt>
+</Document>
diff --git a/testbench/sample/3_pain002 B-Level und C-Level RJCT_v2009.xml 
b/testbench/sample/3_pain002 B-Level und C-Level RJCT_v2009.xml
new file mode 100644
index 00000000..27c62a6b
--- /dev/null
+++ b/testbench/sample/3_pain002 B-Level und C-Level RJCT_v2009.xml     
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document 
xmlns="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd
 pain.002.001.03.ch.02.xsd">
+       <CstmrPmtStsRpt>
+               <GrpHdr>
+                       <MsgId>20180315375204222822452</MsgId>
+                       <CreDtTm>2018-03-15T11:25:12</CreDtTm>
+                       <InitgPty>
+                               <Id>
+                                       <OrgId>
+                                               <BICOrBEI>POFICHBE</BICOrBEI>
+                                       </OrgId>
+                               </Id>
+                       </InitgPty>
+               </GrpHdr>
+               <OrgnlGrpInfAndSts>
+                       <OrgnlMsgId>MsgId-001</OrgnlMsgId>
+                       <OrgnlMsgNmId>pain.001.001.03.ch.02</OrgnlMsgNmId>
+               </OrgnlGrpInfAndSts>
+               <OrgnlPmtInfAndSts>
+                       <OrgnlPmtInfId>PmtInfId-001-03</OrgnlPmtInfId>
+                       <PmtInfSts>PART</PmtInfSts>
+                       <TxInfAndSts>
+                               <OrgnlInstrId>InstrId-001-03-04</OrgnlInstrId>
+                               
<OrgnlEndToEndId>EndToEndId-001-03-04</OrgnlEndToEndId>
+                               <TxSts>RJCT</TxSts>
+                               <StsRsnInf>
+                                       <Rsn>
+                                               <Cd>AC01</Cd>
+                                       </Rsn>
+                                       <AddtlInf>1301813;Konto 
ungültig</AddtlInf>
+                               </StsRsnInf>
+                               <OrgnlTxRef>
+                                       
<IntrBkSttlmDt>2018-03-16</IntrBkSttlmDt>
+                                       <ReqdColltnDt>2018-03-16</ReqdColltnDt>
+                               </OrgnlTxRef>
+                       </TxInfAndSts>
+               </OrgnlPmtInfAndSts>
+       </CstmrPmtStsRpt>
+</Document>
diff --git a/testbench/sample/5_pain002 A-Level ACTC (Empfangsbestaetigung 
FDS)_v2009.xml b/testbench/sample/5_pain002 A-Level ACTC (Empfangsbestaetigung 
FDS)_v2009.xml
new file mode 100644
index 00000000..f4c74cbd
--- /dev/null
+++ b/testbench/sample/5_pain002 A-Level ACTC (Empfangsbestaetigung 
FDS)_v2009.xml      
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document 
xmlns="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    
xsi:schemaLocation="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd
 pain.002.001.03.ch.02.xsd">
+    <CstmrPmtStsRpt>
+        <GrpHdr>
+            <MsgId>20180315375204222821684</MsgId>
+            <CreDtTm>2018-03-15T10:49:10</CreDtTm>
+            <InitgPty>
+                <Id>
+                    <OrgId>
+                        <BICOrBEI>POFICHBE</BICOrBEI>
+                    </OrgId>
+                </Id>
+            </InitgPty>
+        </GrpHdr>
+        <OrgnlGrpInfAndSts>
+            <OrgnlMsgId>MsgId-001</OrgnlMsgId>
+            <OrgnlMsgNmId>pain.001.001.03.ch.02</OrgnlMsgNmId>
+            <GrpSts>ACTC</GrpSts>
+        </OrgnlGrpInfAndSts>
+    </CstmrPmtStsRpt>
+</Document>
\ No newline at end of file
diff --git a/testbench/sample/5_pain002 A-Level ACTC (Empfangsbestaetigung 
FDS)_v2019.xml b/testbench/sample/5_pain002 A-Level ACTC (Empfangsbestaetigung 
FDS)_v2019.xml
new file mode 100644
index 00000000..dd603c50
--- /dev/null
+++ b/testbench/sample/5_pain002 A-Level ACTC (Empfangsbestaetigung 
FDS)_v2019.xml      
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10 
pain.002.001.10.xsd">
+       <CstmrPmtStsRpt>
+               <GrpHdr>
+                       <MsgId>20180315375204222821684</MsgId>
+                       <CreDtTm>2022-05-02T10:49:10</CreDtTm>
+                       <InitgPty>
+                               <Id>
+                                       <OrgId>
+                                               <AnyBIC>POFICHBE</AnyBIC>
+                                       </OrgId>
+                               </Id>
+                       </InitgPty>
+               </GrpHdr>
+               <OrgnlGrpInfAndSts>
+                       <OrgnlMsgId>MsgId-001</OrgnlMsgId>
+                       <OrgnlMsgNmId>pain.001.001.09.ch.03</OrgnlMsgNmId>
+                       <GrpSts>ACTC</GrpSts>
+               </OrgnlGrpInfAndSts>
+       </CstmrPmtStsRpt>
+</Document>
diff --git a/testbench/sample/6_pain002 A-Level RJCT (Empfangsbestaetigung 
FDS)_v2009.xml b/testbench/sample/6_pain002 A-Level RJCT (Empfangsbestaetigung 
FDS)_v2009.xml
new file mode 100644
index 00000000..1960b15f
--- /dev/null
+++ b/testbench/sample/6_pain002 A-Level RJCT (Empfangsbestaetigung 
FDS)_v2009.xml      
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document 
xmlns="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd
 pain.002.001.03.ch.02.xsd">
+       <CstmrPmtStsRpt>
+               <GrpHdr>
+                       <MsgId>20180326375204011685776</MsgId>
+                       <CreDtTm>2018-03-26T14:40:00</CreDtTm>
+                       <InitgPty>
+                               <Id>
+                                       <OrgId>
+                                               <BICOrBEI>POFICHBE</BICOrBEI>
+                                       </OrgId>
+                               </Id>
+                       </InitgPty>
+               </GrpHdr>
+               <OrgnlGrpInfAndSts>
+                       <OrgnlMsgId>MsgId-005</OrgnlMsgId>
+                       <OrgnlMsgNmId>pain.001.001.03.ch.02</OrgnlMsgNmId>
+                       <GrpSts>RJCT</GrpSts>
+                       <StsRsnInf>
+                               <Rsn>
+                                       <Cd>AM10</Cd>
+                               </Rsn>
+                               <AddtlInf>904114;ControlSum 
fehlerhaft</AddtlInf>
+                       </StsRsnInf>
+               </OrgnlGrpInfAndSts>
+       </CstmrPmtStsRpt>
+</Document>
diff --git a/testbench/sample/6_pain002 A-Level RJCT (Empfangsbestaetigung 
FDS)_v2019.xml b/testbench/sample/6_pain002 A-Level RJCT (Empfangsbestaetigung 
FDS)_v2019.xml
new file mode 100644
index 00000000..0809b583
--- /dev/null
+++ b/testbench/sample/6_pain002 A-Level RJCT (Empfangsbestaetigung 
FDS)_v2019.xml      
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.002.001.10 
pain.002.001.10.xsd">
+       <CstmrPmtStsRpt>
+               <GrpHdr>
+                       <MsgId>20180326375204011685776</MsgId>
+                       <CreDtTm>2022-05-02T14:40:00</CreDtTm>
+                       <InitgPty>
+                               <Id>
+                                       <OrgId>
+                                               <AnyBIC>POFICHBE</AnyBIC>
+                                       </OrgId>
+                               </Id>
+                       </InitgPty>
+               </GrpHdr>
+               <OrgnlGrpInfAndSts>
+                       <OrgnlMsgId>MsgId-005</OrgnlMsgId>
+                       <OrgnlMsgNmId>pain.001.001.09.ch.03</OrgnlMsgNmId>
+                       <GrpSts>RJCT</GrpSts>
+                       <StsRsnInf>
+                               <Rsn>
+                                       <Cd>AM10</Cd>
+                               </Rsn>
+                               <AddtlInf>904114;ControlSum 
fehlerhaft</AddtlInf>
+                       </StsRsnInf>
+               </OrgnlGrpInfAndSts>
+       </CstmrPmtStsRpt>
+</Document>
diff --git a/testbench/sample/9_camt054 Return_Detailavisierung mit 
Sammelbuchung_ISO2019_v2019.xml b/testbench/sample/9_camt054 
Return_Detailavisierung mit Sammelbuchung_ISO2019_v2019.xml
new file mode 100644
index 00000000..facd99ea
--- /dev/null
+++ b/testbench/sample/9_camt054 Return_Detailavisierung mit 
Sammelbuchung_ISO2019_v2019.xml    
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08 
file:///C:/camt.054.001.08.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20190520375204012050698</MsgId>
+                       <CreDtTm>2022-05-20T23:40:06</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20190520375204012050705</Id>
+                       <CreDtTm>2022-05-20T23:40:06</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2022-05-20T00:00:00</FrDtTm>
+                               <ToDtTm>2022-05-20T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <Amt Ccy="CHF">400.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2022-05-20</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2022-05-20</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>086820002PBWFX2U</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>ICDT</Cd>
+                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>180327CH02P92DYD</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-004-01</PmtInfId>
+                                                       
<InstrId>InstrId-004-01-01</InstrId>
+                                                       
<EndToEndId>EndToEndId-004-01-01</EndToEndId>
+                                               </Refs>
+                                               <Amt Ccy="CHF">400.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>ICDT</Cd>
+                                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Robert Schneider SA</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Rue du Lac 177</AdrLine>
+                                                                               
<AdrLine>2503 Biel/Bienne</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH8709000000929471495</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<ClrSysMmbId>
+                                                                               
<MmbId>9000</MmbId>
+                                                                       
</ClrSysMmbId>
+                                                                       
<Nm>PostFinance AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Mingerstrasse 20</AdrLine>
+                                                                               
<AdrLine>3030 Bern</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       
<Ustrd>Kontouebertrag</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-05-20T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                               <RtrInf>
+                                                       <Rsn>
+                                                               <Cd>AC01</Cd>
+                                                       </Rsn>
+                                                       <AddtlInf>Kontonummer 
falsch</AddtlInf>
+                                               </RtrInf>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT RETOUREN 
VERARBEITUNG VOM 20.05.2022 PAKET ID: 190520CH000006O1</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git a/testbench/sample/9_camt054 Return_Detailavisierung mit 
Sammelbuchung_v2009.xml b/testbench/sample/9_camt054 Return_Detailavisierung 
mit Sammelbuchung_v2009.xml
new file mode 100644
index 00000000..56ad09ff
--- /dev/null
+++ b/testbench/sample/9_camt054 Return_Detailavisierung mit 
Sammelbuchung_v2009.xml    
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 
file:///C:/Users/alihodzica/Desktop/camt.054/camt.054.001.04.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20190520375204012050698</MsgId>
+                       <CreDtTm>2019-05-20T23:40:06</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.6/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20190520375204012050705</Id>
+                       <CreDtTm>2019-05-20T23:40:06</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2019-05-20T00:00:00</FrDtTm>
+                               <ToDtTm>2019-05-20T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <Amt Ccy="CHF">400.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2019-05-20</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2019-05-20</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>086820002PBWFX2U</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>ICDT</Cd>
+                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>180327CH02P92DYD</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-004-01</PmtInfId>
+                                                       
<InstrId>InstrId-004-01-01</InstrId>
+                                                       
<EndToEndId>EndToEndId-004-01-01</EndToEndId>
+                                               </Refs>
+                                               <Amt Ccy="CHF">400.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>ICDT</Cd>
+                                                                       
<SubFmlyCd>RRTN</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Robert 
Schneider SA</Nm>
+                                                               <PstlAdr>
+                                                                       
<AdrLine>Rue du Lac 177</AdrLine>
+                                                                       
<AdrLine>2503 Biel/Bienne</AdrLine>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH8709000000929471495</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<ClrSysMmbId>
+                                                                               
<MmbId>9000</MmbId>
+                                                                       
</ClrSysMmbId>
+                                                                       
<Nm>PostFinance AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Mingerstrasse 20</AdrLine>
+                                                                               
<AdrLine>3030 Bern</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       
<Ustrd>Kontouebertrag</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2019-05-20T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                               <RtrInf>
+                                                       <Rsn>
+                                                               <Cd>AC01</Cd>
+                                                       </Rsn>
+                                                       <AddtlInf>Kontonummer 
falsch</AddtlInf>
+                                               </RtrInf>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT RETOUREN 
VERARBEITUNG VOM 20.05.2019 PAKET ID: 190520CH000006O1</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020062503071366_v2009.xml
 
b/testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020062503071366_v2009.xml
new file mode 100644
index 00000000..68f32719
--- /dev/null
+++ 
b/testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020062503071366_v2009.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.04">
+       <BkToCstmrStmt>
+               <GrpHdr>
+                       <MsgId>20201124375204229003967</MsgId>
+                       <CreDtTm>2020-11-25T02:02:16</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.7/PROD</AddtlInf>
+               </GrpHdr>
+               <Stmt>
+                       <Id>20201124375204229003973</Id>
+                       <ElctrncSeqNb>118</ElctrncSeqNb>
+                       <CreDtTm>2020-11-25T02:02:16</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2020-06-24T00:00:00</FrDtTm>
+                               <ToDtTm>2020-06-24T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>OPBD</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">211993.19</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-24</Dt>
+                               </Dt>
+                       </Bal>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>CLBD</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">215112.21</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-24</Dt>
+                               </Dt>
+                       </Bal>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>CLAV</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">215112.21</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-24</Dt>
+                               </Dt>
+                       </Bal>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>FWAV</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">216649.21</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-25</Dt>
+                               </Dt>
+                       </Bal>
+                       <Ntry>
+                               <NtryRef>41100000000872849</NtryRef>
+                               <Amt Ccy="CHF">4.50</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>0758103031480900</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>IDDT</Cd>
+                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>0758103031480900</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">4.50</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT CH-DD-BASISLASTSCHRIFT 
ID-NR. DES ZAHLUNGSEMPFÄNGERS: 41100000000872849 REFERENZ-NR: 
PmtInfId-CHDD-1</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <Amt Ccy="CHF">77.70</Amt>
+                               <CdtDbtInd>DBIT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>0758103031480977</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>ICDT</Cd>
+                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>0758103031480977</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">77.70</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT CH-DD-BASISLASTSCHRIFT 
ID-NR. DES ZAHLUNGSEMPFÄNGERS: 41100000000872849 REFERENZ-NR: 
PmtInfId-CHDD-1</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <NtryRef>CH2909000000250094239</NtryRef>
+                               <Amt Ccy="CHF">1500.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>07582000303F0C7U</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>07582000303F0C7U</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1500.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH2909000000250094239 VERARBEITUNG VOM 23.11.2020 PAKET ID: 
9999999999999999</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <NtryRef>CH7730000001250094239</NtryRef>
+                               <Amt Ccy="CHF">1537.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-25</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>VCOM</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1537.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH7730000001250094239 VERARBEITUNG VOM 24.11.2020 PAKET ID: 
201124CH000009TC</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <NtryRef>CH7730000001250094239</NtryRef>
+                               <Amt Ccy="CHF">1692.22</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>VCOM</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1692.22</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH7730000001250094239 VERARBEITUNG VOM 24.11.2020 PAKET ID: 
201124CH000009TB</AddtlNtryInf>
+                       </Ntry>
+               </Stmt>
+       </BkToCstmrStmt>
+</Document>
diff --git 
a/testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020112503071366_v2019.xml
 
b/testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020112503071366_v2019.xml
new file mode 100644
index 00000000..08ea2aeb
--- /dev/null
+++ 
b/testbench/sample/camt053_P_CH2909000000250094239_1110092698_0_2020112503071366_v2019.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.08" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.08 
file:///C:/Users/burkhalterl/Downloads/camt.053.001.08.xsd">
+       <BkToCstmrStmt>
+               <GrpHdr>
+                       <MsgId>20201124375204229003967</MsgId>
+                       <CreDtTm>2020-11-25T02:02:16</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/2.0/PROD</AddtlInf>
+               </GrpHdr>
+               <Stmt>
+                       <Id>20201124375204229003973</Id>
+                       <ElctrncSeqNb>118</ElctrncSeqNb>
+                       <CreDtTm>2020-11-25T02:02:16</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2020-06-24T00:00:00</FrDtTm>
+                               <ToDtTm>2020-06-24T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ccy>CHF</Ccy>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>OPBD</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">211993.19</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-24</Dt>
+                               </Dt>
+                       </Bal>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>CLBD</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">215112.21</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-24</Dt>
+                               </Dt>
+                       </Bal>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>CLAV</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">215112.21</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-24</Dt>
+                               </Dt>
+                       </Bal>
+                       <Bal>
+                               <Tp>
+                                       <CdOrPrtry>
+                                               <Cd>FWAV</Cd>
+                                       </CdOrPrtry>
+                               </Tp>
+                               <Amt Ccy="CHF">216649.21</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <Dt>
+                                       <Dt>2020-11-25</Dt>
+                               </Dt>
+                       </Bal>
+                       <Ntry>
+                               <NtryRef>41100000000872849</NtryRef>
+                               <Amt Ccy="CHF">4.50</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>0758103031480900</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>IDDT</Cd>
+                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>0758103031480900</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">4.50</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT CH-DD-BASISLASTSCHRIFT 
ID-NR. DES ZAHLUNGSEMPFÄNGERS: 41100000000872849 REFERENZ-NR: 
PmtInfId-CHDD-1</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <Amt Ccy="CHF">77.70</Amt>
+                               <CdtDbtInd>DBIT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>0758103031480977</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>ICDT</Cd>
+                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>0758103031480977</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">77.70</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT CH-DD-BASISLASTSCHRIFT 
ID-NR. DES ZAHLUNGSEMPFÄNGERS: 41100000000872849 REFERENZ-NR: 
PmtInfId-CHDD-1</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <Amt Ccy="CHF">1500.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>07582000303F0C7U</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>07582000303F0C7U</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1500.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH2909000000250094239 VERARBEITUNG VOM 23.11.2020 PAKET ID: 
9999999999999999</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <NtryRef>CH2909000000250094239</NtryRef>
+                               <Amt Ccy="CHF">1537.00</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-25</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>VCOM</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1537.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH2909000000250094239 VERARBEITUNG VOM 24.11.2020 PAKET ID: 
9999999999999998</AddtlNtryInf>
+                       </Ntry>
+                       <Ntry>
+                               <NtryRef>CH7730000001250094239</NtryRef>
+                               <Amt Ccy="CHF">1692.22</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2020-11-24</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2020-11-24</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>VCOM</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>07582000303KBMSU</AcctSvcrRef>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1692.22</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH7730000001250094239 VERARBEITUNG VOM 24.11.2020 PAKET ID: 
201124CH000009TB</AddtlNtryInf>
+                       </Ntry>
+               </Stmt>
+       </BkToCstmrStmt>
+</Document>
diff --git 
a/testbench/sample/camt054-CHDD_P_CH2909000000250094239_1110097484_0_20220615375204228751067.xml
 
b/testbench/sample/camt054-CHDD_P_CH2909000000250094239_1110097484_0_20220615375204228751067.xml
new file mode 100644
index 00000000..be527463
--- /dev/null
+++ 
b/testbench/sample/camt054-CHDD_P_CH2909000000250094239_1110097484_0_20220615375204228751067.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 
file:///C:/Users/alihodzica/Desktop/camt.054/camt.054.001.04.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20220615375204228751067</MsgId>
+                       <CreDtTm>2022-06-15T23:20:22</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.7/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20220615375204228751070</Id>
+                       <CreDtTm>2022-06-15T23:20:22</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2022-06-14T00:00:00</FrDtTm>
+                               <ToDtTm>2022-06-15T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>41100000000872849</NtryRef>
+                               <Amt Ccy="CHF">4.50</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2022-06-15</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2022-06-15</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>0758103031480900</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>IDDT</Cd>
+                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>2</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<MsgId>MsgId-CHDD-Musterfile</MsgId>
+                                                       
<AcctSvcrRef>201-31295208-1</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-CHDD-1</PmtInfId>
+                                                       
<InstrId>InstrId-CHDD-1</InstrId>
+                                                       
<EndToEndId>E2EId-CHDD-1</EndToEndId>
+                                               </Refs>
+                                               <Amt Ccy="CHF">1.50</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>IDDT</Cd>
+                                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Maria 
Bernasconi</Nm>
+                                                               <PstlAdr>
+                                                                       
<StrtNm>Place de la Gare 12</StrtNm>
+                                                                       
<PstCd>2502</PstCd>
+                                                                       
<TwnNm>Biel</TwnNm>
+                                                                       
<Ctry>CH</Ctry>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                               </RltdPties>
+                                               <RmtInf>
+                                                       <Ustrd>Rechnung 
1001</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-06-15T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<MsgId>MsgId-CHDD-Musterfile</MsgId>
+                                                       
<AcctSvcrRef>201-31295208-2</AcctSvcrRef>
+                                                       
<PmtInfId>PmtInfId-CHDD-1</PmtInfId>
+                                                       
<InstrId>InstrId-CHDD-2</InstrId>
+                                                       
<EndToEndId>E2EId-CHDD-2</EndToEndId>
+                                               </Refs>
+                                               <Amt Ccy="CHF">3.00</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>IDDT</Cd>
+                                                                       
<SubFmlyCd>PMDD</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Maria 
Bernasconi</Nm>
+                                                               <PstlAdr>
+                                                                       
<StrtNm>Place de la Gare 12</StrtNm>
+                                                                       
<PstCd>2502</PstCd>
+                                                                       
<TwnNm>Biel</TwnNm>
+                                                                       
<Ctry>CH</Ctry>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                               </RltdPties>
+                                               <RmtInf>
+                                                       <Ustrd>Rechnung 
1002</Ustrd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-06-15T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT CH-DD-BASISLASTSCHRIFT 
ID-NR. DES ZAHLUNGSEMPFÄNGERS: 41100000000872849 REFERENZ-NR: 
PmtInfId-CHDD-1</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2009.xml
 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2009.xml
new file mode 100644
index 00000000..dc1d8241
--- /dev/null
+++ 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2009.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 
camt.054.001.04.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20200618375204295372463</MsgId>
+                       <CreDtTm>2022-03-10T23:40:14</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.7/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20200618375204295372465</Id>
+                       <CreDtTm>2022-03-10T23:40:14</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2022-03-10T00:00:00</FrDtTm>
+                               <ToDtTm>2022-03-10T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>CH2909000000250094239</NtryRef>
+                               <Amt Ccy="CHF">522.10</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2022-03-10</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2022-03-10</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>1000000000000000</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>ATXN</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>2000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1006265-25bbb3b1a</InstrId>
+                                                       
<EndToEndId>NOTPROVIDED</EndToEndId>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000020</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">522.10</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>ATXN</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Bernasconi 
Maria</Nm>
+                                                               <PstlAdr>
+                                                                       
<AdrLine>Place de la Gare 12</AdrLine>
+                                                                       
<AdrLine>2502 Biel/Bienne</AdrLine>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH2909000000250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE 20</AdrLine>
+                                                                               
<AdrLine>3030 BERNE</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Strd>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-03-10T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT AUFTRAGGEBER: 
Bernasconi Maria Place de la Gare 12  2502 Biel/Bienne REFERENZEN: NOTPROVIDED 
1006265-25bbb3b1a 2000000000000000</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2019.xml
 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2019.xml
new file mode 100644
index 00000000..0647c09f
--- /dev/null
+++ 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111112_0_2022031011011199_v2019.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08 
file:///C:/Users/burkhalterl/Documents/Musterfiles%20ISOV19/Schemen/camt.054.001.08.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20200618375204295372463</MsgId>
+                       <CreDtTm>2022-03-10T23:40:14</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/2.0/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20200618375204295372465</Id>
+                       <CreDtTm>2022-03-10T23:40:14</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2022-03-10T00:00:00</FrDtTm>
+                               <ToDtTm>2022-03-10T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ccy>CHF</Ccy>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>CH2909000000250094239</NtryRef>
+                               <Amt Ccy="CHF">522.10</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2022-03-10</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2022-03-10</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>1000000000000000</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>ATXN</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>2000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1006265-25bbb3b1a</InstrId>
+                                                       
<EndToEndId>NOTPROVIDED</EndToEndId>
+                                                       
<UETR>b009c997-97b3-4a9c-803c-d645a7276bf0</UETR>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000020</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">522.10</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>ATXN</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Bernasconi Maria</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Place de la Gare 12</AdrLine>
+                                                                               
<AdrLine>2502 Biel/Bienne</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH2909000000250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE 20</AdrLine>
+                                                                               
<AdrLine>3030 BERNE</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Strd>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-03-10T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>GUTSCHRIFT AUFTRAGGEBER: 
Bernasconi Maria Place de la Gare 12  2502 Biel/Bienne REFERENZEN: NOTPROVIDED 
1006265-25bbb3b1a 2000000000000000</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2009.xml
 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2009.xml
new file mode 100644
index 00000000..ed822f6d
--- /dev/null
+++ 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2009.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 
camt.054.001.04.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20200618375204295372463</MsgId>
+                       <CreDtTm>2022-03-08T23:31:31</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/1.7/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20200618375204295372465</Id>
+                       <CreDtTm>2022-03-08T23:31:31</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2022-03-08T00:00:00</FrDtTm>
+                               <ToDtTm>2022-03-08T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <RptgSrc>
+                               <Prtry>OTHR</Prtry>
+                       </RptgSrc>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>CH2909000000250094239</NtryRef>
+                               <Amt Ccy="CHF">501.05</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>BOOK</Sts>
+                               <BookgDt>
+                                       <Dt>2022-03-08</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2022-03-08</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>1000000000000000</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>2000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1006265-25bbb3b1a</InstrId>
+                                                       
<EndToEndId>NOTPROVIDED</EndToEndId>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000020</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">501.05</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Nm>Bernasconi 
Maria</Nm>
+                                                               <PstlAdr>
+                                                                       
<AdrLine>Place de la Gare 12</AdrLine>
+                                                                       
<AdrLine>2502 Biel/Bienne</AdrLine>
+                                                               </PstlAdr>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH2909000000250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE , 20</AdrLine>
+                                                                               
<AdrLine>3030 BERN</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Ustrd>Muster</Ustrd>
+                                                       <Ustrd> 
Musterfile</Ustrd>
+                                                       <Strd>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-03-08T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH2909000000250094239 VERARBEITUNG VOM 08.03.2022 PAKET ID: 
200000000000XXX</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2019.xml
 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2019.xml
new file mode 100644
index 00000000..a4c2009b
--- /dev/null
+++ 
b/testbench/sample/camt054_P_CH2909000000250094239_1111111119_0_2022030911011199_v2019.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08 
file:///C:/Users/burkhalterl/Documents/Musterfiles%20ISOV19/Schemen/camt.054.001.08.xsd">
+       <BkToCstmrDbtCdtNtfctn>
+               <GrpHdr>
+                       <MsgId>20200618375204295372463</MsgId>
+                       <CreDtTm>2022-03-08T23:31:31</CreDtTm>
+                       <MsgPgntn>
+                               <PgNb>1</PgNb>
+                               <LastPgInd>true</LastPgInd>
+                       </MsgPgntn>
+                       <AddtlInf>SPS/2.0/PROD</AddtlInf>
+               </GrpHdr>
+               <Ntfctn>
+                       <Id>20200618375204295372465</Id>
+                       <CreDtTm>2022-03-08T23:31:31</CreDtTm>
+                       <FrToDt>
+                               <FrDtTm>2022-03-08T00:00:00</FrDtTm>
+                               <ToDtTm>2022-03-08T23:59:59</ToDtTm>
+                       </FrToDt>
+                       <Acct>
+                               <Id>
+                                       <IBAN>CH2909000000250094239</IBAN>
+                               </Id>
+                               <Ccy>CHF</Ccy>
+                               <Ownr>
+                                       <Nm>Robert Schneider SA Grands magasins 
Biel/Bienne</Nm>
+                               </Ownr>
+                       </Acct>
+                       <Ntry>
+                               <NtryRef>CH2909000000250094239</NtryRef>
+                               <Amt Ccy="CHF">501.05</Amt>
+                               <CdtDbtInd>CRDT</CdtDbtInd>
+                               <RvslInd>false</RvslInd>
+                               <Sts>
+                                       <Cd>BOOK</Cd>
+                               </Sts>
+                               <BookgDt>
+                                       <Dt>2022-03-08</Dt>
+                               </BookgDt>
+                               <ValDt>
+                                       <Dt>2022-03-08</Dt>
+                               </ValDt>
+                               <AcctSvcrRef>1000000000000000</AcctSvcrRef>
+                               <BkTxCd>
+                                       <Domn>
+                                               <Cd>PMNT</Cd>
+                                               <Fmly>
+                                                       <Cd>RCDT</Cd>
+                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                               </Fmly>
+                                       </Domn>
+                               </BkTxCd>
+                               <NtryDtls>
+                                       <Btch>
+                                               <NbOfTxs>1</NbOfTxs>
+                                       </Btch>
+                                       <TxDtls>
+                                               <Refs>
+                                                       
<AcctSvcrRef>2000000000000000</AcctSvcrRef>
+                                                       
<InstrId>1006265-25bbb3b1a</InstrId>
+                                                       
<EndToEndId>NOTPROVIDED</EndToEndId>
+                                                       
<UETR>b009c997-97b3-4a9c-803c-d645a7276b0</UETR>
+                                                       <Prtry>
+                                                               <Tp>00</Tp>
+                                                               
<Ref>00000000000000000000020</Ref>
+                                                       </Prtry>
+                                               </Refs>
+                                               <Amt Ccy="CHF">501.05</Amt>
+                                               <CdtDbtInd>CRDT</CdtDbtInd>
+                                               <BkTxCd>
+                                                       <Domn>
+                                                               <Cd>PMNT</Cd>
+                                                               <Fmly>
+                                                                       
<Cd>RCDT</Cd>
+                                                                       
<SubFmlyCd>AUTT</SubFmlyCd>
+                                                               </Fmly>
+                                                       </Domn>
+                                               </BkTxCd>
+                                               <RltdPties>
+                                                       <Dbtr>
+                                                               <Pty>
+                                                                       
<Nm>Bernasconi Maria</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>Place de la Gare 12</AdrLine>
+                                                                               
<AdrLine>2502 Biel/Bienne</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </Pty>
+                                                       </Dbtr>
+                                                       <DbtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH5109000000250092291</IBAN>
+                                                               </Id>
+                                                       </DbtrAcct>
+                                                       <CdtrAcct>
+                                                               <Id>
+                                                                       
<IBAN>CH2909000000250094239</IBAN>
+                                                               </Id>
+                                                       </CdtrAcct>
+                                               </RltdPties>
+                                               <RltdAgts>
+                                                       <DbtrAgt>
+                                                               <FinInstnId>
+                                                                       
<BICFI>POFICHBEXXX</BICFI>
+                                                                       
<Nm>POSTFINANCE AG</Nm>
+                                                                       
<PstlAdr>
+                                                                               
<AdrLine>MINGERSTRASSE , 20</AdrLine>
+                                                                               
<AdrLine>3030 BERN</AdrLine>
+                                                                       
</PstlAdr>
+                                                               </FinInstnId>
+                                                       </DbtrAgt>
+                                               </RltdAgts>
+                                               <RmtInf>
+                                                       <Ustrd>Muster</Ustrd>
+                                                       <Ustrd> 
Musterfile</Ustrd>
+                                                       <Strd>
+                                                               
<AddtlRmtInf>?REJECT?0</AddtlRmtInf>
+                                                               
<AddtlRmtInf>?ERROR?000</AddtlRmtInf>
+                                                       </Strd>
+                                               </RmtInf>
+                                               <RltdDts>
+                                                       
<AccptncDtTm>2022-03-08T20:00:00</AccptncDtTm>
+                                               </RltdDts>
+                                       </TxDtls>
+                               </NtryDtls>
+                               <AddtlNtryInf>SAMMELGUTSCHRIFT FÜR KONTO: 
CH2909000000250094239 VERARBEITUNG VOM 08.03.2022 PAKET ID: 
200000000000XXX</AddtlNtryInf>
+                       </Ntry>
+               </Ntfctn>
+       </BkToCstmrDbtCdtNtfctn>
+</Document>
diff --git 
a/testbench/sample/pain002_CHDD_P_CH2909000000250094239_1110097483_0_20220614375204216308259.xml
 
b/testbench/sample/pain002_CHDD_P_CH2909000000250094239_1110097483_0_20220614375204216308259.xml
new file mode 100644
index 00000000..6f52b504
--- /dev/null
+++ 
b/testbench/sample/pain002_CHDD_P_CH2909000000250094239_1110097483_0_20220614375204216308259.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document 
xmlns="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://www.six-interbank-clearing.com/de/pain.002.001.03.ch.02.xsd
 pain.002.001.03.ch.02.xsd">
+       <CstmrPmtStsRpt>
+               <GrpHdr>
+                       <MsgId>20220614375204216308259</MsgId>
+                       <CreDtTm>2022-06-14T17:22:51</CreDtTm>
+                       <InitgPty>
+                               <Id>
+                                       <OrgId>
+                                               <BICOrBEI>POFICHBE</BICOrBEI>
+                                       </OrgId>
+                               </Id>
+                       </InitgPty>
+               </GrpHdr>
+               <OrgnlGrpInfAndSts>
+                       <OrgnlMsgId>MsgId-CHDD-Musterfile</OrgnlMsgId>
+                       <OrgnlMsgNmId>pain.008.001.02.ch.03</OrgnlMsgNmId>
+               </OrgnlGrpInfAndSts>
+               <OrgnlPmtInfAndSts>
+                       <OrgnlPmtInfId>PmtInfId-CHDD-1</OrgnlPmtInfId>
+                       <PmtInfSts>ACCP</PmtInfSts>
+               </OrgnlPmtInfAndSts>
+       </CstmrPmtStsRpt>
+</Document>
diff --git a/testbench/src/test/kotlin/Iso20022Test.kt 
b/testbench/src/test/kotlin/Iso20022Test.kt
index 481961c0..7e0fc7b9 100644
--- a/testbench/src/test/kotlin/Iso20022Test.kt
+++ b/testbench/src/test/kotlin/Iso20022Test.kt
@@ -23,6 +23,22 @@ import java.nio.file.*
 import kotlin.io.path.*
 
 class Iso20022Test {
+    @Test
+    fun sample() {
+        for (sample in Path("sample").listDirectoryEntries()) {
+            val content = Files.newInputStream(sample)
+            val name = sample.toString()
+            println(name)
+            if (name.contains("HAC")) {
+                parseCustomerAck(content)
+            } else if (name.contains("pain.002")) {
+                parseCustomerPaymentStatusReport(content)
+            } else {
+                parseTxNotif(content, "CHF", mutableListOf())
+            }
+        }
+    }
+
     @Test
     fun logs() {
         val root = Path("test")
@@ -40,7 +56,7 @@ class Iso20022Test {
                         } else if (name.contains("pain.002")) {
                             parseCustomerPaymentStatusReport(content)
                         } else {
-                            parseTxNotif(content, "CHF", mutableListOf(), 
mutableListOf())
+                            parseTxNotif(content, "CHF", mutableListOf())
                         }
                     }
                 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]