commit 624708533ee0dae96b868a2b404222e04fa08e3b
parent dd1693e55280a62df798219da6cce3ceee772c0a
Author: Sebastian <sebasjm@gmail.com>
Date: Mon, 30 Dec 2024 16:19:14 -0300
generate aml forms and subforms
Diffstat:
6 files changed, 290 insertions(+), 69 deletions(-)
diff --git a/gnu-taler-aml-attributes/Makefile b/gnu-taler-aml-attributes/Makefile
@@ -1,5 +1,26 @@
-FILES=taler_kyc_attributes.ts \
- taler_kyc_attributes.rst
+FILES=taler_aml_attributes.ts \
+ taler_aml_attributes.rst
+
+FORMS=VQF_902_1 \
+ VQF_902_11 \
+ VQF_902_12 \
+ VQF_902_12_beneficiary \
+ VQF_902_12_founder \
+ VQF_902_12_pre \
+ VQF_902_12_representative \
+ VQF_902_13 \
+ VQF_902_13_beneficiary \
+ VQF_902_13_further \
+ VQF_902_13_pre \
+ VQF_902_13_protector \
+ VQF_902_13_settlor \
+ VQF_902_14 \
+ VQF_902_1_founder \
+ VQF_902_4 \
+ VQF_902_5 \
+ VQF_902_9 \
+ VQF_902_9_identity
+
all: check $(FILES)
@@ -12,16 +33,23 @@ distclean:
clean:
rm -f $(FILES) *.tmp
-taler_kyc_attributes.ts.tmp: registry.rec ts.template
- ../format.sh ts.template < registry.rec > $@
+taler_aml_attributes.ts.tmp: registry.rec ts.template ts.form-header ts.form-footer
+ /usr/bin/truncate --size 0 $@
+
+ for FORM in $(FORMS); do \
+ echo Name: $$FORM | recfmt -f ts.form-header >> $@; \
+ ../format.sh ts.template 'Form = "'$$FORM'"' < registry.rec >> $@; \
+ cat ts.form-footer >> $@; \
+ done
+
-taler_kyc_attributes.ts: ts.header taler_kyc_attributes.ts.tmp ts.footer
+taler_aml_attributes.ts: ts.header taler_aml_attributes.ts.tmp ts.footer
cat $^ > $@
-taler_kyc_attributes.rst.tmp: registry.rec rst.template
+taler_aml_attributes.rst.tmp: registry.rec rst.template
../format.sh rst.template < registry.rec > $@
-taler_kyc_attributes.rst: rst.header taler_kyc_attributes.rst.tmp rst.footer
+taler_aml_attributes.rst: rst.header taler_aml_attributes.rst.tmp rst.footer
cat $^ > $@
.PHONY: check clean distclean
diff --git a/gnu-taler-aml-attributes/registry.rec b/gnu-taler-aml-attributes/registry.rec
@@ -6,14 +6,15 @@
%key: Identifier
%typedef: Identifier_t regexp /^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789:\.]*$/
%type: Identifier Identifier_t
+%type: Required Required_t
+%typedef: Required_t regexp /^(true|false)*$/
%unique: Identifier
%mandatory: Identifier
-#%typedef: Description_t regexp |^[\.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_\(\)\.,;!"':#\/ -]*$|
-#%type: Description Description_t
-%mandatory: Required
-%allowed: Comment
%mandatory: Type
-%sort: Identifier Type Comment Required
+%mandatory: Form
+%allowed: Comment
+%mandatory: Required
+%sort: Identifier Type Form Comment Required
##########################
## All VQF forms
@@ -24,28 +25,59 @@
Identifier: OFFICER_FULL_NAME
Comment: Full legal name of the officer filling the form.
Type: String
+Form: VQF_902_1
+Form: VQF_902_4
+Form: VQF_902_5
+Form: VQF_902_9
+Form: VQF_902_11
+Form: VQF_902_12
+Form: VQF_902_13
+Form: VQF_902_14
Required: true
Identifier: FORM_FILLING_DATE
Comment: When the form was completed.
Type: AbsoluteTime
+Form: VQF_902_1
+Form: VQF_902_4
+Form: VQF_902_5
+Form: VQF_902_9
+Form: VQF_902_11
+Form: VQF_902_12
+Form: VQF_902_13
+Form: VQF_902_14
Required: true
Identifier: CUSTOMER_ID
Required: true
Type: String
+Form: VQF_902_1
+Form: VQF_902_4
+Form: VQF_902_5
+Form: VQF_902_9
+Form: VQF_902_11
+Form: VQF_902_12
+Form: VQF_902_13
+Form: VQF_902_14
Comment: Customer system ID required to correlate different AML forms.
Identifier: SIGN_DATE
-Comment: .
+Comment: Contracing partner signature,
Type: AbsoluteTime
-Required: false
+Form: VQF_902_9
+Form: VQF_902_11
+Form: VQF_902_12
+Form: VQF_902_13
+Required: true
Identifier: SIGNATURE
Comment: .
+Form: VQF_902_9
+Form: VQF_902_11
+Form: VQF_902_12
+Form: VQF_902_13
Type: String
-Required: false
-
+Required: true
##########################
## Form VQF 902.1e
@@ -57,96 +89,115 @@ Required: false
Identifier: CUSTOMER_NATURAL_FULL_NAME
Required: true
Type: String
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_RESIDENTIAL
Required: true
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_PHONE
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_EMAIL
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_BIRTHDATE
Required: true
Type: AbsoluteTime
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_NATIONALITY
Required: true
Type: CountryCode
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_NATIONAL_ID
Required: true
Type: String
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_NATIONAL_ID_COPY
Required: true
Type: File
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_COMPANY_NAME
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_REGISTERED_OFFICE
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_COMPANY_ID
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_NATURAL_COMPANY_ID_COPY
Required: false
Type: File
+Form: VQF_902_1
Comment: If the customer is a natural person.
Identifier: CUSTOMER_ENTITY_COMPANY_NAME
Required: true
Type: String
+Form: VQF_902_1
Comment: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_ADDRESS
Required: true
-Type: Location
+Type: BusinessAddress
+Form: VQF_902_1
Comment: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_CONTACT_PERSON_NAME
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_PHONE
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_EMAIL
Required: false
Type: String
+Form: VQF_902_1
Comment: If the customer is a legal entity.
Identifier: CUSTOMER_ENTITY_ID
Required: true
Type: String
+Form: VQF_902_1
Comment: If the customer is a legal entity. Not older than 12 month
Identifier: CUSTOMER_ENTITY_ID_COPY
Required: true
Type: File
+Form: VQF_902_1
Comment: If the customer is a legal entity. Not older than 12 month
# 2
@@ -154,38 +205,46 @@ Comment: If the customer is a legal entity. Not older than 12 month
# Founders are natural persons who establish the business for legal entities and partnerships
Identifier: FOUNDER_LIST
-Type: List
+Type: Form<VQF_902_1_founder>[]
+Form: VQF_902_1
Comment: List of founder with the fields below.
Required: true
Identifier: FOUNDER_FULL_NAME
Type: String
+Form: VQF_902_1_founder
Required: true
Identifier: FOUNDER_RESIDENTIAL_ADDRESS
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_1_founder
Required: true
Identifier: FOUNDER_BIRTHDATE
Type: AbsoluteTime
+Form: VQF_902_1_founder
Required: true
Identifier: FOUNDER_NATIONALITY
Type: CountryCode
+Form: VQF_902_1_founder
Required: true
Identifier: FOUNDER_AUTHORIZATION_TYPE
Comment: signatory of representation
Type: String
+Form: VQF_902_1_founder
Required: true
Identifier: FOUNDER_NATIONAL_ID
Type: String
+Form: VQF_902_1_founder
Required: true
Identifier: FOUNDER_POWER_OF_ATTORNEY
Comment: Could be "cr extract", "mandate" or "other"
Type: String
+Form: VQF_902_1_founder
Required: true
# 3
@@ -194,26 +253,31 @@ Required: true
Identifier: ACCEPTANCE_DATE
Comment: Conclusion of the conract
Type: AbsoluteTime
+Form: VQF_902_1
Required: false
Identifier: ACCEPTANCE_METHOD
Comment: Accepted by face to face or correspondence
Type: String
+Form: VQF_902_1
Required: false
Identifier: ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE
Comment: to the customer, hold at bank, to the member or to a third party
Type: String
+Form: VQF_902_1
Required: false
Identifier: ACCEPTANCE_LANGUAGE
Comment:
Type: String
+Form: VQF_902_1
Required: false
Identifier: ACCEPTANCE_ADDITIONAL_INFO
Comment:
Type: String
+Form: VQF_902_1
Required: false
# 4
@@ -223,6 +287,7 @@ Required: false
Identifier: CUSTOMER_TYPE
Comment: Value could be natural person and sole beneficial, legal entity, a foundation, a trust, a life insurance or all other cases.
Type: String
+Form: VQF_902_1
Required: true
# 5
@@ -231,6 +296,7 @@ Required: true
Identifier: EMBARGO_TERRORISM_INFO
Comment: Verification whether the customer or any involved persons are listed on an embargo-/terrorism list
Type: String
+Form: VQF_902_1
Required: false
# 6
@@ -241,11 +307,13 @@ Required: false
Identifier: RELATIONSHIP_TYPE
Comment: Could be "money exchange", "money and asset transfer" or "other"
Type: String
+Form: VQF_902_1
Required: false
Identifier: RELATIONSHIP_PURPOSE
Comment:
Type: String
+Form: VQF_902_1
Required: false
##########################
@@ -260,21 +328,25 @@ Required: false
Identifier: PEP_FOREIGN
Comment: 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
Comment: 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
Comment: 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
Comment: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
Type: AbsoluteTime
+Form: VQF_902_4
Required: false
# 2. High risk or non-cooperative country
@@ -282,11 +354,13 @@ Required: false
Identifier: HIGH_RISK_COUNTRY
Comment: 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
Comment: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
Type: String
+Form: VQF_902_4
Required: false
# 3. Business relationship risk
@@ -294,61 +368,73 @@ Required: false
Identifier: COUNTRY_RISK_TYPE
Comment: Can be "nationality customer", "nationality owner", "domicile customer", "domicile owner", "domicile controlling", "business activity", or "payments"
Type: String
+Form: VQF_902_4
Required: false
Identifier: COUNTRY_RISK_LEVEL
Comment: Can be "low", "medium" or "high" based on 902.4.1 country list
Type: String
+Form: VQF_902_4
Required: false
Identifier: INDUSTRY_RISK_TYPE
Comment: Can be "customer" or "owner"
Type: String
+Form: VQF_902_4
Required: false
Identifier: INDUSTRY_RISK_LEVEL
Comment: Can be "transparent", "high level of cash transaction", "not well known", "high risk trade" or "unkown industry"
Type: String
+Form: VQF_902_4
Required: false
Identifier: CONTACT_RISK_LEVEL
Comment: Can be "low", "med" or "high"
Type: String
+Form: VQF_902_4
Required: false
Identifier: PRODUCT_RISK_LEVEL
Comment: Can be "easy", "sophisticated", "offshore", "complex structure", "large number of accounts", "complex service" or "frequent transaction with increased risk"
Type: String
+Form: VQF_902_4
Required: false
Identifier: EXTRA_CRITERA_1_RISK_DEFINITION
Comment: Criteria description
Type: String
+Form: VQF_902_4
Required: false
Identifier: EXTRA_CRITERA_1_RISK_LEVEL
Comment: Can be "low", "med" or "high"
Type: String
+Form: VQF_902_4
Required: false
Identifier: EXTRA_CRITERA_2_RISK_DEFINITION
Comment: Criteria description
Type: String
+Form: VQF_902_4
Required: false
Identifier: EXTRA_CRITERA_2_RISK_LEVEL
Comment: Can be "low", "med" or "high"
Type: String
+Form: VQF_902_4
Required: false
Identifier: RISK_CLASIFICATION_LEVEL
Comment: Can be "with" or "without" increased risk.
Type: String
+Form: VQF_902_4
Required: false
Identifier: RISK_CLASIFICATION_ACCEPTANCE_DATE
Comment: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
Type: String
+Form: VQF_902_4
Required: false
# 4. Transaction monitoring
@@ -365,6 +451,7 @@ Required: false
Identifier: BIZREL_PROFESSION
Comment: Profession, business activities, etc. (former, current, potentially planned)
Type: String
+Form: VQF_902_5
Required: false
# 2. Financial circumstances
@@ -372,6 +459,7 @@ Required: false
Identifier: BIZREL_INCOME
Comment: Income and assets, liabilities (estimated)
Type: String
+Form: VQF_902_5
Required: false
# 3. Origin of the deposited assets involved
@@ -379,16 +467,19 @@ Required: false
Identifier: BIZREL_ORIGIN_AMOUNT
Comment: Nature, amount and currency of the involved assets.
Type: Amount
+Form: VQF_902_5
Required: true
Identifier: BIZREL_ORIGIN_CATEGORY
Comment: Could be "savings", "own business", "inheritance" or "other".
Type: String
+Form: VQF_902_5
Required: true
Identifier: BIZREL_ORIGIN_DETAIL
Comment: Define the category if "other".
Type: String
+Form: VQF_902_5
Required: false
# 4. Nature and purpose
@@ -396,31 +487,37 @@ Required: false
Identifier: BIZREL_PURPOSE
Comment: Purpose of the business relationship.
Type: String
+Form: VQF_902_5
Required: false
Identifier: BIZREL_DEVELOPMENT
Comment: Information on the planned development of the business relationship and the assets.
Type: String
+Form: VQF_902_5
Required: false
Identifier: BIZREL_FINANCIAL_VOLUME
Comment: In the case of cash or money and asset transfer transacction with regular customer
Type: String
+Form: VQF_902_5
Required: false
Identifier: BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME
Comment: In the case of cash or money and asset transfer transacction with regular customer
Type: String
+Form: VQF_902_5
Required: false
Identifier: BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS
Comment: In the case of cash or money and asset transfer transacction with regular customer
-Type: Location
+Type: BusinessAddress
+Form: VQF_902_5
Required: false
Identifier: BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT
Comment: In the case of cash or money and asset transfer transacction with regular customer
Type: String
+Form: VQF_902_5
Required: false
# 5. Third parties
@@ -428,16 +525,19 @@ Required: false
Identifier: BIZREL_THIRDPARTY_RELATIONSHIP
Comment: 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
Required: false
Identifier: BIZREL_THIRDPARTY_AMLA_FILES
Comment: Relation to other AMLA-files.
Type: String
+Form: VQF_902_5
Required: false
Identifier: BIZREL_THIRDPARTY_REFERENCES
Comment: Introducer / agents / references.
Type: String
+Form: VQF_902_5
Required: false
# 6. Further information
@@ -445,6 +545,7 @@ Required: false
Identifier: BIZREL_FURTHER_INFO
Comment: Other relevant information.
Type: String
+Form: VQF_902_5
Required: false
##########################
@@ -459,32 +560,38 @@ Required: false
Identifier: IDENTITY_CONTRACTING_PARTNER
Comment: .
Type: String
+Form: VQF_902_9
Required: true
Identifier: IDENTITY_LIST
Comment: The beneficial owners of the assets involved in the business relationship.
-Type: String
+Type: Form<VQF_902_9_identity>[]
+Form: VQF_902_9
Required: false
Identifier: IDENTITY_FULL_NAME
Comment: .
Type: String
-Required: false
+Form: VQF_902_9_identity
+Required: true
Identifier: IDENTITY_BIRTHDATE
Comment: .
Type: AbsoluteTime
-Required: false
+Form: VQF_902_9_identity
+Required: true
Identifier: IDENTITY_NATIONALITY
Comment: .
Type: CountryCode
-Required: false
+Form: VQF_902_9_identity
+Required: true
Identifier: IDENTITY_DOMICILE
Comment: .
-Type: Location
-Required: false
+Type: ResidentialAddress
+Form: VQF_902_9_identity
+Required: true
##########################
## Form VQF 902.11e
@@ -495,25 +602,30 @@ Required: false
Identifier: CONTROLLING_ENTITY_CONTRACTING_PARTNER
Comment: .
Type: String
+Form: VQF_902_11
Required: true
Identifier: CONTROLLING_ENTITY_LEVEL
Comment: Could be "more than 25% voting rights", "other ways" or "director"
Type: String
+Form: VQF_902_11
Required: true
Identifier: CONTROLLING_ENTITY_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_11
Required: true
Identifier: CONTROLLING_ENTITY_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_11
Required: true
Identifier: CONTROLLING_ENTITY_THIRD_PERSON
Type: Boolean
+Form: VQF_902_11
Comment: Is a third person the beneficial owner of the assets?
Required: true
@@ -526,11 +638,13 @@ Required: true
Identifier: FOUNDATION_CONTRACTING_PARTNER
Comment: .
Type: String
+Form: VQF_902_12
Required: true
Identifier: FOUNDATION_KNOWN_AS
Comment: .
Type: String
+Form: VQF_902_12
Required: true
# 1. About the foundation
@@ -538,170 +652,202 @@ Required: true
Identifier: FOUNDATION_NAME
Comment: .
Type: String
+Form: VQF_902_12
Required: true
Identifier: FOUNDATION_DISCRETIONARY
Comment: .
Type: Boolean
+Form: VQF_902_12
Required: true
Identifier: FOUNDATION_REVOCABLE
Comment: .
Type: Boolean
+Form: VQF_902_12
Required: true
# 2. About the founder
Identifier: FOUNDATION_FOUNDER_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_12_founder>[]
+Form: VQF_902_12
Required: true
Identifier: FOUNDATION_FOUNDER_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_12_founder
Required: true
Identifier: FOUNDATION_FOUNDER_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_12_founder
Required: true
Identifier: FOUNDATION_FOUNDER_BIRTHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_12_founder
Required: true
Identifier: FOUNDATION_FOUNDER_NATIONALITY
Comment: .
Type: CountryCode
+Form: VQF_902_12_founder
Required: true
Identifier: FOUNDATION_FOUNDER_DEATHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_12_founder
Required: true
Identifier: FOUNDATION_FOUNDER_RIGHT_TO_REVOKE
Comment: .
Type: Boolean
+Form: VQF_902_12_founder
Required: true
# 3. About the pre-existing foundation
Identifier: FOUNDATION_PRE_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_12_pre>[]
+Form: VQF_902_12
Required: true
Identifier: FOUNDATION_PRE_FULL_NAME
Comment: .
Type: String
-Required: false
+Form: VQF_902_12_pre
+Required: true
Identifier: FOUNDATION_PRE_DOMICILE
Comment: .
-Type: Location
-Required: false
+Type: ResidentialAddress
+Form: VQF_902_12_pre
+Required: true
Identifier: FOUNDATION_PRE_COUNTRY
Comment: .
Type: CountryCode
-Required: false
+Form: VQF_902_12_pre
+Required: true
Identifier: FOUNDATION_PRE_BIRTHDATE
Comment: .
Type: AbsoluteTime
-Required: false
+Form: VQF_902_12_pre
+Required: true
Identifier: FOUNDATION_PRE_NATIONALITY
Comment: .
Type: CountryCode
-Required: false
+Form: VQF_902_12_pre
+Required: true
Identifier: FOUNDATION_PRE_DEATHDATE
Comment: .
Type: AbsoluteTime
-Required: false
+Form: VQF_902_12_pre
+Required: true
# 4. Beneficiaries information
Identifier: FOUNDATION_BENEFICIARY_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_12_beneficiary>[]
+Form: VQF_902_12
Required: true
Identifier: FOUNDATION_BENEFICIARY_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_12_beneficiary
Required: false
Identifier: FOUNDATION_BENEFICIARY_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_12_beneficiary
Required: false
Identifier: FOUNDATION_BENEFICIARY_COUNTRY
Comment: .
Type: CountryCode
+Form: VQF_902_12_beneficiary
Required: false
Identifier: FOUNDATION_BENEFICIARY_BIRTHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_12_beneficiary
Required: false
Identifier: FOUNDATION_BENEFICIARY_NATIONALITY
Comment: .
Type: CountryCode
+Form: VQF_902_12_beneficiary
Required: false
Identifier: FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM
Comment: .
Type: Boolean
+Form: VQF_902_12_beneficiary
Required: false
Identifier: FOUNDATION_BENEFICIARY_ADDITION
Comment: .
Type: String
+Form: VQF_902_12_beneficiary
Required: false
# 5. Further person with right to nominate representatives
Identifier: FOUNDATION_REPRESENTATIVE_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_12_representative>[]
+Form: VQF_902_12
Required: true
Identifier: FOUNDATION_REPRESENTATIVE_FULL_NAME
Comment: .
Type: String
-Required: false
+Form: VQF_902_12_representative
+Required: true
Identifier: FOUNDATION_REPRESENTATIVE_DOMICILE
Comment: .
-Type: Location
-Required: false
+Type: ResidentialAddress
+Form: VQF_902_12_representative
+Required: true
Identifier: FOUNDATION_REPRESENTATIVE_COUNTRY
Comment: .
Type: CountryCode
-Required: false
+Form: VQF_902_12_representative
+Required: true
Identifier: FOUNDATION_REPRESENTATIVE_BIRTHDATE
Comment: .
Type: AbsoluteTime
-Required: false
+Form: VQF_902_12_representative
+Required: true
Identifier: FOUNDATION_REPRESENTATIVE_NATIONALITY
Comment: .
Type: CountryCode
-Required: false
+Form: VQF_902_12_representative
+Required: true
Identifier: FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE
Comment: .
Type: Boolean
-Required: false
+Form: VQF_902_12_representative
+Required: true
##########################
## Form VQF 902.13e
@@ -712,11 +858,13 @@ Required: false
Identifier: TRUST_CONTRACTING_PARTNER
Comment: .
Type: String
+Form: VQF_902_13
Required: true
Identifier: TRUST_KNOWN_AS
Comment: .
Type: String
+Form: VQF_902_13
Required: true
# 1. About the trust
@@ -724,132 +872,157 @@ Required: true
Identifier: TRUST_NAME
Comment: .
Type: String
+Form: VQF_902_13
Required: true
Identifier: TRUST_DISCRETIONARY
Comment: .
Type: Boolean
+Form: VQF_902_13
Required: true
Identifier: TRUST_REVOCABLE
Comment: .
Type: Boolean
+Form: VQF_902_13
Required: true
# 2. About the settlor of the trust
Identifier: TRUST_SETTLOR_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_13_settlor>[]
+Form: VQF_902_13
Required: true
Identifier: TRUST_SETTLOR_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_13_settlor
Required: true
Identifier: TRUST_SETTLOR_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_13
Required: true
Identifier: TRUST_SETTLOR_BIRTHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_13
Required: true
Identifier: TRUST_SETTLOR_NATIONALITY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: true
Identifier: TRUST_SETTLOR_DEATHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_13
Required: true
Identifier: TRUST_SETTLOR_RIGHT_TO_REVOKE
Comment: .
Type: Boolean
+Form: VQF_902_13
Required: true
# 3. About the pre-existing trust`
Identifier: TRUST_PRE_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_13_pre>[]
+Form: VQF_902_13
Required: true
Identifier: TRUST_PRE_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_13_pre
Required: false
Identifier: TRUST_PRE_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_13
Required: false
Identifier: TRUST_PRE_COUNTRY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_PRE_BIRTHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_13
Required: false
Identifier: TRUST_PRE_NATIONALITY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_PRE_DEATHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_13
Required: false
# 4. Beneficiaries information
Identifier: TRUST_BENEFICIARY_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_13_beneficiary>[]
+Form: VQF_902_13
Required: true
Identifier: TRUST_BENEFICIARY_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_13_beneficiary
Required: false
Identifier: TRUST_BENEFICIARY_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_13
Required: false
Identifier: TRUST_BENEFICIARY_COUNTRY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_BENEFICIARY_BIRTHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_13
Required: false
Identifier: TRUST_BENEFICIARY_NATIONALITY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_BENEFICIARY_RIGHT_TO_CLAIM
Comment: .
Type: Boolean
+Form: VQF_902_13
Required: false
Identifier: TRUST_BENEFICIARY_ADDITION
Comment: .
Type: String
+Form: VQF_902_13
Required: false
@@ -857,72 +1030,86 @@ Required: false
Identifier: TRUST_PROTECTOR_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_13_protector>[]
+Form: VQF_902_13
Required: true
Identifier: TRUST_PROTECTOR_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_13_protector
Required: false
Identifier: TRUST_PROTECTOR_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_13
Required: false
Identifier: TRUST_PROTECTOR_COUNTRY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_PROTECTOR_BIRTHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_13
Required: false
Identifier: TRUST_PROTECTOR_NATIONALITY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_PROTECTOR_RIGHT_TO_REVOKE
Comment: .
Type: Boolean
+Form: VQF_902_13
Required: false
Identifier: TRUST_FURTHER_LIST
Comment: .
-Type: List
+Type: Form<VQF_902_13_further>[]
+Form: VQF_902_13
Required: true
Identifier: TRUST_FURTHER_FULL_NAME
Comment: .
Type: String
+Form: VQF_902_13_further
Required: false
Identifier: TRUST_FURTHER_DOMICILE
Comment: .
-Type: Location
+Type: ResidentialAddress
+Form: VQF_902_13
Required: false
Identifier: TRUST_FURTHER_COUNTRY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_FURTHER_BIRTHDATE
Comment: .
Type: AbsoluteTime
+Form: VQF_902_13
Required: false
Identifier: TRUST_FURTHER_NATIONALITY
Comment: .
Type: CountryCode
+Form: VQF_902_13
Required: false
Identifier: TRUST_FURTHER_RIGHT_TO_REVOKE
Comment: .
Type: Boolean
+Form: VQF_902_13
Required: false
@@ -937,6 +1124,7 @@ Required: false
Identifier: INCRISK_REASON
Comment: Description of the circumstances/transactions, which triggered the special clarifications
Type: String
+Form: VQF_902_14
Required: true
# 2. Used means of clarification
@@ -944,6 +1132,7 @@ Required: true
Identifier: INCRISK_MEANS
Comment: Could be "gathering", "consultation", "enquiries" or "other"
Type: String
+Form: VQF_902_14
Required: true
# 3. Summary
@@ -951,11 +1140,13 @@ Required: true
Identifier: INCRISK_SUMMARY
Comment: .
Type: String
+Form: VQF_902_14
Required: true
Identifier: INCRISK_DOCUMENTS
Comment: Gathered or consulted documents
-Type: File
+Type: File[]
+Form: VQF_902_14
Required: true
# 4. Result of the special clarification
@@ -963,6 +1154,7 @@ Required: true
Identifier: INCRISK_RESULT
Comment: Could be "no suspicion", "reasonable suspicion", "simple suspicion" or "other"
Type: String
+Form: VQF_902_14
Required: true
diff --git a/gnu-taler-aml-attributes/ts.form-footer b/gnu-taler-aml-attributes/ts.form-footer
@@ -0,0 +1 @@
+ }
diff --git a/gnu-taler-aml-attributes/ts.form-header b/gnu-taler-aml-attributes/ts.form-header
@@ -0,0 +1 @@
+ export interface {{Name}} {
diff --git a/gnu-taler-aml-attributes/ts.header b/gnu-taler-aml-attributes/ts.header
@@ -22,9 +22,10 @@
*/
type AbsoluteTime = string;
-type Boolean = string;
type CountryCode = string;
type Amount = string;
+type ResidentialAddress = string;
+type BusinessAddress = string;
+type Form<T> = T
-
-export interface TalerAmlAttributes {
+namespace TalerAmlAttributes {
diff --git a/gnu-taler-aml-attributes/ts.template b/gnu-taler-aml-attributes/ts.template
@@ -1,7 +1,5 @@
-
-
- /**
- * {{Comment}}
- * Required: {{Required}}
- */
- {{Identifier}}: {{Type}};
+ /**
+ * {{Comment}}
+ * Required: {{Required}}
+ */
+ {{Identifier}}: {{Type}};