exchange

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

vqf_902_5.typ (6382B)


      1 // VQF 902.5 Customer Profile Template
      2 // Pass JSON data as content dictionary
      3 
      4 #let form(data) = {
      5   set page(
      6     paper: "a4",
      7     margin: (left: 2cm, right: 2cm, top: 2cm, bottom: 2.5cm),
      8     footer: context [
      9       #grid(
     10         columns: (1fr, 1fr),
     11         align: (left, right),
     12         text(size: 8pt)[
     13           VQF doc. Nr. 902.5#linebreak()
     14           Version of 1 December 2015
     15         ],
     16         text(size: 8pt)[
     17           Page #here().page() of #counter(page).final().first()
     18         ]
     19       )
     20     ]
     21   )
     22 
     23   set text(font: "Liberation Sans", size: 10pt)
     24   set par(justify: false, leading: 0.65em)
     25 
     26   // Helper function to get value or empty string
     27   let get(key, default: "") = {
     28     data.at(key, default: default)
     29   }
     30 
     31   // Helper function for checkbox
     32   let checkbox(checked) = {
     33     box(
     34       width: 3mm,
     35       height: 3mm,
     36       stroke: 0.5pt + black,
     37       inset: 0.3mm,
     38       if checked == true or checked == "true" {
     39         place(center + horizon, text(size: 8pt, sym.checkmark))
     40       }
     41     )
     42   }
     43 
     44   // Header
     45   align(center, text(size: 11pt, weight: "bold")[CONFIDENTIAL])
     46 
     47   v(0.5em)
     48 
     49   grid(
     50     columns: (50%, 50%),
     51     gutter: 1em,
     52     image("vss_vqf_verein.png", width: 80%),
     53     align(right)[
     54       #table(
     55         columns: (1fr, 1fr),
     56         stroke: 0.5pt + black,
     57         inset: 5pt,
     58         align: (left, left),
     59         [VQF member no.], [AMLA File No.],
     60         [#get("VQF_MEMBER_NUMBER")], [#get("FILE_NUMBER")]
     61       )
     62     ]
     63   )
     64 
     65   v(1em)
     66 
     67   align(left, text(size: 14pt, weight: "bold")[Customer Profile])
     68 
     69   v(0.3em)
     70 
     71   text(size: 9pt, style: "italic")[For permanent business relationship and regular customers]
     72 
     73   v(-1em)
     74   line(length:100%)
     75 
     76   grid(
     77     columns: (auto, 1fr),
     78     gutter: 0.5em,
     79     align: (left, left),
     80     image("pointing_finger.svg", height: 2em),
     81     text(size: 9pt)[
     82       The information below has to refer to the persons from whom the assets originate ultimately (e.g. beneficial owner of the assets, founder/creator of a trust or foundation). Is the customer an operational legal entity or partnership the information may refer to the entity itself (not to the controlling person), unless the entity holds the assets in trust for a third party.
     83     ]
     84   )
     85 
     86   v(1em)
     87 
     88   v(0.3em)
     89 
     90   table(
     91     columns: (20%,80%),
     92     stroke: 0.5pt + black,
     93     inset: 5pt,
     94     [Customer:#footnote[Pursuant Identification Form (VQF doc. No. 902.1) numeral 1.]],
     95     [#get("CUSTOMER_NAME")]
     96   )
     97 
     98   v(0.5em)
     99 
    100   text(weight: "bold")[This form was completed by:]
    101 
    102   v(0.3em)
    103 
    104   table(
    105     columns: (20%, 80%),
    106     stroke: 0.5pt + black,
    107     inset: 5pt,
    108     align: (left, left),
    109     [Full name], [#get("AML_STAFF_NAME")],
    110     [Date], [#get("FILING_DATE")],
    111   )
    112 
    113   v(1.5em)
    114 
    115   // Section 1: Business Activity
    116   text(size: 11pt, weight: "bold")[1. Business activity]
    117 
    118   v(0.5em)
    119 
    120   table(
    121     columns: (40%, 60%),
    122     stroke: 0.5pt + black,
    123     inset: 5pt,
    124     [Profession, business activities etc. (former, current, potentially planned)],
    125     [#get("BIZREL_PROFESSION")]
    126   )
    127 
    128   v(1.5em)
    129 
    130   // Section 2: Financial Circumstances
    131   text(size: 11pt, weight: "bold")[2. Financial circumstances]
    132 
    133   v(0.5em)
    134 
    135   table(
    136     columns: (40%, 60%),
    137     stroke: 0.5pt + black,
    138     inset: 5pt,
    139     [Income and assets, liabilities (estimated)],
    140     [#get("BIZREL_INCOME")]
    141   )
    142 
    143   v(1.5em)
    144 
    145   // Section 3: Origin of Deposited Assets
    146   text(size: 11pt, weight: "bold")[3. Origin of the deposited assets involved]
    147 
    148   v(0.5em)
    149 
    150   let origin_cat = get("BIZREL_ORIGIN_CATEGORY")
    151 
    152   block(breakable: false)[
    153     #table(
    154       columns: (40%, 60%),
    155       stroke: 0.5pt + black,
    156       inset: 5pt,
    157       [Nature, amount and currency of the involved assets],
    158       [#get("BIZREL_ORIGIN_NATURE")],
    159       [Category],
    160       [#grid(
    161         columns: (auto, 1fr),
    162         gutter: 0.5em,
    163         checkbox(origin_cat == "SAVINGS"), [Savings],
    164         checkbox(origin_cat == "OWN_BUSINESS"), [Own business operations],
    165         checkbox(origin_cat == "INHERITANCE"), [Inheritance],
    166         checkbox(origin_cat == "OTHER"), [Other, what? #get("BIZREL_ORIGIN_CATEGORY_OTHER")],
    167       )],
    168       [Detailed description of the origins/economical background of the assets involved in the business relationship],
    169       [#get("BIZREL_ORIGIN_DETAIL")]
    170     )
    171   ]
    172 
    173   v(1.5em)
    174   pagebreak()
    175 
    176   // Section 4: Nature and Purpose
    177   text(size: 11pt, weight: "bold")[4. Nature and purpose of the business relationship]
    178 
    179   v(0.5em)
    180 
    181   table(
    182     columns: (40%, 60%),
    183     stroke: 0.5pt + black,
    184     inset: 5pt,
    185     [Purpose of the business relationship],
    186     [#get("BIZREL_PURPOSE")],
    187     [Information on the planned development of the business relationship and the assets],
    188     [#get("BIZREL_DEVELOPMENT")],
    189     [Especially in the case of cash or money and asset transfer transactions with regular customers:
    190      \ - Details on usual business volume
    191      \ - Information on the beneficiaries
    192      \ (Full name, address, bank account)],
    193     [#get("BIZREL_FINANCIAL_VOLUME")]
    194   )
    195 
    196   v(1.5em)
    197 
    198   // Section 5: Relationship with Third Parties
    199   text(size: 11pt, weight: "bold")[5. Relationship with third parties]
    200 
    201   v(0.5em)
    202 
    203   table(
    204     columns: (40%, 60%),
    205     stroke: 0.5pt + black,
    206     inset: 5pt,
    207     [Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship],
    208     [#get("BIZREL_THIRDPARTY_RELATIONSHIP")],
    209     [Relation to other AMLA-Files],
    210     [#get("BIZREL_THIRDPARTY_AMLA_FILES")],
    211     [Introducer / agents / references],
    212     [#get("BIZREL_THIRDPARTY_REFERENCES")]
    213   )
    214 
    215   v(1.5em)
    216 
    217   // Section 6: Further Information
    218   text(size: 11pt, weight: "bold")[6. Further information]
    219 
    220   v(0.5em)
    221 
    222   table(
    223     columns: (40%, 60%),
    224     stroke: 0.5pt + black,
    225     inset: 5pt,
    226     [Other relevant information],
    227     [#get("BIZREL_FURTHER_INFO")]
    228   )
    229 
    230   v(2em)
    231 
    232   text(size: 9pt, style: "italic")[⚠ *This form has to be updated when changes occur.*]
    233 }
    234 
    235 // Example usage:
    236 #form((
    237   "VQF_MEMBER_NUMBER": "12345",
    238   "FILE_NUMBER": "42",
    239   "CUSTOMER_NAME": "John Doe",
    240   "FILED_BY_NAME": "Jane Smith",
    241   "FILING_DATE": "10.11.2025",
    242   "BIZREL_PROFESSION": "Software Engineer",
    243   "BIZREL_INCOME": "Annual income CHF 150,000",
    244   "BIZREL_ORIGIN_NATURE": "CHF 50,000 in cash",
    245   "BIZREL_ORIGIN_CATEGORY": "SAVINGS",
    246   "BIZREL_PURPOSE": "Payment services",
    247   "BIZREL_DEVELOPMENT": "Regular transactions expected",
    248 ))