summaryrefslogtreecommitdiff
path: root/design-documents
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2024-04-23 15:36:24 +0200
committerChristian Grothoff <christian@grothoff.org>2024-04-23 15:36:24 +0200
commit889fc8d695b9359b8f3a6b85ad869f7718742f60 (patch)
tree7264fa98964c3eff1981cf25f5227e4398b2e2c8 /design-documents
parent92bc443472599b185b775606ab28024f8a8538dc (diff)
downloaddocs-889fc8d695b9359b8f3a6b85ad869f7718742f60.tar.gz
docs-889fc8d695b9359b8f3a6b85ad869f7718742f60.tar.bz2
docs-889fc8d695b9359b8f3a6b85ad869f7718742f60.zip
-formatting
Diffstat (limited to 'design-documents')
-rw-r--r--design-documents/023-taler-kyc.rst270
1 files changed, 135 insertions, 135 deletions
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