vqf_902_13.typ (12067B)
1 // VQF 902.13 Declaration for trusts (T) Template 2 // Pass JSON data as content dictionary 3 #import "@taler-exchange/common:0.0.0": vqflogo, 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.13#linebreak() 15 Version of 1 September 2021 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 let get(key, default: "") = { 28 data.at(key, default: default) 29 } 30 31 // Header 32 align(center, text(size: 11pt, weight: "bold")[CONFIDENTIAL]) 33 34 v(0.5em) 35 36 grid( 37 columns: (50%, 50%), 38 gutter: 1em, 39 vqflogo(), 40 align(right)[ 41 #table( 42 columns: (1fr, 1fr), 43 stroke: 0.5pt + black, 44 inset: 5pt, 45 align: (left, left), 46 [VQF member no.], [AMLA File No.], 47 [#get("VQF_MEMBER_NUMBER")], [#get("FILE_NUMBER")] 48 ) 49 ] 50 ) 51 52 v(1em) 53 54 align(left, text(size: 14pt, weight: "bold")[Declaration for trusts (T)]) 55 56 v(-1em) 57 line(length:100%) 58 59 v(1em) 60 61 text(weight: "bold")[Contracting partner:] 62 63 v(0.5em) 64 65 table( 66 columns: (1fr), 67 stroke: 0.5pt + black, 68 inset: 5pt, 69 [#get("IDENTITY_CONTRACTING_PARTNER")] 70 ) 71 72 v(1em) 73 74 text()[The undersigned hereby declare(s) that as trustee or a member of highest supervisory body of an underlying company of a trust known as:] 75 76 v(0.5em) 77 78 table( 79 columns: (1fr), 80 stroke: 0.5pt + black, 81 inset: 5pt, 82 [#get("LEGAL_STRUCTURE_NAME")] 83 ) 84 85 v(1em) 86 87 text()[and, such capacity, provide(s) to best of his/her/their knowledge the following information:] 88 89 v(1.5em) 90 91 // Section 1: Trust Information 92 [= 1. Name and information pertaining to the trust (tick the two boxes applicable):] 93 94 v(0.5em) 95 96 let entity_type = get("LEGAL_STRUCTURE_TYPE") 97 let entity_revoc = get("LEGAL_STRUCTURE_REVOCABILITY") 98 99 block(breakable: false)[ 100 #grid( 101 columns: (auto, 1fr, auto, 1fr), 102 gutter: 1em, 103 row-gutter: 0.8em, 104 [Type of trust:], 105 [#checkbox(entity_type == "DISCRETIONARY") Discretionary trust], 106 [or], 107 [#checkbox(entity_type == "NON_DISCRETIONARY") Non-discretionary trust], 108 [and], [], [], [], 109 [Revocability:], 110 [#checkbox(entity_revoc == "REVOCABLE") Revocable trust], 111 [or], 112 [#checkbox(entity_revoc == "IRREVOCABLE") Irrevocable trust], 113 ) 114 ] 115 116 v(1.5em) 117 118 // Section 2: Settlor Information 119 [= 2. Information pertaining to the (ultimate economic, not fiduciary) settlor of the trust (individual(s) or entity/-ies):] 120 121 v(0.5em) 122 123 let settlors = get("ORIGINATOR_LIST", default: ()) 124 let has_settlors = type(settlors) == array and settlors.len() > 0 125 126 for settlor in (if has_settlors {settlors} else {((:),)}) { 127 let get_settlor(key) = { 128 if settlor != (:) { 129 settlor.at(key, default: "") 130 } else { 131 "" 132 } 133 } 134 135 block(breakable: false)[ 136 #table( 137 columns: (35%, 65%), 138 stroke: 0.5pt + black, 139 inset: 5pt, 140 [Full name/entity:], [#get_settlor("NAME_OR_ENTITY")], 141 [Actual address of domicile/registered office:], [#get_settlor("DOMICILE_OR_REGISTERED_OFFICE")], 142 [Country:], [#get_settlor("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 143 [Date of birth:], [#get_settlor("DATE_OF_BIRTH")], 144 [Nationality:], [#get_settlor("NATIONALITY")], 145 [Date of death (if deceased):], [#get_settlor("DATE_OF_DEATH")] 146 ) 147 ] 148 v(0.5em) 149 } 150 151 let settlor_revoc = get("ORIGINATOR_HAS_REVOCATION_RIGHT", default: false) 152 if entity_revoc == "REVOCABLE" [ 153 #table( 154 columns: (80%, 20%), 155 stroke: 0.5pt + black, 156 inset: 5pt, 157 [In case of a revocable trust: 158 \ Does the settlor have the right to revoke the trust?], 159 [#grid( 160 columns: (auto, auto), 161 stroke: 0.5pt + black, 162 inset: 5pt, 163 [#checkbox(has_settlors and settlor_revoc) Yes], 164 [#checkbox(has_settlors and not settlor_revoc) No], 165 )] 166 ) 167 ] 168 169 170 v(1.5em) 171 172 // Section 3: Pre-existing Trust 173 [= 3. If the trust results from a restructuring of a pre-existing trust (re-settlement) or a merger of pre-existing trusts, the following information pertaining to the (actual) settlor of the pre-existing trust(s) has to be given:] 174 175 v(0.5em) 176 177 let pred_settlors = get("PREDECESSOR_ORIGINATOR_LIST", default: ()) 178 let has_pred_settlors = type(pred_settlors) == array and pred_settlors.len() > 0 179 180 if has_pred_settlors { 181 for pred in pred_settlors { 182 let get_pred(key) = { 183 pred.at(key, default: "") 184 } 185 186 block(breakable: false)[ 187 #table( 188 columns: (35%, 65%), 189 stroke: 0.5pt + black, 190 inset: 5pt, 191 [Full name/entity:], [#get_pred("NAME_OR_ENTITY")], 192 [Actual address of domicile/registered office:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE")], 193 [Country:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 194 [Date of birth:], [#get_pred("DATE_OF_BIRTH")], 195 [Nationality:], [#get_pred("NATIONALITY")], 196 [Date of death (if deceased):], [#get_pred("DATE_OF_DEATH")] 197 ) 198 ] 199 v(0.5em) 200 } 201 } else { 202 table( 203 columns: (35%, 65%), 204 stroke: 0.5pt + black, 205 inset: 5pt, 206 [Full name/entity:], [], 207 [Actual address of domicile/registered office:], [], 208 [Country:], [], 209 [Date of birth:], [], 210 [Nationality:], [], 211 [Date of death (if deceased):], [] 212 ) 213 } 214 215 // Section 4: Beneficiary Information 216 [= 4. Information] 217 218 v(0.5em) 219 220 [== a) pertaining to the beneficiary/-ies at the time of the signing of this form:] 221 222 v(0.5em) 223 224 let beneficiaries = get("BENEFICIARY_LIST", default: ()) 225 let has_benef = type(beneficiaries) == array and beneficiaries.len() > 0 226 let has_claim = get("BENEFICIARIES_HAVE_DISTRIBUTION_CLAIM", default: false) 227 228 if has_benef { 229 for benef in beneficiaries { 230 let get_benef(key) = { 231 benef.at(key, default: "") 232 } 233 block(breakable: false)[ 234 #table( 235 columns: (35%, 65%), 236 stroke: 0.5pt + black, 237 inset: 5pt, 238 [Full name/entity:], [#get_benef("NAME_OR_ENTITY")], 239 [Actual address of domicile/registered office:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE")], 240 [Country:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 241 [Date of birth:], [#get_benef("DATE_OF_BIRTH")], 242 [Nationality:], [#get_benef("NATIONALITY")] 243 ) 244 ] 245 v(0.5em) 246 } 247 } else { 248 table( 249 columns: (35%, 65%), 250 stroke: 0.5pt + black, 251 inset: 5pt, 252 [Full name/entity:], [], 253 [Actual address of domicile/registered office:], [], 254 [Country:], [], 255 [Date of birth:], [], 256 [Nationality:], [] 257 ) 258 } 259 260 table( 261 columns: (80%, 20%), 262 stroke: 0.5pt + black, 263 inset: 5pt, 264 [Has/Have the beneficiary/-ies an actual right to claim a distribution?], 265 [#grid( 266 columns: (auto, auto), 267 stroke: 0.5pt + black, 268 inset: 5pt, 269 [#checkbox(has_benef and has_claim) Yes], 270 [#checkbox(has_benef and not has_claim) No], 271 )] 272 ) 273 274 v(1em) 275 276 [== b) and in addition to certain beneficiaries or if no beneficiary/-ies has/have been determined, pertaining to (a) group(s) of beneficiaries (e.g. descendants of the settlor) known at the time of the signing of this form:] 277 278 v(0.5em) 279 280 table( 281 columns: (1fr), 282 stroke: 0.5pt + black, 283 inset: 5pt, 284 [#get("BENEFICIARY_GROUPS")] 285 ) 286 287 v(1.5em) 288 289 // Section 5: Protectors and Other Persons 290 [= 5. Information pertaining to the protector(s) as well as (a) further person(s) having the right to revoke the trust (in case of revocable trusts) or to appoint the trustee of a trust:] 291 292 v(0.5em) 293 294 [== a) Information pertaining to the protector(s)] 295 296 v(0.5em) 297 298 let protectors = get("PROTECTOR_LIST", default: ()) 299 let has_prot = type(protectors) == array and protectors.len() > 0 300 let prot_revoc = get("PROTECTOR_HAS_REVOCATION_RIGHT", default: false) 301 302 if has_prot { 303 for prot in protectors { 304 let get_prot(key) = { 305 prot.at(key, default: "") 306 } 307 308 block(breakable: false)[ 309 #table( 310 columns: (35%, 65%), 311 stroke: 0.5pt + black, 312 inset: 5pt, 313 [Full name/entity:], [#get_prot("NAME_OR_ENTITY")], 314 [Actual address of domicile/registered office:], [#get_prot("DOMICILE_OR_REGISTERED_OFFICE")], 315 [Country:], [#get_prot("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 316 [Date of birth:], [#get_prot("DATE_OF_BIRTH")], 317 [Nationality:], [#get_prot("NATIONALITY")] 318 ) 319 ] 320 v(0.5em) 321 } 322 } else { 323 block(breakable: false)[ 324 #table( 325 columns: (35%, 65%), 326 stroke: 0.5pt + black, 327 inset: 5pt, 328 [Full name/entity:], [], 329 [Actual address of domicile/registered office:], [], 330 [Country:], [], 331 [Date of birth:], [], 332 [Nationality:], [] 333 ) 334 ] 335 } 336 337 table( 338 columns: (80%, 20%), 339 stroke: 0.5pt + black, 340 inset: 5pt, 341 [In case of a revocable trust: 342 \ Does the protector have the right to revoke the trust?], 343 [#grid( 344 columns: (auto, auto), 345 stroke: 0.5pt + black, 346 inset: 5pt, 347 [#checkbox((entity_revoc == "REVOCABLE") and has_prot and prot_revoc) Yes], 348 [#checkbox((entity_revoc == "REVOCABLE") and has_prot and not prot_revoc) No], 349 )] 350 ) 351 352 v(0.5em) 353 354 v(1em) 355 356 [== b) Information pertaining to (a) further person(s)] 357 358 v(0.5em) 359 360 let others = get("FURTHER_PERSON_LIST", default: ()) 361 let has_others = type(others) == array and others.len() > 0 362 363 if has_others { 364 for other in others { 365 let get_other(key) = { 366 other.at(key, default: "") 367 } 368 369 block(breakable: false)[ 370 #table( 371 columns: (35%, 65%), 372 stroke: 0.5pt + black, 373 inset: 5pt, 374 [Last name(s), first name(s)/entity:], [#get_other("NAME_OR_ENTITY")], 375 [Actual address of domicile/registered office:], [#get_other("DOMICILE_OR_REGISTERED_OFFICE")], 376 [Country:], [#get_other("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 377 [Date(s) of birth:], [#get_other("DATE_OF_BIRTH")], 378 [Nationality:], [#get_other("NATIONALITY")] 379 ) 380 ] 381 v(0.5em) 382 } 383 } else { 384 table( 385 columns: (35%, 65%), 386 stroke: 0.5pt + black, 387 inset: 5pt, 388 [Last name(s), first name(s)/entity:], [], 389 [Actual address of domicile/registered office:], [], 390 [Country:], [], 391 [Date(s) of birth:], [], 392 [Nationality:], [] 393 ) 394 } 395 396 v(0.5em) 397 398 let other_revoc = get("FURTHER_PERSON_HAS_REVOCATION_RIGHT", default: false) 399 if entity_revoc == "REVOCABLE" [ 400 #table( 401 columns: (80%, 20%), 402 stroke: 0.5pt + black, 403 inset: 5pt, 404 [In case of a revocable trust: Has/have this/these further person(s) the right to revoke the trust?], 405 [#grid( 406 columns: (auto, 1fr), 407 gutter: 0.5em, 408 checkbox(has_others and other_revoc), [Yes], 409 checkbox(has_others and not other_revoc), [No], 410 )] 411 ) 412 ] 413 414 v(1.5em) 415 416 text()[The contracting partner(s) hereby declare(s) to be entitled to open a business relationship for the trust above or its underlying company.] 417 418 v(0.5em) 419 420 text()[The contracting partner(s) hereby undertake(s) to automatically inform of any changes to the information contained herein.] 421 422 v(1.5em) 423 424 // Signature 425 table( 426 columns: (1fr, 1fr), 427 stroke: 0.5pt + black, 428 inset: 5pt, 429 [Date:], [Signature(s):], 430 [#get("SIGN_DATE")], [#get("SIGNATURE")] 431 ) 432 433 v(1em) 434 435 text(size: 9pt, style: "italic")[ 436 It is a criminal offence to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery). 437 ] 438 }