taler-docs

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

tops.rst (79769B)


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