vqf_902_13.typ (12744B)
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("ENTITY_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("ENTITY_TYPE") 97 let entity_revoc = get("ENTITY_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("FOUNDER_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("PERSON_ENTITY_NAME")], 141 [Actual address of domicile/registered office:], [#get_settlor("PERSON_DOMICILE_REGISTERED_OFFICE")], 142 [Country:], [#get_settlor("PERSON_COUNTRY")], 143 [Date of birth:], [#get_settlor("PERSON_DATE_OF_BIRTH")], 144 [Nationality:], [#get_settlor("PERSON_NATIONALITY")], 145 [Date of death (if deceased):], [#get_settlor("PERSON_DATE_OF_DEATH")] 146 ) 147 ] 148 let settlor_revoc = get_settlor("FOUNDER_HAS_REVOCATION_RIGHT") 149 table( 150 columns: (80%, 20%), 151 stroke: 0.5pt + black, 152 inset: 5pt, 153 [In case of a revocable trust: 154 \ Does the settlor have the right to revoke the trust?], 155 [#grid( 156 columns: (auto, auto), 157 stroke: 0.5pt + black, 158 inset: 5pt, 159 [#checkbox((entity_revoc == "REVOCABLE") and settlor_revoc) Yes], 160 [#checkbox((entity_revoc == "REVOCABLE") and not settlor_revoc) No], 161 )] 162 ) 163 v(0.5em) 164 165 } 166 167 168 v(1.5em) 169 170 // Section 3: Pre-existing Trust 171 [= 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:] 172 173 v(0.5em) 174 175 let has_pred = get("HAS_PREDECESSOR_ENTITY") 176 let pred_settlors = get("PREDECESSOR_FOUNDER_LIST", default: ()) 177 let has_pred_settlors = has_pred and type(pred_settlors) == array and pred_settlors.len() > 0 178 179 if has_pred_settlors { 180 for pred in pred_settlors { 181 let get_pred(key) = { 182 pred.at(key, default: "") 183 } 184 185 block(breakable: false)[ 186 #table( 187 columns: (35%, 65%), 188 stroke: 0.5pt + black, 189 inset: 5pt, 190 [Full name/entity:], [#get_pred("PERSON_ENTITY_NAME")], 191 [Actual address of domicile/registered office:], [#get_pred("PERSON_DOMICILE_REGISTERED_OFFICE")], 192 [Country:], [#get_pred("PERSON_COUNTRY")], 193 [Date of birth:], [#get_pred("PERSON_DATE_OF_BIRTH")], 194 [Nationality:], [#get_pred("PERSON_NATIONALITY")], 195 [Date of death (if deceased):], [#get_pred("PERSON_DATE_OF_DEATH")] 196 ) 197 ] 198 v(0.5em) 199 } 200 } else { 201 table( 202 columns: (35%, 65%), 203 stroke: 0.5pt + black, 204 inset: 5pt, 205 [Full name/entity:], [], 206 [Actual address of domicile/registered office:], [], 207 [Country:], [], 208 [Date of birth:], [], 209 [Nationality:], [], 210 [Date of death (if deceased):], [] 211 ) 212 } 213 214 // Section 4: Beneficiary Information 215 [= 4. Information] 216 217 v(0.5em) 218 219 [== a) pertaining to the beneficiary/-ies at the time of the signing of this form:] 220 221 v(0.5em) 222 223 let beneficiaries = get("BENEFICIARY_LIST", default: ()) 224 let has_benef = type(beneficiaries) == array and beneficiaries.len() > 0 225 226 if has_benef { 227 for benef in beneficiaries { 228 let get_benef(key) = { 229 benef.at(key, default: "") 230 } 231 let has_claim = get_benef("BENEFICIARY_HAS_CLAIM_RIGHT") 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("PERSON_ENTITY_NAME")], 239 [Actual address of domicile/registered office:], [#get_benef("PERSON_DOMICILE_REGISTERED_OFFICE")], 240 [Country:], [#get_benef("PERSON_COUNTRY")], 241 [Date of birth:], [#get_benef("PERSON_DATE_OF_BIRTH")], 242 [Nationality:], [#get_benef("PERSON_NATIONALITY")] 243 ) 244 #table( 245 columns: (80%, 20%), 246 stroke: 0.5pt + black, 247 inset: 5pt, 248 [Has the beneficiary an actual right to claim a distribution?], 249 [#grid( 250 columns: (auto, auto), 251 stroke: 0.5pt + black, 252 inset: 5pt, 253 [#checkbox(has_claim) Yes], 254 [#checkbox(not has_claim) No], 255 )] 256 ) 257 ] 258 v(0.5em) 259 } 260 } else { 261 table( 262 columns: (35%, 65%), 263 stroke: 0.5pt + black, 264 inset: 5pt, 265 [Full name/entity:], [], 266 [Actual address of domicile/registered office:], [], 267 [Country:], [], 268 [Date of birth:], [], 269 [Nationality:], [] 270 ) 271 table( 272 columns: (80%, 20%), 273 stroke: 0.5pt + black, 274 inset: 5pt, 275 [Has the beneficiary an actual right to claim a distribution?], 276 [#grid( 277 columns: (auto, auto), 278 stroke: 0.5pt + black, 279 inset: 5pt, 280 [#checkbox(false) Yes], 281 [#checkbox(false) No], 282 )] 283 ) 284 } 285 286 v(1em) 287 288 [== 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:] 289 290 v(0.5em) 291 292 table( 293 columns: (1fr), 294 stroke: 0.5pt + black, 295 inset: 5pt, 296 [#get("BENEFICIARY_GROUP_DESCRIPTION")] 297 ) 298 299 v(1.5em) 300 301 // Section 5: Protectors and Other Persons 302 [= 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:] 303 304 v(0.5em) 305 306 [== a) Information pertaining to the protector(s)] 307 308 v(0.5em) 309 310 let protectors = get("PROTECTOR_LIST", default: ()) 311 let has_prot = type(protectors) == array and protectors.len() > 0 312 313 if has_prot { 314 for prot in protectors { 315 let get_prot(key) = { 316 prot.at(key, default: "") 317 } 318 319 let prot_revoc = get_prot("PROTECTOR_HAS_REVOCATION_RIGHT") 320 block(breakable: false)[ 321 #table( 322 columns: (35%, 65%), 323 stroke: 0.5pt + black, 324 inset: 5pt, 325 [Full name)/entity:], [#get_prot("PERSON_ENTITY_NAME")], 326 [Actual address of domicile/registered office:], [#get_prot("PERSON_DOMICILE_REGISTERED_OFFICE")], 327 [Country:], [#get_prot("PERSON_COUNTRY")], 328 [Date of birth:], [#get_prot("PERSON_DATE_OF_BIRTH")], 329 [Nationality:], [#get_prot("PERSON_NATIONALITY")] 330 ) 331 #table( 332 columns: (80%, 20%), 333 stroke: 0.5pt + black, 334 inset: 5pt, 335 [In case of a revocable trust: 336 \ Does the protector have the right to revoke the trust?], 337 [#grid( 338 columns: (auto, auto), 339 stroke: 0.5pt + black, 340 inset: 5pt, 341 [#checkbox(prot_revoc) Yes], 342 [#checkbox(not prot_revoc) No], 343 )] 344 ) 345 ] 346 v(0.5em) 347 } 348 } else { 349 block(breakable: false)[ 350 #table( 351 columns: (35%, 65%), 352 stroke: 0.5pt + black, 353 inset: 5pt, 354 [Full name/entity:], [], 355 [Actual address of domicile/registered office:], [], 356 [Country:], [], 357 [Date of birth:], [], 358 [Nationality:], [] 359 ) 360 #table( 361 columns: (80%, 20%), 362 stroke: 0.5pt + black, 363 inset: 5pt, 364 [In case of a revocable trust: 365 \ Does the protector have the right to revoke the trust?], 366 [#grid( 367 columns: (auto, auto), 368 stroke: 0.5pt + black, 369 inset: 5pt, 370 [#checkbox(false) Yes], 371 [#checkbox(false) No], 372 )] 373 )] 374 } 375 376 v(0.5em) 377 378 v(1em) 379 380 [== b) Information pertaining to (a) further person(s)] 381 382 v(0.5em) 383 384 let others = get("OTHER_PERSON_LIST", default: ()) 385 let has_others = type(others) == array and others.len() > 0 386 387 if has_others { 388 for other in others { 389 let get_other(key) = { 390 other.at(key, default: "") 391 } 392 393 block(breakable: false)[ 394 #table( 395 columns: (35%, 65%), 396 stroke: 0.5pt + black, 397 inset: 5pt, 398 [Last name(s), first name(s)/entity:], [#get_other("PERSON_ENTITY_NAME")], 399 [Actual address of domicile/registered office:], [#get_other("PERSON_DOMICILE_REGISTERED_OFFICE")], 400 [Country:], [#get_other("PERSON_COUNTRY")], 401 [Date(s) of birth:], [#get_other("PERSON_DATE_OF_BIRTH")], 402 [Nationality:], [#get_other("PERSON_NATIONALITY")] 403 ) 404 ] 405 v(0.5em) 406 } 407 } else { 408 table( 409 columns: (35%, 65%), 410 stroke: 0.5pt + black, 411 inset: 5pt, 412 [Last name(s), first name(s)/entity:], [], 413 [Actual address of domicile/registered office:], [], 414 [Country:], [], 415 [Date(s) of birth:], [], 416 [Nationality:], [] 417 ) 418 } 419 420 v(0.5em) 421 422 let other_revoc = get("OTHER_PERSON_HAS_REVOCATION_RIGHT") 423 if entity_revoc == "REVOCABLE" [ 424 #table( 425 columns: (80%, 20%), 426 stroke: 0.5pt + black, 427 inset: 5pt, 428 [In case of a revocable trust: Has/have this/these further person(s) the right to revoke the trust?], 429 [#grid( 430 columns: (auto, 1fr), 431 gutter: 0.5em, 432 checkbox(other_revoc), [Yes], 433 checkbox(not other_revoc), [No], 434 )] 435 ) 436 ] 437 438 v(1.5em) 439 440 text()[The contracting partner(s) hereby declare(s) to be entitled to open a business relationship for the trust above or its underlying company.] 441 442 v(0.5em) 443 444 text()[The contracting partner(s) hereby undertake(s) to automatically inform of any changes to the information contained herein.] 445 446 v(1.5em) 447 448 // Signature 449 table( 450 columns: (1fr, 1fr), 451 stroke: 0.5pt + black, 452 inset: 5pt, 453 [Date:], [Signature(s):], 454 [#get("SIGN_DATE")], [#get("SIGNATURE")] 455 ) 456 457 v(1em) 458 459 text(size: 9pt, style: "italic")[ 460 It is a criminal offence to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery). 461 ] 462 }