[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: use our own test data, iban generator
From: |
gnunet |
Subject: |
[libeufin] branch master updated: use our own test data, iban generator tool |
Date: |
Fri, 03 Jul 2020 10:01:56 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 1924196 use our own test data, iban generator tool
1924196 is described below
commit 19241961a197530ab219ac194c02abac295b8953
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Fri Jul 3 13:31:16 2020 +0530
use our own test data, iban generator tool
---
contrib/ibangen.py | 33 +
.../main/kotlin/tech/libeufin/nexus/Iso20022.kt | 77 ++-
nexus/src/test/kotlin/Iso20022Test.kt | 8 +-
.../iso20022-samples/FI_camt_052_sample.xml | 1 -
.../camt.053.001.02.gesamtbeispiel.xml | 701 ---------------------
.../camt.053/de.camt.053.001.02.xml | 195 ++++++
6 files changed, 295 insertions(+), 720 deletions(-)
diff --git a/contrib/ibangen.py b/contrib/ibangen.py
new file mode 100755
index 0000000..1d147e5
--- /dev/null
+++ b/contrib/ibangen.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+# Copyright (c) 2020 Taler Systems S.A.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+import click
+import random
+
+def complete_iban(s):
+ n = int("".join([str(int(x, 26)) for x in (s[4:] + s[0:2] + "00")]))
+ c = 98 - (n % 97)
+ return (s[:2] + str(c).ljust(2, "0") + s[4:]).upper()
+
+
+@click.command()
+def geniban():
+ bban = "12345678"
+ accno = "".join((str(random.randint(0, 9)) for _ in range(10)))
+ iban = complete_iban("DE00" + bban + accno)
+ print(iban)
+
+if __name__ == '__main__':
+ geniban()
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
index e08f8fc..95d3506 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Iso20022.kt
@@ -131,8 +131,8 @@ data class TransactionInfo(
val paymentInformationId: String? = null,
val messageId: String? = null,
- val amount: CurrencyAmount?,
- val creditDebitIndicator: CreditDebitIndicator?,
+ val amount: CurrencyAmount,
+ val creditDebitIndicator: CreditDebitIndicator,
val instructedAmount: CurrencyAmount?,
val transactionAmount: CurrencyAmount?,
@@ -230,7 +230,10 @@ fun createPain001document(paymentData:
NexusPaymentInitiationData): String {
root("Document") {
attribute("xmlns",
"urn:iso:std:iso:20022:tech:xsd:pain.001.001.03")
attribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")
- attribute("xsi:schemaLocation",
"urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd")
+ attribute(
+ "xsi:schemaLocation",
+ "urn:iso:std:iso:20022:tech:xsd:pain.001.001.03
pain.001.001.03.xsd"
+ )
element("CstmrCdtTrfInitn") {
element("GrpHdr") {
element("MsgId") {
@@ -408,21 +411,67 @@ private fun
XmlElementDestructor.extractMaybeCurrencyExchange(): CurrencyExchang
}
-private fun XmlElementDestructor.extractTransactionInfos():
List<TransactionInfo> {
+private fun XmlElementDestructor.extractTransactionInfos(
+ outerAmount: CurrencyAmount,
+ outerCreditDebitIndicator: CreditDebitIndicator
+): List<TransactionInfo> {
+
+ val numTxDtls = requireUniqueChildNamed("NtryDtls") {
+ mapEachChildNamed("TxDtls") { Unit }
+ }.count()
+
return requireUniqueChildNamed("NtryDtls") {
mapEachChildNamed("TxDtls") {
+
+ val instructedAmount = maybeUniqueChildNamed("AmtDtls") {
+ maybeUniqueChildNamed("InstrAmt") { extractCurrencyAmount() }
+ }
+
+ val transactionAmount = maybeUniqueChildNamed("AmtDtls") {
+ maybeUniqueChildNamed("TxAmt") { extractCurrencyAmount() }
+ }
+
+ var amount = maybeExtractCurrencyAmount()
+ var creditDebitIndicator = maybeUniqueChildNamed("CdtDbtInd") {
it.textContent }?.let {
+ CreditDebitIndicator.valueOf(it)
+ }
+ if (amount == null) {
+ when {
+ numTxDtls == 1 -> {
+ amount = outerAmount
+ creditDebitIndicator = outerCreditDebitIndicator
+ }
+ transactionAmount?.currency == outerAmount.currency -> {
+ amount = transactionAmount
+ creditDebitIndicator = outerCreditDebitIndicator
+ }
+ instructedAmount?.currency == outerAmount.currency -> {
+ amount = instructedAmount
+ creditDebitIndicator = outerCreditDebitIndicator
+ }
+ else -> {
+ throw Error("invalid camt, no amount for transaction
details of entry details")
+ }
+ }
+ }
+
+ if (creditDebitIndicator == null) {
+ throw Error("invalid camt, no credit/debit indicator for
transaction details of entry details")
+ }
+
TransactionInfo(
batchMessageId = null,
batchPaymentInformationId = null,
- amount = maybeExtractCurrencyAmount(),
- creditDebitIndicator = maybeUniqueChildNamed("CdtDbtInd") {
it.textContent }?.let {
- CreditDebitIndicator.valueOf(it)
+ amount = amount,
+ creditDebitIndicator = creditDebitIndicator,
+ instructedAmount = instructedAmount,
+ instructedAmountCurrencyExchange =
maybeUniqueChildNamed("AmtDtls") {
+ maybeUniqueChildNamed("InstrAmt") {
extractMaybeCurrencyExchange() }
+ },
+ transactionAmount = transactionAmount,
+ transactionAmountCurrencyExchange =
maybeUniqueChildNamed("AmtDtls") {
+ maybeUniqueChildNamed("TxAmt") {
extractMaybeCurrencyExchange() }
},
- instructedAmount = maybeUniqueChildNamed("AmtDtls") {
maybeUniqueChildNamed("InstrAmt") { extractCurrencyAmount() } },
- instructedAmountCurrencyExchange =
maybeUniqueChildNamed("AmtDtls") { maybeUniqueChildNamed("InstrAmt") {
extractMaybeCurrencyExchange() } },
- transactionAmount = maybeUniqueChildNamed("AmtDtls") {
maybeUniqueChildNamed("TxAmt") { extractCurrencyAmount() } },
- transactionAmountCurrencyExchange =
maybeUniqueChildNamed("AmtDtls") { maybeUniqueChildNamed("TxAmt") {
extractMaybeCurrencyExchange() } },
-
endToEndId = maybeUniqueChildNamed("Refs") {
maybeUniqueChildNamed("EndToEndId") { it.textContent }
},
@@ -434,7 +483,7 @@ private fun XmlElementDestructor.extractTransactionInfos():
List<TransactionInfo
},
unstructuredRemittanceInformation =
maybeUniqueChildNamed("RmtInf") {
val chunks = mapEachChildNamed("Ustrd", { it.textContent })
- if (chunks.size == 0) {
+ if (chunks.isEmpty()) {
null
} else {
chunks.joinToString()
@@ -486,7 +535,7 @@ private fun
XmlElementDestructor.extractInnerTransactions(): CamtReport {
val acctSvcrRef = maybeUniqueChildNamed("AcctSvcrRef") {
it.textContent }
val entryRef = maybeUniqueChildNamed("NtryRef") { it.textContent }
// For now, only support account servicer reference as id
- val transactionInfos = extractTransactionInfos()
+ val transactionInfos =
extractTransactionInfos(CurrencyAmount(currency, amount), creditDebitIndicator)
CamtBankAccountEntry(
entryAmount = CurrencyAmount(currency, amount),
status = status,
diff --git a/nexus/src/test/kotlin/Iso20022Test.kt
b/nexus/src/test/kotlin/Iso20022Test.kt
index 94deeb5..24553be 100644
--- a/nexus/src/test/kotlin/Iso20022Test.kt
+++ b/nexus/src/test/kotlin/Iso20022Test.kt
@@ -17,17 +17,17 @@ fun loadXmlResource(name: String): Document {
class Iso20022Test {
@Test
fun testTransactionsImport() {
- val camt53 =
loadXmlResource("iso20022-samples/camt.053.001.02.gesamtbeispiel.xml")
+ val camt53 =
loadXmlResource("iso20022-samples/camt.053/de.camt.053.001.02.xml")
val r = parseCamtMessage(camt53)
- assertEquals(r.messageId, "27632364572")
- assertEquals(r.creationDateTime, "2016-05-11T19:30:47.0+01:00")
+ assertEquals(r.messageId, "msg-001")
+ assertEquals(r.creationDateTime, "2020-07-03T12:44:40+05:30")
assertEquals(r.messageType, CashManagementResponseType.Statement)
assertEquals(r.reports.size, 1)
assertEquals(r.reports[0].entries[0].entryAmount.amount, "100.00")
assertEquals(r.reports[0].entries[0].entryAmount.currency, "EUR")
assertEquals(r.reports[0].entries[0].status, EntryStatus.BOOK)
assertEquals(r.reports[0].entries[0].entryRef, null)
- assertEquals(r.reports[0].entries[0].accountServicerRef,
"Bankreferenz")
+ assertEquals(r.reports[0].entries[0].accountServicerRef,
"acctsvcrref-001")
assertEquals(r.reports[0].entries[0].bankTransactionCode.domain,
"PMNT")
assertEquals(r.reports[0].entries[0].bankTransactionCode.family,
"RCDT")
assertEquals(r.reports[0].entries[0].bankTransactionCode.subfamily,
"ESCT")
diff --git a/nexus/src/test/resources/iso20022-samples/FI_camt_052_sample.xml
b/nexus/src/test/resources/iso20022-samples/FI_camt_052_sample.xml
deleted file mode 100644
index 8ea5329..0000000
--- a/nexus/src/test/resources/iso20022-samples/FI_camt_052_sample.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
<!-- Sample XML file generated by FFFS (www.fkl.fi) B2C project for FInnish
Account Report, 2009-11-02, for different Entry instance for -->
<!-- MT210 / Prenotice of incoming inter national transaction (without
balances) and one simple intra day balance report with one transaction-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02
camt.052.001.02.xsd">
<BkToCstmrAcctRpt>
<GrpHdr>
<MsgId>BANKFILEID219073</MsgId>
<CreDtTm>2009-10-30T12:01:45+02:00</CreDtTm>
<MsgRcpt>
<Id>
<OrgId>
<Othr>
<Id>123456789</Id>
<SchmeNm>
<Cd>BANK</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</MsgRcpt>
<AddtlInf>Some additional message-specific info can be
delivered from bank to customer here</AddtlInf>
</GrpHdr>
<!-- First Report with prenotice of incoming tr
ansaction separately in its onw report with no balances-->
<Rpt>
<Id>BANKFILEID00001NTR00001</Id>
<!-- Electronic Sequence Number is optional per bank -->
<ElctrncSeqNb>196</ElctrncSeqNb>
<CreDtTm>2009-10-30T12:01:45+02:00</CreDtTm>
<Acct>
<Id>
<IBAN>FI7433010001222090</IBAN>
</Id>
<Tp>
<Cd>CACC</Cd>
</Tp>
<Ccy>EUR</Ccy>
<Nm>Account name</Nm>
<Ownr>
<Nm>BANK ACCOUNT OWNER</Nm>
<Id>
<OrgId>
<Othr>
<Id>123456789</Id>
<SchmeNm>
<Cd>CUST</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Ownr>
<Svcr>
<FinInstnId>
<BIC>ESSEFIHX</BIC>
</FinInstnId>
</Svcr>
</Acct>
<!-- -->
<TxsSummry>
<TtlNtries>
<NbOfNtries>1</NbOfNtries>
<Sum>2120.00</Sum>
<TtlNetNtryAmt>2120.00</TtlNetNtryAmt>
<CdtDbtInd>CRDT</CdtDbtInd>
</TtlNtries>
</TxsSummry>
<Ntry>
<!-- As Account Servicer Reference is not yet
available, Nt
ryRef refers to prenotice SWIFT message -->
<Ntry
Ref>21892819</NtryRef>
<Amt Ccy="EUR">2120.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>PDNG</Sts>
<BookgDt>
<Dt>2009-11-02</Dt>
</BookgDt>
<ValDt>
<Dt>2009-11-03</Dt>
</ValDt>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>XBCT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<!-- Reference used by
the Debtor banks-->
<InstrId>ISSRBKREF12345678</InstrId>
<TxId>21892819</TxId>
</Refs>
<AmtDtls>
<InstdAmt>
<Amt
Ccy="USD">3200.00</Amt>
<CcyXchg>
<SrcCcy>USD</SrcCcy>
<TrgtCcy>EUR</TrgtCcy>
<UnitCcy>EUR</UnitCcy>
<XchgRate>0.666667</XchgRate>
<!--
May differ in final booking -->
<QtnDt>2009-10-30T10:00:00+02:00</QtnDt>
</CcyXchg>
</InstdAmt>
<TxAmt>
<Amt
Ccy="EUR">2120.00</Amt>
</TxAmt>
<!-- Optional
<CntrValAmt>
<Amt
Ccy="USD">3200.00</Amt>
<CcyXchg>
<SrcCcy>USD</SrcCcy>
<TrgtCcy>EUR</TrgtCcy>
<UnitCcy>EUR</UnitCcy>
<XchgRate>0.666667</XchgRate>
<QtnDt>2009-10-30T10:00:00+02:00</QtnDt>
</CcyXchg>
</CntrValAmt>
-->
</AmtDtls>
<RltdPties>
<Dbtr>
<Nm>DEBTOR
NAME</Nm>
<Id>
<OrgId>
<Othr>
<Id>123456789</Id>
<SchmeNm>
<Cd>DUNS</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Dbtr>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BIC>BOFAUS6H</BIC>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>INVOICE
US20291092</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
</Ntry>
</Rpt>
<!-- Second Report with one booked intra-day transaction with
inter -->
<Rpt>
<Id>BANKRPTID1972009</Id>
<Elctrnc
SeqNb>197</ElctrncSeqNb>
<CreDtTm>2009-10-30T12:00
:00+02:00</CreDtTm>
<FrToDt>
<!-- Times also sepcified to indicate
transaction report time limits within day -->
<FrDtTm>2009-10-30T10:00:00+02:00</FrDtTm>
<ToDtTm>2009-10-30T12:00:00+02:00</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>FI7433010001222090</IBAN>
</Id>
<Tp>
<Cd>CACC</Cd>
</Tp>
<Ccy>EUR</Ccy>
<Ownr>
<Nm>BANK ACCOUNT OWNER</Nm>
<PstlAdr>
<StrtNm>HELSINGINKATU</StrtNm>
<BldgNb>31</BldgNb>
<PstCd>00100</PstCd>
<TwnNm>HELSINKI</TwnNm>
<Ctry>FI</Ctry>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>12345678901</Id>
<SchmeNm>
<Cd>BANK</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Ownr>
<Svcr>
<FinInstnId>
<BIC>ESSEFIHX</BIC>
</FinInstnId>
</Svcr>
</Acct>
<RltdAcct>
<Id>
<IBAN>FI1533010001911270</IBAN>
</Id>
<Ccy>EUR</Ccy>
</RltdAcct>
<Bal>
<!-- "Opening balance" as interim boo
ked on specific time of intra-day. May be also OPBD if it is really Opening
Booked Balance for the reporting day -->
<Tp>
<CdOrPrtry>
<Cd>ITBD</Cd>
</CdOrPrtry>
</Tp>
<CdtLine>
<Incl>false</Incl>
<Amt Ccy="EUR">1000.00</Amt>
</CdtLine>
<Amt Ccy="EUR">1000.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<DtTm>2009-10-30T10:00:00+02:00</DtTm>
</Dt>
</Bal>
<Bal>
<!-- "Closing balance" as interim booked on
specific time of intra-day. -->
<Tp>
<CdOrPrtry>
<Cd>ITBD</Cd>
</CdOrPrtry>
</Tp>
<CdtLine>
<Incl>false</Incl>
<Amt Ccy="EUR">1100.00</Amt>
</CdtLine>
<Amt Ccy="EUR">1100.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<DtTm>2009-10-30T12:00:00+02:00</DtTm>
</Dt>
</Bal>
<TxsSummry>
<TtlNtries>
<NbOfNtries>1</NbOfNtries>
</TtlNtries>
<TtlCdtNtries>
<NbOfNtries>1</NbOfNtries>
<Sum>100.00</Sum>
</TtlCdtNtries>
</TxsSummry>
<!--Transaction 1/ Single incoming SCT-->
<Ntry>
<Amt Ccy="EUR">100.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>BOOK</Sts>
<!-- Time with Booking Date to give info of
booking event on bank ledger -->
<BookgDt>
<DtTm>2009-10-30T11:00:00+02:00</DtTm>
</BookgDt>
<ValDt>
<Dt>2009-10-30</Dt>
</ValDt>
<AcctSvcrRef>091029ACCTSTMTARCH08</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>ESCT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>EndToEndIdSCT01</EndToEndId>
</Refs>
<AmtDtls>
<TxAmt>
<Amt
Ccy="EUR">100.00</Amt>
</TxAmt>
</AmtDtls>
<RltdPties>
<Dbtr>
<Nm>DEBTOR</Nm>
</Dbtr>
<UltmtDbtr>
<Nm>ULTIMATE
DEBTOR</Nm>
<Id>
<OrgId>
<Othr>
<Id>987654321</Id>
<SchmeNm>
<Cd>TXID</Cd>
</SchmeNm>
</Othr>
</
OrgId>
</Id>
</UltmtDbtr>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BIC>NDEAFIHH</BIC>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
<Purp>
<Cd>TREA</Cd>
</Purp>
<RmtInf>
<Strd>
<CdtrRefInf>
<Tp>
<CdOrPrtry>
<Cd>SCOR</Cd>
</CdOrPrtry>
<Issr>ISO</Issr>
</Tp>
<Ref>RF98123456789012</Ref>
</CdtrRefInf>
</Strd>
</RmtInf>
<RltdDts>
<AccptncDtTm>2009-10-28T03:00:00+02:00</AccptncDtTm>
</RltdDts>
</TxDtls>
</NtryDtls>
</Ntry>
</Rpt>
</BkToCstmrAcctRpt>
</Document>
\ No newline at end of file
diff --git
a/nexus/src/test/resources/iso20022-samples/camt.053.001.02.gesamtbeispiel.xml
b/nexus/src/test/resources/iso20022-samples/camt.053.001.02.gesamtbeispiel.xml
deleted file mode 100644
index 109acee..0000000
---
a/nexus/src/test/resources/iso20022-samples/camt.053.001.02.gesamtbeispiel.xml
+++ /dev/null
@@ -1,701 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Mit XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) im Mai 2016 von der
SIZ GmbH (Wenzel) angepasst hinsichtlich Anlage 3, Version 3.0: -->
-<!-- 1. BkTxCd Pflicht auf Entryebene, 2. Issuer nun "DK" (Statt "ZKA"), 3.
Mapping GVC auf Domn, 4. Nichtdrehen bei R-Transaktionen illustriert 5.
Schluss-Saldo angepasst (Löschung der DTAUS-Umsätze)-->
-<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02
camt.053.001.02.xsd">
- <BkToCstmrStmt>
- <GrpHdr>
- <MsgId>27632364572</MsgId>
- <CreDtTm>2016-05-11T19:30:47.0+01:00</CreDtTm>
- <MsgRcpt>
- <Id>
- <OrgId>
- <Othr>
- <Id>BCS45678</Id>
- </Othr>
- </OrgId>
- </Id>
- </MsgRcpt>
- <MsgPgntn>
- <PgNb>1</PgNb>
- <LastPgInd>true</LastPgInd>
- </MsgPgntn>
- </GrpHdr>
- <Stmt>
- <Id>2736482736482</Id>
- <ElctrncSeqNb>101</ElctrncSeqNb>
- <!--Folgendes Feld ist optional und könnte die
Papier-KAZ enthalten-->
- <LglSeqNb>32</LglSeqNb>
- <CreDtTm>2016-05-11T17:30:47.0+01:00</CreDtTm>
- <Acct>
- <Id>
- <IBAN>DE62210500001234567890</IBAN>
- </Id>
- <Ccy>EUR</Ccy>
- <Ownr>
- <Nm>Name Kontoinhaber</Nm>
- </Ownr>
- <Svcr>
- <FinInstnId>
- <BIC>BANKDEFFXXX</BIC>
- <Othr>
- <Id>DE123456789</Id>
- <Issr>UmsStId</Issr>
- </Othr>
- </FinInstnId>
- </Svcr>
- </Acct>
- <Bal>
- <Tp>
- <CdOrPrtry>
- <Cd>PRCD</Cd>
- </CdOrPrtry>
- </Tp>
- <Amt Ccy="EUR">112.72</Amt>
- <CdtDbtInd>CRDT</CdtDbtInd>
- <Dt>
- <Dt>2016-05-11</Dt>
- </Dt>
- </Bal>
- <Bal>
- <Tp>
- <CdOrPrtry>
- <Cd>CLBD</Cd>
- </CdOrPrtry>
- </Tp>
- <Amt Ccy="EUR">158530.32</Amt>
- <CdtDbtInd>CRDT</CdtDbtInd>
- <Dt>
- <Dt>2016-05-11</Dt>
- </Dt>
- </Bal>
- <!-- Beispiel 1: SEPA-Zahlungen (Ueberweisung,
Lastschrift, R-Nachricht -->
- <!--Gutschrift aufgrund eines
SEPA-Ueberweisungseinganges-->
- <Ntry>
- <Amt Ccy="EUR">100.00</Amt>
- <CdtDbtInd>CRDT</CdtDbtInd>
- <Sts>BOOK</Sts>
- <BookgDt>
- <Dt>2016-05-11</Dt>
- </BookgDt>
- <ValDt>
- <Dt>2016-05-11</Dt>
- </ValDt>
- <AcctSvcrRef>Bankreferenz</AcctSvcrRef>
- <BkTxCd>
- <Domn>
- <Cd>PMNT</Cd>
- <Fmly>
- <Cd>RCDT</Cd>
- <SubFmlyCd>ESCT</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
- <Cd>166</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <NtryDtls>
- <TxDtls>
- <Refs>
-
<EndToEndId>Ende-zu-Ende-Id des Ueberweisenden</EndToEndId>
- </Refs>
- <BkTxCd>
- <Domn>
- <Cd>PMNT</Cd>
- <Fmly>
- <Cd>RCDT</Cd>
-
<SubFmlyCd>ESCT</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NTRF+166</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <RltdPties>
- <Dbtr>
- <Nm>Herr
Ueberweisender</Nm>
- </Dbtr>
- <DbtrAcct>
- <Id>
-
<IBAN>DE21500500001234567897</IBAN>
- </Id>
- </DbtrAcct>
- <UltmtDbtr>
- <Nm>Herr Debtor
Reference Party</Nm>
- </UltmtDbtr>
- <Cdtr>
- <Nm>Herr
Kontoinhaber</Nm>
- </Cdtr>
- <UltmtCdtr>
- <Nm>Herr
Creditor Reference Party</Nm>
- </UltmtCdtr>
- </RltdPties>
- <Purp>
- <Cd>GDDS</Cd>
- </Purp>
- <RmtInf>
- <Ustrd>Rechnungsnr.
4711 vom 20.04.2016</Ustrd>
- </RmtInf>
- </TxDtls>
- </NtryDtls>
- <AddtlNtryInf>SEPA GUTSCHRIFT</AddtlNtryInf>
- </Ntry>
- <!--Gutschrift aufgrund einer zurueckgekommenen
SEPA-Ueberweisung-->
- <Ntry>
- <Amt Ccy="EUR">200.00</Amt>
- <CdtDbtInd>CRDT</CdtDbtInd>
- <Sts>BOOK</Sts>
- <BookgDt>
- <Dt>2016-05-11</Dt>
- </BookgDt>
- <ValDt>
- <Dt>2016-05-11</Dt>
- </ValDt>
- <AcctSvcrRef>Bankreferenz</AcctSvcrRef>
- <BkTxCd>
- <Domn>
- <Cd>PMNT</Cd>
- <Fmly>
- <Cd>ICDT</Cd>
- <SubFmlyCd>RRTN</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
- <Cd>159</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <NtryDtls>
- <TxDtls>
- <Refs>
- <EndToEndId>Urspr.
E2E-Id der Hintransaktion</EndToEndId>
- </Refs>
- <BkTxCd>
- <Domn>
- <Cd>PMNT</Cd>
- <Fmly>
- <Cd>ICDT</Cd>
-
<SubFmlyCd>RRTN</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NRTI+159++901</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <RmtInf>
- <Ustrd>Angabe des
urspruenglichen Verwendungszweckes</Ustrd>
- </RmtInf>
- <!--Informationen zur
Originaltransaktion. Da die Belegung von Domain optional ist, kann auch nur
Prtry (GVC) vorhanden sein-->
- <RtrInf>
- <OrgnlBkTxCd>
- <Domn>
- <Cd>PMNT</Cd>
- <Fmly>
-
<Cd>ICDT</Cd>
-
<SubFmlyCd>ESCT</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NTRF+116</Cd>
-
<Issr>DK</Issr>
- </Prtry>
- </OrgnlBkTxCd>
- <Orgtr>
- <Id>
- <OrgId>
-
<BICOrBEI>BANKDEHH</BICOrBEI>
- </OrgId>
- </Id>
- </Orgtr>
- <Rsn>
- <Cd>AC01</Cd>
- </Rsn>
- <AddtlInf>IBAN
FEHLERHAFT</AddtlInf>
- </RtrInf>
- </TxDtls>
- </NtryDtls>
- <AddtlNtryInf>SEPA RUECKBUCHUNG</AddtlNtryInf>
- </Ntry>
- <!--Belastung aufgrund einer SEPA-Lastschrift-->
- <Ntry>
- <Amt Ccy="EUR">50.00</Amt>
- <CdtDbtInd>DBIT</CdtDbtInd>
- <Sts>BOOK</Sts>
- <BookgDt>
- <Dt>2016-05-11</Dt>
- </BookgDt>
- <ValDt>
- <Dt>2016-05-11</Dt>
- </ValDt>
- <AcctSvcrRef>Bankreferenz</AcctSvcrRef>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>RDDT</Cd>
- <SubFmlyCd>ESDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
- <Cd>105</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <NtryDtls>
- <TxDtls>
- <Refs>
- <EndToEndId>E2E-Id
vergeben vom Glaeubiger</EndToEndId>
- <MndtId>Ref. des
SEPA-Lastschriftmandats</MndtId>
- </Refs>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>RDDT</Cd>
-
<SubFmlyCd>ESDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NDDT+105</Cd>
- <Issr>DKA</Issr>
- </Prtry>
- </BkTxCd>
- <RltdPties>
- <Dbtr>
- <Nm>Herr
Zahlungspflichtiger</Nm>
- </Dbtr>
- <UltmtDbtr>
- <Nm>Herr Debtor
Reference Party</Nm>
- </UltmtDbtr>
- <Cdtr>
-
<Nm>Glaeubigerfirma</Nm>
- <Id>
- <PrvtId>
-
<Othr>
-
<Id>Cdtr-Id des Glaeubigers</Id>
-
</Othr>
-
</PrvtId>
- </Id>
- </Cdtr>
- </RltdPties>
- <Purp>
- <Cd>PHON</Cd>
- </Purp>
- <RmtInf>
- <Ustrd>Telefonrechnung
April 2016, Vertragsnummer 3536456345</Ustrd>
- </RmtInf>
- </TxDtls>
- </NtryDtls>
- <AddtlNtryInf>SEPA LASTSCHRIFT</AddtlNtryInf>
- </Ntry>
- <!-- Beispiel 2: DTAUS-Zahlungen (Ueberweisung,
Lastschrift, Rueckgabe) BEISPIEL ENTFERNT -->
- <!-- Beispiel 3a: Sammlerdarstellung mit Aufloesung
innerhalb der Nachricht -->
- <!--Belastung aufgrund von SEPA-Lastschriftrueckgaben
(Sammelbuchung) mit Sammleraufloesung unter Transaction Details-->
- <Ntry>
- <Amt Ccy="EUR">276</Amt>
- <CdtDbtInd>DBIT</CdtDbtInd>
- <Sts>BOOK</Sts>
- <BookgDt>
- <Dt>2016-05-11</Dt>
- </BookgDt>
- <ValDt>
- <Dt>2016-05-11</Dt>
- </ValDt>
- <AcctSvcrRef>Bankreferenz</AcctSvcrRef>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>IDDT</Cd>
- <SubFmlyCd>UPDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
- <Cd>109</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <NtryDtls>
- <Btch>
- <NbOfTxs>3</NbOfTxs>
- </Btch>
- <TxDtls>
- <!-- Ab hier Aufloesung des
Sammlers bestehend aus 3 Einzelumsaetzen -->
- <Refs>
-
<EndToEndId>79892</EndToEndId>
- <MndtId>10001</MndtId>
- </Refs>
- <AmtDtls>
- <TxAmt>
- <Amt
Ccy="EUR">76</Amt>
- </TxAmt>
- </AmtDtls>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>IDDT</Cd>
-
<SubFmlyCd>UPDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NRTI+109++901</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <!--Weil bei R-Transaktionen
nicht gedreht wird, stehen hier die Originals-->
- <RltdPties>
- <Dbtr>
- <Nm>Herr
Zahlungspflichtiger 1</Nm>
- </Dbtr>
- <DbtrAcct>
- <Id>
-
<IBAN>DE83700202707777777777</IBAN>
- </Id>
- </DbtrAcct>
- <Cdtr>
-
<Nm>Telefongesellschaft ABC</Nm>
- <Id>
- <PrvtId>
-
<Othr>
-
<Id>CdtrId des SEPA-Lastschrifteinr.</Id>
-
</Othr>
-
</PrvtId>
- </Id>
- </Cdtr>
- <CdtrAcct>
- <Id>
-
<IBAN>DE62210500001234567890</IBAN>
- </Id>
- </CdtrAcct>
- </RltdPties>
- <Purp>
- <Cd>PHON</Cd>
- </Purp>
- <RmtInf>
- <Ustrd>Telefonrechnung
April 2016, Vertragsnummer 3536456345</Ustrd>
- </RmtInf>
- <RtrInf>
- <Rsn>
- <Cd>AC01</Cd>
- </Rsn>
-
<AddtlInf>RUECKLASTSCHRIFT IBAN FEHLERHAFT</AddtlInf>
- </RtrInf>
- </TxDtls>
- <TxDtls>
- <Refs>
-
<EndToEndId>768768</EndToEndId>
- <MndtId>10002</MndtId>
- </Refs>
- <AmtDtls>
- <TxAmt>
- <Amt
Ccy="EUR">80</Amt>
- </TxAmt>
- </AmtDtls>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>IDDT</Cd>
-
<SubFmlyCd>UPDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NRTI+109++901</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <RltdPties>
- <Dbtr>
- <Nm>Herr
Zahlungspflichtiger 2</Nm>
- </Dbtr>
- <DbtrAcct>
- <Id>
-
<IBAN>DE83700202704444444444</IBAN>
- </Id>
- </DbtrAcct>
- <Cdtr>
-
<Nm>Telefongesellschaft ABC</Nm>
- <Id>
- <PrvtId>
-
<Othr>
-
<Id>CdtrId des SEPA-Lastschrifteinr.</Id>
-
</Othr>
-
</PrvtId>
- </Id>
- </Cdtr>
- <CdtrAcct>
- <Id>
-
<IBAN>DE62210500001234567890</IBAN>
- </Id>
- </CdtrAcct>
- </RltdPties>
- <Purp>
- <Cd>PHON</Cd>
- </Purp>
- <RmtInf>
- <Ustrd>Telefonrechnung
April 2016, Vertragsnummer 3536456888</Ustrd>
- </RmtInf>
- <RtrInf>
- <Rsn>
- <Cd>AC01</Cd>
- </Rsn>
-
<AddtlInf>RUECKLASTSCHRIFT IBAN FEHLERHAFT</AddtlInf>
- </RtrInf>
- </TxDtls>
- <TxDtls>
- <Refs>
-
<EndToEndId>45456465</EndToEndId>
- <MndtId>10003</MndtId>
- </Refs>
- <AmtDtls>
- <TxAmt>
- <Amt
Ccy="EUR">120</Amt>
- </TxAmt>
- </AmtDtls>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>IDDT</Cd>
-
<SubFmlyCd>UPDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NRTI+109++901</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <RltdPties>
- <Dbtr>
- <Nm>Herr
Zahlungspflichtiger 3</Nm>
- </Dbtr>
- <DbtrAcct>
- <Id>
-
<IBAN>DE83700202703333333333</IBAN>
- </Id>
- </DbtrAcct>
- <Cdtr>
-
<Nm>Telefongesellschaft ABC</Nm>
- <Id>
- <PrvtId>
-
<Othr>
-
<Id>CdtrId des SEPA-Lastschrifteinr.</Id>
-
</Othr>
-
</PrvtId>
- </Id>
- </Cdtr>
- <CdtrAcct>
- <Id>
-
<IBAN>DE62210500001234567890</IBAN>
- </Id>
- </CdtrAcct>
- </RltdPties>
- <Purp>
- <Cd>PHON</Cd>
- </Purp>
- <RmtInf>
- <Ustrd>Telefonrechnung
April 2016, Vertragsnummer 3536456345</Ustrd>
- </RmtInf>
- <RtrInf>
- <Rsn>
- <Cd>AC01</Cd>
- </Rsn>
-
<AddtlInf>RUECKLASTSCHRIFT IBAN FEHLERHAFT</AddtlInf>
- </RtrInf>
- </TxDtls>
- </NtryDtls>
- </Ntry>
- <!-- Beispiel 3b: Sammlerdarstellung mit Verweis auf
pain-Nachricht und separate camt.054.001.01-Nachricht -->
- <!--Belastung aufgrund einer SEPA-Ueberweisung
(Sammler) mit Verweis auf Original pain-Nachricht-->
- <Ntry>
- <Amt Ccy="EUR">100876.00</Amt>
- <CdtDbtInd>DBIT</CdtDbtInd>
- <Sts>BOOK</Sts>
- <BookgDt>
- <Dt>2016-05-11</Dt>
- </BookgDt>
- <ValDt>
- <Dt>2016-05-11</Dt>
- </ValDt>
- <AcctSvcrRef>Bankreferenz</AcctSvcrRef>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>ICDT</Cd>
- <SubFmlyCd>ESCT</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
- <Cd>191</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <NtryDtls>
- <Btch>
- <MsgId>MsgId der
pain-Nachricht</MsgId>
- <PmtInfId>Sammler-Id dieser
pain-Nachricht</PmtInfId>
- </Btch>
- <TxDtls>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>ICDT</Cd>
-
<SubFmlyCd>ESCT</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NTRF+191</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- </TxDtls>
- </NtryDtls>
- <AddtlNtryInf>SEPA Credit Transfer
(Sammler-Soll)</AddtlNtryInf>
- </Ntry>
- <!--Belastung aufgrund von SEPA-Lastschriftrueckgaben
(Sammelbuchung) mit Verweis auf separate camt.054.001.01-Nachricht-->
- <Ntry>
- <Amt Ccy="EUR">276.00</Amt>
- <CdtDbtInd>DBIT</CdtDbtInd>
- <Sts>BOOK</Sts>
- <BookgDt>
- <Dt>2016-05-11</Dt>
- </BookgDt>
- <ValDt>
- <Dt>2016-05-11</Dt>
- </ValDt>
- <AcctSvcrRef>Bankreferenz</AcctSvcrRef>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>IDDT</Cd>
- <SubFmlyCd>UPDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
- <Cd>109</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <AddtlInfInd>
- <MsgNmId>camt.054.001.01</MsgNmId>
- <MsgId>054-20160511-00034</MsgId>
- <!-- siehe Bsp. camt54 Bsp 3b -->
- </AddtlInfInd>
- <NtryDtls>
- <TxDtls>
- <BkTxCd>
- <Domn>
- <Cd>PNMT</Cd>
- <Fmly>
- <Cd>IDDT</Cd>
-
<SubFmlyCd>UPDD</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NRTI+109++901</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- </TxDtls>
- </NtryDtls>
- </Ntry>
- <!-- Beispiel 4: USD-Zahlung mit Gutschrift auf einem
EUR-Konto -->
- <!-- USD-Zahlung mit Gutschrift auf einem EUR-Konto -->
- <Ntry>
- <Amt Ccy="EUR">259595.60</Amt>
- <CdtDbtInd>CRDT</CdtDbtInd>
- <Sts>BOOK</Sts>
- <BookgDt>
- <Dt>2016-05-11</Dt>
- </BookgDt>
- <ValDt>
- <Dt>2016-05-11</Dt>
- </ValDt>
- <AcctSvcrRef>Bankreferenz</AcctSvcrRef>
- <BkTxCd>
- <Domn>
- <Cd>PMNT</Cd>
- <Fmly>
- <Cd>RCDT</Cd>
-
<SubFmlyCd>XBCT</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NTRF+202</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <NtryDtls>
- <TxDtls>
- <AmtDtls>
- <InstdAmt>
- <Amt
Ccy="USD">360873.97</Amt>
- </InstdAmt>
- <TxAmt>
- <Amt
Ccy="EUR">259595.60</Amt>
- </TxAmt>
- <CntrValAmt>
- <Amt
Ccy="EUR">259621.56</Amt>
- <CcyXchg>
-
<SrcCcy>USD</SrcCcy>
-
<TrgtCcy>EUR</TrgtCcy>
-
<XchgRate>1.39</XchgRate>
- </CcyXchg>
- </CntrValAmt>
- </AmtDtls>
- <BkTxCd>
- <Domn>
- <Cd>PMNT</Cd>
- <Fmly>
- <Cd>RCDT</Cd>
-
<SubFmlyCd>XBCT</SubFmlyCd>
- </Fmly>
- </Domn>
- <Prtry>
-
<Cd>NTRF+202</Cd>
- <Issr>DK</Issr>
- </Prtry>
- </BkTxCd>
- <Chrgs>
- <Amt
Ccy="EUR">25.96</Amt>
- </Chrgs>
- <RltdPties>
- <Dbtr>
- <Nm>West Coast
Ltd.</Nm>
- <PstlAdr>
-
<Ctry>US</Ctry>
-
<AdrLine>52, Main Street</AdrLine>
-
<AdrLine>3733 San Francisco</AdrLine>
- </PstlAdr>
- </Dbtr>
- <DbtrAcct>
- <Id>
- <Othr>
-
<Id>546237687</Id>
- </Othr>
- </Id>
- </DbtrAcct>
- </RltdPties>
- <RltdAgts>
- <DbtrAgt>
- <FinInstnId>
-
<BIC>BANKUSNY</BIC>
- </FinInstnId>
- </DbtrAgt>
- </RltdAgts>
- <RmtInf>
- <Ustrd>Invoice No.
4545</Ustrd>
- </RmtInf>
- </TxDtls>
- </NtryDtls>
-
<AddtlNtryInf>AZV-UEBERWEISUNGSGUTSCHRIFT</AddtlNtryInf>
- </Ntry>
- </Stmt>
- </BkToCstmrStmt>
-</Document>
diff --git
a/nexus/src/test/resources/iso20022-samples/camt.053/de.camt.053.001.02.xml
b/nexus/src/test/resources/iso20022-samples/camt.053/de.camt.053.001.02.xml
new file mode 100644
index 0000000..6030482
--- /dev/null
+++ b/nexus/src/test/resources/iso20022-samples/camt.053/de.camt.053.001.02.xml
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This file has been placed in the public domain -->
+<!-- Sample camt.053 according to the interpretation of the German DK rules -->
+<!-- IBANs have been randomly generated with a BBAN of 12345678 -->
+<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02
camt.053.001.02.xsd">
+ <BkToCstmrStmt>
+ <GrpHdr>
+ <MsgId>msg-001</MsgId>
+ <CreDtTm>2020-07-03T12:44:40+05:30</CreDtTm>
+ </GrpHdr>
+ <Stmt>
+ <Id>stmt-001</Id>
+ <CreDtTm>2020-07-03T11:00:40+05:30</CreDtTm>
+ <Acct>
+ <Id>
+ <IBAN>DE54123456784713474163</IBAN>
+ </Id>
+ </Acct>
+ <Bal>
+ <Tp>
+ <CdOrPrtry>
+ <Cd>PRCD</Cd>
+ </CdOrPrtry>
+ </Tp>
+ <Amt Ccy="EUR">500</Amt>
+ <CdtDbtInd>CRDT</CdtDbtInd>
+ <Dt>
+ <Dt>2020-07-03</Dt>
+ </Dt>
+ </Bal>
+ <Ntry>
+ <Amt Ccy="EUR">100.00</Amt>
+ <CdtDbtInd>CRDT</CdtDbtInd>
+ <Sts>BOOK</Sts>
+ <BookgDt>
+ <Dt>2020-07-02</Dt>
+ </BookgDt>
+ <ValDt>
+ <Dt>2020-07-04</Dt>
+ </ValDt>
+ <AcctSvcrRef>acctsvcrref-001</AcctSvcrRef>
+ <BkTxCd>
+ <Domn>
+ <Cd>PMNT</Cd>
+ <Fmly>
+ <Cd>RCDT</Cd>
+ <SubFmlyCd>ESCT</SubFmlyCd>
+ </Fmly>
+ </Domn>
+ <Prtry>
+ <Cd>166</Cd>
+ <Issr>DK</Issr>
+ </Prtry>
+ </BkTxCd>
+ <!-- Credit due to incoming SCT -->
+ <NtryDtls>
+ <TxDtls>
+ <Refs>
+ <EndToEndId>e2e-001</EndToEndId>
+ </Refs>
+ <BkTxCd>
+ <Domn>
+ <Cd>PMNT</Cd>
+ <Fmly>
+ <Cd>RCDT</Cd>
+ <SubFmlyCd>ESCT</SubFmlyCd>
+ </Fmly>
+ </Domn>
+ <Prtry>
+ <Cd>NTRF+166</Cd>
+ <Issr>DK</Issr>
+ </Prtry>
+ </BkTxCd>
+ <RltdPties>
+ <Dbtr>
+ <Nm>Debtor One</Nm>
+ </Dbtr>
+ <DbtrAcct>
+ <Id>
+ <IBAN>DE52123456789473323175</IBAN>
+ </Id>
+ </DbtrAcct>
+ <UltmtDbtr>
+ <Nm>Ultimate Debtor One</Nm>
+ </UltmtDbtr>
+ <Cdtr>
+ <Nm>Creditor One</Nm>
+ </Cdtr>
+ <UltmtCdtr>
+ <Nm>Ultimate Creditor One</Nm>
+ </UltmtCdtr>
+ </RltdPties>
+ <Purp>
+ <Cd>GDDS</Cd>
+ </Purp>
+ <RmtInf>
+ <Ustrd>unstructured info one</Ustrd>
+ </RmtInf>
+ </TxDtls>
+ </NtryDtls>
+ <AddtlNtryInf>SEPA GUTSCHRIFT</AddtlNtryInf>
+ </Ntry>
+ <!-- Credit due to incoming USD transfer -->
+ <Ntry>
+ <Amt Ccy="EUR">1000</Amt>
+ <CdtDbtInd>CRDT</CdtDbtInd>
+ <Sts>BOOK</Sts>
+ <BookgDt>
+ <Dt>2020-07-03</Dt>
+ </BookgDt>
+ <ValDt>
+ <Dt>2020-07-04</Dt>
+ </ValDt>
+ <AcctSvcrRef>acctsvcrref-002</AcctSvcrRef>
+ <BkTxCd>
+ <Domn>
+ <Cd>PMNT</Cd>
+ <Fmly>
+ <Cd>RCDT</Cd>
+ <SubFmlyCd>XBCT</SubFmlyCd>
+ </Fmly>
+ </Domn>
+ <Prtry>
+ <Cd>NTRF+202</Cd>
+ <Issr>DK</Issr>
+ </Prtry>
+ </BkTxCd>
+ <NtryDtls>
+ <TxDtls>
+ <AmtDtls>
+ <InstdAmt>
+ <Amt Ccy="USD">1500</Amt>
+ </InstdAmt>
+ <TxAmt>
+ <Amt Ccy="EUR">1000</Amt>
+ </TxAmt>
+ <CntrValAmt>
+ <Amt Ccy="EUR">1250.0</Amt>
+ <CcyXchg>
+ <SrcCcy>USD</SrcCcy>
+ <TrgtCcy>EUR</TrgtCcy>
+ <XchgRate>1.20</XchgRate>
+ </CcyXchg>
+ </CntrValAmt>
+ </AmtDtls>
+ <BkTxCd>
+ <Domn>
+ <Cd>PMNT</Cd>
+ <Fmly>
+ <Cd>RCDT</Cd>
+ <SubFmlyCd>XBCT</SubFmlyCd>
+ </Fmly>
+ </Domn>
+ <Prtry>
+ <Cd>NTRF+202</Cd>
+ <Issr>DK</Issr>
+ </Prtry>
+ </BkTxCd>
+ <Chrgs>
+ <Amt Ccy="EUR">250.00</Amt>
+ </Chrgs>
+ <RltdPties>
+ <Dbtr>
+ <Nm>Some US Bank</Nm>
+ <PstlAdr>
+ <Ctry>US</Ctry>
+ <AdrLine>42 Some Street</AdrLine>
+ <AdrLine>4242 Somewhere</AdrLine>
+ </PstlAdr>
+ </Dbtr>
+ <DbtrAcct>
+ <Id>
+ <Othr>
+ <Id>9876543</Id>
+ </Othr>
+ </Id>
+ </DbtrAcct>
+ </RltdPties>
+ <RltdAgts>
+ <DbtrAgt>
+ <FinInstnId>
+ <BIC>BANKUSNY</BIC>
+ </FinInstnId>
+ </DbtrAgt>
+ </RltdAgts>
+ <RmtInf>
+ <Ustrd>Invoice No. 4242</Ustrd>
+ </RmtInf>
+ </TxDtls>
+ </NtryDtls>
+ <AddtlNtryInf>AZV-UEBERWEISUNGSGUTSCHRIFT</AddtlNtryInf>
+ </Ntry>
+ </Stmt>
+ </BkToCstmrStmt>
+</Document>
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: use our own test data, iban generator tool,
gnunet <=