taler-docs

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

tops.rst (79716B)


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