taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 387601cf8cf9ea0cab6c36348a72150605cd4c4f
parent caac5529f95bf7478408e050d781ad49012b537e
Author: Sebastian <sebasjm@gmail.com>
Date:   Thu, 24 Apr 2025 09:57:23 -0300

rename fields to match the new account properties registry

Diffstat:
Mdeployments/tops.rst | 138+++++++++++++++++++++++++++++++++++++++++--------------------------------------
1 file changed, 71 insertions(+), 67 deletions(-)

diff --git a/deployments/tops.rst b/deployments/tops.rst @@ -211,6 +211,8 @@ profiles: Properties ---------- +Properties are registered at the GNU Taler Account Properties `GNU Taler Account Properties <https://git.taler.net/gana.git/tree/gnu-taler-account-properties>`_. + * ``FILE_NOTE :: Text``: * Current note on the GWG file. @@ -219,39 +221,39 @@ Properties * Customer name or internal alias. -* ``AML_ACCOUNT_OPEN :: Boolean`` +* ``ACCOUNT_OPEN :: Boolean`` * Was this customer activated for deposit operations? * Only set after merchant passes KYC * We store this to know when to emit the ``(INCR|DECR)_ACCOUNT_OPEN`` and related events -* ``AML_DOMESTIC_PEP :: Boolean`` +* ``PEP_DOMESTIC :: Boolean`` * Is the customer a domestic PEP? -* ``AML_FOREIGN_PEP :: Boolean`` +* ``PEP_FOREIGN :: Boolean`` * Is the customer a foreign PEP? -* ``AML_INTERNATIONAL_ORG_PEP :: Boolean`` +* ``PEP_INTERNATIONAL_ORGANIZATION :: Boolean`` * Is the customer a international org PEP? -* ``AML_HIGH_RISK_CUSTOMER :: Boolean`` +* ``HIGH_RISK_CUSTOMER :: Boolean`` * Is the customer classified as high-risk? -* ``AML_HIGH_RISK_COUNTRY :: Boolean`` +* ``HIGH_RISK_COUNTRY :: Boolean`` * Is the customer associated with high-risk (VQF Dok. Nr. 902.4.1) country? -* ``AML_ACCOUNT_IDLE :: Boolean`` +* ``ACCOUNT_IDLE :: Boolean`` * The account has been marked as idle (typically by a batch process that checks for idle accounts). -* ``AML_INVESTIGATION_STATE`` +* ``INVESTIGATION_STATE`` * The MROS reporting state for the account. * Values: @@ -268,7 +270,7 @@ Properties * ``REPORTED_SUSPICION_SIMPLE``: Reported under Art. 305 StGB (German "einfacher Verdacht", simple suspicion) * ``REPORTED_SUSPICION_SUBSTANTIATED``: Reported under Art. 9 GwG (German "begründeter Verdacht", substantiated suspicion) -* ``AML_INVESTIGATION_TRIGGER :: Text`` +* ``INVESTIGATION_TRIGGER :: Text`` * Informal reason why the AML investigation was triggered; examples include suspicious transaction or (automated) @@ -306,12 +308,12 @@ PEP/Risk classification: * ``INCR_HIGH_RISK_CUSTOMER`` / ``DECR_HIGH_RISK_CUSTOMER`` * ``INCR_HIGH_RISK_COUNTRY`` / ``INCR_HIGH_RISK_COUNTRY`` * ``INCR_PEP`` / ``DECR_PEP`` -* ``INCR_FOREIGN_PEP`` / ``DECR_FOREIGN_PEP`` -* ``INCR_DOMESTIC_PEP`` / ``DECR_DOMESTIC_PEP`` -* ``INCR_INTERNATIONAL_ORG_PEP`` / ``DECR_INTERNATIONAL_ORG_PEP`` +* ``INCR_PEP_FOREIGN`` / ``DECR_PEP_FOREIGN`` +* ``INCR_PEP_DOMESTIC`` / ``DECR_PEP_DOMESTIC`` +* ``INCR_PEP_INTERNATIONAL_ORGANIZATION`` / ``DECR_PEP_INTERNATIONAL_ORGANIZATION`` -MROS Reporting (see ``AML_INVESTIGATION_STATE`` property): +MROS Reporting (see ``INVESTIGATION_STATE`` property): * ``MROS_REPORTED_SUSPICION_SIMPLE`` * ``MROS_REPORTED_SUSPICION_SUBSTANTIATED`` @@ -342,6 +344,8 @@ The following subsections define the contents of the forms. The corresponding field names are registered via `GANA <https://git.taler.net/gana.git/tree/gnu-taler-form-attributes>`_. The the UI for the forms is defined in `taler-typescript-core <https://git.taler.net/taler-typescript-core.git/tree/packages/web-util/src/forms/gana>`_ +When the customer or officer submit the information throught the client software it must +include the fields FORM_ID and FORM_VERSION attributed as defined in GANA. generic_note ^^^^^^^^^^^^ @@ -1634,42 +1638,42 @@ Properties: .. code:: javascript - newProps.AML_ACCOUNT_OPEN = true; + newProps.ACCOUNT_OPEN = true; Events: .. code:: javascript - if (propBecameTrue(AML_ACCOUNT_OPEN)) { + if (propBecameTrue(ACCOUNT_OPEN)) { emit(INCR_ACCOUNT_OPEN); const isPep = ( - newProps.AML_FOREIGN_PEP || - newProps.AML_DOMESTIC_PEP || - newProps.AML_INTERNATIONAL_ORG_PEP + newProps.PEP_FOREIGN || + newProps.PEP_DOMESTIC || + newProps.PEP_INTERNATIONAL_ORGANIZATION ); if (isPep) { emit(INCR_PEP); } - if (newProps.AML_FOREIGN_PEP) { - emit(INCR_FOREIGN_PEP); + if (newProps.PEP_FOREIGN) { + emit(INCR_PEP_FOREIGN); } - if (newProps.AML_DOMESTIC_PEP) { - emit(INCR_DOMESTIC_PEP); + if (newProps.PEP_DOMESTIC) { + emit(INCR_PEP_DOMESTIC); } - if (newProps.AML_INTERNATIONAL_ORG_PEP) { - emit(INCR_INTERNATIONAL_ORG_PEP); + if (newProps.PEP_INTERNATIONAL_ORGANIZATION) { + emit(INCR_PEP_INTERNATIONAL_ORGANIZATION); } - if (newProps.AML_HIGH_RISK_CUSTOMER) { + if (newProps.HIGH_RISK_CUSTOMER) { emit(INCR_HIGH_RISK_CUSTOMER); } - if (newProps.AML_HIGH_RISK_COUNTRY) { + if (newProps.HIGH_RISK_COUNTRY) { emit(INCR_HIGH_RISK_COUNTRY); } } @@ -1682,53 +1686,53 @@ Properties: .. code:: javascript - newProps.AML_FOREIGN_PEP = form.PEP_FOREIGN; - newProps.AML_DOMESTIC_PEP = form.PEP_DOMESTIC; - newProps.AML_INTERNATIONAL_ORG_PEP = form.PEP_INTERNATIONAL_ORGANIZATION; - newProps.AML_HIGH_RISK_CUSTOMER = form.RISK_CLASSIFICATION_LEVEL == "HIGH_RISK"; - newProps.AML_HIGH_RISK_COUNTRY = form.COUNTRY_RISK_NATIONALITY_LEVEL == "HIGH"; + newProps.PEP_FOREIGN = form.PEP_FOREIGN; + newProps.PEP_DOMESTIC = form.PEP_DOMESTIC; + newProps.PEP_INTERNATIONAL_ORGANIZATION = form.PEP_INTERNATIONAL_ORGANIZATION; + newProps.HIGH_RISK_CUSTOMER = form.RISK_CLASSIFICATION_LEVEL == "HIGH_RISK"; + newProps.HIGH_RISK_COUNTRY = form.COUNTRY_RISK_NATIONALITY_LEVEL == "HIGH"; Events: .. code:: javascript - if (oldProps.AML_ACCOUNT_OPEN) { - if (propBecameTrue(AML_FOREIGN_PEP) { - emit(INCR_FOREIGN_PEP); + if (oldProps.ACCOUNT_OPEN) { + if (propBecameTrue(PEP_FOREIGN) { + emit(INCR_PEP_FOREIGN); } - if (propBecameTrue(AML_DOMESTIC_PEP) { - emit(INCR_INTERNATIONAL_ORG_PEP); + if (propBecameTrue(PEP_DOMESTIC) { + emit(INCR_PEP_INTERNATIONAL_ORGANIZATION); } - if (propBecameTrue(AML_DOMESTIC_PEP) { - emit(INCR_DOMESTIC_PEP); + if (propBecameTrue(PEP_DOMESTIC) { + emit(INCR_PEP_DOMESTIC); } - if (propBecameFalse(AML_FOREIGN_PEP) { - emit(DECR_FOREIGN_PEP); + if (propBecameFalse(PEP_FOREIGN) { + emit(DECR_PEP_FOREIGN); } - if (propBecameFalse(AML_DOMESTIC_PEP) { - emit(DECR_INTERNATIONAL_ORG_PEP); + if (propBecameFalse(PEP_DOMESTIC) { + emit(DECR_PEP_INTERNATIONAL_ORGANIZATION); } - if (propBecameFalse(AML_DOMESTIC_PEP) { - emit(DECR_DOMESTIC_PEP); + if (propBecameFalse(PEP_DOMESTIC) { + emit(DECR_PEP_DOMESTIC); } const wasPep = ( - oldProps.AML_DOMESTIC_PEP || - oldProps.AML_FOREIGN_PEP || - oldProps.AML_INTERNATIONAL_ORG_PEP); + oldProps.PEP_DOMESTIC || + oldProps.PEP_FOREIGN || + oldProps.PEP_INTERNATIONAL_ORGANIZATION); const isPep = ( - newProps.AML_DOMESTIC_PEP || - newProps.AML_FOREIGN_PEP || - newProps.AML_INTERNATIONAL_ORG_PEP); + newProps.PEP_DOMESTIC || + newProps.PEP_FOREIGN || + newProps.PEP_INTERNATIONAL_ORGANIZATION); if (wasPep && !isPep) { emit(DECR_PEP); } if (!wasPep & isPep) { emit(INCR_PEP); } - if (propBecameTrue(AML_HIGH_RISK)) { + if (propBecameTrue(HIGH_RISK)) { emit(INCR_HIGH_RISK); } - if (propBecameFalse(AML_HIGH_RISK)) { + if (propBecameFalse(HIGH_RISK)) { emit(DECR_HIGH_RISK); } } @@ -1743,16 +1747,16 @@ Properties: if (INCRISK_RESULT == "SIMPLE_SUSPICION") { - newProps.AML_INVESTIGATION_STATE = "REPORTED_SUSPICION_SIMPLE"; + newProps.INVESTIGATION_STATE = "REPORTED_SUSPICION_SIMPLE"; } else if (INCRISK_RESULT == "SUBSTANTIATED_SUSPICION") { - newProps.AML_INVESTIGATION_STATE = "REPORTED_SUSPICION_SUBSTANTIATED"; + newProps.INVESTIGATION_STATE = "REPORTED_SUSPICION_SUBSTANTIATED"; } else if (INCRISK_RESULT == "NO_SUSPICION") { - newProps.AML_INVESTIGATION_STATE = "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION"; + newProps.INVESTIGATION_STATE = "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION"; } else if (INCRISK_RESULT == "OTHER") { // FIXME-#9677: would be nice if we instead could set the property to "undefined"/null // and *force* the AML officer to manually set it. // Alternatively, we should probably default to "INVESTIGATION_PENDING". -CG - newProps.AML_INVESTIGATION_STATE = "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION"; + newProps.INVESTIGATION_STATE = "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION"; } else { not_reached(); } @@ -1761,15 +1765,15 @@ Events: .. code:: javascript - if (oldProps.AML_INVESTIGATION_STATE == "NONE" || - oldProps.AML_INVESTIGATION_STATE == "INVESTIGATION_PENDING" || - oldProps.AML_INVESTIGATION_STATE == null) { - if (newProps.AML_INVESTIGATION_STATE == "REPORTED_SUSPICION_SIMPLE" || - newProps.AML_INVESTIGATION_STATE == "REPORTED_SUSPICION_SUBSTANTIATED" || - newProps.AML_INVESTIGATION_STATE == "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION") { + if (oldProps.INVESTIGATION_STATE == "NONE" || + oldProps.INVESTIGATION_STATE == "INVESTIGATION_PENDING" || + oldProps.INVESTIGATION_STATE == null) { + if (newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SIMPLE" || + newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SUBSTANTIATED" || + newProps.INVESTIGATION_STATE == "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION") { emit(INCR_INVESTIGATION_CONCLUDED); } - if (newProps.AML_INVESTIGATION_STATE == "REPORTED_SUSPICION_SUBSTANTIATED") { + if (newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SUBSTANTIATED") { // FIXME-#9676: if possible, we should force the AML officer to tick // an extra check-box "I submitted this case to MROS". No need to // actually do anything here server-side, it's more an explicit @@ -1777,7 +1781,7 @@ Events: // emitted if the report was files. emit(MROS_REPORTED_SUSPICION_SUBSTANTIATED); } - if (newProps.AML_INVESTIGATION_STATE == "REPORTED_SUSPICION_SIMPLE") { + if (newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SIMPLE") { // FIXME-#9676: if possible, we should force the AML officer to tick // an extra check-box "I submitted this case to MROS". No need to // actually do anything here server-side, it's more an explicit @@ -1909,7 +1913,7 @@ Based on this, we have the following statistics: * Of those PEPs, how many were with *foreign* PEPs? (self-declaration 4.3.) - * Implementation: ``evtcount(INCR_FOREIGN_PEP, start=0, end=dec_last_20xx) - evtcount(DECR_FOREIGN_PEP, start=0, end=dec_last_20xx)`` + * Implementation: ``evtcount(INCR_PEP_FOREIGN, start=0, end=dec_last_20xx) - evtcount(DECR_PEP_FOREIGN, start=0, end=dec_last_20xx)`` * Number of other additional (other than PEPs and foreign PEPs) high-risk business relationships in 20XX (self-declaration 4.4.) @@ -2001,9 +2005,9 @@ Three properties are set: indicates how confident we are that the rating is accurate, with 0 indicating no data available, and 1 indicating that all possible fields could be evaluated -* ``AML_INVESTIGATION_STATE`` is set to ``INVESTIGATION_PENDING`` +* ``INVESTIGATION_STATE`` is set to ``INVESTIGATION_PENDING`` if the rating and confidence are sufficiently high -* ``AML_INVESTIGATION_TRIGGER`` is set to ``SANCTION_LIST_MATCH`` +* ``INVESTIGATION_TRIGGER`` is set to ``SANCTION_LIST_MATCH`` Finally, sanction list hits trigger one of two possible events: