commit e1a61ef36df858854ec1419d09502e1b1050006c
parent e26ece23824683275a37a4910b320ee8e35bd0fd
Author: Sebastian <sebasjm@gmail.com>
Date: Sun, 5 Jan 2025 16:26:42 -0300
removing section, label, order. adding form 15
Diffstat:
8 files changed, 200 insertions(+), 391 deletions(-)
diff --git a/gnu-taler-aml-attributes/Makefile b/gnu-taler-aml-attributes/Makefile
@@ -16,6 +16,7 @@ FORMS=VQF_902_1 \
VQF_902_13_protector \
VQF_902_13_settlor \
VQF_902_14 \
+ VQF_902_15 \
VQF_902_1_founder \
VQF_902_4 \
VQF_902_5 \
diff --git a/gnu-taler-aml-attributes/json.form-footer b/gnu-taler-aml-attributes/json.form-footer
@@ -1 +1 @@
-"":""},
+"":""},
+\ No newline at end of file
diff --git a/gnu-taler-aml-attributes/json.form-header b/gnu-taler-aml-attributes/json.form-header
@@ -1 +1,2 @@
- "{{Name}}": {
+
+ "{{Name}}": {
+\ No newline at end of file
diff --git a/gnu-taler-aml-attributes/json.header b/gnu-taler-aml-attributes/json.header
@@ -1 +1 @@
-{
+{
+\ No newline at end of file
diff --git a/gnu-taler-aml-attributes/json.template b/gnu-taler-aml-attributes/json.template
@@ -1,8 +1,5 @@
+
"{{Identifier}}": {
"required": {{Required = "true" ? 'true' : 'false'}},
- "type": "{{Type}}",
- "label": "{{Label}}",
-{{ #Order = 1 ? ' "order": '&Order&',
-' : ''}} "enumeration": {{ #Enumeration < 2 ? '[]' : #Enumeration = 2 ? '["'&Enumeration[0]&'","'&Enumeration[1]&'"]' : #Enumeration = 3 ? '["'&Enumeration[0]&'","'&Enumeration[1]&'","'&Enumeration[2]&'"]' : #Enumeration = 4 ? '["'&Enumeration[0]&'","'&Enumeration[1]&'","'&Enumeration[2]&'","'&Enumeration[3]&'"]' : #Enumeration = 5 ? '["'&Enumeration[0]&'","'&Enumeration[1]&'","'&Enumeration[2]&'","'&Enumeration[3]&'","'&Enumeration[4]&'"]' : #Enumeration = 6 ? '["'&Enumeration[0]&'","'&Enumeration[1]&'","'&Enumeration[2]&'","'&Enumeration[3]&'","'&Enumeration[4]&'","'&Enumeration[5]&'"]' : #Enumeration = 7 ? '["'&Enumeration[0]&'","'&Enumeration[1]&'","'&Enumeration[2]&'","'&Enumeration[3]&'","'&Enumeration[4]&'","'&Enumeration[5]&'","'&Enumeration[6]&'"]' : '["'&Enumeration[0]&'","'&Enumeration[1]&'","'&Enumeration[2]&'","'&Enumeration[3]&'","'&Enumeration[4]&'","'&Enumeration[5]&'","'&Enumeration[6]&'","'&Enumeration[7]&'"]' }},
- "section": "{{Section}}"
- },
+ "type": "{{Type}}"
+ },
+\ No newline at end of file
diff --git a/gnu-taler-aml-attributes/registry.rec b/gnu-taler-aml-attributes/registry.rec
@@ -3,34 +3,31 @@
# Registry for GNU Taler attributes, as per Design document 31
#
%rec: TalerAttributes
+%unique: Identifier
%key: Identifier
%type: Identifier Identifier_t
%typedef: Identifier_t regexp /^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789:\.]*$/
-%type: Required Required_t
-%typedef: Required_t regexp /^(true|false)*$/
-%type: Comment Comment_t
-%typedef: Comment_t regexp |^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 :\.,'-/%?]*$|
-# Define the form field ID
+# Define the form's field ID
%mandatory: Identifier
-%unique: Identifier
-# Use to specify the field type. Arrays and generics are allowed in typescript form.
+# Use to specify the form's field type. Arrays and generics are allowed in typescript form.
+# Literal values are enclosed by double quote `"` and enumerated type union by vertical bar `|`
%mandatory: Type
-# Define for which form this field belongs
+%type: Type Type_t
+%typedef: Type_t regexp !^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_'][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 \[\]|:\.,'-/]*$!
+# Define for which form this form's field belongs
%mandatory: Form
# True if a form submission should always contain a value.
%allowed: Required
-# Default short label for the field. Use english.
-%allowed: Label
-# Default long help text for the field. Use english.
-%allowed: Help
-# Use the enumeration if the field only allow a set of possible values.
-%allowed: Enumeration
-# Identification to visually group correlated fields
-%allowed: Section
-# Order of the field
-%allowed: Order
-%type: Order int
-%sort: Identifier Type Form Required Label Help Enumeration Order Section
+%type: Required Required_t
+%typedef: Required_t regexp /^(true|false)*$/
+# Description of the usage of the field
+%allowed: Description
+%type: Description Description_t
+%typedef: Description_t regexp |^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789 :\.,'-/?]*$|
+%sort: Identifier Type Form Required
+
+# Label Help Enumeration Order Section
+# FIXME: there is no need of the field to have the name of the form, remove it. So we can reuse the same field for multiple forms, reapeating the form name in the same fill.. for example for "FULL_NAME"
##########################
## All VQF forms
@@ -39,8 +36,7 @@
# Customer is the person with whom the member concludes the contract with regard to the financia service provided.
Identifier: OFFICER_FULL_NAME
-Help: Full legal name of the officer filling the form.
-Section: header
+Description: Full legal name of the officer filling the form.
Type: String
Form: VQF_902_1
Form: VQF_902_4
@@ -50,13 +46,11 @@ Form: VQF_902_11
Form: VQF_902_12
Form: VQF_902_13
Form: VQF_902_14
+Form: VQF_902_15
Required: true
-Label: Full name
-Order: 1
Identifier: FORM_FILLING_DATE
-Help: When the form was completed.
-Section: header
+Description: When the form was completed.
Type: AbsoluteDateTime
Form: VQF_902_1
Form: VQF_902_4
@@ -66,12 +60,10 @@ Form: VQF_902_11
Form: VQF_902_12
Form: VQF_902_13
Form: VQF_902_14
+Form: VQF_902_15
Required: true
-Label: Date
-Order: 2
Identifier: CUSTOMER_ID
-Section: header
Required: true
Type: String
Form: VQF_902_1
@@ -82,29 +74,27 @@ Form: VQF_902_11
Form: VQF_902_12
Form: VQF_902_13
Form: VQF_902_14
-Help: Customer system ID required to correlate different AML forms.
-Order: 3
+Form: VQF_902_15
+Description: Customer system ID required to correlate different AML forms.
Identifier: SIGN_DATE
-Help: Contracing partner signature,
-Section: footer
+Description: Contracing partner signature,
Type: AbsoluteDateTime
Form: VQF_902_9
Form: VQF_902_11
Form: VQF_902_12
Form: VQF_902_13
+Form: VQF_902_15
Required: true
-Order: 1
Identifier: SIGNATURE
-Section: footer
Form: VQF_902_9
Form: VQF_902_11
Form: VQF_902_12
Form: VQF_902_13
+Form: VQF_902_15
Type: String
Required: true
-Order: 2
##########################
## Form VQF 902.1e
@@ -117,161 +107,104 @@ Identifier: CUSTOMER_NATURAL_FULL_NAME
Required: true
Type: String
Form: VQF_902_1
-Section: 1
-Label: Full name
-Order: 1
Identifier: CUSTOMER_NATURAL_RESIDENTIAL
Required: true
Type: ResidentialAddress
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 2
-Label: Residential address
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_PHONE
Type: Phone
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 3
-Label: Telephone
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_EMAIL
Type: Email
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 4
-Label: E-mail
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_BIRTHDATE
Required: true
Type: AbsoluteDate
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 5
-Label: Date of birth
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_NATIONALITY
Required: true
Type: CountryCode
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 6
-Label: Nationality
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_NATIONAL_ID
Required: true
Type: String
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 7
-Label: Identification document
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_NATIONAL_ID_COPY
Required: true
Type: File
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 8
-Label: Picture of identification document
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_COMPANY_NAME
Type: String
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 9
-Label: Company name
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_REGISTERED_OFFICE
Type: String
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 10
-Label: Registered office
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_COMPANY_ID
Type: String
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 11
-Label: Company identification document
+Description: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_COMPANY_ID_COPY
Type: File
Form: VQF_902_1
-Section: 1
-Help: If the customer is a natural person.
-Order: 12
-Label: Picture of company identification document
+Description: If the customer is a natural person.
Identifier: CUSTOMER_ENTITY_COMPANY_NAME
Required: true
Type: String
Form: VQF_902_1
-Section: 1
-Help: If the customer is a legal entity.
-Order: 13
-Label: Company name
+Description: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_ADDRESS
Required: true
Type: BusinessAddress
Form: VQF_902_1
-Section: 1
-Help: If the customer is a legal entity.
-Order: 14
-Label: Domicile
+Description: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_CONTACT_PERSON_NAME
Type: String
Form: VQF_902_1
-Section: 1
-Help: If the customer is a legal entity.
-Order: 15
-Label: Contact person
+Description: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_PHONE
Type: Phone
Form: VQF_902_1
-Section: 1
-Help: If the customer is a legal entity.
-Order: 17
-Label: Telephone
+Description: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_EMAIL
Type: Email
Form: VQF_902_1
-Section: 1
-Help: If the customer is a legal entity.
-Order: 18
-Label: E-mail
+Description: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_ID
Required: true
Type: String
Form: VQF_902_1
-Section: 1
-Help: Not older than 12 month
-Order: 19
-Label: Identification document
+Description: Not older than 12 month
Identifier: CUSTOMER_ENTITY_ID_COPY
Required: true
Type: File
Form: VQF_902_1
-Section: 1
-Order: 20
-Label: Picutre of identification document
# 2
# Information of the founders
@@ -280,160 +213,92 @@ Label: Picutre of identification document
Identifier: FOUNDER_LIST
Type: Form<VQF_902_1_founder>[]
Form: VQF_902_1
-Section: 2
-Help: List of founder with the fields below.
+Description: List of founder with the fields below.
Required: true
-Order: 1
-Label: Founders
Identifier: FOUNDER_FULL_NAME
Type: String
Form: VQF_902_1_founder
Required: true
-Order: 1
-Label: Full name
Identifier: FOUNDER_RESIDENTIAL_ADDRESS
Type: ResidentialAddress
Form: VQF_902_1_founder
Required: true
-Order: 1
-Label: Residential address
Identifier: FOUNDER_BIRTHDATE
Type: AbsoluteDate
Form: VQF_902_1_founder
Required: true
-Order: 2
-Label: Date of birth
Identifier: FOUNDER_NATIONALITY
Type: CountryCode
Form: VQF_902_1_founder
Required: true
-Order: 3
-Label: Nationality
Identifier: FOUNDER_AUTHORIZATION_TYPE
-Section: 2
-Help: Signatory of representation
+Description: Signatory of representation
Type: String
Form: VQF_902_1_founder
Required: true
-Order: 4
-Label: Type of authorization
Identifier: FOUNDER_NATIONAL_ID
Type: String
Form: VQF_902_1_founder
Required: true
-Order: 5
-Label: Identification document
-Identifier: FOUNDER_NATIONAL__COPY
+Identifier: FOUNDER_NATIONAL_COPY
Type: File
Form: VQF_902_1_founder
Required: true
-Order: 6
-Label: Picutre of identification document
Identifier: FOUNDER_POWER_OF_ATTORNEY
-Enumeration: CR
-Enumeration: MANDATE
-Enumeration: OTHER
-Type: String
+Type: 'CR' | 'MANDATE' | 'OTHER' | String
Form: VQF_902_1_founder
Required: true
-Order: 7
-Label: Power of attorney arrangements
-
-Identifier: FOUNDER_POWER_OF_ATTORNEY_OTHER
-Type: Paragraph
-Form: VQF_902_1_founder
-Order: 8
-Label: Specify
# 3
# Acceptance of business relationship
Identifier: ACCEPTANCE_DATE
-Section: 3
-Help: Conclusion of the conract
+Description: Conclusion of the conract
Type: AbsoluteDate
+Description: Conclusion of contract
Form: VQF_902_1
-Order: 1
Identifier: ACCEPTANCE_METHOD
-Section: 3
-Enumeration: FACE_TO_FACE
-Enumeration: AUTHENTICATED_COPY
-Enumeration: RESIDENTIAL_ADDRESS_VALIDATED
-Type: String
+Type: 'FACE_TO_FACE' | 'AUTHENTICATED_COPY' | 'RESIDENTIAL_ADDRESS_VALIDATED'
Form: VQF_902_1
-Order: 2
-Label: Accepted by
Identifier: ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE
-Section: 3
-Enumeration: TO_THE_CUSTOMER
-Enumeration: HOLD_AT_BANK
-Enumeration: TO_THE_MEMBER
-Enumeration: TO_A_THIRD_PARTY
-Type: String
-Form: VQF_902_1
-Order: 3
-
-Identifier: ACCEPTANCE_CORRESPONDENCE_SERVICE_OTHER
-Section: 3
-Type: Paragraph
+Type: 'TO_THE_CUSTOMER' | 'HOLD_AT_BANK' | 'TO_THE_MEMBER' | 'TO_A_THIRD_PARTY' | String
Form: VQF_902_1
-Order: 3
-Help: Full name and address
-Label: Third party
Identifier: ACCEPTANCE_LANGUAGE
-Section: 3
Type: LangCode
Form: VQF_902_1
-Order: 4
-Label: Language
Identifier: ACCEPTANCE_FURTHER_INFO
-Section: 3
Type: String
Form: VQF_902_1
-Order: 5
-Label: Further information
# 4
# Information on the beneficial owner of the assets and/or controlling person
# defines the customer type
Identifier: CUSTOMER_TYPE
-Section: 4
-Enumeration: NATURAL
-Enumeration: LEGAL_ENTITY
-Enumeration: FOUNDATION
-Enumeration: TRUST
-Enumeration: LIFE_INSURANCE
-Enumeration: OTHER
-Type: String
+Type: 'NATURAL' | 'LEGAL_ENTITY' | 'FOUNDATION' | 'TRUST' | 'LIFE_INSURANCE' | 'OTHER'
Form: VQF_902_1
Required: true
-Order: 1
-Label: Customer type
-Help: Establishment of the beneficial owner of the assets and/or contrilling person
+Description: Establishment of the beneficial owner of the assets and/or contrilling person
# 5
# Embargo procedures/terrorism list
Identifier: EMBARGO_TERRORISM_INFO
-Section: 5
Type: Paragraph
Form: VQF_902_1
-Order: 2
-Label: Embargo information
-Help: Verification whether the customer, beneficial owners of the assets, controlling persons, authorised representatives or other involved persons are listed on an embargo-/terrorism list (date of verification/result)
+Description: Verification whether the customer, beneficial owners of the assets, controlling persons, authorised representatives or other involved persons are listed on an embargo-/terrorism list (date of verification/result)
# 6
# Type and purpose of business relationship
@@ -441,29 +306,37 @@ Help: Verification whether the customer, beneficial owners of the assets, contro
# In case of occasional customer that no customer profile (VQF No 902.5) is created.
Identifier: RELATIONSHIP_TYPE
-Section: 6
-Enumeration: MONEY_EXCHANGE
-Enumeration: MONEY_ASSET_TRANSFER
-Enumeration: OTHER
-Type: String
+Type: 'MONEY_EXCHANGE' | 'MONEY_ASSET_TRANSFER' | String
Form: VQF_902_1
-Order: 1
-Label: Type of business relationship
-
-Identifier: RELATIONSHIP_TYPE_OTHER
-Section: 6
-Type: String
-Form: VQF_902_1
-Order: 2
-Label: Specify
Identifier: RELATIONSHIP_PURPOSE
-Section: 6
Type: Paragraph
Form: VQF_902_1
-Order: 3
-Label: Purpose of the business relationship
-Help: Purpose of service requested
+Description: Purpose of service requested
+
+# 7
+# Enclosures
+
+Identifier: ENCLOSURE_CUSTOMER_DOCUMENTS
+Type: Boolean
+Form: VQF_902_1
+
+Identifier: ENCLOSURE_IDENTIFICATION_DOCUMENTS
+Type: Boolean
+Form: VQF_902_1
+
+Identifier: ENCLOSURE_BENEFICIAL_OWNER
+Type: Boolean
+Form: VQF_902_1
+
+Identifier: ENCLOSURE_CUSTOMER_PROFILE
+Type: Boolean
+Form: VQF_902_1
+
+Identifier: ENCLOSURE_RISK_PROFILE
+Type: Boolean
+Form: VQF_902_1
+
##########################
## Form VQF 902.4e
@@ -475,148 +348,95 @@ Help: Purpose of service requested
# Art 7
Identifier: PEP_FOREIGN
-Section: 1
-Help: True if the person is a PEP defined by 'Art 7 lit. g numeral 1'
+Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 1'
Type: Boolean
Form: VQF_902_4
Required: true
Identifier: PEP_DOMESTIC
-Section: 1
-Help: True if the person is a PEP defined by 'Art 7 lit. g numeral 2'
+Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 2'
Type: Boolean
Form: VQF_902_4
Required: true
Identifier: PEP_INTERNATIONAL_ORGANIZATION
-Section: 1
-Help: True if the person is a PEP defined by 'Art 7 lit. g numeral 3'
+Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 3'
Type: Boolean
Form: VQF_902_4
Required: true
Identifier: PEP_ACCEPTANCE_DATE
-Section: 1
-Help: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
+Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
Type: AbsoluteDateTime
Form: VQF_902_4
# 2. High risk or non-cooperative country
Identifier: HIGH_RISK_COUNTRY
-Section: 2
-Help: True if the person is in a country for which FATF requires incresed dilegence.
+Description: True if the person is in a country for which FATF requires incresed dilegence.
Type: Boolean
Form: VQF_902_4
Required: true
-Identifier: HIGH_RISK__ACCEPTANCE_DATE
-Section: 2
-Help: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
+Identifier: HIGH_RISK_ACCEPTANCE_DATE
+Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
Type: AbsoluteDateTime
Form: VQF_902_4
# 3. Business relationship risk
Identifier: COUNTRY_RISK_TYPE
-Section: 3
-Enumeration: NATIONALITY_CUSTOMER
-Enumeration: NATIONALITY_OWNER
-Enumeration: DOMICILE_CUSTOMER
-Enumeration: DOMICILE_OWNER
-Enumeration: DOMICILE_CONTROLLING
-Enumeration: BUSINESS_ACTIVITY
-Enumeration: PAYMENTS
-Type: String
+Type: 'NATIONALITY_CUSTOMER' | 'NATIONALITY_OWNER' | 'DOMICILE_CUSTOMER' | 'DOMICILE_OWNER' | 'DOMICILE_CONTROLLING' | 'BUSINESS_ACTIVITY' | 'PAYMENTS'
Form: VQF_902_4
Identifier: COUNTRY_RISK_LEVEL
-Section: 3
-Help: Based on 902.4.1 country list
-Enumeration: LOW
-Enumeration: MEDIUM
-Enumeration: HIGH
-Type: String
+Description: Based on 902.4.1 country list
+Type: 'LOW' | 'MEDIUM' | 'HIGH'
Form: VQF_902_4
Identifier: INDUSTRY_RISK_TYPE
-Section: 3
-Enumeration: CUSTOMER
-Enumeration: OWNER
-Type: String
+Type: 'CUSTOMER' | 'OWNER'
Form: VQF_902_4
Identifier: INDUSTRY_RISK_LEVEL
-Section: 3
-Enumeration: TRANSPARENT
-Enumeration: HIGH_CASH_TRANSACTION
-Enumeration: NOT_WELL_KNOWN
-Enumeration: HIGH_RISK_TRADE
-Enumeration: UNKNOWN_INDUSTRY
-Type: String
+Type: 'TRANSPARENT' | 'HIGH_CASH_TRANSACTION' | 'NOT_WELL_KNOWN' | 'HIGH_RISK_TRADE' | 'UNKNOWN_INDUSTRY'
Form: VQF_902_4
Identifier: CONTACT_RISK_LEVEL
-Section: 3
-Help: Based on 902.4.1 country list
-Enumeration: LOW
-Enumeration: MEDIUM
-Enumeration: HIGH
-Type: String
+Description: Based on 902.4.1 country list
+Type: 'LOW' | 'MEDIUM' | 'HIGH'
Form: VQF_902_4
Identifier: PRODUCT_RISK_LEVEL
-Section: 3
-Enumeration: EASY
-Enumeration: SOPHISTICATED
-Enumeration: OFFSHORE,
-Enumeration: COMPLEX_STRUCTURE
-Enumeration: LARGE_NUMBER_OF_ACCOUNTS
-Enumeration: COMPLEX_SERVICE
-Enumeration: FREQ_TRANS_WITH_HIGH_RISK
-Type: String
+Type: 'EASY' | 'SOPHISTICATED' | 'OFFSHORE' | 'COMPLEX_STRUCTURE' | 'LARGE_NUMBER_OF_ACCOUNTS' | 'COMPLEX_SERVICE' | 'FREQ_TRANS_WITH_HIGH_RISK'
Form: VQF_902_4
Identifier: EXTRA_CRITERA_1_RISK_DEFINITION
-Section: 3
-Help: Criteria description
+Description: Criteria description
Type: String
Form: VQF_902_4
Identifier: EXTRA_CRITERA_1_RISK_LEVEL
-Section: 3
-Help: Based on 902.4.1 country list
-Enumeration: LOW
-Enumeration: MEDIUM
-Enumeration: HIGH
-Type: String
+Description: Based on 902.4.1 country list
+Type: 'LOW' | 'MEDIUM' | 'HIGH'
Form: VQF_902_4
Identifier: EXTRA_CRITERA_2_RISK_DEFINITION
-Section: 3
-Help: Criteria description
+Description: Criteria description
Type: String
Form: VQF_902_4
Identifier: EXTRA_CRITERA_2_RISK_LEVEL
-Section: 3
-Help: Based on 902.4.1 country list
-Enumeration: LOW
-Enumeration: MEDIUM
-Enumeration: HIGH
-Type: String
+Description: Based on 902.4.1 country list
+Type: 'LOW' | 'MEDIUM' | 'HIGH'
Form: VQF_902_4
Identifier: RISK_CLASIFICATION_LEVEL
-Section: 3
-Enumeration: WITH
-Enumeration: WITHOUT
-Type: String
+Type: 'WITH' | 'WITHOUT'
Form: VQF_902_4
Identifier: RISK_CLASIFICATION_ACCEPTANCE_DATE
-Section: 3
-Help: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
+Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
Type: AbsoluteDateTime
Form: VQF_902_4
@@ -632,112 +452,92 @@ Form: VQF_902_4
# 1. Business activity
Identifier: BIZREL_PROFESSION
-Section: 1
-Help: Profession, business activities, etc. (former, current, potentially planned)
+Description: Profession, business activities, etc. (former, current, potentially planned)
Type: String
Form: VQF_902_5
# 2. Financial circumstances
Identifier: BIZREL_INCOME
-Section: 2
-Help: Income and assets, liabilities (estimated)
+Description: Income and assets, liabilities (estimated)
Type: String
Form: VQF_902_5
# 3. Origin of the deposited assets involved
Identifier: BIZREL_ORIGIN_AMOUNT
-Section: 3
-Help: Nature, amount and currency of the involved assets.
+Description: Nature, amount and currency of the involved assets.
Type: Amount
Form: VQF_902_5
Required: true
Identifier: BIZREL_ORIGIN_CATEGORY
-Section: 3
-Enumeration: SAVINGS
-Enumeration: OWN_BUSINESS
-Enumeration: INHERITANCE
-Enumeration: OTHER
-Type: String
+Type: 'SAVINGS' | 'OWN_BUSINESS' | 'INHERITANCE' | 'OTHER'
Form: VQF_902_5
Required: true
Identifier: BIZREL_ORIGIN_CATEGORY_OTHER
-Section: 3
Type: String
Form: VQF_902_5
Identifier: BIZREL_ORIGIN_DETAIL
-Section: 3
-Help: Define the category if 'other'.
+Description: Define the category if 'other'.
Type: Paragraph
Form: VQF_902_5
# 4. Nature and purpose
Identifier: BIZREL_PURPOSE
-Section: 4
-Help: Purpose of the business relationship.
+Description: Purpose of the business relationship.
Type: String
Form: VQF_902_5
Identifier: BIZREL_DEVELOPMENT
-Section: 4
-Help: Information on the planned development of the business relationship and the assets.
+Description: Information on the planned development of the business relationship and the assets.
Type: String
Form: VQF_902_5
Identifier: BIZREL_FINANCIAL_VOLUME
-Section: 4
-Help: In the case of cash or money and asset transfer transacction with regular customer
+Description: In the case of cash or money and asset transfer transacction with regular customer
Type: String
Form: VQF_902_5
Identifier: BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME
-Section: 4
-Help: In the case of cash or money and asset transfer transacction with regular customer
+Description: In the case of cash or money and asset transfer transacction with regular customer
Type: String
Form: VQF_902_5
Identifier: BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS
-Section: 4
-Help: In the case of cash or money and asset transfer transacction with regular customer
+Description: In the case of cash or money and asset transfer transacction with regular customer
Type: BusinessAddress
Form: VQF_902_5
Identifier: BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT
-Section: 4
-Help: In the case of cash or money and asset transfer transacction with regular customer
+Description: In the case of cash or money and asset transfer transacction with regular customer
Type: String
Form: VQF_902_5
# 5. Third parties
Identifier: BIZREL_THIRDPARTY_RELATIONSHIP
-Section: 5
-Help: Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship.
+Description: Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship.
Type: String
Form: VQF_902_5
Identifier: BIZREL_THIRDPARTY_AMLA_FILES
-Section: 5
-Help: Relation to other AMLA-files.
+Description: Relation to other AMLA-files.
Type: String
Form: VQF_902_5
Identifier: BIZREL_THIRDPARTY_REFERENCES
-Section: 5
-Help: Introducer / agents / references.
+Description: Introducer / agents / references.
Type: String
Form: VQF_902_5
# 6. Further information
Identifier: BIZREL_FURTHER_INFO
-Section: 6
-Help: Other relevant information.
+Description: Other relevant information.
Type: String
Form: VQF_902_5
@@ -751,14 +551,12 @@ Form: VQF_902_5
# Identity of beneficial owner
Identifier: IDENTITY_CONTRACTING_PARTNER
-Section: 1
Type: Paragraph
Form: VQF_902_9
Required: true
Identifier: IDENTITY_LIST
-Section: 2
-Help: The beneficial owners of the assets involved in the business relationship.
+Description: The beneficial owners of the assets involved in the business relationship.
Type: Form<VQF_902_9_identity>[]
Form: VQF_902_9
@@ -789,28 +587,21 @@ Required: true
# controlling person of the operation legal entity and partnerships
Identifier: CONTROLLING_ENTITY_CONTRACTING_PARTNER
-Section: 1
Type: Paragraph
Form: VQF_902_11
Required: true
Identifier: CONTROLLING_ENTITY_LEVEL
-Section: 2
-Enumeration: 25_MORE_RIGHTS
-Enumeration: OTHER_WAY
-Enumeration: DIRECTOR
-Type: String
+Type: '25_MORE_RIGHTS' | 'OTHER_WAY' | 'DIRECTOR'
Form: VQF_902_11
Required: true
Identifier: CONTROLLING_ENTITY_FULL_NAME
-Section: 3
Type: String
Form: VQF_902_11
Required: true
Identifier: CONTROLLING_ENTITY_DOMICILE
-Section: 3
Type: ResidentialAddress
Form: VQF_902_11
Required: true
@@ -818,8 +609,7 @@ Required: true
Identifier: CONTROLLING_ENTITY_THIRD_PERSON
Type: Boolean
Form: VQF_902_11
-Section: 4
-Help: Is a third person the beneficial owner of the assets?
+Description: Is a third person the beneficial owner of the assets?
Required: true
##########################
@@ -829,13 +619,11 @@ Required: true
# foundations
Identifier: FOUNDATION_CONTRACTING_PARTNER
-Section: 0
Type: Paragraph
Form: VQF_902_12
Required: true
Identifier: FOUNDATION_KNOWN_AS
-Section: 0
Type: String
Form: VQF_902_12
Required: true
@@ -843,19 +631,16 @@ Required: true
# 1. About the foundation
Identifier: FOUNDATION_NAME
-Section: 1
Type: String
Form: VQF_902_12
Required: true
Identifier: FOUNDATION_DISCRETIONARY
-Section: 1
Type: Boolean
Form: VQF_902_12
Required: true
Identifier: FOUNDATION_REVOCABLE
-Section: 1
Type: Boolean
Form: VQF_902_12
Required: true
@@ -863,7 +648,6 @@ Required: true
# 2. About the founder
Identifier: FOUNDATION_FOUNDER_LIST
-Section: 2
Type: Form<VQF_902_12_founder>[]
Form: VQF_902_12
Required: true
@@ -901,7 +685,6 @@ Required: true
# 3. About the pre-existing foundation
Identifier: FOUNDATION_PRE_LIST
-Section: 3
Type: Form<VQF_902_12_pre>[]
Form: VQF_902_12
Required: true
@@ -939,7 +722,6 @@ Required: true
# 4. Beneficiaries information
Identifier: FOUNDATION_BENEFICIARY_LIST
-Section: 4
Type: Form<VQF_902_12_beneficiary>[]
Form: VQF_902_12
Required: true
@@ -970,12 +752,11 @@ Form: VQF_902_12_beneficiary
Identifier: FOUNDATION_BENEFICIARY_ADDITION
Type: Paragraph
-Form: VQF_902_12_beneficiary
+Form: VQF_902_12
# 5. Further person with right to nominate representatives
Identifier: FOUNDATION_REPRESENTATIVE_LIST
-Section: 5
Type: Form<VQF_902_12_representative>[]
Form: VQF_902_12
Required: true
@@ -1017,13 +798,11 @@ Required: true
# trusts
Identifier: TRUST_CONTRACTING_PARTNER
-Section: 0
Type: Paragraph
Form: VQF_902_13
Required: true
Identifier: TRUST_KNOWN_AS
-Section: 0
Type: String
Form: VQF_902_13
Required: true
@@ -1031,19 +810,16 @@ Required: true
# 1. About the trust
Identifier: TRUST_NAME
-Section: 1
Type: String
Form: VQF_902_13
Required: true
Identifier: TRUST_DISCRETIONARY
-Section: 1
Type: Boolean
Form: VQF_902_13
Required: true
Identifier: TRUST_REVOCABLE
-Section: 1
Type: Boolean
Form: VQF_902_13
Required: true
@@ -1051,7 +827,6 @@ Required: true
# 2. About the settlor of the trust
Identifier: TRUST_SETTLOR_LIST
-Section: 2
Type: Form<VQF_902_13_settlor>[]
Form: VQF_902_13
Required: true
@@ -1089,7 +864,6 @@ Required: true
# 3. About the pre-existing trust`
Identifier: TRUST_PRE_LIST
-Section: 3
Type: Form<VQF_902_13_pre>[]
Form: VQF_902_13
Required: true
@@ -1121,7 +895,6 @@ Form: VQF_902_13_pre
# 4. Beneficiaries information
Identifier: TRUST_BENEFICIARY_LIST
-Section: 4
Type: Form<VQF_902_13_beneficiary>[]
Form: VQF_902_13
Required: true
@@ -1158,7 +931,6 @@ Form: VQF_902_13_beneficiary
# 5. Further person with right to nominate representatives
Identifier: TRUST_PROTECTOR_LIST
-Section: 5
Type: Form<VQF_902_13_protector>[]
Form: VQF_902_13
Required: true
@@ -1188,7 +960,6 @@ Type: Boolean
Form: VQF_902_13_protector
Identifier: TRUST_FURTHER_LIST
-Section: 5
Type: Form<VQF_902_13_further>[]
Form: VQF_902_13_further
Required: true
@@ -1227,8 +998,7 @@ Form: VQF_902_13_further
# 1. Reason for special clarifications
Identifier: INCRISK_REASON
-Section: 1
-Help: Description of the circumstances/transactions, which triggered the special clarifications
+Description: Description of the circumstances/transactions, which triggered the special clarifications
Type: String
Form: VQF_902_14
Required: true
@@ -1236,31 +1006,19 @@ Required: true
# 2. Used means of clarification
Identifier: INCRISK_MEANS
-Section: 2
-Enumeration: GATHERING
-Enumeration: CONSULTATION
-Enumeration: ENQUIRIES
-Enumeration: OTHER
-Type: String
+Type: 'GATHERING' | 'CONSULTATION' | 'ENQUIRIES' | String
Form: VQF_902_14
Required: true
-Identifier: INCRISK_MEANS_OTHER
-Section: 2
-Type: String
-Form: VQF_902_14
-
# 3. Summary
Identifier: INCRISK_SUMMARY
-Section: 3
Type: Paragraph
Form: VQF_902_14
Required: true
Identifier: INCRISK_DOCUMENTS
-Section: 3
-Help: Gathered or consulted documents
+Description: Gathered or consulted documents
Type: File[]
Form: VQF_902_14
Required: true
@@ -1268,21 +1026,69 @@ Required: true
# 4. Result of the special clarification
Identifier: INCRISK_RESULT
-Section: 4
-Enumeration: NO_SUSPICION
-Enumeration: REASONABLE_SUSPICION
-Enumeration: SIMPLE_SUSPICION
-Enumeration: OTHER
-Type: String
+Type: 'NO_SUSPICION' | 'REASONABLE_SUSPICION' | 'SIMPLE_SUSPICION'
Form: VQF_902_14
Required: true
-Identifier: INCRISK_RESULT_OTHER
-Section: 4
-Type: String
-Form: VQF_902_14
-
##########################
## Form VQF 902.15e
##########################
+
+# Insurance policy
+
+Identifier: INSURANCE_CONTRACTING_PARTNER
+Type: Paragraph
+Form: VQF_902_15
+Required: true
+
+Identifier: INSURANCE_RELATIONSHIP_NAME
+Type: String
+Form: VQF_902_15
+Required: true
+Description: Name or number of the contractual relationship between the contracting party and the financial intermediary
+
+Identifier: INSURANCE_RELATIONSHIP_POLICY
+Type: String
+Required: true
+Form: VQF_902_15
+
+Identifier: INSURANCE_HOLDER_FULL_NAME
+Description: The beneficial owners of the assets involved in the business relationship.
+Type: String
+Form: VQF_902_15
+
+Identifier: INSURANCE_HOLDER_BIRTHDATE
+Type: AbsoluteDate
+Form: VQF_902_15
+Required: true
+
+Identifier: INSURANCE_HOLDER_NATIONALITY
+Type: CountryCode
+Form: VQF_902_15
+Required: true
+
+Identifier: INSURANCE_HOLDER_DOMICILE
+Type: ResidentialAddress
+Form: VQF_902_15
+Required: true
+
+Identifier: INSURANCE_PAYER_FULL_NAME
+Description: The beneficial owners of the assets involved in the business relationship.
+Type: String
+Form: VQF_902_15
+
+Identifier: INSURANCE_PAYER_BIRTHDATE
+Type: AbsoluteDate
+Form: VQF_902_15
+Required: true
+
+Identifier: INSURANCE_PAYER_NATIONALITY
+Type: CountryCode
+Form: VQF_902_15
+Required: true
+
+Identifier: INSURANCE_PAYER_DOMICILE
+Type: ResidentialAddress
+Form: VQF_902_15
+Required: true
diff --git a/gnu-taler-aml-attributes/ts.header b/gnu-taler-aml-attributes/ts.header
@@ -1,6 +1,6 @@
/*
This file is part of GNU Taler
- Copyright (C) 2012-2020 Taler Systems SA
+ Copyright (C) 2012-2025 Taler Systems SA
GNU Taler is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
diff --git a/gnu-taler-aml-attributes/ts.template b/gnu-taler-aml-attributes/ts.template
@@ -1,5 +1,5 @@
/**
- * {{Comment}}
- * Required: {{Required}}
+ * {{Description}}
+ * Required: {{Required = "true" ? 'true' : 'false'}}
*/
- {{Identifier}}: {{Type}};
+ {{Identifier}}{{Required = "true" ? '' : '?'}}: {{Type}};