From 0fc949ee171bb7cb320de5593c59474684f440ea Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 6 Jul 2020 18:45:35 +0530 Subject: iso20022 notes --- libeufin/iso20022.rst | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/libeufin/iso20022.rst b/libeufin/iso20022.rst index d87098a3..06d929c2 100644 --- a/libeufin/iso20022.rst +++ b/libeufin/iso20022.rst @@ -22,15 +22,37 @@ The specifics of this mapping are: of message elements in the same schema. -Cash Management (camt) -====================== +Why does LibEuFin not use ISO 20022? +==================================== -LibEuFin combines camt.052, camt.053 and camt.054, as they essentially -have the same structure and serve the same purpose: Reporting transactions -on a customer's bank account. +While LibEuFin can ingest ISO 20022 messages (camt.05x, pain.002) and generate +them (pain.001), it does not use ISO 20022 in its API and internal data model. -We also flatten the hierarchy a bit and only have entries ("money movement in one go") -and transactions. +Reasons for not using ISO 20022 directly are: + +1. Impedence mismatch. ISO 20022 messages do not map well to query/response + APIs. +2. Cumbersome to use. Even when ISO 20022 messages are directly mapped + to JSON, they are difficult to use due to their verbosity. +3. Underspecification. Messages like camt.05x leave many "degrees of freedom" + when translating the underlying data into a message. +4. No interoperability. As a result of underspecification, different countries/organisations + define their own subset and interpretation rules for ISO 20022 messages. This can + lead to even contradictory usage rules. An example for this is how the Swiss and EPC + interpretations handle transaction amounts in the presence of multiple currencies. +5. Redundancy. ISO 20022 are redundant, and often mix aspects of the "presentation logic" + with the underlying data model. An example of this is the optional "summary" information + in camt.05x messages. + +Instead of using ISO 20022 messages directly, LibEuFin leverages the standard in other ways: + +* As the data exchange format with banks +* As a guideline for naming in data formats +* As a guideline for which concepts need to be understood by LibEuFin + + +Implementation notes for camt.05x +================================= Types of amounts in camt messages --------------------------------- -- cgit v1.2.3 From 5fb356c455f1bca1368c09389960b9100dde4632 Mon Sep 17 00:00:00 2001 From: MS Date: Wed, 8 Jul 2020 10:49:17 +0200 Subject: API that offers the list of initiated payments. --- libeufin/api-nexus.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libeufin/api-nexus.rst b/libeufin/api-nexus.rst index 666fe1f3..ebb24533 100644 --- a/libeufin/api-nexus.rst +++ b/libeufin/api-nexus.rst @@ -138,6 +138,23 @@ manages payment initiations of the account and tracks the of payment initiations preparationDate: string; } +.. http:get:: {nexusBase}/bank-accounts/{my-acct}/payment-initiations + + Ask nexus the list of initiated payments. At this stage of the API, + **all** is returned: submitted and non submitted payments. + + **Response** + + .. ts:def:: InitiatedPayments + + interface InitiatedPayments { + + // list of all the initiated payments' UID. + initiatedPayments: string[]; + + } + + .. http:post:: {nexusBase}/bank-accounts/{my-acct}/payment-initiations Ask nexus to prepare instructions for a new payment. -- cgit v1.2.3 From 95f5de12dc3bd05723d8f312ca323ba9036d6690 Mon Sep 17 00:00:00 2001 From: MS Date: Wed, 8 Jul 2020 12:21:50 +0200 Subject: more details in response --- libeufin/api-nexus.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libeufin/api-nexus.rst b/libeufin/api-nexus.rst index ebb24533..d58b43bd 100644 --- a/libeufin/api-nexus.rst +++ b/libeufin/api-nexus.rst @@ -150,8 +150,7 @@ manages payment initiations of the account and tracks the of payment initiations interface InitiatedPayments { // list of all the initiated payments' UID. - initiatedPayments: string[]; - + initiatedPayments: PaymentStatus[]; } -- cgit v1.2.3