vqf_902_4.typ (21286B)
1 // VQF 902.4 Risk Profile AMLA 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. No. 902.4#linebreak() 14 Version of 17 July 2020 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")[Risk Profile AMLA]) 68 69 v(0.3em) 70 71 text(size: 9pt, style: "italic")[Evaluation of business relationship with increased risk and definition of criteria for transaction monitoring] 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 member performs additional clarifications if the business relationship or the transaction is classified as increased risk (Art. 56 SRO Regulations) 83 ] 84 ) 85 86 v(1em) 87 88 table( 89 columns: (20%, 80%), 90 stroke: 0.5pt + black, 91 inset: 5pt, 92 [Customer#footnote([Pursuant identification form (VQF doc. Nr. 902.1) numeral 1.]):], 93 [#get("CUSTOMER_NAME")] 94 ) 95 96 v(0.5em) 97 98 text(weight: "bold")[This form was completed by:] 99 100 v(0.3em) 101 102 table( 103 columns: (20%, 80%), 104 stroke: 0.5pt + black, 105 inset: 5pt, 106 align: (left, left), 107 [Full name], [#get("AML_STAFF_NAME")], 108 [Date], [#get("FILING_DATE")], 109 ) 110 111 v(1.5em) 112 113 // Section 1: PEP Check 114 [= 1. Evaluation of politically exposed persons (PEP-Check)] 115 116 v(0.5em) 117 118 grid( 119 columns: (auto, 1fr), 120 gutter: 0.5em, 121 align: (left, left), 122 image("pointing_finger.svg", height: 2em), 123 text(size: 9pt)[ 124 This evaluation has to be completed by all members for every business relationship. 125 ] 126 ) 127 128 v(1em) 129 130 let pep_foreign = get("PEP_FOREIGN") 131 let pep_domestic = get("PEP_DOMESTIC") 132 let pep_intl = get("PEP_INTERNATIONAL_ORGANIZATION") 133 let any_pep = pep_foreign or pep_domestic or pep_intl 134 let pep_high_risk = get("PEP_HIGH_RISK") 135 136 block(breakable: false)[ 137 #table( 138 columns: (40%, 60%), 139 stroke: 0.5pt + black, 140 inset: 5pt, 141 [#underline([Foreign PEP])#footnote[Definition see Art. 7 lit. g numeral 1 SRO Regulations.] 142 \ #v(1em) 143 Is the customer, the beneficial owner or the controlling person or authorised representative a foreign PEP or closely related to such a person?], 144 [#grid( 145 columns: (auto, 1fr), 146 gutter: 0.5em, 147 checkbox(not pep_foreign), [No], 148 checkbox(pep_foreign), [#grid( 149 columns: (auto, auto, auto), 150 gutter: 0.5em, 151 [Yes], 152 [$=>$], 153 [Classification of the business 154 \ as increased risk is #underline([compulsory]).])], 155 )], 156 157 158 [#underline( 159 [Domestic PEP#footnote[Definition see Art. 7 lit. g numeral 2 SRO Regulations.] 160 and PEP of International Organisations#footnote[Definition see Art. 7 lit. g numeral 3 SRO Regulations.]] 161 ) 162 \ #v(1em) 163 Is the customer, the beneficial owner or the controlling person or authorised representative a domestic PEP or PEP in International Organisations or closely related to such a person?], 164 [#grid( 165 columns: (auto, 1fr), 166 gutter: 0.5em, 167 checkbox(not (pep_domestic or pep_intl)), [No], 168 checkbox(pep_domestic or pep_intl), [#grid( 169 columns: (auto, auto, auto), 170 gutter: 0.5em, 171 [Yes], 172 [$=>$], 173 [Is a risk criterion pursuant to numeral 3 subsequently increased? 174 #grid( 175 columns: (auto, 1fr), 176 gutter: 0.5em, 177 checkbox(not pep_high_risk), [No], 178 checkbox(pep_high_risk), [#grid( 179 columns: (auto, auto, auto), 180 gutter: 0.5em, 181 [Yes], 182 [$=>$], 183 [Classification of the business relationship as increased risk is #underline([compulsory])] 184 )] 185 )], 186 )] 187 )] 188 ) 189 #if ("" == get("PEP_ACCEPTANCE_DATE")) [ 190 The decision of the Senior executive body on the acceptance of a business relationship 191 with a PEP was #underline([not]) obtained. 192 ] else [ 193 The decision of the Senior executive body on the acceptance of a business relationship 194 with a PEP was obtained on #underline([#get("PEP_ACCEPTANCE_DATE")]). 195 ] 196 ] 197 198 v(2em) 199 pagebreak() 200 // Section 2: High Risk Country 201 [= 2. Evaluation "high risk" or non-cooperative country] 202 203 v(0.5em) 204 205 grid( 206 columns: (auto, 1fr), 207 gutter: 0.5em, 208 align: (left, left), 209 image("pointing_finger.svg", height: 2em), 210 text(size: 9pt)[ 211 This evaluation has to be completed by all members for each business relationship. 212 ] 213 ) 214 215 v(1em) 216 217 let high_risk = get("HIGH_RISK_COUNTRY") 218 219 block(breakable: false)[ 220 #table( 221 columns: (40%, 60%), 222 stroke: 0.5pt + black, 223 inset: 5pt, 224 [#underline(["High risk" or non-cooperative country]) 225 #v(1em) 226 Is the customer, the beneficial owner or the controlling person or authorised representative in a country considered by the FATF *"high risk"* or *non-cooperative* and for which FATF requires *increased diligence*?], 227 [#grid( 228 columns: (auto, 1fr), 229 gutter: 0.5em, 230 checkbox(not high_risk), [No], 231 checkbox(pep_foreign), [#grid( 232 columns: (auto, auto, auto), 233 gutter: 0.5em, 234 [Yes], 235 [$=>$], 236 [Classification of the business 237 \ as increased risk is #underline([compulsory]).])], 238 )], 239 ) 240 #if ("" == get("COUNTRY_RISK_ACCEPTANCE_DATE")) [ 241 The decision of the Senior executive body on the acceptance of such a business relationship 242 was #underline([not]) obtained. 243 ] else [ 244 The decision of the Senior executive body on the acceptance of a such a business relationship 245 was obtained on #underline([#get("COUNTRY_RISK_ACCEPTANCE_DATE")]). 246 ] 247 ] 248 249 v(2em) 250 251 // Section 3: Business Relationship Risk 252 [= 3. Evaluation of business relationship risk] 253 254 v(0.5em) 255 256 grid( 257 columns: (auto, 1fr), 258 gutter: 0.5em, 259 align: (left, left), 260 image("pointing_finger.svg", height: 2em), 261 text(size: 9pt)[ 262 This evaluation has to be completed by all members who have in total more than 20 customers for every business relationship. At least two risk categories have to be chosen and assessed. 263 ] 264 ) 265 266 v(1em) 267 268 // Country Risk (Nationality) 269 let nat_types = get("COUNTRY_RISK_NATIONALITY_TYPE", default: ()) 270 let nat_level = get("COUNTRY_RISK_NATIONALITY_LEVEL") 271 272 block(breakable: false)[ 273 #text(size: 10pt, weight: "bold")[a) Country risk#footnote[Risk 0 = Risk Classification "Low"; Risk 1 = Risk Classification "Medium"; Risk 2 = Risk Classification "High".] (nationality)] 274 275 #v(0.5em) 276 277 #table( 278 columns: (35%, 65%), 279 stroke: 0.5pt + black, 280 inset: 5pt, 281 [#checkbox(false) *Domicile/residential address:* 282 #grid( 283 columns: (1em, auto, 1fr), 284 inset: 1pt, 285 [], 286 checkbox(nat_types.contains("DOMICILE_CUSTOMER")), 287 [Customer], 288 [], 289 checkbox(nat_types.contains("DOMICILE_OWNER")), 290 [Beneficial owner of the assets], 291 [], 292 checkbox(nat_types.contains("DOMICILE_CONTROLLING")), 293 [Controlling person], 294 ) 295 \ #checkbox(false) *Nationality:* 296 #grid( 297 columns: (1em, auto, 1fr), 298 gutter: 0.3em, 299 [], 300 checkbox(nat_types.contains("NATIONALITY_CUSTOMER")), 301 [Customer], 302 [], 303 checkbox(nat_types.contains("NATIONALITY_OWNER")), 304 [Beneficial owner of the assets], 305 )], 306 [#grid( 307 columns: (auto, 1fr), 308 inset: 1em, 309 stroke: 0.5pt + black, 310 [0], 311 [#checkbox(nat_level == "LOW") 312 Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)], 313 [1], 314 [#checkbox(nat_level == "MEDIUM") 315 Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)], 316 [2], 317 [#checkbox(nat_level == "HIGH") 318 Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)], 319 )] 320 )] 321 322 v(1em) 323 324 // Country Risk (Business) 325 let bus_types = get("COUNTRY_RISK_BUSINESS_TYPE", default: ()) 326 let bus_level = get("COUNTRY_RISK_BUSINESS_LEVEL") 327 328 block(breakable: false)[ 329 #text(size: 10pt, weight: "bold")[b) Country risk (business activity)] 330 331 #v(0.5em) 332 333 #table( 334 columns: (35%, 65%), 335 stroke: 0.5pt + black, 336 inset: 5pt, 337 [*Place of business activity:* 338 #grid( 339 columns: (1em, auto, 1fr), 340 gutter: 0.3em, 341 [], 342 checkbox(bus_types.contains("CUSTOMER")), 343 [Customer], 344 [], 345 checkbox(bus_types.contains("OWNER")), 346 [Beneficial owner of the assets], 347 )], 348 [#grid( 349 columns: (auto, 1fr), 350 inset: 1em, 351 stroke: 0.5pt + black, 352 [0], 353 [#checkbox(bus_level == "LOW") 354 Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)], 355 [1], 356 [#checkbox(bus_level == "MEDIUM") 357 Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)], 358 [2], 359 [#checkbox(bus_level == "HIGH") 360 Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)], 361 )] 362 )] 363 364 v(1em) 365 366 // Country Risk (Payments) 367 let pay_types = get("COUNTRY_RISK_PAYMENT_TYPE", default: ()) 368 let pay_level = get("COUNTRY_RISK_PAYMENTS_LEVEL") 369 370 block(breakable: false)[ 371 #text(size: 10pt, weight: "bold")[c) Country risk (payments)] 372 373 #v(0.5em) 374 375 #table( 376 columns: (35%, 65%), 377 stroke: 0.5pt + black, 378 inset: 5pt, 379 [*Country of origin and destination of frequent payments (if known):* 380 #grid( 381 columns: (1em, auto, 1fr), 382 gutter: 0.3em, 383 [], 384 checkbox(bus_types.contains("CUSTOMER")), 385 [Customer], 386 [], 387 checkbox(bus_types.contains("OWNER")), 388 [Beneficial owner of the assets], 389 )], 390 [#grid( 391 columns: (auto, 1fr), 392 inset: 1em, 393 stroke: 0.5pt + black, 394 [0], 395 [#checkbox(pay_level == "LOW") 396 Risk 0 acc. to VQF country list (VQF doc. no. 902.4.1)], 397 [1], 398 [#checkbox(pay_level == "MEDIUM") 399 Risk 1 acc. to VQF country list (VQF doc. no. 902.4.1)], 400 [2], 401 [#checkbox(pay_level == "HIGH") 402 Risk 2 acc. to VQF country list (VQF doc. no. 902.4.1)], 403 )] 404 )] 405 406 v(1em) 407 408 409 410 // Industry Risk 411 let ind_types = get("INDUSTRY_RISK_TYPE", default: ()) 412 let ind_level = get("INDUSTRY_RISK_LEVEL") 413 414 block(breakable: false)[ 415 #text(size: 10pt, weight: "bold")[d) Industry risk] 416 417 #v(0.5em) 418 419 #table( 420 columns: (35%, 65%), 421 stroke: 0.5pt + black, 422 inset: 5pt, 423 [*Nature of customer's business activity:* 424 #grid( 425 columns: (1em, auto, 1fr), 426 gutter: 0.3em, 427 [], 428 checkbox(ind_types.contains("CUSTOMER")), 429 [Customer], 430 [], 431 checkbox(ind_types.contains("OWNER")), 432 [Beneficial owner of the assets], 433 )], 434 [#grid( 435 columns: (auto, 1fr), 436 inset: 0.5em, 437 stroke: 0.5pt + black, 438 [0], 439 [#grid( 440 columns: (auto, 1fr), 441 inset: 0.2em, 442 [#checkbox(ind_level == "TRANSPARENT")], 443 [Clearly defined, transparent, easily comprehensible business activity well known to the member])], 444 [1], 445 [#grid( 446 columns: (auto, 1fr), 447 inset: 0.2em, 448 [#checkbox(ind_level == "HIGH_CASH_TRANSACTION")], 449 [Business activity with a high level of cash transactions], 450 [#checkbox(ind_level == "NOT_WELL_KNOWN")], 451 [Business activity not well known to the member])], 452 [2], 453 [#grid( 454 columns: (auto, 1fr), 455 inset: 0.2em, 456 [#checkbox(ind_level == "HIGH_RISK_TRADE")], 457 [Trade in munitions/arms, raw gem stones/diamonds, jewellery, international trade in exotic animals, casino and lottery business, trade in erotic wares], 458 [#checkbox(ind_level == "UNKNOWN_INDUSTRY")], 459 [Member has no personal knowledge of the customer's industry])] 460 )] 461 )] 462 463 v(1em) 464 465 // Contact Risk 466 let contact_level = get("CONTACT_RISK_LEVEL") 467 block(breakable: false)[ 468 #text(size: 10pt, weight: "bold")[e) Contact risk] 469 470 #v(0.3em) 471 #table( 472 columns: (35%, 65%), 473 stroke: 0.5pt + black, 474 inset: 5pt, 475 [*Type of contact to the customer/beneficial owner of the assets.*], 476 [#grid( 477 columns: (auto, 1fr), 478 stroke: 0.5pt + black, 479 inset: 5pt, 480 [0], 481 [#grid( 482 columns: (auto, 1fr), 483 inset: 0.2em, 484 [#checkbox(contact_level == "LOW")], 485 [Personal acquaintance between member and customer/beneficial owner of the assets over several years (at least 2) prior to entering into the business relationship.], 486 )], 487 [1], 488 [#grid( 489 columns: (auto, 1fr), 490 inset: 0.2em, 491 [#checkbox(contact_level == "MEDIUM")], 492 [The customer/beneficial owner was not personally known to the member for several years (at least 2) prior to entering into the business relationship; however (a) no business was entered into in the absence of the customer/beneficial owner, or (b) the customer was at least introduced/brokered by a trusted third party.], 493 )], 494 [2], 495 [#grid( 496 columns: (auto, 1fr), 497 inset: 0.2em, 498 [#checkbox(contact_level == "HIGH")], 499 [The customer/beneficial owner was not personally known to the member and business was entered into in the absence of the former (relationship by correspondence) and the customer was not introduced/brokered by a trusted third party.], 500 )] 501 )] 502 )] 503 504 v(2em) 505 506 // Product Risk 507 let prod_level = get("PRODUCT_RISK_LEVEL", default: ()) 508 block(breakable: false)[ 509 #text(size: 10pt, weight: "bold")[f) Product risk] 510 511 #v(0.3em) 512 #table( 513 columns: (35%, 65%), 514 stroke: 0.5pt + black, 515 inset: 5pt, 516 [*Nature of services and products requested by the customer*], 517 [#grid( 518 columns: (auto, 1fr), 519 stroke: 0.5pt + black, 520 inset: 5pt, 521 [0], 522 [#grid( 523 columns: (auto, 1fr), 524 inset: 0.2em, 525 [#checkbox(prod_level.contains("EASY"))], 526 [Easy to understand, transparent services and products whose financial background is easy to comprehend and verify.], 527 )], 528 [1], 529 [#grid( 530 columns: (auto, 1fr), 531 inset: 0.2em, 532 [#checkbox(prod_level.contains("SOPHISTICATED"))], 533 [More sophisticated services/products whose financial background is not readily easy to comprehend and verify.], 534 )], 535 [2], 536 [#grid( 537 columns: (auto, 1fr), 538 inset: 0.2em, 539 [#checkbox(prod_level.contains("HIGH_OFFSHORE"))], 540 [Main focus on offshore business (especially: relationships with domiciliary companies or other such offshore organisations) #v(0.5em)], 541 [#checkbox(prod_level.contains("HIGH_COMPLEX"))], 542 [Complex structures in particular by using a domiciliary company with fiduciary shareholders in a non-transparent jurisdiction, without comprehensible reason or for the purpose of short-term asset placement #v(0.5em)], 543 [#checkbox(prod_level.contains("HIGH_PASSTHROUGH"))], 544 [The customer or beneficial owner of the assets has a large number of accounts with pass-through transactions (pass-through accounts) #v(0.5em)], 545 [#checkbox(prod_level.contains("HIGH_BACKGROUND"))], 546 [Complex services/products whose financial background can’t be understood or verified with considerable effort. #v(0.5em)], 547 [#checkbox(prod_level.contains("HIGH_FREQUENT_TMER"))], 548 [Frequent transactions with increased risks #v(0.5em)], 549 )] 550 )] 551 )] 552 553 v(2em) 554 555 556 // Summary Evaluation 557 text(size: 11pt, weight: "bold")[Overall assessment of the business relationship] 558 559 v(0.5em) 560 561 block( 562 fill: rgb("#f0f0f0"), 563 inset: 10pt, 564 width: 100%, 565 )[ 566 A business relationship is classified as increased risk if: 567 568 - Business relationship with PEP pursuant to numeral 1 (no exception possible) 569 - Relationship with a person from a "high risk" or non-cooperative country according to numeral 2 (no exceptions possible) 570 - Min. #underline[one] criterion pursuant to numeral 3 was assessed with #underline[risk 2] or min. #underline[two] criteria pursuant to numeral 3 were assessed with risk 1 (exception: justification by the member below why the business relationship overall does not have to be classified as increased risk despite the fact that individual risk criteria are increased). 571 ] 572 573 v(1em) 574 575 let risk_class = get("RISK_CLASSIFICATION_LEVEL") 576 let risk_class_low = "NO_HIGH_RISK" == risk_class 577 578 table( 579 columns: (40%, 60%), 580 stroke: 0.5pt + black, 581 inset: 5pt, 582 [Justification for differing risk assessment], 583 [#get("RISK_RATIONALE")], 584 [Risk classified], 585 [#grid( 586 columns: (auto), 587 gutter: 1em, 588 [#checkbox(risk_class_low) *Business relationship #underline[without] increased risk*], 589 [#checkbox(not risk_class_low) *Business relationship #underline[with] increased risk*], 590 )] 591 ) 592 593 v(0.5em) 594 595 if ("" == get("HIGH_RISK_ACCEPTANCE_DATE")) [ 596 The decision of the Senior executive body on the acceptance of a business relationship with increased risk was #underline([not]) obtained. 597 ] else [ 598 The decision of the Senior executive body on the acceptance of a business relationship with increased risk was obtained on #underline([#get("RISK_ACCEPTANCE_DATE")]). 599 ] 600 601 pagebreak() 602 603 [ 604 = 4. Criteria for identification of increased risk transactions (transaction monitoring) 605 606 == 4.1 Criteria 607 608 Classification as as increased risk is compulsory if: 609 610 + Transactions for which assets with an equivalent value of CHF 100'000.- or more are physically introduced at the beginning of the business relationship, either at once or in a staggered manner 611 + Money and asset transfers ("money transfer") whereby a single transaction or multiple transactions which appear to be related reach or exceed the amount of CHF 5,000.- 612 + Payments from or to a country that is considered to be "high risk" or non-cooperative by the FATF and for which increased diligence is required 613 614 == 4.2 Additional criteria defined by the member 615 616 #grid( 617 columns: (auto, 1fr), 618 gutter: 0.5em, 619 align: (left, left), 620 image("pointing_finger.svg", height: 2em), 621 text(size: 9pt)[ 622 All members have to define min. 1 additional criterion for every business relationship to identify unusual transactions#footnote[ 623 Possible criteria (Art. 59 para. 2 SRO Regulations): 624 - the amount of inflowing and outflowing assets; *or* 625 - type, volume and frequency of transactions usual to the business relationship (considerable variance would be unusual); *or* 626 - type, volume and frequency of transactions usual to comparable business relationships (considerable variance would be unusual); *or* 627 - description of expected transaction patterns which the client notify the member of (considerable variance would be unusual); *or* 628 - The country of origin or destination of payments, especially in the case of payments from or to a country considered by the FATF as "high risk" or non-cooperative.] 629 ] 630 ) 631 632 ] 633 634 grid( 635 columns: (100%), 636 stroke: 0.5pt + black, 637 inset: 5pt, 638 align: (left, left), 639 [#get("TRANSACTION_RISK_RULE")] 640 ) 641 642 v(2em) 643 644 text(size: 9pt, style: "italic")[⚠ *This form has to be updated immediately if changes occur.*] 645 } 646 647 // Example usage: 648 #form(( 649 "VQF_MEMBER_NUMBER": "12345", 650 "FILE_NUMBER": "42", 651 "CUSTOMER_NAME": "Example Company AG", 652 "FILED_BY_NAME": "Jane Smith", 653 "FILING_DATE": "10.11.2025", 654 "PEP_FOREIGN": false, 655 "PEP_DOMESTIC": false, 656 "PEP_HIGH_RISK": false, 657 "PEP_ACCEPTANCE_DATE": "2024-02-13", 658 "ANY_RISK_CRITERION": false, 659 "PEP_INTERNATIONAL_ORGANIZATION": false, 660 "HIGH_RISK_COUNTRY": false, 661 "COUNTRY_RISK_ACCEPTANCE_DATE": "2024-2-13", 662 "COUNTRY_RISK_NATIONALITY_LEVEL": "LOW", 663 "INDUSTRY_RISK_LEVEL": "TRANSPARENT", 664 "CONTACT_RISK_LEVEL": "LOW", 665 "RISK_CLASSIFICATION_LEVEL": "NO_HIGH_RISK", 666 "TRANSACTION_RISK_RULE": "more than 50k/month", 667 "HIGH_RISK_ACCEPTANCE_DATE": "2024-3-20", 668 ))