taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

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:
Apackages/taler-util/src/aml/aml-events.ts | 159+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apackages/taler-util/src/aml/aml-properties.ts | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apackages/taler-util/src/aml/taler_form_attributes.ts | 2556+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpackages/taler-util/src/index.ts | 4++++
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";