From 889fc8d695b9359b8f3a6b85ad869f7718742f60 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 23 Apr 2024 15:36:24 +0200 Subject: -formatting --- design-documents/023-taler-kyc.rst | 270 ++++++++++++++++++------------------- 1 file changed, 135 insertions(+), 135 deletions(-) (limited to 'design-documents/023-taler-kyc.rst') diff --git a/design-documents/023-taler-kyc.rst b/design-documents/023-taler-kyc.rst index 825d8b0f..b1663634 100644 --- a/design-documents/023-taler-kyc.rst +++ b/design-documents/023-taler-kyc.rst @@ -1349,68 +1349,68 @@ Configuration of possible KYC/AML checks The configuration specifies a set of possible KYC checks offered by external providers, one per configuration section: - .. code-block:: ini - - [kyc-check-$CHECK_NAME] - - # Which type of check is this? Also determines - # the SPA form to show to the user for this check. - # - # INFO: wait for staff or contact staff out-of band - # (only information shown, no SPA action) - # FORM: SPA should show an inline (HTML) form - # LINK: SPA may start external KYC process or upload - # - TYPE = INFO|LINK|FORM - - # Optional. Set to YES to allow this check be - # done voluntarily by a client (they may then - # still have to pay for it). Used to offer the - # SPA to display checks even if they are - # not required. Default is NO. - # Since **vATTEST**. - VOLUNTARY = YES/NO - - # Provider id, present only if type is LINK. - PROVIDER_ID = id - - # Name of the SPA form, if type is FORM - # "INFO" and "LINK" are reserved and must not be used. - # The exchange server and the SPA must agree on a list - # of supported forms and the resulting attributes. - # - # The SPA should include a JSON resource file - # "forms.json" mapping form names to arrays of - # attribute names each form provides. - FORM_NAME = name - - # Descriptions to use in the SPA to display the check. - DESCRIPTION = "Upload your passport picture" - DESCRIPTION_I18N = "{"en":"Upload scan of your passport"}" - - # ';'-separated list of fields that the CONTEXT must - # provided as inputs to this check. For example, - # for a FORM of type CHOICE, this might state - # ``choices: string[];``. The type after the ":" - # is for now purely for documentation and is - # not checked. However, it may be shown to AML staff - # when they configure measures. - REQUIRES = requirement; - - # Description of the outputs provided by the check. - # Basically, the check's output is expected to - # provide the following fields as inputs into - # a subsequent AML program. - OUTPUTS = business_name street city country registration - - # **original** measure to take if the check fails - # (for any reason, e.g. provider or form fail to - # satisfy constraints or provider signals user error) - # Usually should point to a measure that requests - # AML staff to investigate. The fallback measure - # context always includes the reasons for the - # failure. - FALLBACK = MEASURE_NAME +.. code-block:: ini + + [kyc-check-$CHECK_NAME] + + # Which type of check is this? Also determines + # the SPA form to show to the user for this check. + # + # INFO: wait for staff or contact staff out-of band + # (only information shown, no SPA action) + # FORM: SPA should show an inline (HTML) form + # LINK: SPA may start external KYC process or upload + # + TYPE = INFO|LINK|FORM + + # Optional. Set to YES to allow this check be + # done voluntarily by a client (they may then + # still have to pay for it). Used to offer the + # SPA to display checks even if they are + # not required. Default is NO. + # Since **vATTEST**. + VOLUNTARY = YES/NO + + # Provider id, present only if type is LINK. + PROVIDER_ID = id + + # Name of the SPA form, if type is FORM + # "INFO" and "LINK" are reserved and must not be used. + # The exchange server and the SPA must agree on a list + # of supported forms and the resulting attributes. + # + # The SPA should include a JSON resource file + # "forms.json" mapping form names to arrays of + # attribute names each form provides. + FORM_NAME = name + + # Descriptions to use in the SPA to display the check. + DESCRIPTION = "Upload your passport picture" + DESCRIPTION_I18N = "{"en":"Upload scan of your passport"}" + + # ';'-separated list of fields that the CONTEXT must + # provided as inputs to this check. For example, + # for a FORM of type CHOICE, this might state + # ``choices: string[];``. The type after the ":" + # is for now purely for documentation and is + # not checked. However, it may be shown to AML staff + # when they configure measures. + REQUIRES = requirement; + + # Description of the outputs provided by the check. + # Basically, the check's output is expected to + # provide the following fields as inputs into + # a subsequent AML program. + OUTPUTS = business_name street city country registration + + # **original** measure to take if the check fails + # (for any reason, e.g. provider or form fail to + # satisfy constraints or provider signals user error) + # Usually should point to a measure that requests + # AML staff to investigate. The fallback measure + # context always includes the reasons for the + # failure. + FALLBACK = MEASURE_NAME The list of possible FORM names is fixed in the SPA for a particular exchange release. @@ -1426,50 +1426,50 @@ The configuration also specifies a set of legitimization rules including the condition and the measure the condition triggers, one condition per configuration section: - .. code-block:: ini - - [kyc-rule-$RULE_NAME] - - # Operation that triggers this legitimization. - # Must be one of WITHDRAW, DEPOSIT, P2P-RECEIVE - # or WALLET-BALANCE. - OPERATION_TYPE = WITHDRAW - - # Space-separated list of next measures to be performed. - # The SPA should display *all* of these measures to the user. - # (They have a choice of either which ones, or in - # which order they are to be performed.) - # A special measure name "verboten" is used if the - # specified threshold may never be crossed - # (under this set of rules). - NEXT_MEASURES = SWISSNESS KYB - - # "yes" if all NEXT_MEASURES will eventually need - # to be satisfied, "no" if the user has a choice between - # them. Not actually enforced by the exchange, but - # primarily used to inform the user whether this is - # an "and" or "or". YES for "and". - IS_AND_COMBINATOR = YES - - # YES if the rule (specifically, operation type, - # threshold, timeframe) and the general nature of - # the next measure (verboten or approval required) - # should be exposed to the client. - # Defaults to NO if not set. - EXPOSED = YES - - # Threshold amount above which the legitimization is - # triggered. The total must be exceeded in the given - # timeframe. - THRESHOLD = KUDOS:100 - - # Timeframe over which the amount to be compared to - # the THRESHOLD is calculated. - # Ignored for WALLET-BALANCE. Can be 'forever'. - TIMEFRAME = 30 days +.. code-block:: ini - # Enabled (default is NO) - ENABLED = NO + [kyc-rule-$RULE_NAME] + + # Operation that triggers this legitimization. + # Must be one of WITHDRAW, DEPOSIT, P2P-RECEIVE + # or WALLET-BALANCE. + OPERATION_TYPE = WITHDRAW + + # Space-separated list of next measures to be performed. + # The SPA should display *all* of these measures to the user. + # (They have a choice of either which ones, or in + # which order they are to be performed.) + # A special measure name "verboten" is used if the + # specified threshold may never be crossed + # (under this set of rules). + NEXT_MEASURES = SWISSNESS KYB + + # "yes" if all NEXT_MEASURES will eventually need + # to be satisfied, "no" if the user has a choice between + # them. Not actually enforced by the exchange, but + # primarily used to inform the user whether this is + # an "and" or "or". YES for "and". + IS_AND_COMBINATOR = YES + + # YES if the rule (specifically, operation type, + # threshold, timeframe) and the general nature of + # the next measure (verboten or approval required) + # should be exposed to the client. + # Defaults to NO if not set. + EXPOSED = YES + + # Threshold amount above which the legitimization is + # triggered. The total must be exceeded in the given + # timeframe. + THRESHOLD = KUDOS:100 + + # Timeframe over which the amount to be compared to + # the THRESHOLD is calculated. + # Ignored for WALLET-BALANCE. Can be 'forever'. + TIMEFRAME = 30 days + + # Enabled (default is NO) + ENABLED = NO AML programs @@ -1610,29 +1610,29 @@ systems administrator. AML programs are listed in the configuration file, one program per section: - .. code-block:: ini +.. code-block:: ini - [aml-program-$PROG_NAME] + [aml-program-$PROG_NAME] - # Program to run. - COMMAND = taler-helper-aml-pep + # Program to run. + COMMAND = taler-helper-aml-pep - # Human-readable description of what this - # AML helper program will do. Used to show - # to the AML staff. - DESCRIPTION = "check if the customer is a PEP" + # Human-readable description of what this + # AML helper program will do. Used to show + # to the AML staff. + DESCRIPTION = "check if the customer is a PEP" - # True if this AML program is enabled (and thus can be - # used in measures and exposed to AML staff). - # Optional, default is NO. - ENABLED = YES + # True if this AML program is enabled (and thus can be + # used in measures and exposed to AML staff). + # Optional, default is NO. + ENABLED = YES - # **original** measure to take if COMMAND fails - # Usually points to a measure that asks AML staff - # to contact the systems administrator. The fallback measure - # context always includes the reasons for the - # failure. - FALLBACK = MEASURE_NAME + # **original** measure to take if COMMAND fails + # Usually points to a measure that asks AML staff + # to contact the systems administrator. The fallback measure + # context always includes the reasons for the + # failure. + FALLBACK = MEASURE_NAME Configuration of measures @@ -1641,22 +1641,22 @@ Configuration of measures Finally, the configuration specifies a set of **original** *measures* one per configuration section: - .. code-block:: ini +.. code-block:: ini - [kyc-measure-$MEASURE_NAME] + [kyc-measure-$MEASURE_NAME] - # Possible check for this measure. Optional. - # If not given, PROGRAM should be run immediately - # (on an empty set of attributes). - CHECK_NAME = IB_FORM + # Possible check for this measure. Optional. + # If not given, PROGRAM should be run immediately + # (on an empty set of attributes). + CHECK_NAME = IB_FORM - # Context for the check. The context can be - # just an empty JSON object if there is none. - CONTEXT = {"choices":["individual","business"]} + # Context for the check. The context can be + # just an empty JSON object if there is none. + CONTEXT = {"choices":["individual","business"]} - # Program to run on the context and check data to - # determine the outcome and next measure. - PROGRAM = taler-aml-program + # Program to run on the context and check data to + # determine the outcome and next measure. + PROGRAM = taler-aml-program If no ``CHECK_NAME`` is provided at all, the AML ``PROGRAM`` is to be run immediately. This is useful if no client-interaction is required to arrive at -- cgit v1.2.3