taler-docs

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

tops.rst (82638B)


      1 Taler Operations Deployment
      2 ===========================
      3 
      4 Definitions / Glossary
      5 ----------------------
      6 
      7 * GwG: Swiss "Geldwäschereigesetz", the Swiss Anti-Money Laundering Act
      8 * VQF: Verein zur Qualitätssicherung von Finanzdienstleistungen, self-regulatory
      9   organization that Taler Operations AG is a member of and thus
     10   needs to stick to their rules
     11 * TmeR: German "Transaktion mit erhöhtem Risiko", i.e.
     12   high-risk transactions
     13 * GmeR: "Geschäftsbeziehung mit erhöhtem Risiko", i.e.
     14   high-risk business relationships
     15 * PEP: Politically exposed person
     16 * MROS: Money Laundering Reporting Office Switzerland
     17 * StGB: (Switzerland-specific:) Strafgesetzbuch, Swiss criminal law
     18 
     19 Regulatory Requirements Introduction
     20 ------------------------------------
     21 
     22 Regulatory requirements are set by `VQF <https://www.vqf.ch/indexen.html>`_
     23 and detailed in their SRO-Regulation document.  Our AML processes
     24 are based on their forms ("VQF Document Nr. 902.$x").
     25 
     26 Overview of High-Level Processes
     27 --------------------------------
     28 
     29 Establishing a Business Relationship
     30 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     31 
     32 1. A business relationship must be established if the thresholds of 15,000 CHF
     33    per year or 2,500 CHF per month are exceeded. The GNU Taler transaction
     34    system automatically records the transaction volumes and notifies the
     35    customer when a business relationship needs to be established. At this
     36    point, transactions are then frozen until the business relationship is
     37    established.
     38 
     39 2. To do this, the customer must complete the corresponding VQF forms online
     40    and upload documents. The customer's address is then verified by sending a
     41    TAN letter. The customer must also submit a certified copy of their ID by
     42    postal mail. This is then digitally and physically filed. Alternatively, an
     43    identity check can in principle also be carried out manually by TOPS
     44    employees on site (in person) at the customer's premises. In this case, the
     45    ID copies must be signed by the TOPS employee.
     46 
     47 3. New business relationships are checked against the current sanctions list.
     48    An automatic preliminary check takes place first, and suspected cases are
     49    then processed manually.
     50 
     51 4. When all the required data has been provided, it is in any case checked
     52    manually by the AML officer. Finally, the AML officer must categorize
     53    the customer to to derive a risk profile. Based on the risk profile,
     54    risk-based rules are set for monitoring the business relationship. If
     55    the AML officer has concerns about the business, they
     56    escalate the case to the management as to whether the
     57    business relationship can be opened.
     58    The management can then make a final decision on acceptance or rejection.
     59 
     60 Monitoring a Business Relationship
     61 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     62 
     63 1. For each business relationship, risk-based and customer-specific transaction
     64    limits are defined. If these are exceeded, an "alert" is automatically
     65    generated. These transactions must then be validated by the responsible
     66    customer consultant. All validated alerts are checked by the AML
     67    officer and either approved or returned to the customer consultant for further
     68    validation, or escalated to management for final decision-making or
     69    appropriate action.
     70 
     71 2. Business relationships are periodically reviewed and updated. The following rhythm applies:
     72 
     73    * every 5-7 years for low-risk business relationships
     74    * every 2 years for high-risk business relationships
     75    * annually for PEP relationships
     76 
     77    The review includes the verification of identification documents and any
     78    supporting documents submitted when the business relationship was
     79    established. Likewise, the information in the customer profile and the
     80    transaction behavior during the duration of the business relationship are
     81    reviewed.
     82 
     83 3. All business relationships are continuously and automatically checked
     84    against current sanctions lists, especially when a new sanctions list is
     85    available, without delay.
     86 
     87 4. Regardless of the risk category and the corresponding review frequency, a
     88    business relationship must be reviewed if special circumstances arise, such
     89    as negative press reports, unusual transactions and activities, etc.
     90 
     91 Terminating a Business Relationship
     92 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     93 
     94 A business relationship is automatically considered terminated if no
     95 transactions have been processed with the GNU Taler system for over 12 months.
     96 
     97 Credit / Debit Restrictions
     98 ---------------------------
     99 
    100 Only Swiss IBANs (``CH...``) are allowed for both credit and debit transactions.
    101 
    102 
    103 Initial Threshold Rules
    104 -----------------------
    105 
    106 * Withdrawal
    107 
    108   * ``withdrawal-low``: 200 CHF per month => measure ``sms-registration`` (or ``postal-registration``)
    109   * 2500 CHF per month => measure ``verboten``
    110   * 15000 CHF per year => measure ``verboten``
    111 
    112 * Deposit:
    113 
    114   * ``deposit-zero``: 0 CHF => measure ``accept-tos``
    115   * Note: While there are no further DEPOSIT rules,
    116     the aggregate rules still apply after deposits
    117     have been made.
    118 
    119 * Aggregate:
    120 
    121   * 2500 CHF per month => measure ``kyx``
    122   * 15000 CHF per year => measure ``kyx``
    123 
    124 * Merge (p2p receive)
    125 
    126   * ``merge-zero``: 0 CHF => measure ``sms-registration`` (or ``postal-registration``)
    127   * 2500 CHF per month => measure ``verboten``
    128   * 15000 CHF per year => measure ``verboten``
    129 
    130 
    131 Measures
    132 ---------
    133 
    134 Measures that ask for information:
    135 
    136 * ``sms-registration``: Validate (Swiss) mobile phone number of customer via SMS TAN.
    137 
    138   * On success:
    139 
    140     * Remove rule ``withdrawal-low``
    141     * Remove rule ``merge-zero``
    142 
    143 * ``postal-registration``: Validate (Swiss) postal address of customer via snail mail with TAN.
    144 
    145   * On success:
    146 
    147     * Remove rule ``withdrawal-low``
    148     * Remove rule ``merge-zero``
    149     * If arriving at the form via ``kyx`` measure, continue with manual check by AML officer.
    150 
    151 * ``accept-tos``: Ask customer to accept terms of service.
    152 
    153   * On success:
    154 
    155     * Remove rule ``deposit-zero``
    156 
    157 * ``kyx``: Allow customer to initiate KYC/KYC process via form ``vqf_902_1_customer``.
    158 
    159   * On success:
    160 
    161     * Follow-up with other VQF-forms, or
    162     * ``postal-registration`` to validate submitted address, or
    163     * if everything is done AML officer must proceed manually with plausibilization.
    164 
    165 * ``form-902.9``: Allow customer fill out form to determine beneficiary owner.
    166 
    167   * On success:
    168 
    169     * Possibly more forms triggered via ``kyx``, or
    170     * ``postal-registration`` to validate submitted address, or
    171     * if everything is done AML officer must proceed manually with plausibilization.
    172 
    173 * ``form-902.11``: Allow customer fill out form to determine controlling person.
    174 
    175   * On success:
    176 
    177     * Possibly more forms triggered via ``kyx``, or
    178     * ``postal-registration`` to validate submitted address, or
    179     * if everything is done AML officer must proceed manually with plausibilization.
    180 
    181 
    182 Threshold Presets
    183 -----------------
    184 
    185 Threshold presets are presets that the AML officer can
    186 select after the verifying the customer's documents and conducting
    187 a risk assessment.
    188 
    189 Exact thresholds will depend on the busines type and risk and may
    190 be assigned fully individually. However, we have a few typical
    191 profiles:
    192 
    193 * E-commerce:
    194 
    195   * Merge: 0 CHF / month
    196   * Withdrawal: 0 CHF / month
    197   * Deposit: 25000 CHF / month (high-value transactions with Taler are suspicious)
    198   * Aggregate: 25000 CHF / month
    199 
    200 * Point-of-sale:
    201 
    202   * Merge: 25000 CHF / month (peer-to-peer transfers may happen there)
    203   * Withdrawal: 0 CHF / month
    204   * Deposit: 25000 CHF / month (high-value transactions with Taler are suspicious)
    205   * Aggregate: 25000 CHF / month
    206 
    207 
    208 Properties
    209 ----------
    210 
    211 Properties are registered at the GNU Taler Account Properties `GNU Taler Account Properties <https://git.taler.net/gana.git/tree/gnu-taler-account-properties>`_.
    212 
    213 * ``FILE_NOTE :: Text``:
    214 
    215   * Current note on the GWG file.
    216 
    217 * ``CUSTOMER_LABEL :: Text``
    218 
    219   * Customer name or internal alias.
    220 
    221 * ``ACCOUNT_OPEN :: Boolean``
    222 
    223   * Was this customer activated for deposit operations?
    224   * Only set after merchant passes KYC
    225   * We store this to know when to emit the ``(INCR|DECR)_ACCOUNT_OPEN`` and related events
    226 
    227 * ``PEP_DOMESTIC :: Boolean``
    228 
    229   * Is the customer a domestic PEP?
    230 
    231 * ``PEP_FOREIGN :: Boolean``
    232 
    233   * Is the customer a foreign PEP?
    234 
    235 * ``PEP_INTERNATIONAL_ORGANIZATION :: Boolean``
    236 
    237   * Is the customer a international org PEP?
    238 
    239 * ``HIGH_RISK_CUSTOMER :: Boolean``
    240 
    241   * Is the customer classified as high-risk?
    242 
    243 * ``HIGH_RISK_COUNTRY :: Boolean``
    244 
    245   * Is the customer associated with high-risk (VQF Dok. Nr. 902.4.1) country?
    246 
    247 * ``ACCOUNT_IDLE :: Boolean``
    248 
    249   * The account has been marked as idle (typically by a batch process that checks
    250     for idle accounts).
    251 
    252 
    253 * ``INVESTIGATION_STATE``
    254 
    255   * The special-clarification and MROS reporting state for the account.
    256   * Values:
    257 
    258     * ``NONE`` / undefined: No pending special clarification and no MROS report
    259     * ``INVESTIGATION_PENDING``: Pending investigation.  The AML officer should
    260       submit ``vqf_902_14`` to conclude investigation.  Usually the property
    261       would be set by the sanction list tool or some AML program that detects
    262       an account crossing a threshold or an SQL trigger doing transaction
    263       monitoring (see ``tops-0001.sql`` for an example).
    264       The ``vqf_902_14`` form could also be used to start an
    265       investigation (by setting ``INCRISK_RESULT`` to ``OTHER``).
    266     * ``INVESTIGATION_COMPLETED_WITHOUT_SUSPICION``: Special clarification
    267       completed without a suspicion that leads to an MROS report
    268     * ``REPORTED_SUSPICION_SIMPLE``: A report was filed under Art. 305ter Abs. 2
    269       StGB (German "einfacher Verdacht", simple suspicion)
    270     * ``REPORTED_SUSPICION_SUBSTANTIATED``: A report was filed under Art. 9 GwG
    271       (German "begründeter Verdacht", substantiated suspicion)
    272 
    273 * ``INVESTIGATION_TRIGGER :: Text``
    274 
    275   * Informal reason why the AML investigation was triggered;
    276     examples include suspicious transaction or (automated)
    277     sanction list match
    278 
    279 * ``SANCTION_LIST_BEST_MATCH :: Text``
    280 
    281   * Identifies the sanction list entry that the account matched against
    282     (best match, does not mean it was a good match)
    283 
    284 * ``SANCTION_LIST_RATING :: Integer``
    285 
    286   * [0,10**9] score for how good the sanction list match was
    287     (0: none, 10**9: perfect match)
    288 
    289 * ``SANCTION_LIST_CONFIDENCE :: Integer``
    290 
    291   * [0,10**9] score for how much supporting data we had for
    292     the sanction list match (0: none, 10**9: all fields available)
    293 
    294 * ``SANCTION_LIST_SUPPRESS :: Boolean``
    295 
    296   * Suppress flagging this account when it creates a hit on a sanctions list, this is a false-positive.
    297 
    298 
    299 Events
    300 ------
    301 
    302 Account opening/closing:
    303 
    304 * ``INCR_ACCOUNT_OPEN`` /  ``DECR_ACCOUNT_OPEN``
    305 
    306 PEP/Risk classification:
    307 
    308 * ``INCR_HIGH_RISK_CUSTOMER`` / ``DECR_HIGH_RISK_CUSTOMER``
    309 * ``INCR_HIGH_RISK_COUNTRY`` / ``DECR_HIGH_RISK_COUNTRY``
    310 * ``INCR_PEP`` / ``DECR_PEP``
    311 * ``INCR_PEP_FOREIGN`` / ``DECR_PEP_FOREIGN``
    312 * ``INCR_PEP_DOMESTIC`` / ``DECR_PEP_DOMESTIC``
    313 * ``INCR_PEP_INTERNATIONAL_ORGANIZATION`` / ``DECR_PEP_INTERNATIONAL_ORGANIZATION``
    314 
    315 
    316 MROS Reporting (see ``INVESTIGATION_STATE`` property):
    317 
    318 * ``MROS_REPORTED_SUSPICION_SIMPLE``
    319 * ``MROS_REPORTED_SUSPICION_SUBSTANTIATED``
    320 * ``INCR_INVESTIGATION_CONCLUDED`` / ``DECR_INVESTIGATION_CONCLUDED``
    321 
    322 
    323 TAN Letter
    324 ----------
    325 
    326 After gathering initial information (``vqf_902_1_officer``), a letter with a
    327 TAN code is generated and sent to the customer.  The customer needs to enter
    328 the TAN in the KYC SPA in order to validate their address.  The letter
    329 also needs to ask the customer to send a certified copy of certain documents.
    330 
    331 The KYC SPA should also specify which documents are still needed.
    332 
    333 Implementation notes:
    334 
    335 * The letter is sent and generated via ``challenger``
    336 * We keep track of required documents via an ``INFO`` measure,
    337   where the context is updated based on documents still required.
    338 
    339 
    340 
    341 Procedural View
    342 ---------------
    343 
    344 This section provides a procedural view of the AML processes defined by the rules
    345 earlier in the document.  It is meant to give some further context to the rules
    346 and show how the rules are used in the context of Taler business processes.
    347 
    348 It only takes into account the standard rules.  Decisions from the AML
    349 officer can lead to a deviation from the standard process/rules.
    350 
    351 Wallet User: Onboarding and Withdrawal
    352 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    353 
    354 1. User installs the Taler wallet software on their device of choice.
    355 2. User adds the TOPS Taler Exchange to their Taler wallet
    356 3. User starts a new withdrawal via the wallet. This creates a new
    357    (pending) transaction in the wallet. *Optionally:* If the wallet can deduct
    358    that the user has to complete a KYC process for the withdrawal, it notifies
    359    the user.
    360 4. User follows instructions to send money to the TOPS exchange
    361 5. The wallet waits until the exchange knows about the
    362    user's wire transfer.
    363 6. The user's wallet checks with the exchange whether the withdrawal would
    364    cross the balance threshold.  The key/identifier for is the wallet ID for
    365    the exchange (which is typically the reserve public key for P2P
    366    transactions).
    367 
    368    **The TOPS exchange currently has no balance limits set, thus balance limits would
    369    never be crossed.**
    370 
    371    * If the balance limit is not crossed (or the user increased the limit via KYC), continue at (7).
    372    * If no KYC process is started or the KYC process fails or times out, funds
    373      are automatically wired back to the customer after a reserve close
    374      timeout. **Done.**
    375 
    376 7. The wallet attempts to withdraw electronic cash tokens.  The exchange
    377    checks the withdrawal limit based on the IBAN that the
    378    customer used to transfer CHF to the exchange:
    379 
    380    * If the customer has already successfully completed
    381      the ``sms-registration`` or ``postal-registration``,
    382      the withdrawal limit is 2500 CHF/month and 15000 CHF/year.
    383    * Otherwise, the limit is 200 CHF per month.  If this limit would
    384      be crossed by the withdrawal, the wallet redirects the user to
    385      the exchange's KYC page, where the user can complete the ``sms-registration``
    386      or ``postal-registration``.
    387    * If no limit would be crossed, continue at (8)
    388    * If a limit would be crossed and the customer is not able to
    389      lift it via the KYC process, funds are wired back automatically
    390      after a reserve close timeout. **Done.**
    391 
    392 8. The wallet receives the (blindly signed) tokens from the exchange,
    393    the withdrawal is done.  **Done.**
    394 
    395 
    396 Wallet User: Deposit of E-Money
    397 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    398 
    399 This process applies when the user wants to send CHF in their Taler wallet back
    400 to their CHF bank account.  Technically, it is the same process as the merchant
    401 accepting a Taler payment.  However, it might be treated differently from an
    402 AML perspective.
    403 
    404 1. The user's wallet asks the exchange to deposit a Taler payment
    405    to the user's own bank account.
    406 2. The exchange checks whether the users's public key is associated with the
    407    users's bank account specified in the deposit permission.
    408 
    409    Note that by default, the wallet uses a bank account that has
    410    previously used for withdrawal.  The withdrawal already associates
    411    the reserve's public key with the IBAN used for the withdrawal.
    412    Thus *usually* the right associated public key is already present.
    413 
    414    * If the association is missing, the exchange rejects the deposit. The
    415      customer must do a 1 rappen wire transfer to the exchange with a public
    416      key (as shown in the wallet) in the remittance information. **Done.**
    417    * Otherwise, continue at (3).
    418 3. The exchange checks the ``DEPOSIT`` limit of the user. The user is identified via their IBAN.
    419 
    420    * Initally, the deposit limit is CHF 0.  The user must accept the exchange's
    421      terms of service on the exchange's KYC page to lift this limit to CHF 2500/month
    422      and CHF 15000/year
    423    * If no deposit limit would be crossed, the exchange accepts the deposit from the user.
    424      Continue at (4).
    425    * Otherwise the exchange rejects the payment. The response is relayed to the
    426      wallet, which can (if necessary) refund coins previously deposited for the
    427      same payment and then refresh used coins.  **Done.**
    428 4. After the wire transfer deadline for the deposit has passed, the exchange
    429    checks whether the wire transfer would cross the ``AGGREGATE`` threshold for
    430    the merchant.
    431 
    432    * Initally, the aggregate limit is CHF 2500/month and CHF 15000/year.  If
    433      that limit would be crossed, the customer must undergo a KYB process.  This
    434      KYB process might result in limits being increased, depending on the
    435      details of the user.
    436    * If no aggregation limit would be crossed, the exchange initiates the wire transfer to the user.
    437    * Otherwise the exchange holds the funds until the user completes the necessary AML process.
    438 
    439 
    440 Wallet User: Receiving P2P Payments
    441 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    442 
    443 *Applicable to both receiving P2P payments (push) and getting paid for P2P
    444 payment requests (pull).*
    445 
    446 1. The customer instructs their wallet to accept a P2P payment from another wallet.
    447 2. The wallet tries to receive the P2P payment.
    448    The exchange checks the P2P receive (technically: ``MERGE``)
    449    limit, based on the wallet ID.
    450 
    451    * If the customer has successfully completed ``postal-registration`` or ``sms-registration``,
    452      the limits are 2500 CHF / month and 15000 CHF / year.
    453    * Otherwise, the limit is 0 CHF. The wallet redirects the user to the
    454      exchange's KYC page, where the user can complete the ``sms-registration``
    455      or ``postal-registration``.
    456    * If P2P receive is below the limits (or the customer increases the limits via KYC),
    457      the P2P recive can proceed.  **Done.**
    458    * Otherwise, the P2P payment expires and the sender's wallet reclaims the money.  **Done.**
    459 
    460 
    461 
    462 
    463 FIXME: Do withdrawal limits also apply for withdrawal from the merge reserve?
    464 
    465 Wallet User: Sending P2P Payments
    466 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    467 
    468 *Applicable to both sending P2P payments (push) and paying for P2P payment
    469 requests (pull).*
    470 
    471 There are no KYC/AML-relevant steps required for
    472 sending P2P payments.
    473 
    474 Merchant: Onboarding
    475 ^^^^^^^^^^^^^^^^^^^^
    476 
    477 1. The merchant provisions a Taler merchant backend service.
    478 2. A keypair is generated (or imported) for the merchant.
    479 3. The merchant adds their (Swiss) bank account to the merchant backend
    480 4. The merchant backend checks the KYC status of the account with the exchange.
    481 5. The exchange checks if the merchant's public key is already associated with
    482    the merchant's bank account.
    483 
    484    * If not, the merchant needs to make a payment (1 rappen) to the exchange
    485      with the public key in the remittance information.  Continue at (4).
    486    * Otherwise, continue at (6).
    487 
    488 6. If the merchant's bank account still has a deposit limit of zero, the
    489    merchant needs to accept the TOPS exchange terms of service on the
    490    exchange's KYC page.
    491 
    492 7. The deposit rule is lifted and the merchant can start accepting Taler payments from customers.
    493    However, initially no aggregated settlement payments (wire transfers)
    494    will be send from the exchange to the merchants, until the merchant
    495    has completed further KYC steps (``vqf_902_1_customer`` etc.).
    496 8. Optionally, the merchant can (via a link in the merchant backend to the KYC page)
    497    and immediately complete the further KYC process steps.
    498 
    499 Merchant: Receiving Payments from Wallets
    500 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    501 1. The merchant receives a Taler payment (technically: deposit permissions) from a
    502    wallet.
    503 2. The merchant asks the exchange to deposit the Taler payment.
    504 3. The exchange checks whether the merchant's public key is associated with the
    505    merchant's bank account specified (as a salted hash) in the deposit
    506    permission.
    507 
    508    * If the association is missing, the exchange rejects the deposit.  **Done.**
    509    * Otherwise, continue at (4).
    510 
    511 4. The exchange checks the ``DEPOSIT`` limit of the merchant.
    512    The merchant is identified via their IBAN.
    513 
    514    * Initally, the deposit limit is CHF 0.  The merchant must accept the exchange's
    515      terms of service on the exchange's KYC page to lift this limit to CHF 2500/month
    516      and CHF 15000/year
    517    * If the merchant has accepted the terms of service, the deposit limit
    518      is CHF 2500/month and CHF 15000/year.  If that limit
    519      is crossed, the merchant must undergo a KYB process.  This KYB
    520      process might result in limits being increased, depending
    521      on the details of the business.
    522    * If no deposit limit would be crossed, the exchange accepts the deposit from the merchant.  **Done.**
    523    * Otherwise the exchange rejects the payment. The response is relayed to the
    524      wallet, which can (if necessary) refund coins previously deposited for the
    525      same payment and then refresh used coins.  **Done.**
    526 
    527 
    528 Merchant: Receiving Wire Transfers for Taler Payments
    529 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    530 1. The merchange receives payments from wallets.
    531 2. The exchange waits and aggregates payments until the first wire transfer
    532    deadline set by the merchant has passed.
    533 3. The exchange checks whether the aggregated wire transfer would cross the
    534    ``AGGREGATE`` threshold for the merchant.
    535 
    536    * Initally, the aggregate limit is CHF 2500/month and CHF 15000/year.  If
    537      that limit would be crossed, the merchant must undergo a KYB process.  This
    538      KYB process might result in limits being increased, depending on the
    539      details of the business.
    540    * If no aggregation limit would be crossed, the exchange initiates the wire transfer to the merchant.
    541    * Otherwise the exchange holds the funds until the merchant completes the necessary AML process.
    542 
    543 KYC Providers
    544 -------------
    545 
    546 challenger-postal
    547 ^^^^^^^^^^^^^^^^^
    548 
    549 **Purpose:** Validate customer address via postal mail.
    550 
    551 **Attributes**
    552 
    553 .. code:: none
    554 
    555    CONTACT_NAME :: Text
    556    ADDRESS_LINES :: Text
    557    ADDRESS_COUNTRY :: "CH"
    558 
    559 * ``CONTACT_NAME``
    560 
    561   **Description:** Name of the person or company whose address was validated.
    562 
    563 * ``ADDRESS_LINES``
    564 
    565   **Description:** Contact address (without name and country). May span
    566   over multiple lines (separated by newline characters).
    567 
    568 * ``ADDRESS_COUNTRY``
    569 
    570   **Description:** Country of the validated address. Only "CH" is allowed.
    571 
    572 challenger-sms
    573 ^^^^^^^^^^^^^^
    574 
    575 **Purpose:** Validate customer phone number via SMS.
    576 
    577 **Attributes**
    578 
    579 .. code:: none
    580 
    581    CONTACT_PHONE :: Text
    582 
    583 * ``CONTACT_PHONE``
    584 
    585   **Description:** Phone number that was validated.
    586 
    587 
    588 AML/KYC Forms
    589 -------------
    590 
    591 The following subsections define the contents of the forms. The corresponding
    592 field names are registered via `GANA <https://git.taler.net/gana.git/tree/gnu-taler-form-attributes>`_.
    593 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>`_
    594 
    595 When the customer or officer submit the information throught the client software it must
    596 include the fields FORM_ID and FORM_VERSION attributed as defined in GANA.
    597 
    598 Field names are always in ``SCREAMING_SNAKE_CASE``.
    599 
    600 File uploads should always use a nested structure, either
    601 using ``FILE`` with a `KycFileUploadAttribute` or
    602 ``BULK`` with a `KycBulkUploadAttribute`.
    603 
    604 
    605 accept-tos
    606 ^^^^^^^^^^
    607 
    608 **Filled out by:** Customer
    609 
    610 **Purpose:** Customer confirms that they accept the terms of service.
    611 
    612 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-accept%20tos-EmptyForm>`__
    613 
    614 **Attributes**:
    615 
    616 .. code:: none
    617 
    618    ACCEPTED_TERMS_OF_SERVICE :: Text
    619    DOWNLOADED_TERMS_OF_SERVICE :: Boolean
    620 
    621 * ``ACCEPTED_TERMS_OF_SERVICE``
    622 
    623   * **Description**: ToS version that the user accepted.
    624 
    625 * ``DOWNLOADED_TERMS_OF_SERVICE``
    626 
    627   * **Description**: Whether the user downloaded the
    628     terms of service.
    629 
    630 generic_note
    631 ^^^^^^^^^^^^
    632 
    633 **Filled out by:** AML Officer, customer
    634 
    635 **Purpose:** Free-form note.  Should be used instead of the ``FILE_NOTE`` when there
    636 are attachements or the note contains very sensitive information.
    637 
    638 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-generic_note-EmptyForm>`__
    639 
    640 **Attributes**:
    641 
    642 .. code:: none
    643 
    644   NOTE_TEXT :: Text
    645   SUPPLEMENTAL_FILES_LIST[].DESCRIPTION :: Text
    646   SUPPLEMENTAL_FILES_LIST[].FILE :: File
    647 
    648 
    649 generic_upload
    650 ^^^^^^^^^^^^^^
    651 
    652 **Filled out by:** Customer
    653 
    654 **Purpose:** Free-form upload. The type/name of the requested
    655 document is taken from the context.
    656 
    657 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-generic_upload-EmptyForm>`__
    658 
    659 **Context:**
    660 
    661 * ``REQUESTED_FILE_TITLE``
    662 * ``REQUESTED_FILE_DESCRIPTION``
    663 
    664 **Attributes**:
    665 
    666 .. code:: none
    667 
    668   NOTE_TEXT :: Text
    669   FILE :: File
    670 
    671 
    672 vqf_902_1_customer
    673 ^^^^^^^^^^^^^^^^^^
    674 
    675 **Filled out by:** AML Officer, customer
    676 
    677 **Purpose:**
    678 Initial collection of basic attributes about customer during onboarding.
    679 
    680 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_1_customer-EmptyForm>`__
    681 
    682 **Remarks:**
    683 
    684 * We first ask for ``CUSTOMER_TYPE`` to know what type of basic information we need to ask.
    685   Only later in the form we ask for ``CUSTOMER_TYPE_VQF``, which can be ``OTHER``. We can't
    686   combine those two fields, as for ``CUSTOMER_TYPE_VQF=OTHER`` we wouldn't know what
    687   basic information to ask.
    688 
    689 **Attributes**:
    690 
    691 .. code:: none
    692 
    693   title TITLE_VQF_902_1_CUSTOMER
    694   SIGNATURE :: Text
    695   CUSTOMER_TYPE :: 'NATURAL_PERSON' | 'LEGAL_ENTITY'
    696   when CUSTOMER_TYPE = 'NATURAL_PERSON' {
    697     FULL_NAME :: Text
    698     DOMICILE_ADDRESS :: Text
    699     CONTACT_PHONE :: Optional[Text]
    700     CONTACT_EMAIL :: Optional[Text]
    701     DATE_OF_BIRTH :: Date
    702     NATIONALITY :: Text
    703     PERSONAL_IDENTIFICATION_DOCUMENT_COPY :: File
    704     CUSTOMER_IS_SOLE_PROPRIETOR :: Boolean
    705     when CUSTOMER_IS_SOLE_PROPRIETOR {
    706       COMPANY_NAME :: Text
    707       REGISTERED_OFFICE_ADDRESS :: Text
    708       LEGAL_ENTITY_IDENTIFICATION_DOCUMENT_COPY :: File
    709     }
    710   }
    711   when CUSTOMER_TYPE = 'LEGAL_ENTITY' {
    712     COMPANY_NAME :: Text
    713     REGISTERED_OFFICE_ADDRESS :: Text
    714     CONTACT_PERSON_NAME :: Optional[Text]
    715     CONTACT_PHONE :: Optional[Text]
    716     CONTACT_EMAIL :: Optional[Text]
    717     LEGAL_ENTITY_IDENTIFICATION_DOCUMENT_COPY :: File
    718     COMPANY_SHARE_REGISTRY :: Optional[File]
    719     ESTABLISHER_LIST[].FULL_NAME :: Text
    720     ESTABLISHER_LIST[].DOMICILE_ADDRESS :: Text
    721     ESTABLISHER_LIST[].DATE_OF_BIRTH :: Text
    722     ESTABLISHER_LIST[].NATIONALITY :: Text
    723     ESTABLISHER_LIST[].PERSONAL_IDENTIFICATION_DOCUMENT_COPY :: File
    724     ESTABLISHER_LIST[].SIGNING_AUTHORITY_TYPE :: 'SINGLE' | 'COLLECTIVE_TWO' | 'OTHER'
    725     when (ESTABLISHER_LIST[].SIGNING_AUTHORITY_TYPE = 'OTHER') {
    726       ESTABLISHER_LIST[].SIGNING_AUTHORITY_TYPE_OTHER :: Text
    727     }
    728     ESTABLISHER_LIST[].SIGNING_AUTHORITY_EVIDENCE :: 'CR' | 'MANDATE' | 'OTHER'
    729     ESTABLISHER_LIST[].SIGNING_AUTHORITY_EVIDENCE_DOCUMENT_COPY :: File
    730     when (ESTABLISHER_LIST[].SIGNING_AUTHORITY_EVIDENCE = 'OTHER') {
    731       ESTABLISHER_LIST[].SIGNING_AUTHORITY_EVIDENCE_OTHER :: Text
    732     }
    733   }
    734   CORRESPONDENCE_LANGUAGE :: 'en' | 'de' | 'fr' | 'it'
    735   CUSTOMER_TYPE_VQF :: (
    736     'NATURAL_PERSON' | 'OPERATIONAL' | 'FOUNDATION' |
    737     'TRUST' | 'LIFE_INSURANCE' | 'OTHER')
    738 
    739 * ``SIGNATURE``
    740 
    741   * **Type:** String
    742   * **LABEL DE:** Dieses Formular wurde ausgefüllt von (Vorname/Name):
    743 
    744 * ``CUSTOMER_TYPE``
    745 
    746   * **Type:** Single choice
    747   * **Choices:**
    748 
    749     * ``NATURAL_PERSON``
    750 
    751       * **Label DE:** Die Vertragspartei ist eine natürliche Person
    752 
    753     * ``LEGAL_ENTITY``
    754 
    755       * **Label DE:** Die Vertragspartei ist eine juristische Person
    756 
    757 * ``CUSTOMER_TYPE_VQF``
    758 
    759   * **Description:** Customer type according to the VQF classification.
    760   * **Type:** Single Choice
    761   * **Choices:**:
    762 
    763     * ``NATURAL_PERSON``
    764 
    765       * **Label DE**: Die Vertragspartei ist eine natürliche Person und es bestehen keine Zweifel, dass
    766         diese selber an den Vermögenswerten wirtschaftlich
    767         berechtigt ist
    768       * **Label EN:** A natural person and there are no doubts that this person is the sole beneficial owner of the assets
    769 
    770     * ``OPERATIONAL``
    771 
    772       * **Label DE**: ... eine operative juristische Person oder Personengesellschaft
    773 
    774     * ``FOUNDATION``
    775 
    776       * **Label DE**: ... eine Stiftung (oder ein ähnliches Konstrukt; inkl. Underlying
    777         Companies).
    778 
    779     * ``TRUST``
    780 
    781       * **Label DE**: ... ein Trust (inkl. Underlying Companies)
    782 
    783     * ``LIFE_INSURANCE``
    784 
    785       * **Label DE**: ... eine Lebensversicherung mit separater Konto-/Depotführung
    786         (sog. Insurance Wrapper)
    787 
    788     * ``OTHER``
    789 
    790       * **Label DE**: alle übrigen Fälle
    791 
    792 * ``FULL_NAME``
    793 
    794   * **Description**: Full name of the customer.
    795   * **Type**: Single-line text
    796   * **Label EN**: Name / First Name
    797   * **Label DE**: Name/Vorname
    798 
    799 * ``DOMICILE_ADDRESS``
    800 
    801   * **Description**: Domicile address of the customer.
    802   * **Type**: Multi-line text
    803   * **Label DE**: Wohnsitzadresse
    804 
    805 * ``CONTACT_PHONE``
    806 
    807   * **Description:** Contact phone number of the customer.
    808   * **Type**: Phone number (**optional**)
    809   * **Label DE:** Telefon
    810 
    811 * ``CONTACT_EMAIL``
    812 
    813   * **Description:** Contact e-mail address of the customer.
    814   * **Type**: E-Mail address (**optional**)
    815   * **Label DE:** E-Mail
    816 
    817 * ``DATE_OF_BIRTH``
    818 
    819   * **Description:** Customer's date of birth.
    820   * **Type**: Date
    821   * **Label DE:** Geburtstsdatum
    822 
    823 * ``NATIONALITY``
    824 
    825   * **Description:** Customer's nationality (only for natural person).
    826   * **Type**: Country code
    827   * **Label DE:** Staatsangehörigkeit
    828 
    829 * ``PERSONAL_IDENTIFICATION_DOCUMENT_COPY``
    830 
    831   * **Type**: File upload (PDF).
    832   * **Label DE:** Identification document
    833 
    834 * ``CUSTOMER_NATURAL_COMPANY_NAME``
    835 
    836   * **Type**: Single-line text
    837   * **Label DE:** [Bei Inhabern von Einzelunternehmen (in Ergänzung zu oben):] Firma
    838 
    839 * ``REGISTERED_OFFICE_ADDRESS``
    840 
    841   * **Type**: Multi-line text
    842   * **Label DE:** [Bei Inhabern von Einzelunternehmen (in Ergänzung zu oben):] Geschäftsadresse
    843 
    844 * ``LEGAL_ENTITY_IDENTIFICATION_DOCUMENT_COPY``
    845 
    846   * **Type**: File upload (PDF).
    847   * **Label DE:** Identifizierungsdokument für Unternehmen
    848 
    849 * ``COMPANY_SHARE_REGISTRY``
    850 
    851   * **Type**: File upload (PDF).
    852   * **Label DE:** Aktienregister oder Äquivalent
    853 
    854 * ``COMPANY_NAME``
    855 
    856   * **Type:** Single-line text
    857   * **Label DE:** Firma
    858 
    859 * ``CONTACT_PERSON_NAME``
    860 
    861   * **Type:** Single-line text (**optional**)
    862   * **Label DE:** Kontaktperson
    863 
    864 * ``CORRESPONDENCE_LANGUAGE``
    865 
    866   * **Type:** Single selection
    867   * **Choices:** ISO 639-1 Alpha-2 language codes. Currently only ``en``, ``de``, ``fr`` and
    868     ``it`` are supported.
    869 
    870 * ``ESTABLISHER_LIST[].FULL_NAME``
    871 
    872   * **Type:** Single-line string
    873   * **Label DE:** Name/Vorname
    874 
    875 * ``ESTABLISHER_LIST[].DOMICILE``
    876 
    877   * **Type:** Multi-line string
    878   * **Label DE:** Wohnsitzadresse
    879 
    880 * ``ESTABLISHER_LIST[].NATIONALITY``
    881 
    882   * **Type:**  ISO 3166 two-letter uppercase country code.
    883   * **Label DE:** Staatsangehörigkeit
    884 
    885 * ``ESTABLISHER_LIST[].PERSONAL_IDENTIFICATION_DOCUMENT_COPY``
    886 
    887   * **Type**: File upload (PDF).
    888   * **Label DE:** Identifikationsdokument
    889 
    890 * ``ESTABLISHER_LIST[].SIGNING_AUTHORITY_TYPE``
    891 
    892   * **Type:** Single Choice
    893   * **Label DE:** Art der Zeichnungs- oder Vertretungsberechtigung
    894   * **Required:** yes
    895   * **Choices:**
    896 
    897     * ``SINGLE``
    898 
    899       * **Label DE:** Einzelunterschrift
    900 
    901     * ``COLLECTIVE_TWO``
    902 
    903       * **Label DE:** Kollektiv zu zweit
    904 
    905     * ``OTHER``
    906 
    907       * **Label DE:** Anderes
    908 
    909 * ``ESTABLISHER_LIST[].SIGNING_AUTHORITY_TYPE_OTHER``
    910 
    911   * **Type:** Single-line string
    912 
    913 * ``ESTABLISHER_LIST[].SIGNING_AUTHORITY_EVIDENCE``
    914 
    915   * **Type:** Single Choice
    916   * **Label DE:** Kenntnisnahme der Bevollmächtigtenbestimmungen durch
    917   * **Choices**:
    918 
    919     * ``CR``
    920 
    921       * **Label DE:** Handelsregisterauszug
    922 
    923     * ``MANDATE``
    924 
    925       * **Label DE:** Vollmacht
    926 
    927     * ``OTHER``
    928 
    929       * **Label DE:** Anderes:
    930 
    931 * ``ESTABLISHER_LIST[].SIGNING_AUTHORITY_EVIDENCE_OTHER``
    932 
    933   * **Type**: Single-line text
    934 
    935 * ``ESTABLISHER_LIST[].SIGNING_AUTHORITY_EVIDENCE_DOCUMENT_COPY``
    936 
    937   * **Description:** Attached document as evidence of the person's signing authority.
    938   * **Type:** File upload.
    939 
    940 
    941 **Strings**
    942 
    943 * ``TITLE_VQF_902_1_CUSTOMER``
    944 
    945   * ``Identifizierungsformular (Kundenbasisdaten)``
    946 
    947 **Measure after submission by customer:**
    948 Depending on ``CUSTOMER_TYPE_VQF``, the customer is asked to fill out another
    949 form:
    950 
    951 * ``NATURAL_PERSON``: No other form to fill out. A TAN letter will be directly
    952   sent to the customer.
    953 * ``OPERATIONAL``: Form ``vqf_902_11_customer``
    954 * ``FOUNDATION``: Form ``vqf_902_12``
    955 * ``TRUST``: Form ``vqf_902_13``
    956 * ``LIFE_INSURANCE``: Form ``vqf_902_15``
    957 * ``OTHER``: Form ``vqf_902_9_customer``
    958 
    959 vqf_902_1_officer
    960 ^^^^^^^^^^^^^^^^^
    961 
    962 **Filled out by:** Only AML Officer
    963 
    964 **Prerequisites:** ``vqf_902_1_customer`` (with follow-up form if required),
    965 ``vqf_902_5`` and ``vqf_902_4`` must have been submitted and checked.
    966 
    967 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_1_officer-EmptyForm>`_
    968 
    969 **Differences from VQF form 902.1:**
    970 
    971 * We do not ask for the type of correspondence service,
    972   but instead assume that correspondence is done via the Taler
    973   protocol or directly to the customer via postal mail.
    974 * We do not accept languages other than English, German and French
    975 * Section 6 ("Laufkunden/Kassageschäften") is not applicable
    976 * Section 7 ("Beilagen"): The other forms must be filed by
    977   the AML officer *before* filing ``vqf_902_1_officer``.
    978   In the future, this will be checked by an AML program
    979   that runs for the form submission.
    980 
    981 **Attributes:**
    982 
    983 .. code:: none
    984 
    985   ACCEPTANCE_DATE :: Date
    986   ACCEPTANCE_METHOD :: (
    987     'FACE_TO_FACE' |
    988     'AUTHENTICATED_COPY' |
    989     'RESIDENTIAL_ADDRESS_VALIDATED')
    990   ACCEPTANCE_FURTHER_INFO :: Optional[Text]
    991   EMBARGO_TERRORISM_CHECK_RESULT :: 'LISTED' | 'NOT_LISTED'
    992   EMBARGO_TERRORISM_CHECK_DATE :: Date
    993   when EMBARGO_TERRORISM_CHECK_RESULT = 'LISTED' {
    994     EMBARGO_TERRORISM_INFO :: Text
    995   }
    996   SUPPLEMENTAL_FILES_LIST[].FILE :: File
    997   SUPPLEMENTAL_FILES_LIST[].DESCRIPTION :: File
    998 
    999 
   1000 
   1001 vqf_902_4
   1002 ^^^^^^^^^
   1003 
   1004 **Filled out by:** AML officer only
   1005 
   1006 **Purpose:** The AML officer uses this form
   1007 to document the risk profile of a customer.
   1008 
   1009 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_4-EmptyForm>`__
   1010 
   1011 **Differences from VQF form**
   1012 
   1013 * "LÄNDERRISIKO (Zahlungsverkehr)" does not apply, since we
   1014   only accept Swiss customers
   1015 * "PRODUKTRISIKO (Art der vom Kunden verlangten Dienstleistungen und Produkte)
   1016   does not apply, since we do not offer customized products/services.
   1017 
   1018 **Attributes:**
   1019 
   1020 .. code:: none
   1021 
   1022    CUSTOMER_NAME :: Text
   1023    PEP_FOREIGN :: Boolean
   1024    PEP_DOMESTIC :: Boolean
   1025    PEP_INTERNATIONAL_ORGANIZATION :: Boolean
   1026    when (PEP_DOMESTIC or PEP_INTERNATIONAL_ORGANIZATION) {
   1027      PEP_HIGH_RISK :: Boolean
   1028    }
   1029    when PEP_FOREIGN or PEP_HIGH_RISK {
   1030      PEP_ACCEPTANCE_DATE :: Date
   1031    }
   1032    HIGH_RISK_COUNTRY :: Boolean
   1033 
   1034    // FIXME-#9679: Unclear if this is single-choice or multiple-choice
   1035    COUNTRY_RISK_NATIONALITY_TYPE :: List[
   1036     'NATIONALITY_CUSTOMER' | 'NATIONALITY_OWNER' |
   1037     'DOMICILE_CUSTOMER' | 'DOMICILE_OWNER' |
   1038     'DOMICILE_CONTROLLING']
   1039    COUNTRY_RISK_NATIONALITY_LEVEL :: 'LOW' | 'MEDIUM' | 'HIGH'
   1040    // FIXME-#9679: Unclear if this is single-choice or multiple-choice
   1041    COUNTRY_RISK_BUSINESS_TYPE :: List['CUSTOMER' | 'OWNER']
   1042    COUNTRY_RISK_BUSINESS_LEVEL :: 'LOW' | 'MEDIUM' | 'HIGH'
   1043    COUNTRY_RISK_PAYMENTS_LEVEL :: 'LOW' | 'MEDIUM' | 'HIGH'
   1044    INDUSTRY_RISK_TYPE :: 'CUSTOMER' | 'OWNER'
   1045    INDUSTRY_RISK_LEVEL :: (
   1046      'TRANSPARENT' | 'HIGH_CASH_TRANSACTION' |
   1047      'NOT_WELL_KNOWN' | 'HIGH_RISK_TRADE' | 'UNKNOWN_INDUSTRY')
   1048    CONTACT_RISK_LEVEL :: 'LOW' | 'MEDIUM' | 'HIGH'
   1049    PRODUCT_RISK_LEVEL :: List['LOW' | 'SOPHISTICATED' | 'HIGH_OFFSHORE' |
   1050      'HIGH_COMPLEX' | 'HIGH_PASSTHROUGH' | 'HIGH_BACKGROUND' |
   1051      'HIGH_FREQUENT_TMER']
   1052    RISK_RATIONALE :: Text
   1053    RISK_CLASSIFICATION_LEVEL :: 'HIGH_RISK' | 'NO_HIGH_RISK'
   1054    when (HIGH_RISK_COUNTRY OR
   1055          RISK_CLASSIFICATION_LEVEL = 'HIGH_RISK') {
   1056      HIGH_RISK_ACCEPTANCE_DATE :: Date
   1057    }
   1058 
   1059 * ``CUSTOMER_NAME``
   1060 
   1061   * **Type**: String
   1062   * **Label DE:** Vertragspartei
   1063 
   1064 * ``PEP_FOREIGN``
   1065 
   1066   * **Type**: Checkbox
   1067   * **Label DE:** Ist die Vertragspartei, der wirtschaftlich
   1068     Berechtige resp. Kontrollinhaber oder der
   1069     Bevollmächtigte ein ausländischer PEP
   1070     oder steht er einem solchen nahe?
   1071 
   1072 * ``PEP_DOMESTIC``
   1073 
   1074   * **Type**: Checkbox
   1075   * **Label DE:** Ist die Vertragspartei, der wirtschaftlich
   1076     Berechtigte resp. Kontrollinhaber oder
   1077     der Bevollmächtigte ein inländischer PEP
   1078 
   1079 * ``PEP_INTERNATIONAL_ORGANIZATION``
   1080 
   1081   * **Type**: Checkbox
   1082   * **Label DE:** Ist die Vertragspartei, der wirtschaftlich
   1083     Berechtigte resp. Kontrollinhaber oder der Bevollmächtigte ein PEP bei
   1084     internationalen Organisationen oder steht er einem solchen nahe?
   1085 
   1086 * ``PEP_HIGH_RISK``
   1087 
   1088   * **Type**: Checkbox
   1089   * **Label DE:**  Ist ein Risikokriterium aus diesem Formular erfüllt?
   1090   * **VQF form original label:** Ist ein Risikokriterium gemäss Ziff. 3 nachfolgend erhöht?
   1091 
   1092 
   1093 * ``PEP_ACCEPTANCE_DATE``
   1094 
   1095   * **Type:** Date
   1096   * **Label DE:** Die Zustimmung des obersten Geschäftsführungsorgans zur Aufnahme einer
   1097     Geschäftsbeziehung mit einem PEP wurde eingeholt am:
   1098 
   1099 * ``COUNTRY_RISK_NATIONALITY_TYPE``
   1100 
   1101   * **Type:** Multi-choice
   1102   * **Label DE:** LÄNDERRISIKO (Nationalität)
   1103   * **Choices:**
   1104 
   1105     * ``NATIONALITY_CUSTOMER``
   1106 
   1107       * **Label DE:** [Staatsangehörigkeit] Vertragspartei
   1108 
   1109     * ``NATIONALITY_OWNER``
   1110 
   1111       * **Label DE:** [Staatsangehörigkeit] An Vermögenswerten wirtschaftlich berechtigte Person
   1112 
   1113     * ``DOMICILE_CUSTOMER``
   1114 
   1115       * **Label DE:** [Sitz/Wohnsitz] Vertragspartei
   1116 
   1117     * ``DOMICILE_CONTROLLING``
   1118 
   1119       * **Label DE:** [Sitz/Wohnsitz] Kontrollinhaber
   1120 
   1121     * ``DOMICILE_OWNER``
   1122 
   1123       * **Label DE:** [Sitz/Wohnsitz] an Vermögenswerten wirtschaftlich berechtigte Personen
   1124 
   1125 * ``COUNTRY_RISK_NATIONALITY_LEVEL``
   1126 
   1127   * **Type:** Single choice
   1128   * **Choices:**
   1129 
   1130     * ``LOW``
   1131 
   1132       * **Label DE:** Risiko 0 gemäss VQF-Länderliste (VQF Dok. Nr. 902.4.1)
   1133 
   1134     * ``MEDIUM``
   1135 
   1136       * **Label DE:** Risiko 1 gemäss VQF-Länderliste (VQF Dok. Nr. 902.4.1)
   1137 
   1138     * ``HIGH``
   1139 
   1140       * **Label DE:** Risiko 2 gemäss VQF-Länderliste (VQF Dok. Nr. 902.4.1)
   1141 
   1142 * ``COUNTRY_RISK_BUSINESS_TYPE``
   1143 
   1144   * **Type:** Multi-choice
   1145   * **Label DE:** LÄNDERRISIKO (Geschäftstätigkeit)
   1146   * **Choices:**
   1147 
   1148     * ``CUSTOMER``
   1149 
   1150       * **Label DE:** [Ort der Geschäftstätigkeit] Vertragspartei
   1151 
   1152     * ``OWNER``
   1153 
   1154       * **Label DE:** [Ort der Geschäftstätigkeit] an Vermögenswerten wirtschaftlich berechtigte Person
   1155 
   1156 * ``COUNTRY_RISK_BUSINESS_LEVEL``
   1157 
   1158   * **Type:** Single choice
   1159   * **Choices:**
   1160 
   1161     * ``LOW``
   1162 
   1163       * **Label DE:** Risiko 0 gemäss VQF-Länderliste (VQF Dok. Nr. 902.4.1)
   1164 
   1165     * ``MEDIUM``
   1166 
   1167       * **Label DE:** Risiko 1 gemäss VQF-Länderliste (VQF Dok. Nr. 902.4.1)
   1168 
   1169     * ``HIGH``
   1170 
   1171       * **Label DE:** Risiko 2 gemäss VQF-Länderliste (VQF Dok. Nr. 902.4.1)
   1172 
   1173 
   1174 * ``INDUSTRY_RISK_TYPE``
   1175 
   1176   * **Type:** Multi-choice
   1177   * **Label DE:** BRANCHENRISIKO
   1178   * **Choices:**
   1179 
   1180     * ``CUSTOMER``
   1181 
   1182       * **Label DE:** [Art der Geschäftstätigkeit] Vertragspartei
   1183 
   1184     * ``OWNER``
   1185 
   1186       * **Label DE:** [Art der Geschäftstätigkeit] an Vermögenswerten wirtschaftlich berechtigte Person
   1187 
   1188 * ``INDUSTRY_RISK_LEVEL``
   1189 
   1190   * **Type:** Single choice
   1191   * **Choices:**
   1192 
   1193     * ``TRANSPARENT``
   1194 
   1195       * **Label DE:**
   1196         Dem Mitglied gut bekannte, klar um rissene, transparente
   1197         und einfach verständliche Geschäftstätigkeit
   1198 
   1199     * ``HIGH_CASH_TRANSACTION``
   1200 
   1201       * **Label DE:** Geschäftstätigkeit mit hohen Bargeldtransaktionen
   1202 
   1203     * ``NOT_WELL_KNOWN``
   1204 
   1205       * **Label DE:** Dem Mitglied eher unbekannte Tätigkeit
   1206 
   1207     * ``HIGH_RISK_TRADE``
   1208 
   1209       * **Label DE:**
   1210         Waffen-/Rüstungshandel, Rohedelsteine- und Diamantenhandel,
   1211         Schmuckhandel, internationaler Handel mit exotischen Tieren, Casino-
   1212         und Lotteriegewerbe, Erotikgewerbe
   1213 
   1214     * ``UNKNOWN_INDUSTRY``
   1215 
   1216       * **Label DE:**
   1217         Keinerlei persönliche Kenntnisse des Mitglieds zur Branche der
   1218         Vertragspartei
   1219 
   1220 * ``CONTACT_RISK_LEVEL``
   1221 
   1222   * **Type:** Single choice
   1223   * **Label DE:**
   1224     KONTAKTRISIKO: Kontaktformen zur Vertragspartei/an Vermögenswerten
   1225     wirtschaftlich berechtigten Person
   1226 
   1227   * **Choices:**
   1228 
   1229     * ``LOW``
   1230 
   1231       * **Label DE**:
   1232         Persönliche Bekanntschaft zwischen Mitglied und Vertragspartei/an
   1233         Vermögenswerten wirtschaftlich berechtigter Person vor
   1234         Geschäftsaufnahme seit mehreren Jahren (min. 2 Jahre)
   1235 
   1236     * ``MEDIUM``
   1237 
   1238       * **Label DE**:
   1239         Vertragspartei/an Vermögenswerten wirtschaftlich berechtigte Person war dem Mitglied vor Geschäftsaufnahme
   1240         nicht seit mehreren Jahren (min. 2 Jahre) persönlich bekannt, aber
   1241         (a) keine Geschäftsaufnahme unter Abwesenden oder
   1242         (b) zumindest Einführung/Vermittlung des Kunden durch eine Vertrauensperson
   1243 
   1244     * ``HIGH``
   1245 
   1246       * **Label DE**:
   1247         Vertragspartei/an Vermögenswerten wirtschaftlich berechtigte Person
   1248         persönlich unbekannt und Geschäftsaufnahme unter Abwesenden
   1249         (Korrespondenzbeziehung) sowie keine Einführung/Vermittlung des Kunden
   1250         durch eine Vertrauensperson
   1251 
   1252 * ``PRODUCT_RISK_LEVEL``
   1253 
   1254   * **Type:** Multi-choice
   1255   * **Label DE:**
   1256     PRODUKTRISIKO: Art der vom Kunden verlangten
   1257     Dienstleistungen und Produkte
   1258 
   1259   * **Choices:**
   1260 
   1261     * ``LOW``
   1262 
   1263       * **Label DE**:
   1264         Einfach zu verstehende, transparente Dienstleistungen
   1265         und Produkte, bei welchen die wirtschaftlichen Hintergründe
   1266         leicht verständlich und überprüfbar sind
   1267 
   1268     * ``MEDIUM``
   1269 
   1270       * **Label DE**:
   1271         Anspruchsvollere Dienstleistung/Produkte, bei welchen die
   1272         wirtschaftlichen Hintergründe nicht ohne Weiteres verständlich
   1273         und überprüfbar sind
   1274 
   1275     * ``HIGH_OFFSHORE``
   1276 
   1277       * **Label DE**:
   1278         Schwergewicht "Offshore – Business" (insbesondere:
   1279         Beziehungen zu Sitzgesellschaften oder zu sonstigen
   1280         Offshore-Konstruktionen)
   1281 
   1282     * ``HIGH_COMPLEX``
   1283 
   1284       * **Label DE**:
   1285         Komplexe Strukturen, insbesondere durch Verwendung
   1286         einer Sitzgesellschaft mit fiduziarischen Aktionären, in einer
   1287         intransparenten Jurisdiktion, ohne nachvollziehbaren
   1288         Grund oder zwecks kurzzeitiger Vermögensplatzierung
   1289 
   1290     * ``HIGH_PASSTHROUGH``
   1291 
   1292       * **Label DE**:
   1293         Die Vertragspartei oder die an Vermögenswerten
   1294         wirtschaftlich berechtigte Person verfügt über eine Vielzahl
   1295         von Konten mit Durchlauftransaktionen (Durchlaufkonti)
   1296 
   1297     * ``HIGH_BACKGROUND``
   1298 
   1299       * **Label DE**:
   1300         Komplexe Dienstleistung/Produkte, bei welchen die
   1301         wirtschaftlichen Hintergründe nur eingeschränkt oder nur
   1302         mit grossem Aufwand verständlich und überprüfbar sind
   1303 
   1304     * ``HIGH_FREQUENT_TMER``
   1305 
   1306       * **Label DE**:
   1307         Häufige Transaktionen m it erhöhten Risiken
   1308 
   1309 * ``RISK_RATIONALE``
   1310 
   1311   * **Type:** Multi-line text
   1312   * **Label DE:** Begründung für abweichende Risikobewertung
   1313 
   1314 * ``RISK_CLASSIFICATION_LEVEL``
   1315 
   1316   * **Type:** Single choice
   1317   * **Label DE:** [Risikoklassifizierung] Geschäftsbeziehung mit erhöhtem Risiko
   1318   * **Choices:**
   1319 
   1320     * ``HIGH_RISK``
   1321 
   1322       * **Label DE:** Ja
   1323 
   1324     * ``NO_HIGH_RISK``
   1325 
   1326       * **Label DE:** Nein
   1327 
   1328 * ``HIGH_RISK_ACCEPTANCE_DATE``
   1329 
   1330   * **Type:** Date
   1331   * **Label DE:**
   1332     Die Zustimmung einer vorgesetzten Person / Stelle oder der Geschäftsführung
   1333     zur Aufnahme einer Geschäftsbeziehung mit erhöhtem Risiko wurde eingeholt
   1334     am:
   1335 
   1336 
   1337 vqf_902_5
   1338 ^^^^^^^^^
   1339 
   1340 **Filled out by:** AML officer only
   1341 
   1342 **Purpose:** Customer profile
   1343 
   1344 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_5-EmptyForm>`__
   1345 
   1346 **Differences from VQF form:**
   1347 
   1348 **Attributes:**
   1349 
   1350 .. code:: none
   1351 
   1352    CUSTOMER_NAME :: Text
   1353    BIZREL_PROFESSION :: Text
   1354    BIZREL_FINANCIAL_CIRCUMSTANCES :: Text
   1355    BIZREL_ORIGIN_NATURE :: Text
   1356    BIZREL_ORIGIN_AMOUNT :: Text
   1357    BIZREL_ORIGIN_CATEGORY :: List[
   1358      'SAVINGS' | 'OWN_BUSINESS' |
   1359      'INHERITANCE' | 'OTHER']
   1360    when BIZREL_ORIGIN_CATEGORY contains 'OTHER' {
   1361      BIZREL_ORIGIN_CATEGORY_OTHER :: Text
   1362    }
   1363    BIZREL_ORIGIN_DETAIL :: Text
   1364    BIZREL_PURPOSE :: Text
   1365    BIZREL_DEVELOPMENT :: Text
   1366    BIZREL_FINANCIAL_VOLUME :: Text
   1367    BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME :: Text
   1368    BIZREL_THIRDPARTY_RELATIONSHIP :: Text
   1369    BIZREL_THIRDPARTY_AMLA_FILES :: Text
   1370    BIZREL_THIRDPARTY_REFERENCES :: Text
   1371    BIZREL_FURTHER_INFO :: Text
   1372 
   1373 * ``CUSTOMER_NAME``
   1374 
   1375   * **Type**: String
   1376   * **Label DE:** Vertragspartei
   1377 
   1378 * ``BIZREL_PROFESSION``
   1379 
   1380   * **Type:** Multi-line text
   1381   * **Label DE:** [Geschäftliche Aktivitäten] Beruf, geschäftliche Aktivitäten
   1382     etc. (frühere, aktuelle, evtl. geplante)
   1383 
   1384 * ``BIZREL_FINANCIAL_CIRCUMSTANCES``
   1385 
   1386   * **Type:** Multi-line text
   1387   * **Label DE:**
   1388     [Finanzielle Verhältnisse]
   1389     Einkommen und Vermögen, Verpflichtungen
   1390     (geschätzt)
   1391 
   1392 * ``BIZREL_ORIGIN_NATURE``
   1393 
   1394   * **Type:** Multi-line text
   1395   * **Label DE:**
   1396     [Herkunft der eingebrachten Vermögenswerte]
   1397     Art, Betrag und Währung der eingebrachten
   1398     Vermögenswerte
   1399 
   1400 * ``BIZREL_ORIGIN_CATEGORY``
   1401 
   1402   * **Type:** Multiple choice
   1403   * **Label DE:**
   1404     [Herkunft der eingebrachten Vermögenswerte]
   1405     Art, Betrag und Währung der eingebrachten
   1406     Vermögenswerte
   1407   * **Choices:**
   1408 
   1409     * ``SAVINGS``
   1410 
   1411       * **Label DE**: Ersparnis
   1412 
   1413     * ``OWN_BUSINESS``
   1414 
   1415       * **Label DE**: Eigener Geschäftsbetrieb
   1416 
   1417     * ``INHERITANCE``
   1418 
   1419       * **Label DE**: Erbschaft
   1420 
   1421     * ``OTHER``
   1422 
   1423       * **Label DE**: Anderes, was?
   1424 
   1425 * ``BIZREL_ORIGIN_CATEGORY_OTHER``
   1426 
   1427   * **Type**: Multi-line text
   1428   * **Label DE**: Andere Herkunft:
   1429 
   1430 * ``BIZREL_ORIGIN_DETAIL``
   1431 
   1432   * **Type**: Multi-line text
   1433   * **Label DE**:
   1434     [Herkunft der eingebrachten Vermögenswerte] Detaillierte Beschreibung der wirtschaftlichen Herkunft der
   1435     in die Geschäftsbeziehung eingebrachten Vermögenswerte
   1436 
   1437 * ``BIZREL_PURPOSE``
   1438 
   1439   * **Type**: Multi-line text
   1440   * **Label DE**:
   1441     Zweck des Geschäfts- bzw. der Geschäftsbeziehung
   1442 
   1443 * ``BIZREL_DEVELOPMENT``
   1444 
   1445   * **Type**: Multi-line text
   1446   * **Label DE**:
   1447     Angaben über die geplante Entwicklung der Geschäftsbeziehung und der
   1448     Vermögenswerte
   1449 
   1450 * ``BIZREL_VOLUME``
   1451 
   1452   * **Type**: Multi-line text
   1453   * **Label DE**:
   1454     Insbesondere bei Kassa-, Geld- und Wertübertragungsgeschäften mit Stammkunden:
   1455     (1) Angaben zum üblichen Geschäftsvolumen
   1456     (2) Angaben zu den Begünstigten (Name, Vorname, Adresse, Bankverbindung)
   1457 
   1458 * ``BIZREL_THIRDPARTY_RELATIONSHIP``
   1459 
   1460   * **Type**: Multi-line text
   1461   * **Label DE**: Beziehung der Vertragspartei zu wirtschaftlich
   1462     berechtigten Personen, Kontrollinhaber, Begünstigten, Bevollmächtigten und weiteren in die
   1463     Geschäftsbeziehung involvierten Personen
   1464 
   1465 
   1466 * ``BIZREL_THIRDPARTY_AMLA_FILES``
   1467 
   1468   * **Type**: Multi-line text
   1469   * **Label DE:** Verbindungen zu anderen GwG-Files
   1470 
   1471 * ``BIZREL_THIRDPARTY_REFERENCES``
   1472 
   1473   * **Type**: Multi-line text
   1474   * **Label DE:** Introducer / Vermittler / Referenzen
   1475 
   1476 * ``BIZREL_FURTHER_INFO``
   1477 
   1478   * **Type**: Multi-line text
   1479   * **Label DE:**
   1480     Sonstige aus Sicht des Mitglieds
   1481     relevante Informationen
   1482 
   1483 
   1484 
   1485 vqf_902_9_customer
   1486 ^^^^^^^^^^^^^^^^^^
   1487 
   1488 **Filled out by:** Customer only.
   1489 
   1490 **Purpose:** Establish the identity of the beneficial owner.
   1491 
   1492 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_9_customer-EmptyForm>`__
   1493 
   1494 **Differences from VQF form 902.9:**
   1495 
   1496 * The VQF form can only be filled out by the customer. We also
   1497   allow the AML officer to fill out this form, but then require
   1498   an attached version signed by the customer.
   1499 
   1500 **Attributes:**
   1501 
   1502 .. code:: none
   1503 
   1504    info DECL_BENEFICIAL_OWNER
   1505    IDENTITY_CONTRACTING_PARTNER :: Text
   1506    IDENTITY_LIST[].FULL_NAME :: Text
   1507    IDENTITY_LIST[].DATE_OF_BIRTH :: Date
   1508    IDENTITY_LIST[].DOMICILE_ADDRESS :: AddressString
   1509    IDENTITY_LIST[].NATIONALITY :: CountryCodeString
   1510    info NOTICE_WRONG_DECLARATION
   1511    SIGNATURE :: Text
   1512    SIGN_DATE :: Date
   1513    info NOTICE_CHANGES
   1514 
   1515 * ``IDENTITY_CONTRACTING_PARTNER``
   1516 
   1517   * **Type:** Multi-line text
   1518   * **Label EN:** Contracting party (name and address)
   1519   * **Label DE:** Vertragspartner (Name und Adresse)
   1520 
   1521 * ``IDENTITY_LIST``
   1522 
   1523   * **Description:** Identities of controlling persons.
   1524 
   1525 * ``IDENTITY_LIST[].FULL_NAME``
   1526 
   1527   * **Type:** Single line text
   1528   * **Label DE:** Name, Vorname
   1529 
   1530 * ``IDENTITY_LIST[].DATE_OF_BIRTH``
   1531 
   1532   * **Type:** Date entry
   1533   * **Label DE:** Geburtsdatum
   1534 
   1535 * ``IDENTITY_LIST[].NATIONALITY``
   1536 
   1537   * **Type:** Country code
   1538   * **Label DE:** Nationalität
   1539 
   1540 * ``IDENTITY_LIST[].DOMICILE_ADDRESS``
   1541 
   1542   * **Type:** Multi-line text
   1543   * **Label DE:** Effektive Wohnsitzadresse
   1544 
   1545 * ``SIGNATURE``
   1546 
   1547   * **Type:** Single-line text
   1548   * **Label EN:** Signed by:
   1549   * **Label DE:** Unterzeichnet von:
   1550 
   1551 * ``SIGN_DATE``
   1552 
   1553   * **Type**: Single-line text (pre-filled with current date)
   1554 
   1555 
   1556 **Strings:**
   1557 
   1558 * ``DECL_BENEFICIAL_OWNER``
   1559 
   1560   * **DE:**
   1561     Der Vertragspartner erklärt hiermit, dass die nachfolgend aufgeführte(n) Person(en) an den
   1562     in die Geschäftsbeziehung eingebrachten Vermögenswerten wirtschaftlich berechtigt
   1563     ist/sind. Ist der Vertragspartner selber allein an diesen Vermögenswerten wirtschaftlich
   1564     berechtigt, so sind nachstehend seine Personalien festzuhalten:
   1565 
   1566 * ``NOTICE_WRONG_DECLARATION``:
   1567 
   1568   * **DE**: Die vorsätzliche Angabe falscher Informationen in diesem Formular ist eine strafbare
   1569     Handlung (Urkundenfälschung gemäss Artikel 251 des Schweizerischen Strafgesetzbuchs).
   1570 
   1571 * ``NOTICE_CHANGES``
   1572 
   1573   * **DE:** Der Vertragspartner verpflichtet sich, Änderungen jeweils unaufgefordert mitzuteilen.
   1574 
   1575 **Others:**
   1576 
   1577 When filled out by the customer, the form **must** contain a notice that
   1578 filling this form with incorrect information is a punishable offence (document
   1579 forgery) according to Swiss law.
   1580 
   1581 vqf_902_9_officer
   1582 ^^^^^^^^^^^^^^^^^
   1583 
   1584 **Filled out by:** AML Officer only.
   1585 
   1586 **Purpose:** Establish the identity of the beneficial owner.
   1587 
   1588 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-VQF_902_9_officer-EmptyForm>`__
   1589 
   1590 **Differences from VQF form 902.9:**
   1591 
   1592 * We also allow the AML officer to fill out this form, but then require an
   1593   attached version signed by the customer.
   1594 
   1595 **Attributes:**
   1596 
   1597 .. code:: none
   1598 
   1599    info DECL_BENEFICIAL_OWNER
   1600    IDENTITY_CONTRACTING_PARTNER :: String
   1601    IDENTITY_LIST[].FULL_NAME :: String
   1602    IDENTITY_LIST[].DATE_OF_BIRTH :: Date
   1603    IDENTITY_LIST[].DOMICILE_ADDRESS :: AddressString
   1604    IDENTITY_LIST[].NATIONALITY :: CountryCodeString
   1605    info NOTICE_WRONG_DECLARATION
   1606    ATTACHMENT_SIGNED_DOCUMENT :: File
   1607    info NOTICE_CHANGES
   1608 
   1609 * ``IDENTITY_CONTRACTING_PARTNER``
   1610 
   1611   * **Type:** Multi-line text
   1612   * **Label EN:** Contracting party (name and address)
   1613   * **Label DE:** Vertragspartner (Name und Adresse)
   1614 
   1615 * ``IDENTITY_LIST``
   1616 
   1617   * **Description:** Identities of controlling persons.
   1618 
   1619 * ``IDENTITY_LIST[].FULL_NAME``
   1620 
   1621   * **Type:** Single line text
   1622   * **Label DE:** Name, Vorname
   1623 
   1624 * ``IDENTITY_LIST[].DATE_OF_BIRTH``
   1625 
   1626   * **Type:** Date entry
   1627   * **Label DE:** Geburtsdatum
   1628 
   1629 * ``IDENTITY_LIST[].NATIONALITY``
   1630 
   1631   * **Type:** Country code
   1632   * **Label DE:** Nationalität
   1633 
   1634 * ``IDENTITY_LIST[].DOMICILE_ADDRESS``
   1635 
   1636   * **Type:** Multi-line text
   1637   * **Label DE:** Effektive Wohnsitzadresse
   1638 
   1639 * ``ATTACHMENT_SIGNED_DOCUMENT``
   1640 
   1641   * **Label DE:** Scan des vom Kunden unterschriebenen Formulars.
   1642 
   1643 **Strings:**
   1644 
   1645 * ``DECL_BENEFICIAL_OWNER``
   1646 
   1647   * **DE:**
   1648     Der Vertragspartner erklärt hiermit, dass die nachfolgend aufgeführte(n) Person(en) an den
   1649     in die Geschäftsbeziehung eingebrachten Vermögenswerten wirtschaftlich berechtigt
   1650     ist/sind. Ist der Vertragspartner selber allein an diesen Vermögenswerten wirtschaftlich
   1651     berechtigt, so sind nachstehend seine Personalien festzuhalten:
   1652 
   1653 * ``NOTICE_WRONG_DECLARATION``:
   1654 
   1655   * **DE**: Die vorsätzliche Angabe falscher Informationen in diesem Formular ist eine strafbare
   1656     Handlung (Urkundenfälschung gemäss Artikel 251 des Schweizerischen Strafgesetzbuchs).
   1657 
   1658 * ``NOTICE_CHANGES``
   1659 
   1660   * **DE:** Der Vertragspartner verpflichtet sich, Änderungen jeweils unaufgefordert mitzuteilen.
   1661 
   1662 **Others:**
   1663 
   1664 When filled out by the customer, the form **must** contain a notice that
   1665 filling this form with incorrect information is a punishable offence (document
   1666 forgery) according to Swiss law.
   1667 
   1668 
   1669 vqf_902_11_customer
   1670 ^^^^^^^^^^^^^^^^^^^
   1671 
   1672 **Filled out by:** Customer only.
   1673 
   1674 **Purpose:** Determine the controlling person of an operational legal
   1675 entity or partnership.
   1676 
   1677 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_11_customer-EmptyForm>`__
   1678 
   1679 **Differences from VQF form 902.11:**
   1680 
   1681 * The VQF form can only be filled out by the customer.
   1682   When the officer fills out the VQF 902.11, we use our ``vqf_902_11_officer``.
   1683 
   1684 **Attributes:**
   1685 
   1686 .. code:: none
   1687 
   1688    title TITLE_VQF_902_11_CUSTOMER
   1689    info INFO_VQF_902_11_CUSTOMER
   1690    IDENTITY_CONTRACTING_PARTNER :: Text
   1691    CONTROL_REASON :: 'HAS_25_MORE_RIGHTS' | 'OTHER_WAY' | 'DIRECTOR'
   1692    IDENTITY_LIST[].FULL_NAME :: Text
   1693    IDENTITY_LIST[].DOMICILE_ADDRESS :: Text
   1694    THIRD_PARTY_OWNERSHIP :: Boolean
   1695    info NOTICE_WRONG_DECLARATION
   1696    SIGNATURE :: String
   1697    SIGN_DATE :: Date
   1698 
   1699 * ``CONTROL_REASON``
   1700 
   1701   * **Type:** Single choice
   1702   * **Label DE:** Der Vertragspartner erklärt hiermit, (das Zutreffende ankreuzen) ...
   1703   * **Choices:**
   1704 
   1705     * ``HAS_25_MORE_RIGHTS``
   1706 
   1707       * **Label DE:**
   1708         ... dass
   1709         die nachfolgend aufgeführte(n) Person(en) am Vertragspartner Anteile
   1710         (Kapitals- oder Stimmrechtsanteile) von 25 % oder mehr halten
   1711 
   1712     * ``OTHER_WAY``
   1713 
   1714       * **Label DE:**
   1715         ... falls die Kapitals- oder Stimmrechtsanteile nicht festgestellt werden können oder
   1716         falls keine Kapitals- oder Stimmrechtsanteile von 25% oder mehr bestehen, erklärt
   1717         der Vertragspartner hiermit, dass die nachträglich aufgeführte Person(en) auf
   1718         andere Weise die Kontrolle über den Vertragspartner ausübt/ausüben;
   1719 
   1720     * ``DIRECTOR``
   1721 
   1722       * **Label DE:**
   1723 
   1724         ... falls auch diese Person(en) nicht festgestellt werden kann/können, oder diese
   1725         Person(en) nicht besteht/bestehen, erklärt der Vertragspartner, dass die
   1726         nachfolgend aufgeführte(n) Person(en) die Geschäftsführung ausüben.
   1727 
   1728 
   1729 * ``IDENTITY_LIST[].FULL_NAME``
   1730 
   1731   * **Type:** Single line text
   1732   * **Label DE:** Name, Vorname
   1733 
   1734 * ``IDENTITY_LIST[].DOMICILE``
   1735 
   1736   * **Type:** Multi-line text
   1737   * **Label DE:** Effektive Wohnsitzadresse
   1738 
   1739 * ``THIRD_PARTY_OWNERSHIP``
   1740 
   1741   * **Type:** Choice yes/no
   1742 
   1743     * **Label DE:**
   1744       Ist eine Drittperson an den auf dem Konto/Depot liegenden Vermögenswerten wirtschaftlich berechtigt?
   1745 
   1746   * **Choices:**
   1747 
   1748     * false
   1749 
   1750       * **Label DE**: Nein
   1751 
   1752     * true
   1753 
   1754       * **Label DE**: Ja. => Die entsprechenden Angaben zur wirtschaftlichen Berechtigung sind durch
   1755         das Ausfüllen eines separaten Formulars VQF Dok Nr. 902.9 zu erheben.
   1756 
   1757 
   1758 * ``SIGNATURE``
   1759 
   1760   * **Type:** Single-line text
   1761   * **Label EN:** Signed by:
   1762   * **Label DE:** Unterzeichnet von:
   1763 
   1764 * ``SIGN_DATE``
   1765 
   1766   * **Type**: Single-line text (pre-filled with current date)
   1767 
   1768 **Strings**
   1769 
   1770 * ``NOTICE_WRONG_DECLARATION``:
   1771 
   1772   * **DE**: Die vorsätzliche Angabe falscher Informationen in diesem Formular ist eine strafbare
   1773     Hand lung (Urkundenfälschung gemäss Artikel 251 des Schweizerischen Strafgesetzbuchs).
   1774 
   1775 * ``TITLE_VQF_902_11_CUSTOMER``
   1776 
   1777   * **DE:**
   1778     Feststellung des Kontrollinhabers an nicht börsenkotierten,
   1779     operativ tätigen juristischen Personen und
   1780     Personengesellschaften (K)
   1781 
   1782 * ``INFO_VQF_902_11_CUSTOMER``
   1783 
   1784   * **DE:**
   1785     (bei operativ tätigen juristischen Personen und Personengesellschaf ten als Vertragspartner
   1786     sowie sinngemäss bei operativ tätigen juristischen Personen und Personengesellschaf ten als
   1787     wirtschaf tlich Berechtigte)
   1788 
   1789 **Measure after submission from the customer**: If ``THIRD_PARTY_OWNERSHIP`` is
   1790 true, ``vqf_902_9_customer`` needs to be filled out.
   1791 
   1792 **Others:**
   1793 
   1794 When filled out by the customer, the form **must** contain a notice that
   1795 filling this form with incorrect information is a punishable offence (document
   1796 forgery) according to Swiss law.
   1797 
   1798 vqf_902_11_officer
   1799 ^^^^^^^^^^^^^^^^^^
   1800 
   1801 **Filled out by:** AML officer only.
   1802 
   1803 **Purpose:** Determine the controlling person of an operational legal
   1804 entity or partnership.
   1805 
   1806 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_11_officer-EmptyForm>`__
   1807 
   1808 **Differences from VQF form 902.11:**
   1809 
   1810 * The VQF form can only be filled out by the AML officer.
   1811   When the customer directly fills out the VQF 902.11, we use our ``vqf_902_11_customer``.
   1812 
   1813 **Attributes:**
   1814 
   1815 .. code:: none
   1816 
   1817    title TITLE_VQF_902_11_OFFICER
   1818    info INFO_VQF_902_11_OFFICER
   1819    IDENTITY_CONTRACTING_PARTNER :: Text
   1820    CONTROL_REASON :: 'HAS_25_MORE_RIGHTS' | 'OTHER_WAY' | 'DIRECTOR'
   1821    IDENTITY_LIST[].FULL_NAME :: Text
   1822    IDENTITY_LIST[].DOMICILE :: Text
   1823    THIRD_PARTY_OWNERSHIP :: Boolean
   1824    ATTACHMENT_SIGNED_DOCUMENT :: File
   1825 
   1826 * ``IDENTITY_CONTRACTING_PARTNER``
   1827 
   1828   * **Type:** Multi-line text
   1829   * **Label EN:** Contracting party (name and address)
   1830   * **Label DE:** Vertragspartner (Name und Adresse)
   1831 
   1832 * ``CONTROL_REASON``
   1833 
   1834   * **Type:** Single choice
   1835   * **Label DE:** Es wird erklärt, (das Zutreffende ankreuzen) ...
   1836   * **Choices:**
   1837 
   1838     * ``HAS_25_MORE_RIGHTS``
   1839 
   1840       * **Label DE:**
   1841         ... dass
   1842         die nachfolgend aufgeführte(n) Person(en) am Vertragspartner Anteile
   1843         (Kapitals- oder Stimmrechtsanteile) von 25 % oder mehr halten
   1844 
   1845     * ``OTHER_WAY``
   1846 
   1847       * **Label DE:**
   1848         ... falls die Kapitals- oder Stimmrechtsanteile nicht festgestellt werden können oder
   1849         falls keine Kapitals- oder Stimmrechtsanteile von 25% oder mehr bestehen, erklärt
   1850         der Vertragspartner hiermit, dass die nachträglich aufgeführte Person(en) auf
   1851         andere Weise die Kontrolle über den Vertragspartner ausübt/ausüben;
   1852 
   1853     * ``DIRECTOR``
   1854 
   1855       * **Label DE:**
   1856 
   1857         ... falls auch diese Person(en) nicht festgestellt werden kann/können, oder diese
   1858         Person(en) nicht besteht/bestehen, erklärt der Vertragspartner, dass die
   1859         nachfolgend aufgeführte(n) Person(en) die Geschäftsführung ausüben.
   1860 
   1861 
   1862 * ``IDENTITY_LIST[].FULL_NAME``
   1863 
   1864   * **Type:** Single line text
   1865   * **Label DE:** Name, Vorname
   1866 
   1867 * ``IDENTITY_LIST[].DOMICILE``
   1868 
   1869   * **Type:** Multi-line text
   1870   * **Label DE:** Effektive Wohnsitzadresse
   1871 
   1872 * ``THIRD_PARTY_OWNERSHIP``
   1873 
   1874   * **Type:** Choice yes/no
   1875 
   1876     * **Label DE:**
   1877       Ist eine Drittperson an den auf dem Konto/Depot liegenden Vermögenswerten wirtschaftlich berechtigt?
   1878 
   1879   * **Choices:**
   1880 
   1881     * false
   1882 
   1883       * **Label DE**: Nein
   1884 
   1885     * true
   1886 
   1887       * **Label DE**: Ja. => Die entsprechenden Angaben zur wirtschaftlichen Berechtigung sind durch
   1888         das Ausfüllen eines separaten Formulars VQF Dok Nr. 902.9 zu erheben.
   1889 
   1890 
   1891 * ``ATTACHMENT_SIGNED_DOCUMENT``
   1892 
   1893   * **Label DE:** Scan des vom Kunden unterschriebenen Formulars.
   1894 
   1895 **Strings**
   1896 
   1897 * ``TITLE_VQF_902_11_OFFICER``
   1898 
   1899   * **DE:**
   1900     Feststellung des Kontrollinhabers an nicht börsenkotierten,
   1901     operativ tätigen juristischen Personen und
   1902     Personengesellschaften (K)
   1903 
   1904 * ``INFO_VQF_902_11_OFFICER``
   1905 
   1906   * **DE:**
   1907     (bei operativ tätigen juristischen Personen und Personengesellschaf ten als Vertragspartner
   1908     sowie sinngemäss bei operativ tätigen juristischen Personen und Personengesellschaf ten als
   1909     wirtschaf tlich Berechtigte)
   1910 
   1911 
   1912 vqf_902_12
   1913 ^^^^^^^^^^
   1914 
   1915 **Purpose:** Declaration for foundations.
   1916 
   1917 **This form will not be supported for the TOPS MVP. Foundations will either
   1918 not be accepted as customers or the AML officer will need to submit
   1919 a PDF form.**
   1920 
   1921 vqf_902_13
   1922 ^^^^^^^^^^
   1923 
   1924 **Purpose:** Declaration for trusts.
   1925 
   1926 **This form will not be supported for the TOPS MVP. Trusts will either
   1927 not be accepted as customers or the AML officer will need to submit
   1928 a PDF form.**
   1929 
   1930 
   1931 vqf_902_14
   1932 ^^^^^^^^^^
   1933 
   1934 **Filled out by:** AML officer only.
   1935 
   1936 **Purpose**: Special clarifications regarding the customer. This form is filled
   1937 out by at the initiative of the AML officer or in response to an alert.
   1938 
   1939 **Form Demo:** `Link <https://www.taler.net/files/storybook-forms/stories.html#forms-vqf_902_14-EmptyForm>`__
   1940 
   1941 **Attributes:**
   1942 
   1943 .. code:: none
   1944 
   1945    CUSTOMER_NAME :: String
   1946    INCRISK_REASON :: Text
   1947    INCRISK_MEANS :: 'GATHERING' | 'CONSULTATION' | 'ENQUIRIES' | 'OTHER'
   1948    when INCRISK_MEANS = 'OTHER' {
   1949      INCRISK_MEANS_OTHER :: Text
   1950    }
   1951    INCRISK_SUMMARY :: Text
   1952    INCRISK_DOCUMENTS :: Text
   1953    INCRISK_RESULT :: (
   1954      'NO_SUSPICION' | 'REASONABLE_SUSPICION' |
   1955      'SIMPLE_SUSPICION' | 'OTHER')
   1956    when INCRISK_RESULT = 'OTHER' {
   1957      INCRISK_RESULT_OTHER :: Text
   1958    }
   1959 
   1960 * ``CUSTOMER_NAME``
   1961 
   1962   * **Type**: String
   1963   * **Label DE:** Vertragspartei
   1964 
   1965 * ``INCRISK_REASON``
   1966 
   1967   * **Type:** Free-form, multi-line text.
   1968   * **Label DE:** [Grund für die besonderen Abklärungen]
   1969     Beschreibung der Umstände/Transaktionen, die zu
   1970     den besonderen Abklärungen geführt haben
   1971 
   1972 * ``INCRISK_MEANS``
   1973 
   1974   * **Type**: Single choice
   1975   * **Choices**:
   1976 
   1977     * ``GATHERING``
   1978 
   1979       * **Label DE:** Einholen Auskunft von Vertragspartei, an Vermögenswerten
   1980         wirtschaftlich berechtigten Person, Kontrollinhaber
   1981 
   1982     * ``CONSULTATION``
   1983 
   1984       * **Label DE:** Konsultation öffentlicher Quellen und Datenbanken
   1985 
   1986     * ``ENQUIRIES``
   1987 
   1988       * **Label DE**: Erkundigung bei vertrauenswürden Dritten (z.B. Depotbank)
   1989 
   1990     * ``OTHER``
   1991 
   1992       * **Label DE**: Andere, welche?
   1993 
   1994   * **Label DE:** Verwendete Mittel zur Abklärung
   1995 
   1996 * ``INCRISK_MEANS_OTHER``
   1997 
   1998   * **Type:** Free-form, multi-line text
   1999   * **When:**  ``INCRISK_MEANS = 'OTHER'``
   2000   * **Label DE:** Erklärung zu anderem Mittel
   2001 
   2002 * ``INCRISK_SUMMARY``
   2003 
   2004   * **Type:** Fee-form, multi-line text.
   2005   * **Label DE:** Zusammenfassung und Plausibilisierung der eingeholten Informationen
   2006     (=> Die Ergebnisse der Abklärungen sind zu dokumentieren und auf ihre Plausibilisierung zu überprüfen.)
   2007 
   2008 * ``INCRISK_DOCUMENTS``
   2009 
   2010   * **Type:** Fee-form, multi-line text.
   2011   * **Label DE:** Eingeholte/eingesehene Unterlagen
   2012 
   2013 * ``INCRISK_RESULT``
   2014 
   2015   * **Type:** Single Choice
   2016   * **Choices:**
   2017 
   2018     * ``NO_SUSPICION``
   2019 
   2020       * **Label DE**: Sachverhalt konnte plausibilisiert werden, kein
   2021         begründeter Verdacht nach Art. 9 GwG (evtl. Anpassung Kun- denprofil (VQF
   2022         Dok. Nr. 902.5) und/oder Risikoprofil (VQF Dok. Nr. 902.4))
   2023 
   2024     * ``REASONABLE_SUSPICION``
   2025 
   2026       * **Label DE**: Begründeter Verdacht nach Art. 9 GwG, Meldepflicht an MROS
   2027 
   2028     * ``SIMPLE_SUSPICION``
   2029 
   2030       * **Label DE:** Einfacher Verdacht nach Art. 305ter Abs. 2 StGB, Melderecht an MROS
   2031 
   2032     * ``OTHER``
   2033 
   2034       * **Label DE:** Anderes, was?
   2035 
   2036 * ``INCRISK_RESULT_OTHER``
   2037 
   2038   * **Type:** Free-form, multi-line text
   2039   * **When:**  ``INCRISK_RESULT = 'OTHER'``
   2040   * **Label DE:** Erklärung zu anderem Ergebnis
   2041 
   2042 
   2043 vqf_902_15
   2044 ^^^^^^^^^^
   2045 
   2046 **Purpose:** Declaration for life insurance companies.
   2047 
   2048 **This form will not be supported for the TOPS MVP. Life insurance companies
   2049 will either not be accepted as customers or the AML officer will need to submit
   2050 a PDF form**
   2051 
   2052 
   2053 Derived Properties and Events (AML Officer)
   2054 -------------------------------------------
   2055 
   2056 When the AML officer submits a form, the AML SPA will derive some pre-defined
   2057 properties and events from the filled-in form attributes. The AML Officer can change
   2058 (override) these derived properties and events.
   2059 
   2060 * Assumptions:
   2061 
   2062  * Properties are always calculated only based on new attributes and the previous properties. They are never calculated
   2063    from older attribute collections or the current rules.
   2064  * The AML officer can always override derived properties or events.
   2065  * In the future, we might derive *rules* from properties, but we don't do that right now.
   2066 
   2067 The derivation is defined in pseudo-code.  The following special
   2068 variables/functions are available:
   2069 
   2070 * ``oldProps``: Previous properties of the account (before the decision)
   2071 * ``newProps``: New properties of the account (i.e. the derived properties)
   2072 * ``form``: Form attributes of the AML form submitted by the AML officer
   2073 * ``emit(evt)``: Function that marks an event as emitted
   2074 * ``propBecameTrue(prop)``: Helper predicate that returns true iff a property was false or undefine before (in ``oldProps``)
   2075   and is now true (in ``newProps``).
   2076 * ``propBecameFalse(prop)``: Helper predicate that returns true iff a property was true before (in ``oldProps``)
   2077   and is now false or undefined (in ``newProps``).
   2078 
   2079 The event-rule tag is included to reference the implementation and testing functions in code.
   2080 
   2081 vqf_902_1_officer
   2082 ^^^^^^^^^^^^^^^^^
   2083 
   2084 Properties:
   2085 
   2086 .. code:: javascript
   2087 
   2088    newProps.ACCOUNT_OPEN = true;
   2089 
   2090 Events:
   2091 
   2092 .. code:: javascript
   2093 
   2094    if (propBecameTrue(ACCOUNT_OPEN)) {
   2095      emit(INCR_ACCOUNT_OPEN); // event-rule 1
   2096 
   2097      const isPep = (
   2098        newProps.PEP_FOREIGN ||
   2099        newProps.PEP_DOMESTIC ||
   2100        newProps.PEP_INTERNATIONAL_ORGANIZATION
   2101      );
   2102 
   2103      if (isPep) {
   2104        emit(INCR_PEP); // event-rule 2
   2105      }
   2106 
   2107      if (newProps.PEP_FOREIGN) {
   2108        emit(INCR_PEP_FOREIGN); // event-rule 3
   2109      }
   2110 
   2111      if (newProps.PEP_DOMESTIC) {
   2112        emit(INCR_PEP_DOMESTIC); // event-rule 4
   2113      }
   2114 
   2115      if (newProps.PEP_INTERNATIONAL_ORGANIZATION) {
   2116        emit(INCR_PEP_INTERNATIONAL_ORGANIZATION); // event-rule 5
   2117      }
   2118 
   2119      if (newProps.HIGH_RISK_CUSTOMER) {
   2120        emit(INCR_HIGH_RISK_CUSTOMER); // event-rule 6
   2121      }
   2122 
   2123      if (newProps.HIGH_RISK_COUNTRY) {
   2124        emit(INCR_HIGH_RISK_COUNTRY); // event-rule 7
   2125      }
   2126    }
   2127 
   2128 
   2129 vqf_902_4
   2130 ^^^^^^^^^
   2131 
   2132 Properties:
   2133 
   2134 .. code:: javascript
   2135 
   2136    newProps.PEP_FOREIGN = form.PEP_FOREIGN;
   2137    newProps.PEP_DOMESTIC = form.PEP_DOMESTIC;
   2138    newProps.PEP_INTERNATIONAL_ORGANIZATION = form.PEP_INTERNATIONAL_ORGANIZATION;
   2139    newProps.HIGH_RISK_CUSTOMER = form.RISK_CLASSIFICATION_LEVEL == "HIGH_RISK";
   2140    newProps.HIGH_RISK_COUNTRY = form.COUNTRY_RISK_NATIONALITY_LEVEL == "HIGH";
   2141 
   2142 Events:
   2143 
   2144 .. code:: javascript
   2145 
   2146    if (oldProps.ACCOUNT_OPEN) {
   2147      if (propBecameTrue(PEP_FOREIGN) {
   2148        emit(INCR_PEP_FOREIGN); // event-rule 8
   2149      }
   2150      if (propBecameTrue(PEP_INTERNATIONAL_ORGANIZATION) {
   2151        emit(INCR_PEP_INTERNATIONAL_ORGANIZATION); // event-rule 9
   2152      }
   2153      if (propBecameTrue(PEP_DOMESTIC) {
   2154        emit(INCR_PEP_DOMESTIC); // event-rule 10
   2155      }
   2156      if (propBecameFalse(PEP_FOREIGN) {
   2157        emit(DECR_PEP_FOREIGN); // event-rule 11
   2158      }
   2159      if (propBecameFalse(PEP_INTERNATIONAL_ORGANIZATION) {
   2160        emit(DECR_PEP_INTERNATIONAL_ORGANIZATION); // event-rule 12
   2161      }
   2162      if (propBecameFalse(PEP_DOMESTIC) {
   2163        emit(DECR_PEP_DOMESTIC); // event-rule 13
   2164      }
   2165      const wasPep = (
   2166        oldProps.PEP_DOMESTIC ||
   2167        oldProps.PEP_FOREIGN ||
   2168        oldProps.PEP_INTERNATIONAL_ORGANIZATION);
   2169      const isPep = (
   2170        newProps.PEP_DOMESTIC ||
   2171        newProps.PEP_FOREIGN ||
   2172        newProps.PEP_INTERNATIONAL_ORGANIZATION);
   2173      if (wasPep && !isPep) {
   2174        emit(DECR_PEP); // event-rule 14
   2175      }
   2176      if (!wasPep & isPep) {
   2177        emit(INCR_PEP); // event-rule 15
   2178      }
   2179      if (propBecameTrue(HIGH_RISK_COUNTRY)) {
   2180        emit(INCR_HIGH_RISK_COUNTRY); // event-rule 16
   2181      }
   2182      if (propBecameFalse(HIGH_RISK_COUNTRY)) {
   2183        emit(DECR_HIGH_RISK_COUNTRY); // event-rule 17
   2184      }
   2185      if (propBecameTrue(HIGH_RISK_CUSTOMER)) {
   2186        emit(INCR_HIGH_RISK_CUSTOMER); // event-rule 18
   2187      }
   2188      if (propBecameFalse(HIGH_RISK_CUSTOMER)) {
   2189        emit(DECR_HIGH_RISK_CUSTOMER); // event-rule 19
   2190      }
   2191    }
   2192 
   2193 
   2194 vqf_902_14
   2195 ^^^^^^^^^^
   2196 
   2197 Properties:
   2198 
   2199 .. code:: javascript
   2200 
   2201 
   2202    if (INCRISK_RESULT == "SIMPLE_SUSPICION") {
   2203      newProps.INVESTIGATION_STATE = "REPORTED_SUSPICION_SIMPLE";
   2204    } else if (INCRISK_RESULT == "REASONABLE_SUSPICION") {
   2205      newProps.INVESTIGATION_STATE = "REPORTED_SUSPICION_SUBSTANTIATED";
   2206    } else if (INCRISK_RESULT == "NO_SUSPICION") {
   2207      newProps.INVESTIGATION_STATE = "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION";
   2208    } else if (INCRISK_RESULT == "OTHER") {
   2209      // FIXME-#9677: would be nice if we instead could set the property to "undefined"/null
   2210      // and *force* the AML officer to manually set it.
   2211      // Alternatively, we should probably default to "INVESTIGATION_PENDING". -CG
   2212      newProps.INVESTIGATION_STATE = "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION";
   2213    } else {
   2214      not_reached();
   2215    }
   2216 
   2217 Events:
   2218 
   2219 .. code:: javascript
   2220 
   2221    if (oldProps.INVESTIGATION_STATE == "NONE" ||
   2222        oldProps.INVESTIGATION_STATE == "INVESTIGATION_PENDING" ||
   2223        oldProps.INVESTIGATION_STATE == null) {
   2224      if (newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SIMPLE" ||
   2225          newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SUBSTANTIATED" ||
   2226          newProps.INVESTIGATION_STATE == "INVESTIGATION_COMPLETED_WITHOUT_SUSPICION") {
   2227        emit(INCR_INVESTIGATION_CONCLUDED); // event-rule 20
   2228      }
   2229      if (newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SUBSTANTIATED") {
   2230        // FIXME-//9676: if possible, we should force the AML officer to tick
   2231        // an extra check-box "I submitted this case to MROS". No need to
   2232        // actually do anything here server-side, it's more an explicit
   2233        // acknowledgement/reminder to make really sure this event is only
   2234        // emitted if the report was files.
   2235        emit(MROS_REPORTED_SUSPICION_SUBSTANTIATED); // event-rule 21
   2236      }
   2237      if (newProps.INVESTIGATION_STATE == "REPORTED_SUSPICION_SIMPLE") {
   2238        // FIXME-//9676: if possible, we should force the AML officer to tick
   2239        // an extra check-box "I submitted this case to MROS". No need to
   2240        // actually do anything here server-side, it's more an explicit
   2241        // acknowledgement/reminder to make really sure this event is only
   2242        // emitted if the report was files.
   2243        emit(MROS_REPORTED_SUSPICION_SIMPLE); // event-rule 22
   2244      }
   2245    }
   2246 
   2247 Derived Properties and Events (Customer/KYC forms)
   2248 --------------------------------------------------
   2249 
   2250 When the customer submits an AML form, the AML program that checks the
   2251 form can also derive properties and events.
   2252 
   2253 Examples for this are:
   2254 
   2255 * When the customer selects a correspondence language, a property could be set to
   2256   store the correspondence language.
   2257 * When the customer fills out a form that requires the AML officer to
   2258   check the form, a property could be used to indicate which manual verification
   2259   from the AML officer is still pending.
   2260 
   2261 **TBD: Spec this fully**
   2262 
   2263 
   2264 Reporting
   2265 ---------
   2266 
   2267 GwG File List
   2268 ^^^^^^^^^^^^^
   2269 
   2270 VQF requires a list of all open and closed GwG files.
   2271 To satisfy this requirement, we need a *table* of all AML accounts
   2272 with the following colums (see VQF 902.8):
   2273 
   2274 * File number (should take some row ID)
   2275 * Customer (internal designation is also okay); use payto:// data
   2276 * Comments
   2277 * Increased risk business relationship (yes/no)
   2278 * Acquisition date
   2279 * Exit date
   2280 
   2281 Event Reporting (VQF)
   2282 ^^^^^^^^^^^^^^^^^^^^^
   2283 
   2284 The VQF self-declaration contains the following questions that we need
   2285 to answer with statistics derived via events:
   2286 
   2287 .. code:: none
   2288 
   2289   Original German Text:
   2290 
   2291   3. Anzahl der betreuten GwG-Files
   2292 
   2293   3.1. GwG-Files für dauernde Geschäftsbeziehungen (gemäss Art. 7 lit. b SRO-Reglement)
   2294 
   2295   3.1.1. Anzahl der am 01.01.20XX betreuten GwG-Files
   2296 
   2297   3.1.2. Zwischen 01.01.20XX und 31.12.20XX hinzugekommene GwG-Files
   2298 
   2299   3.1.3. Anzahl der während des Jahres 20XX betreuten GwG-Files
   2300   (Relevante Zahl für die jährliche GwG-File Gebühr / Jahresrechnung)
   2301 
   2302   3.1.4. Zwischen 01.01.20XX und 31.12.20XX beendigte GwG-Files
   2303 
   2304   3.1.5. Anzahl der am 31.12.20XX betreuten GwG-Files (gerechnet ab dem 01.01.20XX)
   2305 
   2306   4. Angaben zu Kundenstruktur, Produkten, Betriebsstruktur
   2307 
   2308   4.1. Führten Sie im Jahre 2024 Geschäftsbeziehungen mit erhöhtem Risiko (Art. 58 SRO-Reglement)?
   2309 
   2310   4.2. Falls bei Ziff. 4.1 mit "Ja" geantwortet, bei wie vielen davon handelt es
   2311   sich um politisch exponierte Personen (PEP)? (nummerische Anzahl)
   2312 
   2313   4.3. Wie viele von den genannten PEP sind ausländische PEP?
   2314   (nummerische Anzahl)
   2315 
   2316   4.4. Falls bei Ziff. 4.1 mit "Ja" geantwortet, wie viele weitere
   2317   (zusätzlich zu den in Ziff. 4.2 / PEP genannten)
   2318   Geschäftsbeziehungen mit erhöhten Risiken führten Sie?
   2319   (nummerische Anzahl)
   2320 
   2321   4.5. Total der Geschäftsbeziehungen mit erhöhtem Risiko
   2322 
   2323   4.6. Führten Sie im Jahre 2024 Geschäftsbeziehungen mit
   2324   Vertragspartnern oder wirtschaftlich berechtigten Personen mit
   2325   Nationalität oder Domizil/Sitz in einem Land mit Risikostufe
   2326   "High" gemäss VQF-Länderliste (VQF Dok. Nr. 902.4.1)?
   2327 
   2328   5. Meldungen an die Meldestelle (MROS)
   2329 
   2330   5.1. Meldepflicht (Art. 9 Abs. 1 GwG) (nummerische Anzahl)
   2331   5.2. Melderecht (Art. 305ter Abs. 2 StGB) (nummerische Anzahl)
   2332   5.3. Total der an die Meldestelle (MROS) und den VQF erfolgten MROS-Meldungen
   2333 
   2334 
   2335   English Translation
   2336 
   2337   TBD.
   2338 
   2339 
   2340 All annual statistics use the half-open reporting period
   2341 ``year_20xx = [year_start, next_year_start)``.  Events at ``year_start`` belong
   2342 to the new reporting year; events at ``next_year_start`` do not.  The following
   2343 notation is used:
   2344 
   2345 * ``accounts_at(condition, t)`` is the set of AML accounts for which
   2346   ``condition`` is true immediately before ``t``.
   2347 * ``accounts_during(condition, range)`` is the set of AML accounts for which
   2348   ``condition`` is true for any non-empty interval within ``range``.
   2349 * ``accounts_with_event(event, range)`` is the set of AML accounts that emitted
   2350   ``event`` in ``range``.  Each account occurs at most once in the set.
   2351 * ``evtcount(event, range)`` counts occurrences of ``event``.  This is used for
   2352   reports, where separate filings by the same customer must be counted
   2353   separately.
   2354 
   2355 The set operations must be evaluated from each account's ordered property and
   2356 event history.  In particular, two properties must be true at the same time to
   2357 satisfy a conjunction.  Define these sets for the selected reporting year:
   2358 
   2359 .. code:: none
   2360 
   2361   open_start = accounts_at(ACCOUNT_OPEN, year_start)
   2362   open_end = accounts_at(ACCOUNT_OPEN, next_year_start)
   2363   open_during = accounts_during(ACCOUNT_OPEN, year_20xx)
   2364   opened = accounts_with_event(INCR_ACCOUNT_OPEN, year_20xx)
   2365   closed = accounts_with_event(DECR_ACCOUNT_OPEN, year_20xx)
   2366 
   2367   is_pep = PEP_DOMESTIC or PEP_FOREIGN or PEP_INTERNATIONAL_ORGANIZATION
   2368   high_risk = accounts_during(
   2369     ACCOUNT_OPEN and HIGH_RISK_CUSTOMER, year_20xx)
   2370   high_risk_pep = accounts_during(
   2371     ACCOUNT_OPEN and HIGH_RISK_CUSTOMER and is_pep, year_20xx)
   2372   high_risk_foreign_pep = accounts_during(
   2373     ACCOUNT_OPEN and HIGH_RISK_CUSTOMER and PEP_FOREIGN, year_20xx)
   2374   high_risk_country = accounts_during(
   2375     ACCOUNT_OPEN and HIGH_RISK_COUNTRY, year_20xx)
   2376 
   2377 Based on these sets, the VQF self-declaration statistics are:
   2378 
   2379 * Number of open AML files on January 1st (self-declaration 3.1.1):
   2380   ``size(open_start)``.
   2381 * Number of newly opened AML files during the year (self-declaration 3.1.2):
   2382   ``size(opened)``.
   2383 * Number of AML files managed at any time during the year (self-declaration
   2384   3.1.3): ``size(open_during)``.
   2385 * Number of AML files closed during the year (self-declaration 3.1.4):
   2386   ``size(closed)``.
   2387 * Number of open AML files at year end (self-declaration 3.1.5):
   2388   ``size(open_end)``.
   2389 * Whether any high-risk business relationship was managed during the year
   2390   (self-declaration 4.1): ``size(high_risk) > 0``.
   2391 * Number of high-risk business relationships involving PEPs
   2392   (self-declaration 4.2): ``size(high_risk_pep)``.
   2393 * Number of those high-risk PEP relationships involving foreign PEPs
   2394   (self-declaration 4.3): ``size(high_risk_foreign_pep)``.
   2395 * Number of other high-risk business relationships, excluding those involving
   2396   PEPs (self-declaration 4.4): ``size(high_risk - high_risk_pep)``.
   2397 * Total number of high-risk business relationships (self-declaration 4.5):
   2398   ``size(high_risk)``.
   2399 * Whether any relationship involved a contractual party or beneficial owner
   2400   associated with a high-risk country (self-declaration 4.6):
   2401   ``size(high_risk_country) > 0``.
   2402 * Number of mandatory reports filed with MROS (self-declaration 5.1):
   2403   ``evtcount(MROS_REPORTED_SUSPICION_SUBSTANTIATED, year_20xx)``.
   2404 * Number of reports filed under the reporting right (self-declaration 5.2):
   2405   ``evtcount(MROS_REPORTED_SUSPICION_SIMPLE, year_20xx)``.
   2406 * Total MROS reports filed and notified to VQF (self-declaration 5.3): the sum
   2407   of the two event counts for 5.1 and 5.2.  Only actual filing events may be
   2408   included.
   2409 
   2410 For example, an account that is open at the start of the year and closes in
   2411 June is included in 3.1.1, 3.1.3, and 3.1.4, but not 3.1.5.  A relationship
   2412 that is high-risk in March and downgraded in April remains included in 4.1 and
   2413 4.5 for that reporting year.  A PEP relationship is included in 4.2 only if it
   2414 was simultaneously open and classified as high-risk.  A temporary high-risk-
   2415 country association is sufficient for 4.6.  Two distinct MROS filing events
   2416 for the same account are counted as two reports under 5.1 through 5.3.
   2417 
   2418 
   2419 Event Reporting (TOPS)
   2420 ^^^^^^^^^^^^^^^^^^^^^^
   2421 
   2422 The following statistics are custom-defined by us and shown in the AML officer
   2423 dashboard.  ``reporting_period`` is an explicitly selected half-open calendar
   2424 period; it must not depend on the current date or an ambiguous ``last_year``
   2425 shortcut.
   2426 
   2427 * Number of accounts that are currently open:
   2428 
   2429   * Implementation: ``size(accounts_at(ACCOUNT_OPEN, now))``
   2430 
   2431 * Number of new GwG files in the selected reporting period:
   2432 
   2433   * Implementation:
   2434     ``size(accounts_with_event(INCR_ACCOUNT_OPEN, reporting_period))``
   2435 
   2436 * Number of GwG files closed in the selected reporting period:
   2437 
   2438   * Implementation:
   2439     ``size(accounts_with_event(DECR_ACCOUNT_OPEN, reporting_period))``
   2440   * Note: we only close GwG files after 1 year of inactivity, so implementation not exactly pressing ...
   2441 
   2442 * Number of currently open GwG files of high-risk customers:
   2443 
   2444   * Implementation:
   2445     ``size(accounts_at(ACCOUNT_OPEN and HIGH_RISK_CUSTOMER, now))``
   2446 
   2447 * Number of currently open high-risk GwG files involving PEPs:
   2448 
   2449   * Implementation: ``size(accounts_at(ACCOUNT_OPEN and HIGH_RISK_CUSTOMER and
   2450     (PEP_DOMESTIC or PEP_FOREIGN or PEP_INTERNATIONAL_ORGANIZATION), now))``
   2451 
   2452 * Number of MROS reports based on Art. 9 Abs. 1 GwG in the selected period:
   2453 
   2454   * Implementation:
   2455     ``evtcount(MROS_REPORTED_SUSPICION_SUBSTANTIATED, reporting_period)``
   2456 
   2457 * Number of MROS reports based on Art. 305ter Abs. 2 StGB in the selected
   2458   period:
   2459 
   2460   * Implementation:
   2461     ``evtcount(MROS_REPORTED_SUSPICION_SIMPLE, reporting_period)``
   2462 
   2463 * Number of special clarifications concluded in the selected reporting period:
   2464 
   2465   * Implementation:
   2466     ``size(accounts_with_event(INCR_INVESTIGATION_CONCLUDED, reporting_period))``
   2467 
   2468 
   2469 
   2470 Transactions with Increased Risk (TmeR)
   2471 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   2472 
   2473 A TmeR ("Transaktion mit erhöhtem Risiko") is a transaction-monitoring
   2474 classification.  It triggers special clarification but is not by itself a
   2475 suspicion, a decision to report, or evidence that a report was filed with MROS.
   2476 The special clarification records its result; a separate reporting decision
   2477 and an actual filing are required before an MROS reporting event may be emitted.
   2478 
   2479 We define fixed TmeR criteria that apply to all customers.
   2480 
   2481 Examples:
   2482 
   2483 * sudden increase in volume (monthly volume exceeding previous year's, plus above 100,000 CHF)
   2484 
   2485 https://bugs.taler.net/9639
   2486 
   2487 
   2488 Sanction Lists
   2489 --------------
   2490 
   2491 When a new customer is onboarded, they are checked against a sanction list.
   2492 
   2493 Three properties are set:
   2494 
   2495 * ``SANCTION_LIST_BEST_MATCH`` identifies the position of the entry in
   2496   the sanctions list that matches the new customer the best
   2497 * ``SANCTION_LIST_RATING`` is set to a numeric score ``[0,1]`` that
   2498   identifies how well the available data matches (with 1.0 being a perfect
   2499   match)
   2500 * ``SANCTION_LIST_CONFIDENCE`` is set to a numeric score ``[0,1]`` that
   2501   indicates how confident we are that the rating is accurate, with 0
   2502   indicating no data available, and 1 indicating that all possible
   2503   fields could be evaluated
   2504 * ``INVESTIGATION_STATE`` is set to ``INVESTIGATION_PENDING``
   2505   if the rating and confidence are sufficiently high
   2506 * ``INVESTIGATION_TRIGGER`` is set to ``SANCTION_LIST_MATCH``
   2507 
   2508 Finally, sanction list hits trigger one of two possible events:
   2509 
   2510 * ``sanction-list-hit-account-frozen`` is set if the hit was so clear
   2511   that the system immediately froze the account
   2512 * ``sanction-list-hit-partial-account-investigated`` is set if the hit
   2513   requires the account to be investigated
   2514 
   2515 
   2516 Implementation Gaps
   2517 -------------------
   2518 
   2519 Auditing:
   2520 
   2521 * For the yearly audit, it would be convenient (and probably also *necessary*)
   2522   to show all information we have on an exchange AML account (=GwG file in VQF terminology)
   2523   on a single, printable page.
   2524 
   2525 Moving logic into the AML programs:
   2526 
   2527 * For ``vqf_902_1_officer``, it would be great if an AML program could check
   2528   that required forms have actually been submitted.
   2529 
   2530 * For MROS reporting, submission of the ``vqf_902_14`` should run an AML
   2531   program that sets the events/properties based on the form.
   2532 
   2533 
   2534 Open Questions
   2535 --------------
   2536 
   2537 
   2538 * Do we use ``Boolean`` attributes or always ``'YES' | 'NO'`` to be extensible
   2539   in the future?
   2540 
   2541 * General forms question: Are attributes *first* stored and *then* validated or the
   2542   other way around? If first stored: What if the AML program fails to run?
   2543 
   2544 * We need a generic way to show INFO to a customer (e.g. asking for more documents)
   2545 
   2546 
   2547 FAQ
   2548 ---
   2549 
   2550 * Q: What's the difference between the controlling entity and beneficiary owner?
   2551 
   2552   * A: Controlling entity: Natural person(s) with at least 25% ownership or voting rights (direct or indirect, alone or colletively).
   2553     Beneficial owner:  Natural person(s) who enjoy the benefits of ownership even though the title to some form of property is in another name.
   2554 
   2555 * Q: How is the "file note" (German: "Aktennotiz") handled?
   2556 
   2557   * A: Two ways: Each AML customer account can have a note as a property.
   2558     For more complex notes (attachments, more sensitive information),
   2559     a ``generic_note`` form should be submitted by the AML officer.
   2560 
   2561 * Q: What's the difference between simple/substantiated suspicion?
   2562 
   2563   * A: A simple suspicion is a suspicion according to Art. 305ter Abs. 2 StGB
   2564     that *may* be reported ("Melderecht").  A substantiated suspicion under
   2565     Art. 9 GwG *must* be reported ("Meldepflicht").  Neither an alert nor a
   2566     TmeR alone establishes either result, and a reporting result must not be
   2567     recorded as an actual filing until the report has been submitted to MROS.
   2568 
   2569 References
   2570 ----------
   2571 
   2572 * Taler-Exchange AML flows (`git <https://git.taler.net/exchange.git/tree/doc/flows/main.tex>`_, `PDF <http://taler.net/files/taler-exchange-flows.pdf>`__)
   2573 * VQF forms (`VQF Website <https://www.vqf.ch/de/vqf-downloads>`__)
   2574 * GANA form attributes (`git <https://git.taler.net/gana.git/tree/gnu-taler-form-attributes/registry.rec>`__)
   2575 * taler-typescript-core forms implementation (`git <https://git.taler.net/taler-typescript-core.git/tree/packages/web-util/src/forms/gana>`__)