commit cd356cbdaeed53005438dae41f39e52132b6929b
parent 18066161b0fc99112cad660c8e3d861051489db5
Author: Sebastian <sebasjm@gmail.com>
Date: Mon, 24 Mar 2025 17:57:41 -0300
moved aml events and props to util
Diffstat:
4 files changed, 2801 insertions(+), 0 deletions(-)
diff --git a/packages/taler-util/src/aml/aml-events.ts b/packages/taler-util/src/aml/aml-events.ts
@@ -0,0 +1,159 @@
+import { AccountProperties, LegitimizationRuleSet } from "../types-taler-kyc-aml.js";
+
+export enum AmlEventsName {
+ ACCOUNT_OPENED = "ACCOUNT_OPENED",
+ ACCOUNT_OPENED_HIGH_RISK = "ACCOUNT_OPENED_HIGH_RISK",
+ ACCOUNT_OPENED_DOMESTIC_PEP = "ACCOUNT_OPENED_DOMESTIC_PEP",
+ ACCOUNT_OPENED_FOREIGN_PEP = "ACCOUNT_OPENED_FOREIGN_PEP",
+ ACCOUNT_OPENED_INT_ORG_PEP = "ACCOUNT_OPENED_INT_ORG_PEP",
+ ACCOUNT_OPENED_HR_COUNTRY = "ACCOUNT_OPENED_HR_COUNTRY",
+
+ ACCOUNT_CLOSED = "ACCOUNT_CLOSED",
+ ACCOUNT_CLOSED_HIGH_RISK = "ACCOUNT_CLOSED_HIGH_RISK",
+ ACCOUNT_CLOSED_DOMESTIC_PEP = "ACCOUNT_CLOSED_DOMESTIC_PEP",
+ ACCOUNT_CLOSED_FOREIGN_PEP = "ACCOUNT_CLOSED_FOREIGN_PEP",
+ ACCOUNT_CLOSED_INT_ORG_PEP = "ACCOUNT_CLOSED_INT_ORG_PEP",
+ ACCOUNT_CLOSED_HR_COUNTRY = "ACCOUNT_CLOSED_HR_COUNTRY",
+
+ ACCOUNT_MROS_REPORTED_SUSPICION_SIMPLE = "ACCOUNT_MROS_REPORTED_SUSPICION_SIMPLE",
+ ACCOUNT_MROS_REPORTED_SUSPICION_SUBSTANTIATED = "ACCOUNT_MROS_REPORTED_SUSPICION_SUBSTANTIATED",
+ ACCOUNT_INVESTIGATION_STARTED = "ACCOUNT_INVESTIGATION_STARTED",
+ ACCOUNT_INVESTIGATION_COMPLETED = "ACCOUNT_INVESTIGATION_COMPLETED",
+
+ TEST_EVENT_KEY_1 = "TEST_EVENT_KEY_1",
+ TEST_EVENT_KEY_2 = "TEST_EVENT_KEY_2",
+ TEST_EVENT_KEY_3 = "TEST_EVENT_KEY_3",
+ TEST_EVENT_KEY_4 = "TEST_EVENT_KEY_4",
+ TEST_EVENT_KEY_5 = "TEST_EVENT_KEY_5",
+}
+
+export type EventMapInfo = {
+ [name in AmlEventsName]: {
+ /**
+ * Based on the current properties and next properties,
+ * the current account limits and new attribues of the account
+ * calculate if the event should be triggered.
+ *
+ * return false if there is no enough information to decide.
+ *
+ * @param prevState
+ * @param nextState
+ * @param newAttributes
+ * @returns
+ */
+ shouldBeTriggered: (
+ limits: LegitimizationRuleSet,
+ prevState: AccountProperties,
+ nextState: AccountProperties,
+ newAttributes: Record<string, unknown>,
+ ) => boolean;
+ };
+};
+
+export const AML_EVENTS_INFO: EventMapInfo = {
+ ACCOUNT_OPENED: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_CLOSED: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_CLOSED_INT_ORG_PEP: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_OPENED_HIGH_RISK: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_CLOSED_HIGH_RISK: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_OPENED_DOMESTIC_PEP: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_CLOSED_DOMESTIC_PEP: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_OPENED_FOREIGN_PEP: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_CLOSED_FOREIGN_PEP: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_OPENED_HR_COUNTRY: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_CLOSED_HR_COUNTRY: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_INVESTIGATION_COMPLETED: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_INVESTIGATION_STARTED: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_MROS_REPORTED_SUSPICION_SIMPLE: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_MROS_REPORTED_SUSPICION_SUBSTANTIATED: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ ACCOUNT_OPENED_INT_ORG_PEP: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return false
+ },
+ },
+ TEST_EVENT_KEY_1: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return true;
+ },
+ },
+ TEST_EVENT_KEY_2: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return true;
+ },
+ },
+ TEST_EVENT_KEY_3: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return true;
+ },
+ },
+ TEST_EVENT_KEY_4: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return true;
+ },
+ },
+ TEST_EVENT_KEY_5: {
+ shouldBeTriggered(limits, prevState, nextState, attributes) {
+ return true;
+ },
+ },
+};
diff --git a/packages/taler-util/src/aml/aml-properties.ts b/packages/taler-util/src/aml/aml-properties.ts
@@ -0,0 +1,82 @@
+import {
+ AccountProperties,
+ AmlDecision,
+ AmlSpaDialect,
+} from "@gnu-taler/taler-util";
+import { TalerFormAttributes } from "./taler_form_attributes.js";
+import { LegitimizationRuleSet } from "../types-taler-kyc-aml.js";
+
+export type PropertiesMapInfo = {
+ [name in keyof typeof TalerFormAttributes.AccountProperties]: {
+ /**
+ * Based on all the current properties, the current account limits and
+ * new attribues of the account calculate if the property should
+ * change. The value "undefined" means no change.
+ *
+ * @param limits
+ * @param state
+ * @param newAttributes
+ * @returns
+ */
+ deriveProperty: (
+ limits: LegitimizationRuleSet,
+ state: AccountProperties,
+ newAttributes: Record<string, unknown>,
+ ) => string | boolean | undefined;
+ };
+};
+
+export const AML_PROPERTIES_INFO: PropertiesMapInfo = {
+ AML_ACCOUNT_ACTIVE_DEPOSIT: {
+ deriveProperty(limits, state, attributes) {
+ return !!attributes[
+ TalerFormAttributes.AccountProperties.AML_ACCOUNT_ACTIVE_DEPOSIT.id
+ ];
+ },
+ },
+ AML_DOMESTIC_PEP: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_FOREIGN_PEP: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_HIGH_RISK_BUSINESS: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_HIGH_RISK_COUNTRY: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_INVESTIGATION_ART6_COMPLETED: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_INVESTIGATION_ART6_FAILED: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_MROS_REPORTED_ART305: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_MROS_REPORTED_ART9: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+ AML_NO_OPERATION_DURING_PERIOD: {
+ deriveProperty(limits, state, attributes) {
+ return undefined;
+ },
+ },
+};
diff --git a/packages/taler-util/src/aml/taler_form_attributes.ts b/packages/taler-util/src/aml/taler_form_attributes.ts
@@ -0,0 +1,2556 @@
+/*
+ This file is part of GNU Taler
+ 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
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
+
+ GNU Taler is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: LGPL3.0-or-later
+
+ Note: the LGPL does not apply to all components of GNU Taler,
+ but it does apply to this file.
+ */
+
+
+type FormFieldInfo = {
+ id: string;
+ description: String;
+}
+
+export namespace TalerFormAttributes {
+ export const VQF_902_1 = {
+ /**
+ * Description:
+ *
+ * GANA Type: BusinessAddress
+ */
+ ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS: {
+ id: "ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_ADDRESS",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME: {
+ id: "ACCEPTANCE_CORRESPONDENCE_SERVICE_THIRD_PARTY_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'TO_THE_CUSTOMER' | 'HOLD_AT_BANK' | 'TO_THE_MEMBER' | 'TO_A_THIRD_PARTY'
+ */
+ ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE: {
+ id: "ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Conclusion of the conract
+ *
+ * GANA Type: AbsoluteDate
+ */
+ ACCEPTANCE_DATE: {
+ id: "ACCEPTANCE_DATE",
+ description: "Conclusion of the conract",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ ACCEPTANCE_FURTHER_INFO: {
+ id: "ACCEPTANCE_FURTHER_INFO",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: LangCode
+ */
+ ACCEPTANCE_LANGUAGE: {
+ id: "ACCEPTANCE_LANGUAGE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'FACE_TO_FACE' | 'AUTHENTICATED_COPY' | 'RESIDENTIAL_ADDRESS_VALIDATED'
+ */
+ ACCEPTANCE_METHOD: {
+ id: "ACCEPTANCE_METHOD",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a legal entity.
+ *
+ * GANA Type: BusinessAddress
+ */
+ CUSTOMER_ENTITY_ADDRESS: {
+ id: "CUSTOMER_ENTITY_ADDRESS",
+ description: "If the customer is a legal entity.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a legal entity.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ENTITY_COMPANY_NAME: {
+ id: "CUSTOMER_ENTITY_COMPANY_NAME",
+ description: "If the customer is a legal entity.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a legal entity.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ENTITY_CONTACT_PERSON_NAME: {
+ id: "CUSTOMER_ENTITY_CONTACT_PERSON_NAME",
+ description: "If the customer is a legal entity.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a legal entity.
+ *
+ * GANA Type: Email
+ */
+ CUSTOMER_ENTITY_EMAIL: {
+ id: "CUSTOMER_ENTITY_EMAIL",
+ description: "If the customer is a legal entity.",
+ } as FormFieldInfo,
+ /**
+ * Description: Not older than 12 month
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ENTITY_ID: {
+ id: "CUSTOMER_ENTITY_ID",
+ description: "Not older than 12 month",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: File
+ */
+ CUSTOMER_ENTITY_ID_COPY: {
+ id: "CUSTOMER_ENTITY_ID_COPY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a legal entity.
+ *
+ * GANA Type: Phone
+ */
+ CUSTOMER_ENTITY_PHONE: {
+ id: "CUSTOMER_ENTITY_PHONE",
+ description: "If the customer is a legal entity.",
+ } as FormFieldInfo,
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'NATURAL_PERSON' | 'LEGAL_ENTITY'
+ */
+ CUSTOMER_INFO_TYPE: {
+ id: "CUSTOMER_INFO_TYPE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: AbsoluteDate
+ */
+ CUSTOMER_NATURAL_BIRTHDATE: {
+ id: "CUSTOMER_NATURAL_BIRTHDATE",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_NATURAL_COMPANY_ID_DOC: {
+ id: "CUSTOMER_NATURAL_COMPANY_ID_DOC",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_NATURAL_COMPANY_NAME: {
+ id: "CUSTOMER_NATURAL_COMPANY_NAME",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: Email
+ */
+ CUSTOMER_NATURAL_EMAIL: {
+ id: "CUSTOMER_NATURAL_EMAIL",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_NATURAL_FULL_NAME: {
+ id: "CUSTOMER_NATURAL_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: CountryCode
+ */
+ CUSTOMER_NATURAL_NATIONALITY: {
+ id: "CUSTOMER_NATURAL_NATIONALITY",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_NATURAL_NATIONAL_ID: {
+ id: "CUSTOMER_NATURAL_NATIONAL_ID",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: File
+ */
+ CUSTOMER_NATURAL_NATIONAL_ID_COPY: {
+ id: "CUSTOMER_NATURAL_NATIONAL_ID_COPY",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: Phone
+ */
+ CUSTOMER_NATURAL_PHONE: {
+ id: "CUSTOMER_NATURAL_PHONE",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_NATURAL_REGISTERED_OFFICE: {
+ id: "CUSTOMER_NATURAL_REGISTERED_OFFICE",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: If the customer is a natural person.
+ *
+ * GANA Type: ResidentialAddress
+ */
+ CUSTOMER_NATURAL_RESIDENTIAL: {
+ id: "CUSTOMER_NATURAL_RESIDENTIAL",
+ description: "If the customer is a natural person.",
+ } as FormFieldInfo,
+ /**
+ * Description: Establishment of the beneficial owner of the assets and/or contrilling person
+ *
+ * GANA Type: 'NATURAL' | 'OPERATIONAL' | 'FOUNDATION' | 'TRUST' | 'LIFE_INSURANCE' | 'OTHER'
+ */
+ CUSTOMER_TYPE: {
+ id: "CUSTOMER_TYPE",
+ description: "Establishment of the beneficial owner of the assets and/or contrilling person",
+ } as FormFieldInfo,
+ /**
+ * 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)
+ *
+ * GANA Type: Paragraph
+ */
+ EMBARGO_TERRORISM_INFO: {
+ id: "EMBARGO_TERRORISM_INFO",
+ 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)",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ ENCLOSURE_BENEFICIAL_OWNER: {
+ id: "ENCLOSURE_BENEFICIAL_OWNER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ ENCLOSURE_CUSTOMER_DOCUMENTS: {
+ id: "ENCLOSURE_CUSTOMER_DOCUMENTS",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ ENCLOSURE_CUSTOMER_PROFILE: {
+ id: "ENCLOSURE_CUSTOMER_PROFILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ ENCLOSURE_IDENTIFICATION_DOCUMENTS: {
+ id: "ENCLOSURE_IDENTIFICATION_DOCUMENTS",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ ENCLOSURE_RISK_PROFILE: {
+ id: "ENCLOSURE_RISK_PROFILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description: List of founder with the fields below.
+ *
+ * GANA Type: Form<VQF_902_1_founder>[]
+ */
+ FOUNDER_LIST: {
+ id: "FOUNDER_LIST",
+ description: "List of founder with the fields below.",
+ } as FormFieldInfo,
+ /**
+ * Description: Purpose of service requested
+ *
+ * GANA Type: Paragraph
+ */
+ RELATIONSHIP_PURPOSE: {
+ id: "RELATIONSHIP_PURPOSE",
+ description: "Purpose of service requested",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'MONEY_EXCHANGE' | 'MONEY_ASSET_TRANSFER' | 'OTHER'
+ */
+ RELATIONSHIP_TYPE: {
+ id: "RELATIONSHIP_TYPE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ RELATIONSHIP_TYPE_OTHER: {
+ id: "RELATIONSHIP_TYPE_OTHER",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_11 = {
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ CONTROLLING_ENTITY_CONTRACTING_PARTNER: {
+ id: "CONTROLLING_ENTITY_CONTRACTING_PARTNER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ CONTROLLING_ENTITY_DOMICILE: {
+ id: "CONTROLLING_ENTITY_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ CONTROLLING_ENTITY_FULL_NAME: {
+ id: "CONTROLLING_ENTITY_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: '25_MORE_RIGHTS' | 'OTHER_WAY' | 'DIRECTOR'
+ */
+ CONTROLLING_ENTITY_LEVEL: {
+ id: "CONTROLLING_ENTITY_LEVEL",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Is a third person the beneficial owner of the assets?
+ *
+ * GANA Type: Boolean
+ */
+ CONTROLLING_ENTITY_THIRD_PERSON: {
+ id: "CONTROLLING_ENTITY_THIRD_PERSON",
+ description: "Is a third person the beneficial owner of the assets?",
+ } as FormFieldInfo,
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ SIGNATURE: {
+ id: "SIGNATURE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Contracing partner signature,
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ SIGN_DATE: {
+ id: "SIGN_DATE",
+ description: "Contracing partner signature,",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_12 = {
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ FOUNDATION_BENEFICIARY_ADDITION: {
+ id: "FOUNDATION_BENEFICIARY_ADDITION",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_12_beneficiary>[]
+ */
+ FOUNDATION_BENEFICIARY_LIST: {
+ id: "FOUNDATION_BENEFICIARY_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ FOUNDATION_CONTRACTING_PARTNER: {
+ id: "FOUNDATION_CONTRACTING_PARTNER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ FOUNDATION_DISCRETIONARY: {
+ id: "FOUNDATION_DISCRETIONARY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_12_founder>[]
+ */
+ FOUNDATION_FOUNDER_LIST: {
+ id: "FOUNDATION_FOUNDER_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDATION_KNOWN_AS: {
+ id: "FOUNDATION_KNOWN_AS",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDATION_NAME: {
+ id: "FOUNDATION_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_12_pre>[]
+ */
+ FOUNDATION_PRE_LIST: {
+ id: "FOUNDATION_PRE_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_12_representative>[]
+ */
+ FOUNDATION_REPRESENTATIVE_LIST: {
+ id: "FOUNDATION_REPRESENTATIVE_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ FOUNDATION_REVOCABLE: {
+ id: "FOUNDATION_REVOCABLE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ SIGNATURE: {
+ id: "SIGNATURE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Contracing partner signature,
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ SIGN_DATE: {
+ id: "SIGN_DATE",
+ description: "Contracing partner signature,",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_12_beneficiary = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ FOUNDATION_BENEFICIARY_BIRTHDATE: {
+ id: "FOUNDATION_BENEFICIARY_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_BENEFICIARY_COUNTRY: {
+ id: "FOUNDATION_BENEFICIARY_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ FOUNDATION_BENEFICIARY_DOMICILE: {
+ id: "FOUNDATION_BENEFICIARY_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDATION_BENEFICIARY_FULL_NAME: {
+ id: "FOUNDATION_BENEFICIARY_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_BENEFICIARY_NATIONALITY: {
+ id: "FOUNDATION_BENEFICIARY_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM: {
+ id: "FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_12_founder = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ FOUNDATION_FOUNDER_BIRTHDATE: {
+ id: "FOUNDATION_FOUNDER_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_FOUNDER_COUNTRY: {
+ id: "FOUNDATION_FOUNDER_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ FOUNDATION_FOUNDER_DEATHDATE: {
+ id: "FOUNDATION_FOUNDER_DEATHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ FOUNDATION_FOUNDER_DOMICILE: {
+ id: "FOUNDATION_FOUNDER_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDATION_FOUNDER_FULL_NAME: {
+ id: "FOUNDATION_FOUNDER_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_FOUNDER_NATIONALITY: {
+ id: "FOUNDATION_FOUNDER_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ FOUNDATION_FOUNDER_RIGHT_TO_REVOKE: {
+ id: "FOUNDATION_FOUNDER_RIGHT_TO_REVOKE",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_12_pre = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ FOUNDATION_PRE_BIRTHDATE: {
+ id: "FOUNDATION_PRE_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_PRE_COUNTRY: {
+ id: "FOUNDATION_PRE_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ FOUNDATION_PRE_DEATHDATE: {
+ id: "FOUNDATION_PRE_DEATHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ FOUNDATION_PRE_DOMICILE: {
+ id: "FOUNDATION_PRE_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDATION_PRE_FULL_NAME: {
+ id: "FOUNDATION_PRE_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_PRE_NATIONALITY: {
+ id: "FOUNDATION_PRE_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_12_representative = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ FOUNDATION_REPRESENTATIVE_BIRTHDATE: {
+ id: "FOUNDATION_REPRESENTATIVE_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_REPRESENTATIVE_COUNTRY: {
+ id: "FOUNDATION_REPRESENTATIVE_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ FOUNDATION_REPRESENTATIVE_DOMICILE: {
+ id: "FOUNDATION_REPRESENTATIVE_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDATION_REPRESENTATIVE_FULL_NAME: {
+ id: "FOUNDATION_REPRESENTATIVE_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDATION_REPRESENTATIVE_NATIONALITY: {
+ id: "FOUNDATION_REPRESENTATIVE_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE: {
+ id: "FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_13 = {
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ SIGNATURE: {
+ id: "SIGNATURE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Contracing partner signature,
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ SIGN_DATE: {
+ id: "SIGN_DATE",
+ description: "Contracing partner signature,",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_13_beneficiary>[]
+ */
+ TRUST_BENEFICIARY_LIST: {
+ id: "TRUST_BENEFICIARY_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ TRUST_CONTRACTING_PARTNER: {
+ id: "TRUST_CONTRACTING_PARTNER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ TRUST_DISCRETIONARY: {
+ id: "TRUST_DISCRETIONARY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_13_further>[]
+ */
+ TRUST_FURTHER_LIST: {
+ id: "TRUST_FURTHER_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ TRUST_KNOWN_AS: {
+ id: "TRUST_KNOWN_AS",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ TRUST_NAME: {
+ id: "TRUST_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_13_pre>[]
+ */
+ TRUST_PRE_LIST: {
+ id: "TRUST_PRE_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_13_protector>[]
+ */
+ TRUST_PROTECTOR_LIST: {
+ id: "TRUST_PROTECTOR_LIST",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ TRUST_REVOCABLE: {
+ id: "TRUST_REVOCABLE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Form<VQF_902_13_settlor>[]
+ */
+ TRUST_SETTLOR_LIST: {
+ id: "TRUST_SETTLOR_LIST",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_13_beneficiary = {
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ TRUST_BENEFICIARY_ADDITION: {
+ id: "TRUST_BENEFICIARY_ADDITION",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ TRUST_BENEFICIARY_BIRTHDATE: {
+ id: "TRUST_BENEFICIARY_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_BENEFICIARY_COUNTRY: {
+ id: "TRUST_BENEFICIARY_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ TRUST_BENEFICIARY_DOMICILE: {
+ id: "TRUST_BENEFICIARY_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ TRUST_BENEFICIARY_FULL_NAME: {
+ id: "TRUST_BENEFICIARY_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_BENEFICIARY_NATIONALITY: {
+ id: "TRUST_BENEFICIARY_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ TRUST_BENEFICIARY_RIGHT_TO_CLAIM: {
+ id: "TRUST_BENEFICIARY_RIGHT_TO_CLAIM",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_13_further = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ TRUST_FURTHER_BIRTHDATE: {
+ id: "TRUST_FURTHER_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_FURTHER_COUNTRY: {
+ id: "TRUST_FURTHER_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ TRUST_FURTHER_DOMICILE: {
+ id: "TRUST_FURTHER_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ TRUST_FURTHER_FULL_NAME: {
+ id: "TRUST_FURTHER_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_FURTHER_NATIONALITY: {
+ id: "TRUST_FURTHER_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ TRUST_FURTHER_RIGHT_TO_REVOKE: {
+ id: "TRUST_FURTHER_RIGHT_TO_REVOKE",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_13_pre = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ TRUST_PRE_BIRTHDATE: {
+ id: "TRUST_PRE_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_PRE_COUNTRY: {
+ id: "TRUST_PRE_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ TRUST_PRE_DEATHDATE: {
+ id: "TRUST_PRE_DEATHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ TRUST_PRE_DOMICILE: {
+ id: "TRUST_PRE_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ TRUST_PRE_FULL_NAME: {
+ id: "TRUST_PRE_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_PRE_NATIONALITY: {
+ id: "TRUST_PRE_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_13_protector = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ TRUST_PROTECTOR_BIRTHDATE: {
+ id: "TRUST_PROTECTOR_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_PROTECTOR_COUNTRY: {
+ id: "TRUST_PROTECTOR_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ TRUST_PROTECTOR_DOMICILE: {
+ id: "TRUST_PROTECTOR_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ TRUST_PROTECTOR_FULL_NAME: {
+ id: "TRUST_PROTECTOR_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_PROTECTOR_NATIONALITY: {
+ id: "TRUST_PROTECTOR_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ TRUST_PROTECTOR_RIGHT_TO_REVOKE: {
+ id: "TRUST_PROTECTOR_RIGHT_TO_REVOKE",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_13_settlor = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ TRUST_SETTLOR_BIRTHDATE: {
+ id: "TRUST_SETTLOR_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_SETTLOR_COUNTRY: {
+ id: "TRUST_SETTLOR_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ TRUST_SETTLOR_DEATHDATE: {
+ id: "TRUST_SETTLOR_DEATHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ TRUST_SETTLOR_DOMICILE: {
+ id: "TRUST_SETTLOR_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ TRUST_SETTLOR_FULL_NAME: {
+ id: "TRUST_SETTLOR_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ TRUST_SETTLOR_NATIONALITY: {
+ id: "TRUST_SETTLOR_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Boolean
+ */
+ TRUST_SETTLOR_RIGHT_TO_REVOKE: {
+ id: "TRUST_SETTLOR_RIGHT_TO_REVOKE",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_14 = {
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description: Gathered or consulted documents
+ *
+ * GANA Type: Paragraph
+ */
+ INCRISK_DOCUMENTS: {
+ id: "INCRISK_DOCUMENTS",
+ description: "Gathered or consulted documents",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'GATHERING' | 'CONSULTATION' | 'ENQUIRIES' | 'OTHER'
+ */
+ INCRISK_MEANS: {
+ id: "INCRISK_MEANS",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ INCRISK_MEANS_OTHER: {
+ id: "INCRISK_MEANS_OTHER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Description of the circumstances/transactions, which triggered the special clarifications
+ *
+ * GANA Type: String
+ */
+ INCRISK_REASON: {
+ id: "INCRISK_REASON",
+ description: "Description of the circumstances/transactions, which triggered the special clarifications",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'NO_SUSPICION' | 'REASONABLE_SUSPICION' | 'SIMPLE_SUSPICION' | 'OTHER'
+ */
+ INCRISK_RESULT: {
+ id: "INCRISK_RESULT",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ INCRISK_RESULT_OTHER: {
+ id: "INCRISK_RESULT_OTHER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ INCRISK_SUMMARY: {
+ id: "INCRISK_SUMMARY",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_15 = {
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ INSURANCE_CONTRACTING_PARTNER: {
+ id: "INSURANCE_CONTRACTING_PARTNER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ INSURANCE_HOLDER_BIRTHDATE: {
+ id: "INSURANCE_HOLDER_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ INSURANCE_HOLDER_COUNTRY: {
+ id: "INSURANCE_HOLDER_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ INSURANCE_HOLDER_DOMICILE: {
+ id: "INSURANCE_HOLDER_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: The beneficial owners of the assets involved in the business relationship.
+ *
+ * GANA Type: String
+ */
+ INSURANCE_HOLDER_FULL_NAME: {
+ id: "INSURANCE_HOLDER_FULL_NAME",
+ description: "The beneficial owners of the assets involved in the business relationship.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ INSURANCE_HOLDER_NATIONALITY: {
+ id: "INSURANCE_HOLDER_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ INSURANCE_PAYER_BIRTHDATE: {
+ id: "INSURANCE_PAYER_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ INSURANCE_PAYER_COUNTRY: {
+ id: "INSURANCE_PAYER_COUNTRY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ INSURANCE_PAYER_DOMICILE: {
+ id: "INSURANCE_PAYER_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: The beneficial owners of the assets involved in the business relationship.
+ *
+ * GANA Type: String
+ */
+ INSURANCE_PAYER_FULL_NAME: {
+ id: "INSURANCE_PAYER_FULL_NAME",
+ description: "The beneficial owners of the assets involved in the business relationship.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ INSURANCE_PAYER_NATIONALITY: {
+ id: "INSURANCE_PAYER_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Name or number of the contractual relationship between the contracting party and the financial intermediary
+ *
+ * GANA Type: String
+ */
+ INSURANCE_RELATIONSHIP_NAME: {
+ id: "INSURANCE_RELATIONSHIP_NAME",
+ description: "Name or number of the contractual relationship between the contracting party and the financial intermediary",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ INSURANCE_RELATIONSHIP_POLICY: {
+ id: "INSURANCE_RELATIONSHIP_POLICY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ SIGNATURE: {
+ id: "SIGNATURE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Contracing partner signature,
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ SIGN_DATE: {
+ id: "SIGN_DATE",
+ description: "Contracing partner signature,",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_1_founder = {
+ /**
+ * Description: Signatory of representation
+ *
+ * GANA Type: String
+ */
+ FOUNDER_AUTHORIZATION_TYPE: {
+ id: "FOUNDER_AUTHORIZATION_TYPE",
+ description: "Signatory of representation",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ FOUNDER_BIRTHDATE: {
+ id: "FOUNDER_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDER_FULL_NAME: {
+ id: "FOUNDER_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ FOUNDER_NATIONALITY: {
+ id: "FOUNDER_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: File
+ */
+ FOUNDER_NATIONAL_COPY: {
+ id: "FOUNDER_NATIONAL_COPY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDER_NATIONAL_ID: {
+ id: "FOUNDER_NATIONAL_ID",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'CR' | 'MANDATE' | 'OTHER'
+ */
+ FOUNDER_POWER_OF_ATTORNEY: {
+ id: "FOUNDER_POWER_OF_ATTORNEY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ FOUNDER_POWER_OF_ATTORNEY_OTHER: {
+ id: "FOUNDER_POWER_OF_ATTORNEY_OTHER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ FOUNDER_RESIDENTIAL_ADDRESS: {
+ id: "FOUNDER_RESIDENTIAL_ADDRESS",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_4 = {
+ /**
+ * Description: Based on 902.4.1 country list
+ *
+ * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH'
+ */
+ CONTACT_RISK_LEVEL: {
+ id: "CONTACT_RISK_LEVEL",
+ description: "Based on 902.4.1 country list",
+ } as FormFieldInfo,
+ /**
+ * Description: Based on 902.4.1 country list
+ *
+ * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH'
+ */
+ COUNTRY_RISK_BUSINESS_LEVEL: {
+ id: "COUNTRY_RISK_BUSINESS_LEVEL",
+ description: "Based on 902.4.1 country list",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'CUSTOMER' | 'OWNER'
+ */
+ COUNTRY_RISK_BUSINESS_TYPE: {
+ id: "COUNTRY_RISK_BUSINESS_TYPE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Based on 902.4.1 country list
+ *
+ * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH'
+ */
+ COUNTRY_RISK_NATIONALITY_LEVEL: {
+ id: "COUNTRY_RISK_NATIONALITY_LEVEL",
+ description: "Based on 902.4.1 country list",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'NATIONALITY_CUSTOMER' | 'NATIONALITY_OWNER' | 'DOMICILE_CUSTOMER' | 'DOMICILE_OWNER' | 'DOMICILE_CONTROLLING'
+ */
+ COUNTRY_RISK_NATIONALITY_TYPE: {
+ id: "COUNTRY_RISK_NATIONALITY_TYPE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Based on 902.4.1 country list
+ *
+ * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH'
+ */
+ COUNTRY_RISK_PAYMENTS_LEVEL: {
+ id: "COUNTRY_RISK_PAYMENTS_LEVEL",
+ description: "Based on 902.4.1 country list",
+ } as FormFieldInfo,
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: Criteria description
+ *
+ * GANA Type: String
+ */
+ EXTRA_CRITERA_1_RISK_DEFINITION: {
+ id: "EXTRA_CRITERA_1_RISK_DEFINITION",
+ description: "Criteria description",
+ } as FormFieldInfo,
+ /**
+ * Description: Based on 902.4.1 country list
+ *
+ * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH'
+ */
+ EXTRA_CRITERA_1_RISK_LEVEL: {
+ id: "EXTRA_CRITERA_1_RISK_LEVEL",
+ description: "Based on 902.4.1 country list",
+ } as FormFieldInfo,
+ /**
+ * Description: Criteria description
+ *
+ * GANA Type: String
+ */
+ EXTRA_CRITERA_2_RISK_DEFINITION: {
+ id: "EXTRA_CRITERA_2_RISK_DEFINITION",
+ description: "Criteria description",
+ } as FormFieldInfo,
+ /**
+ * Description: Based on 902.4.1 country list
+ *
+ * GANA Type: 'LOW' | 'MEDIUM' | 'HIGH'
+ */
+ EXTRA_CRITERA_2_RISK_LEVEL: {
+ id: "EXTRA_CRITERA_2_RISK_LEVEL",
+ description: "Based on 902.4.1 country list",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ HIGH_RISK_ACCEPTANCE_DATE: {
+ id: "HIGH_RISK_ACCEPTANCE_DATE",
+ description: "The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___",
+ } as FormFieldInfo,
+ /**
+ * Description: True if the person is in a country for which FATF requires incresed dilegence.
+ *
+ * GANA Type: Boolean
+ */
+ HIGH_RISK_COUNTRY: {
+ id: "HIGH_RISK_COUNTRY",
+ description: "True if the person is in a country for which FATF requires incresed dilegence.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'TRANSPARENT' | 'HIGH_CASH_TRANSACTION' | 'NOT_WELL_KNOWN' | 'HIGH_RISK_TRADE' | 'UNKNOWN_INDUSTRY'
+ */
+ INDUSTRY_RISK_LEVEL: {
+ id: "INDUSTRY_RISK_LEVEL",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'CUSTOMER' | 'OWNER'
+ */
+ INDUSTRY_RISK_TYPE: {
+ id: "INDUSTRY_RISK_TYPE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ PEP_ACCEPTANCE_DATE: {
+ id: "PEP_ACCEPTANCE_DATE",
+ description: "The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___",
+ } as FormFieldInfo,
+ /**
+ * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 2'
+ *
+ * GANA Type: Boolean
+ */
+ PEP_DOMESTIC: {
+ id: "PEP_DOMESTIC",
+ description: "True if the person is a PEP defined by 'Art 7 lit. g numeral 2'",
+ } as FormFieldInfo,
+ /**
+ * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 1'
+ *
+ * GANA Type: Boolean
+ */
+ PEP_FOREIGN: {
+ id: "PEP_FOREIGN",
+ description: "True if the person is a PEP defined by 'Art 7 lit. g numeral 1'",
+ } as FormFieldInfo,
+ /**
+ * Description: True if the person is a PEP defined by 'Art 7 lit. g numeral 3'
+ *
+ * GANA Type: Boolean
+ */
+ PEP_INTERNATIONAL_ORGANIZATION: {
+ id: "PEP_INTERNATIONAL_ORGANIZATION",
+ description: "True if the person is a PEP defined by 'Art 7 lit. g numeral 3'",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'EASY' | 'SOPHISTICATED' | 'OFFSHORE' | 'COMPLEX_STRUCTURE' | 'LARGE_NUMBER_OF_ACCOUNTS' | 'COMPLEX_SERVICE' | 'FREQ_TRANS_WITH_HIGH_RISK'
+ */
+ PRODUCT_RISK_LEVEL: {
+ id: "PRODUCT_RISK_LEVEL",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ RISK_CLASIFICATION_ACCEPTANCE_DATE: {
+ id: "RISK_CLASIFICATION_ACCEPTANCE_DATE",
+ description: "The decision of the Senior executive body on the acceptance of a business relationsip was obtained on ___",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'WITH' | 'WITHOUT'
+ */
+ RISK_CLASIFICATION_LEVEL: {
+ id: "RISK_CLASIFICATION_LEVEL",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Justification for differing risk assessment
+ *
+ * GANA Type: Paragraph
+ */
+ RISK_JUSTIFICATION: {
+ id: "RISK_JUSTIFICATION",
+ description: "Justification for differing risk assessment",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_5 = {
+ /**
+ * Description: Information on the planned development of the business relationship and the assets.
+ *
+ * GANA Type: String
+ */
+ BIZREL_DEVELOPMENT: {
+ id: "BIZREL_DEVELOPMENT",
+ description: "Information on the planned development of the business relationship and the assets.",
+ } as FormFieldInfo,
+ /**
+ * Description: In the case of cash or money and asset transfer transacction with regular customer
+ *
+ * GANA Type: BusinessAddress
+ */
+ BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS: {
+ id: "BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS",
+ description: "In the case of cash or money and asset transfer transacction with regular customer",
+ } as FormFieldInfo,
+ /**
+ * Description: In the case of cash or money and asset transfer transacction with regular customer
+ *
+ * GANA Type: String
+ */
+ BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT: {
+ id: "BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT",
+ description: "In the case of cash or money and asset transfer transacction with regular customer",
+ } as FormFieldInfo,
+ /**
+ * Description: In the case of cash or money and asset transfer transacction with regular customer
+ *
+ * GANA Type: String
+ */
+ BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME: {
+ id: "BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME",
+ description: "In the case of cash or money and asset transfer transacction with regular customer",
+ } as FormFieldInfo,
+ /**
+ * Description: In the case of cash or money and asset transfer transacction with regular customer
+ *
+ * GANA Type: String
+ */
+ BIZREL_FINANCIAL_VOLUME: {
+ id: "BIZREL_FINANCIAL_VOLUME",
+ description: "In the case of cash or money and asset transfer transacction with regular customer",
+ } as FormFieldInfo,
+ /**
+ * Description: Other relevant information.
+ *
+ * GANA Type: String
+ */
+ BIZREL_FURTHER_INFO: {
+ id: "BIZREL_FURTHER_INFO",
+ description: "Other relevant information.",
+ } as FormFieldInfo,
+ /**
+ * Description: Income and assets, liabilities (estimated)
+ *
+ * GANA Type: String
+ */
+ BIZREL_INCOME: {
+ id: "BIZREL_INCOME",
+ description: "Income and assets, liabilities (estimated)",
+ } as FormFieldInfo,
+ /**
+ * Description: Amount of the involved assets.
+ *
+ * GANA Type: Amount
+ */
+ BIZREL_ORIGIN_AMOUNT: {
+ id: "BIZREL_ORIGIN_AMOUNT",
+ description: "Amount of the involved assets.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: 'SAVINGS' | 'OWN_BUSINESS' | 'INHERITANCE' | 'OTHER'
+ */
+ BIZREL_ORIGIN_CATEGORY: {
+ id: "BIZREL_ORIGIN_CATEGORY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ BIZREL_ORIGIN_CATEGORY_OTHER: {
+ id: "BIZREL_ORIGIN_CATEGORY_OTHER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Currency of the involved assets.
+ *
+ * GANA Type: Amount
+ */
+ BIZREL_ORIGIN_CURRENCY: {
+ id: "BIZREL_ORIGIN_CURRENCY",
+ description: "Currency of the involved assets.",
+ } as FormFieldInfo,
+ /**
+ * Description: Detail description of the origings
+ *
+ * GANA Type: Paragraph
+ */
+ BIZREL_ORIGIN_DETAIL: {
+ id: "BIZREL_ORIGIN_DETAIL",
+ description: "Detail description of the origings",
+ } as FormFieldInfo,
+ /**
+ * Description: Nature of the involved assets.
+ *
+ * GANA Type: String
+ */
+ BIZREL_ORIGIN_NATURE: {
+ id: "BIZREL_ORIGIN_NATURE",
+ description: "Nature of the involved assets.",
+ } as FormFieldInfo,
+ /**
+ * Description: Profession, business activities, etc. (former, current, potentially planned)
+ *
+ * GANA Type: String
+ */
+ BIZREL_PROFESSION: {
+ id: "BIZREL_PROFESSION",
+ description: "Profession, business activities, etc. (former, current, potentially planned)",
+ } as FormFieldInfo,
+ /**
+ * Description: Purpose of the business relationship.
+ *
+ * GANA Type: String
+ */
+ BIZREL_PURPOSE: {
+ id: "BIZREL_PURPOSE",
+ description: "Purpose of the business relationship.",
+ } as FormFieldInfo,
+ /**
+ * Description: Relation to other AMLA-files.
+ *
+ * GANA Type: String
+ */
+ BIZREL_THIRDPARTY_AMLA_FILES: {
+ id: "BIZREL_THIRDPARTY_AMLA_FILES",
+ description: "Relation to other AMLA-files.",
+ } as FormFieldInfo,
+ /**
+ * Description: Introducer / agents / references.
+ *
+ * GANA Type: String
+ */
+ BIZREL_THIRDPARTY_REFERENCES: {
+ id: "BIZREL_THIRDPARTY_REFERENCES",
+ description: "Introducer / agents / references.",
+ } as FormFieldInfo,
+ /**
+ * Description: Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship.
+ *
+ * GANA Type: String
+ */
+ BIZREL_THIRDPARTY_RELATIONSHIP: {
+ id: "BIZREL_THIRDPARTY_RELATIONSHIP",
+ description: "Relation of the customer to the beneficial owner, controlling persons, authorised signatories and other persons involved in the business relationship.",
+ } as FormFieldInfo,
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_9 = {
+ /**
+ * Description: Customer system ID required to correlate different AML forms.
+ *
+ * GANA Type: String
+ */
+ CUSTOMER_ID: {
+ id: "CUSTOMER_ID",
+ description: "Customer system ID required to correlate different AML forms.",
+ } as FormFieldInfo,
+ /**
+ * Description: When the form was completed.
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ FORM_FILLING_DATE: {
+ id: "FORM_FILLING_DATE",
+ description: "When the form was completed.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: Paragraph
+ */
+ IDENTITY_CONTRACTING_PARTNER: {
+ id: "IDENTITY_CONTRACTING_PARTNER",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: The beneficial owners of the assets involved in the business relationship.
+ *
+ * GANA Type: Form<VQF_902_9_identity>[]
+ */
+ IDENTITY_LIST: {
+ id: "IDENTITY_LIST",
+ description: "The beneficial owners of the assets involved in the business relationship.",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ SIGNATURE: {
+ id: "SIGNATURE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description: Contracing partner signature,
+ *
+ * GANA Type: AbsoluteDateTime
+ */
+ SIGN_DATE: {
+ id: "SIGN_DATE",
+ description: "Contracing partner signature,",
+ } as FormFieldInfo,
+ } as const;
+ export const FormMetadata = {
+ /**
+ * Description: Name of the form completed by the user.
+ *
+ * GANA Type: String
+ */
+ FORM_ID: {
+ id: "FORM_ID",
+ description: "Name of the form completed by the user.",
+ } as FormFieldInfo,
+ /**
+ * Description: High entropy value used in forms where hash is going to be stored in plain text.
+ *
+ * GANA Type: String
+ */
+ FORM_SALT: {
+ id: "FORM_SALT",
+ description: "High entropy value used in forms where hash is going to be stored in plain text.",
+ } as FormFieldInfo,
+ /**
+ * Description: Version of the form completed by the user.
+ *
+ * GANA Type: Number
+ */
+ FORM_VERSION: {
+ id: "FORM_VERSION",
+ description: "Version of the form completed by the user.",
+ } as FormFieldInfo,
+ } as const;
+ export const VQF_902_9_identity = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ IDENTITY_BIRTHDATE: {
+ id: "IDENTITY_BIRTHDATE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: ResidentialAddress
+ */
+ IDENTITY_DOMICILE: {
+ id: "IDENTITY_DOMICILE",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ IDENTITY_FULL_NAME: {
+ id: "IDENTITY_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ IDENTITY_NATIONALITY: {
+ id: "IDENTITY_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const GLS_Onboarding = {
+ /**
+ * Description: Name of the version of the terms of service accepted by the customer.
+ *
+ * GANA Type: Boolean
+ */
+ ACCEPTED_TERMS_OF_SERVICE: {
+ id: "ACCEPTED_TERMS_OF_SERVICE",
+ description: "Name of the version of the terms of service accepted by the customer.",
+ } as FormFieldInfo,
+ /**
+ * Description: Building name of the of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_BUILDING_NAME: {
+ id: "ADDRESS_BUILDING_NAME",
+ description: "Building name of the of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Building number of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_BUILDING_NUMBER: {
+ id: "ADDRESS_BUILDING_NUMBER",
+ description: "Building number of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Country where the individual or business resides. Format is 2-letter ISO country-code.
+ *
+ * GANA Type: CountryCode
+ */
+ ADDRESS_COUNTRY: {
+ id: "ADDRESS_COUNTRY",
+ description: "Country where the individual or business resides. Format is 2-letter ISO country-code.",
+ } as FormFieldInfo,
+ /**
+ * Description: Country subdivision of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_COUNTRY_SUBDIVISION: {
+ id: "ADDRESS_COUNTRY_SUBDIVISION",
+ description: "Country subdivision of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Additional address information of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_LINES: {
+ id: "ADDRESS_LINES",
+ description: "Additional address information of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Street address name of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_STREET_NAME: {
+ id: "ADDRESS_STREET_NAME",
+ description: "Street address name of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Street address number of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_STREET_NUMBER: {
+ id: "ADDRESS_STREET_NUMBER",
+ description: "Street address number of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Town district of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_TOWN_DISTRICT: {
+ id: "ADDRESS_TOWN_DISTRICT",
+ description: "Town district of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Town location of the individual or business.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_TOWN_LOCATION: {
+ id: "ADDRESS_TOWN_LOCATION",
+ description: "Town location of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Postal code of the city where the individual or business resides.
+ *
+ * GANA Type: String
+ */
+ ADDRESS_ZIPCODE: {
+ id: "ADDRESS_ZIPCODE",
+ description: "Postal code of the city where the individual or business resides.",
+ } as FormFieldInfo,
+ /**
+ * Description: Name of the company or business.
+ *
+ * GANA Type: String
+ */
+ BUSINESS_DISPLAY_NAME: {
+ id: "BUSINESS_DISPLAY_NAME",
+ description: "Name of the company or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Industry in which the company or business mainly operate.
+ *
+ * GANA Type: String
+ */
+ BUSINESS_INDUSTRY: {
+ id: "BUSINESS_INDUSTRY",
+ description: "Industry in which the company or business mainly operate.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if the company or business is a non-profit.
+ *
+ * GANA Type: Boolean
+ */
+ BUSINESS_IS_NON_PROFIT: {
+ id: "BUSINESS_IS_NON_PROFIT",
+ description: "True if the company or business is a non-profit.",
+ } as FormFieldInfo,
+ /**
+ * Description: City or location where the company or business is registered.
+ *
+ * GANA Type: String
+ */
+ BUSINESS_LEGAL_JURISDICTION: {
+ id: "BUSINESS_LEGAL_JURISDICTION",
+ description: "City or location where the company or business is registered.",
+ } as FormFieldInfo,
+ /**
+ * Description: List of natural persons that are legal representatives or shareholders.
+ *
+ * GANA Type: GLS_BusinessRepresentative[]
+ */
+ BUSINESS_LEGAL_REPRESENTATIVES: {
+ id: "BUSINESS_LEGAL_REPRESENTATIVES",
+ description: "List of natural persons that are legal representatives or shareholders.",
+ } as FormFieldInfo,
+ /**
+ * Description: Registration founding date of the company or business.
+ *
+ * GANA Type: AbsoluteDate
+ */
+ BUSINESS_REGISTRATION_DATE: {
+ id: "BUSINESS_REGISTRATION_DATE",
+ description: "Registration founding date of the company or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Registration id on legal entity of the company or business.
+ *
+ * GANA Type: String
+ */
+ BUSINESS_REGISTRATION_ID: {
+ id: "BUSINESS_REGISTRATION_ID",
+ description: "Registration id on legal entity of the company or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Type of company form or business (limited liability company, general partnership, limited partnership, corporations, etc... ).
+ *
+ * GANA Type: String
+ */
+ BUSINESS_TYPE: {
+ id: "BUSINESS_TYPE",
+ description: "Type of company form or business (limited liability company, general partnership, limited partnership, corporations, etc... ).",
+ } as FormFieldInfo,
+ /**
+ * Description: DNS domain name owned by the individual or business.
+ *
+ * GANA Type: Hostname
+ */
+ CONTACT_DNS_DOMAIN: {
+ id: "CONTACT_DNS_DOMAIN",
+ description: "DNS domain name owned by the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: E-mail address to contact the individual or business. Can be validated via E-mail with TAN.
+ *
+ * GANA Type: Email
+ */
+ CONTACT_EMAIL: {
+ id: "CONTACT_EMAIL",
+ description: "E-mail address to contact the individual or business. Can be validated via E-mail with TAN.",
+ } as FormFieldInfo,
+ /**
+ * Description: Phone number to contact the individual or business. Can be validated via SMS-TAN or phone call.
+ *
+ * GANA Type: Phone
+ */
+ CONTACT_PHONE: {
+ id: "CONTACT_PHONE",
+ description: "Phone number to contact the individual or business. Can be validated via SMS-TAN or phone call.",
+ } as FormFieldInfo,
+ /**
+ * Description: Web site owned by the individual or business.
+ *
+ * GANA Type: HttpHostnamePath
+ */
+ CONTACT_WEB_DOMAIN: {
+ id: "CONTACT_WEB_DOMAIN",
+ description: "Web site owned by the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Date of birth of an individual. Format is YYYY-MM-DD.
+ *
+ * GANA Type: AbsoluteDate
+ */
+ PERSON_DATE_OF_BIRTH: {
+ id: "PERSON_DATE_OF_BIRTH",
+ description: "Date of birth of an individual. Format is YYYY-MM-DD.",
+ } as FormFieldInfo,
+ /**
+ * Description: Full legal name of an individual as in the national identity card.
+ *
+ * GANA Type: String
+ */
+ PERSON_FULL_NAME: {
+ id: "PERSON_FULL_NAME",
+ description: "Full legal name of an individual as in the national identity card.",
+ } as FormFieldInfo,
+ /**
+ * Description: Last name of an individual as in the national identity card.
+ *
+ * GANA Type: String
+ */
+ PERSON_LAST_NAME: {
+ id: "PERSON_LAST_NAME",
+ description: "Last name of an individual as in the national identity card.",
+ } as FormFieldInfo,
+ /**
+ * Description: Nationality of an individual. Format is 2-letter ISO country-code.
+ *
+ * GANA Type: CountryCode
+ */
+ PERSON_NATIONALITY: {
+ id: "PERSON_NATIONALITY",
+ description: "Nationality of an individual. Format is 2-letter ISO country-code.",
+ } as FormFieldInfo,
+ /**
+ * Description: Identification number or string of national identity card.
+ *
+ * GANA Type: String
+ */
+ PERSON_NATIONAL_ID: {
+ id: "PERSON_NATIONAL_ID",
+ description: "Identification number or string of national identity card.",
+ } as FormFieldInfo,
+ /**
+ * Description: Scan of a recognized national identity card of an individual.
+ *
+ * GANA Type: File
+ */
+ PERSON_NATIONAL_ID_SCAN: {
+ id: "PERSON_NATIONAL_ID_SCAN",
+ description: "Scan of a recognized national identity card of an individual.",
+ } as FormFieldInfo,
+ /**
+ * Description: Country name of of the individual or business.
+ *
+ * GANA Type: CountryCode
+ */
+ TAX_COUNTRY: {
+ id: "TAX_COUNTRY",
+ description: "Country name of of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Tax identifier of the individual or business.
+ *
+ * GANA Type: String
+ */
+ TAX_ID: {
+ id: "TAX_ID",
+ description: "Tax identifier of the individual or business.",
+ } as FormFieldInfo,
+ /**
+ * Description: Is the individual or business economically active or passive.
+ *
+ * GANA Type: Boolean
+ */
+ TAX_IS_ACTIVE: {
+ id: "TAX_IS_ACTIVE",
+ description: "Is the individual or business economically active or passive.",
+ } as FormFieldInfo,
+ /**
+ * Description: Is the business entitled to deduct input tax.
+ *
+ * GANA Type: Boolean
+ */
+ TAX_IS_DEDUCTED: {
+ id: "TAX_IS_DEDUCTED",
+ description: "Is the business entitled to deduct input tax.",
+ } as FormFieldInfo,
+ /**
+ * Description: Is business founded or under USA law.
+ *
+ * GANA Type: Boolean
+ */
+ TAX_IS_USA_LAW: {
+ id: "TAX_IS_USA_LAW",
+ description: "Is business founded or under USA law.",
+ } as FormFieldInfo,
+ } as const;
+ export const GLS_BusinessRepresentative = {
+ /**
+ * Description:
+ *
+ * GANA Type: AbsoluteDate
+ */
+ GLS_REPRESENTATIVE_DATE_OF_BIRTH: {
+ id: "GLS_REPRESENTATIVE_DATE_OF_BIRTH",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ GLS_REPRESENTATIVE_FULL_NAME: {
+ id: "GLS_REPRESENTATIVE_FULL_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ GLS_REPRESENTATIVE_LAST_NAME: {
+ id: "GLS_REPRESENTATIVE_LAST_NAME",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: CountryCode
+ */
+ GLS_REPRESENTATIVE_NATIONALITY: {
+ id: "GLS_REPRESENTATIVE_NATIONALITY",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: String
+ */
+ GLS_REPRESENTATIVE_NATIONAL_ID: {
+ id: "GLS_REPRESENTATIVE_NATIONAL_ID",
+ description: "",
+ } as FormFieldInfo,
+ /**
+ * Description:
+ *
+ * GANA Type: File
+ */
+ GLS_REPRESENTATIVE_NATIONAL_ID_SCAN: {
+ id: "GLS_REPRESENTATIVE_NATIONAL_ID_SCAN",
+ description: "",
+ } as FormFieldInfo,
+ } as const;
+ export const AccountProperties = {
+ /**
+ * Description: True if deposit limit changed from zero to greater than zero.
+ *
+ * GANA Type: Boolean
+ */
+ AML_ACCOUNT_ACTIVE_DEPOSIT: {
+ id: "AML_ACCOUNT_ACTIVE_DEPOSIT",
+ description: "True if deposit limit changed from zero to greater than zero.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if this is an account controlled by domestic PEP.
+ *
+ * GANA Type: Boolean
+ */
+ AML_DOMESTIC_PEP: {
+ id: "AML_DOMESTIC_PEP",
+ description: "True if this is an account controlled by domestic PEP.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if this is an account controlled by foreign PEP.
+ *
+ * GANA Type: Boolean
+ */
+ AML_FOREIGN_PEP: {
+ id: "AML_FOREIGN_PEP",
+ description: "True if this is an account controlled by foreign PEP.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if this is an account of a high-rish business.
+ *
+ * GANA Type: Boolean
+ */
+ AML_HIGH_RISK_BUSINESS: {
+ id: "AML_HIGH_RISK_BUSINESS",
+ description: "True if this is an account of a high-rish business.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if this is an account controlled by person from high-risk country.
+ *
+ * GANA Type: String
+ */
+ AML_HIGH_RISK_COUNTRY: {
+ id: "AML_HIGH_RISK_COUNTRY",
+ description: "True if this is an account controlled by person from high-risk country.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if account is involved in proceedings for which Art 6 GwG, and completed.
+ *
+ * GANA Type: Boolean
+ */
+ AML_INVESTIGATION_ART6_COMPLETED: {
+ id: "AML_INVESTIGATION_ART6_COMPLETED",
+ description: "True if account is involved in proceedings for which Art 6 GwG, and completed.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if account is involved in proceedings for which Art 6 GwG, but failed.
+ *
+ * GANA Type: Boolean
+ */
+ AML_INVESTIGATION_ART6_FAILED: {
+ id: "AML_INVESTIGATION_ART6_FAILED",
+ description: "True if account is involved in proceedings for which Art 6 GwG, but failed.",
+ } as FormFieldInfo,
+ /**
+ * Description: True if this account is going to be reported by right to do so (based on Art 305ter Abs. 2 StGB).
+ *
+ * GANA Type: Boolean
+ */
+ AML_MROS_REPORTED_ART305: {
+ id: "AML_MROS_REPORTED_ART305",
+ description: "True if this account is going to be reported by right to do so (based on Art 305ter Abs. 2 StGB).",
+ } as FormFieldInfo,
+ /**
+ * Description: True if this account is going to be reported by obligation to do so (based on Art 9 Abs. 1 GwG).
+ *
+ * GANA Type: Boolean
+ */
+ AML_MROS_REPORTED_ART9: {
+ id: "AML_MROS_REPORTED_ART9",
+ description: "True if this account is going to be reported by obligation to do so (based on Art 9 Abs. 1 GwG).",
+ } as FormFieldInfo,
+ /**
+ * Description: True if the account made no operaton during a period of time.
+ *
+ * GANA Type: Boolean
+ */
+ AML_NO_OPERATION_DURING_PERIOD: {
+ id: "AML_NO_OPERATION_DURING_PERIOD",
+ description: "True if the account made no operaton during a period of time.",
+ } as FormFieldInfo,
+ } as const;
+
+
+}
diff --git a/packages/taler-util/src/index.ts b/packages/taler-util/src/index.ts
@@ -82,6 +82,10 @@ export * from "./taler-signatures.js";
export * from "./account-restrictions.js";
+export * from "./aml/aml-events.js";
+export * from "./aml/aml-properties.js";
+export * from "./aml/taler_form_attributes.js";
+
export * from "./iso-4217.js";
export * from "./iso-3166.js";
export * from "./iso-639.js";