exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

vqf_902_14.typ (5090B)


      1 // VQF 902.14 Special Clarifications Template
      2 // Pass JSON data as content dictionary
      3 #import "@taler-exchange/common:0.0.0": vqflogo, pointingfinger, checkbox
      4 
      5 #let form(data) = {
      6   set page(
      7     paper: "a4",
      8     margin: (left: 2cm, right: 2cm, top: 2cm, bottom: 2.5cm),
      9     footer: context [
     10       #grid(
     11         columns: (1fr, 1fr),
     12         align: (left, right),
     13         text(size: 8pt)[
     14           VQF doc. Nr. 902.14#linebreak()
     15           Version of 1 December 2015
     16         ],
     17         text(size: 8pt)[
     18           Page #here().page() of #counter(page).final().first()
     19         ]
     20       )
     21     ]
     22   )
     23 
     24   set text(font: "Liberation Sans", size: 10pt)
     25   set par(justify: false, leading: 0.65em)
     26 
     27   // Helper function to get value or empty string
     28   let get(key, default: "") = {
     29     data.at(key, default: default)
     30   }
     31 
     32   // Header
     33   align(center, text(size: 11pt, weight: "bold")[CONFIDENTIAL])
     34 
     35   v(0.5em)
     36 
     37   grid(
     38     columns: (50%, 50%),
     39     gutter: 1em,
     40     vqflogo(),
     41     align(right)[
     42       #table(
     43         columns: (1fr, 1fr),
     44         stroke: 0.5pt + black,
     45         inset: 5pt,
     46         align: (left, left),
     47         [VQF member no.], [AMLA File No.],
     48         [#get("VQF_MEMBER_NUMBER")], [#get("FILE_NUMBER")]
     49       )
     50     ]
     51   )
     52 
     53   v(1em)
     54 
     55   align(left, text(size: 14pt, weight: "bold")[Special Clarifications])
     56 
     57   v(-1em)
     58   line(length:100%)
     59 
     60   grid(
     61     columns: (auto, 1fr),
     62     gutter: 0.5em,
     63     align: (left, left),
     64     pointingfinger(),
     65     text(size: 9pt)[
     66       When a business relationship or transaction is associated with increased risk, appears unusual or evidence exists that the assets are the proceeds of a felony or a qualified tax offence, the member has to perform additional clarifications.
     67     ]
     68   )
     69 
     70   v(1em)
     71 
     72   text(weight: "bold")[Customer:#footnote[Pursuant Identification form (VQF doc. No. 902.1) numeral 1.]]
     73 
     74   v(0.3em)
     75 
     76   table(
     77     columns: (1fr),
     78     stroke: 0.5pt + black,
     79     inset: 5pt,
     80     [#get("CUSTOMER_NAME")]
     81   )
     82 
     83   v(0.5em)
     84 
     85   text(weight: "bold")[This form was completed by:]
     86 
     87   v(0.3em)
     88 
     89   table(
     90     columns: (1fr, 1fr),
     91     stroke: 0.5pt + black,
     92     inset: 5pt,
     93     align: (left, left),
     94     [Full name], [#get("AML_STAFF_NAME")],
     95     [Date], [#get("FILING_DATE")],
     96   )
     97 
     98   v(1.5em)
     99 
    100   // Section 1: Reason for Special Clarifications
    101   text(size: 11pt, weight: "bold")[1. Reason for special clarifications]
    102 
    103   v(0.5em)
    104 
    105   table(
    106     columns: (45%,55%),
    107     stroke: 0.5pt + black,
    108     inset: 5pt,
    109     [Description of the circumstances/transactions, which triggered the special clarifications],
    110     [#get("INCRISK_REASON")]
    111   )
    112 
    113   v(1.5em)
    114 
    115   // Section 2: Used Means of Clarification
    116   text(size: 11pt, weight: "bold")[2. Used means of clarification]
    117 
    118   v(0.5em)
    119 
    120   let means = get("INCRISK_MEANS")
    121 
    122   grid(
    123       columns: (auto),
    124       inset: 5pt,
    125       stroke: 0.5pt + black,
    126     [#block(breakable: false)[
    127     #grid(
    128       columns: (auto, 1fr),
    129       gutter: 0.5em,
    130       row-gutter: 0.5em,
    131       checkbox(means == "GATHERING"),
    132       [Gathering of information from the customer, beneficial owner of the assets, controlling person],
    133 
    134       checkbox(means == "CONSULTATION"),
    135       [Consultation of generally accessible sources and databases],
    136 
    137       checkbox(means == "ENQUIRIES"),
    138       [Enquiries with trustworthy persons (e.g. custodian bank)],
    139 
    140       checkbox(means == "OTHER"),
    141       [Other, which? #if means == "OTHER" [#get("INCRISK_MEANS_OTHER")]]
    142     )
    143   ]])
    144 
    145   v(1.5em)
    146 
    147   // Section 3: Supplemental Files
    148   text(size: 11pt, weight: "bold")[3. Summary and plausibility check of the gathered information]
    149 
    150   v(0.3em)
    151 
    152   grid(
    153     columns: (auto, 1fr),
    154     gutter: 0.5em,
    155     align: (left, left),
    156     pointingfinger(),
    157     text(size: 9pt)[
    158       The results of the clarifications have to be documented and their plausibility has to be checked.
    159     ]
    160   )
    161 
    162   v(1.5em)
    163 
    164   table(
    165     columns: (100%),
    166     stroke: 0.5pt + black,
    167     inset: 5pt,
    168     [#get("INCRISK_SUMMARY")]
    169   )
    170 
    171   v(1em)
    172 
    173   table(
    174     columns: (auto, 1fr),
    175     stroke: 0.5pt + black,
    176     inset: 5pt,
    177     [Gathered/Consulted documents],
    178     [#get("INCRISK_DOCUMENTS")]
    179   )
    180 
    181 
    182 
    183 
    184   // Section 4: Result
    185   text(size: 11pt, weight: "bold")[4. Result of the special clarification]
    186 
    187   v(0.5em)
    188 
    189   let result = get("INCRISK_RESULT")
    190 
    191   grid(
    192       columns: (auto),
    193       inset: 5pt,
    194       stroke: 0.5pt + black,
    195   block(breakable: false)[
    196     #grid(
    197       columns: (auto, 1fr),
    198       gutter: 0.5em,
    199       row-gutter: 0.8em,
    200 
    201       checkbox(result == "NO_SUSPICION"),
    202       [The plausibility of the circumstances could be checked, no reasonable suspicion pursuant to Art. 9 AMLA (possibly update of customer profile (VQF doc. No. 902.5) and/or risk profile (VQF doc. No. 902.4))],
    203 
    204       checkbox(result == "REASONABLE_SUSPICION"),
    205       [Reasonable suspicion pursuant to Art. 9 AMLA, duty to file a report with MROS],
    206 
    207       checkbox(result == "SIMPLE_SUSPICION"),
    208       [Simple suspicion pursuant to Art. 305#super[ter] Para. 2 StGB, right to notify MROS],
    209 
    210       checkbox(result == "OTHER"),
    211       [Other, what? #if result == "OTHER" [#get("INCRISK_RESULT_OTHER")]]
    212     )
    213   ])
    214 
    215 }