gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 02/04: vqf forms


From: gnunet
Subject: [taler-wallet-core] 02/04: vqf forms
Date: Thu, 02 Jan 2025 22:22:42 +0100

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

commit d06a60dc520ddcd2048a2b978af92473273560c7
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Thu Jan 2 18:21:16 2025 -0300

    vqf forms
---
 packages/aml-backoffice-ui/src/forms/ganaForms.ts  |  243 ++++
 packages/aml-backoffice-ui/src/forms/index.ts      |   94 +-
 .../src/forms/taler_aml_attributes.json            | 1292 ++++++++++++++++++++
 .../src/forms/taler_aml_attributes.ts              | 1057 ++++++++++++++++
 packages/aml-backoffice-ui/tsconfig.json           |    1 +
 5 files changed, 2642 insertions(+), 45 deletions(-)

diff --git a/packages/aml-backoffice-ui/src/forms/ganaForms.ts 
b/packages/aml-backoffice-ui/src/forms/ganaForms.ts
new file mode 100644
index 000000000..8bce4d9fe
--- /dev/null
+++ b/packages/aml-backoffice-ui/src/forms/ganaForms.ts
@@ -0,0 +1,243 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022-2024 Taler Systems S.A.
+
+ GNU Taler is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+import {
+  DoubleColumnForm,
+  InternationalizationAPI,
+  UIFormElementConfig,
+  UIHandlerId,
+} from "@gnu-taler/web-util/browser";
+
+import ganaForms from "./taler_aml_attributes.json";
+
+type GanaField = {
+  required: boolean;
+  section: string;
+  type: string;
+  order?: number;
+  enumeration: string[];
+};
+
+type GanaForm = { [fieldName: string]: GanaField | string };
+
+type FieldsBySection = {
+  [section: string]: (UIFormElementConfig & { order?: number })[];
+};
+
+export function VQF_902_1(i18n: InternationalizationAPI): DoubleColumnForm {
+  const fieldsBySections = convertGanaJsonToDoubleColumnFormSection(
+    ganaForms.VQF_902_1,
+    converGanaField,
+  );
+
+  return {
+    type: "double-column",
+    design: [
+      {
+        title: i18n.str`Header`,
+        fields: fieldsBySections["header"].map((f) => {
+          if ("disabled" in f) {
+            f.disabled = true;
+          }
+          return f;
+        }),
+      },
+      {
+        title: i18n.str`Information`,
+        description: i18n.str`The customer is the person with whom the member 
concludes the contract with regard to the financial service provided (civil 
law). Does the member act as director of a domiciliary company, this 
domiciliary company is the customer.`,
+        fields: fieldsBySections["1"],
+      },
+      {
+        title: i18n.str`Information on the natural persons who establish the 
business relationship for legal entities and partnerships`,
+        description: i18n.str`For legal entities and partnerships the identity 
of the natural persons who establish the business relationship must be 
verified.`,
+        fields: fieldsBySections["2"],
+      },
+      {
+        title: i18n.str`Acceptance of business relationship`,
+        fields: fieldsBySections["3"],
+      },
+      {
+        title: i18n.str`Information on the beneficial owner of the assets 
and/or controlling person`,
+        description: i18n.str`Establishment of the beneficial owner of the 
assets and/or controlling person`,
+        fields: fieldsBySections["4"],
+      },
+      {
+        title: i18n.str`Evaluation with regard to embargo procedures/terrorism 
lists on establishing the business relationship`,
+        description: i18n.str`Verification whether the customer, beneficial 
owners of the assets, controlling persons, authorized representatives or other 
involved persons are listed on an embargo/terrorism list (date of 
verification/result)`,
+        fields: fieldsBySections["5"],
+      },
+    ],
+  };
+}
+
+function isArrayType(type: string): keyof typeof ganaForms | undefined {
+  if (!type.endsWith("[]")) return undefined;
+  return type.substring(0, type.length - 2) as keyof typeof ganaForms;
+}
+
+function isFormType(type: string): keyof typeof ganaForms | undefined {
+  const start = type.indexOf("<");
+  const end = type.indexOf(">");
+
+  if (start === -1 || end === -1) return undefined;
+  return type.substring(start + 1, end) as keyof typeof ganaForms;
+}
+
+function converGanaField(
+  fieldName: string,
+  fieldInfo: GanaField,
+): UIFormElementConfig {
+  const arrayType = isArrayType(fieldInfo.type);
+  if (arrayType) {
+    const ft = isFormType(arrayType);
+    const containedType = !ft ? arrayType : ft;
+    return {
+      id: fieldName as UIHandlerId,
+      label: fieldName,
+      type: "array",
+      fields: mergeAllSections(
+        convertGanaJsonToDoubleColumnFormSection(
+          ganaForms[containedType],
+          converGanaField,
+        ),
+      ),
+      labelFieldId: "asd" as UIHandlerId,
+    };
+  }
+  const formType = isFormType(fieldInfo.type);
+  if (formType) {
+    return {
+      label: fieldName,
+      type: "group",
+      fields: mergeAllSections(
+        convertGanaJsonToDoubleColumnFormSection(
+          ganaForms[formType] as GanaForm,
+          converGanaField,
+        ),
+      ),
+    };
+  }
+
+  switch (fieldInfo.type) {
+    case "Boolean": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName,
+        type: "toggle",
+        required: fieldInfo.required,
+        threeState: false,
+      };
+    }
+    case "File": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName,
+        type: "file",
+        required: fieldInfo.required,
+      };
+    }
+    case "String": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName,
+        type: "text",
+        required: fieldInfo.required,
+      };
+    }
+    case "ResidentialAddress": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName + "!!!",
+        type: "text",
+        required: fieldInfo.required,
+      };
+    }
+    case "BusinessAddress": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName + "!!!",
+        type: "text",
+        required: fieldInfo.required,
+      };
+    }
+    case "CountryCode": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName,
+        type: "selectOne",
+        choices: [
+          { label: "AR", value: "AR" },
+          { label: "DE", value: "DE" },
+        ],
+        required: fieldInfo.required,
+      };
+    }
+    case "AbsoluteTime": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName,
+        type: "absoluteTimeText",
+        required: fieldInfo.required,
+        pattern: "dd/MM/yyyy",
+      };
+    }
+    case "Amount": {
+      return {
+        id: fieldName as UIHandlerId,
+        label: fieldName,
+        type: "amount",
+        currency: "asd",
+        required: fieldInfo.required,
+      };
+    }
+    default: {
+      return {
+        type: "caption",
+        label: `unkown field type ${fieldInfo.type} for id ${fieldName}`,
+      };
+    }
+  }
+}
+
+function convertGanaJsonToDoubleColumnFormSection(
+  form: GanaForm,
+  convert: (name: string, info: GanaField) => UIFormElementConfig,
+): FieldsBySection {
+  const list = Object.entries(form);
+  const sections = list.reduce((prev, [key, value]) => {
+    if (typeof value === "string") {
+      return prev;
+    }
+    if (!prev[value.section]) {
+      prev[value.section] = [];
+    }
+    const d: UIFormElementConfig & { order?: number } = convert(key, value);
+    d.order = value.order;
+    prev[value.section].push(d);
+    return prev;
+  }, {} as FieldsBySection);
+
+  Object.values(sections).forEach((sec) => {
+    sec.sort((a, b) => {
+      console.log("a", a.order, b.order);
+      return (a.order ?? 0) - (b.order ?? 0);
+    });
+  });
+  return sections;
+}
+
+function mergeAllSections(fields: FieldsBySection): UIFormElementConfig[] {
+  return Object.values(fields).flatMap((d) => d);
+}
diff --git a/packages/aml-backoffice-ui/src/forms/index.ts 
b/packages/aml-backoffice-ui/src/forms/index.ts
index e89a8fb10..bd17b69d3 100644
--- a/packages/aml-backoffice-ui/src/forms/index.ts
+++ b/packages/aml-backoffice-ui/src/forms/index.ts
@@ -13,8 +13,12 @@
  You should have received a copy of the GNU General Public License along with
  GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
  */
-import type { FormMetadata, InternationalizationAPI } from 
"@gnu-taler/web-util/browser";
+import type {
+  FormMetadata,
+  InternationalizationAPI,
+} from "@gnu-taler/web-util/browser";
 import { v1 as simplest } from "./simplest.js";
+import { VQF_902_1 } from "./ganaForms.js";
 
 const languages = (i18n: InternationalizationAPI) => [
   {
@@ -127,57 +131,58 @@ const languages = (i18n: InternationalizationAPI) => [
   },
 ];
 
-
-export const preloadedForms: (i18n: InternationalizationAPI) => 
Array<FormMetadata> = (i18n) => [
+export const preloadedForms: (
+  i18n: InternationalizationAPI,
+) => Array<FormMetadata> = (i18n) => [
   {
     label: i18n.str`Simple comment`,
     id: "__simple_comment",
     version: 1,
     config: simplest(i18n),
-  // }, {
-  //   label: i18n.str`Identification form`,
-  //   id: "902.1e",
-  //   version: 1,
-  //   config: form_902_1e_v1(i18n),
-  // }, {
-  //   label: i18n.str`Operational legal entity or partnership`,
-  //   id: "902.11e",
-  //   version: 1,
-  //   config: form_902_11e_v1(i18n),
-  // }, {
-  //   label: i18n.str`Foundations`,
-  //   id: "902.12e",
-  //   version: 1,
-  //   config: form_902_12e_v1(i18n),
-  // }, {
-  //   label: i18n.str`Declaration for trusts`,
-  //   id: "902.13e",
-  //   version: 1,
-  //   config: form_902_13e_v1(i18n),
-  // }, {
-  //   label: i18n.str`Information on life insurance policies`,
-  //   id: "902.15e",
-  //   version: 1,
-  //   config: form_902_15e_v1(i18n),
-  // }, {
-  //   label: i18n.str`Declaration of beneficial owner`,
-  //   id: "902.9e",
-  //   version: 1,
-  //   config: form_902_9e_v1(i18n),
-  // }, {
-  //   label: i18n.str`Customer profile`,
-  //   id: "902.5e",
-  //   version: 1,
-  //   config: form_902_5e_v1(i18n),
-  // }, {
-  //   label: i18n.str`Risk profile`,
-  //   id: "902.4e",
-  //   version: 1,
-  //   config: form_902_4e_v1(i18n),
+  },
+  {
+    label: i18n.str`Identification form`,
+    id: "vqf-902-1",
+    version: 1,
+    config: VQF_902_1(i18n),
+    // }, {
+    //   label: i18n.str`Operational legal entity or partnership`,
+    //   id: "902.11e",
+    //   version: 1,
+    //   config: form_902_11e_v1(i18n),
+    // }, {
+    //   label: i18n.str`Foundations`,
+    //   id: "902.12e",
+    //   version: 1,
+    //   config: form_902_12e_v1(i18n),
+    // }, {
+    //   label: i18n.str`Declaration for trusts`,
+    //   id: "902.13e",
+    //   version: 1,
+    //   config: form_902_13e_v1(i18n),
+    // }, {
+    //   label: i18n.str`Information on life insurance policies`,
+    //   id: "902.15e",
+    //   version: 1,
+    //   config: form_902_15e_v1(i18n),
+    // }, {
+    //   label: i18n.str`Declaration of beneficial owner`,
+    //   id: "902.9e",
+    //   version: 1,
+    //   config: form_902_9e_v1(i18n),
+    // }, {
+    //   label: i18n.str`Customer profile`,
+    //   id: "902.5e",
+    //   version: 1,
+    //   config: form_902_5e_v1(i18n),
+    // }, {
+    //   label: i18n.str`Risk profile`,
+    //   id: "902.4e",
+    //   version: 1,
+    //   config: form_902_4e_v1(i18n),
   },
 ];
 
-
 const currencies = (i18n: InternationalizationAPI) => [
   {
     label: i18n.str`United States dollar`,
@@ -204,4 +209,3 @@ const currencies = (i18n: InternationalizationAPI) => [
     value: "brl",
   },
 ];
-
diff --git a/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json 
b/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json
new file mode 100644
index 000000000..b77b625db
--- /dev/null
+++ b/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json
@@ -0,0 +1,1292 @@
+{
+  "VQF_902_1": {
+    "ACCEPTANCE_ADDITIONAL_INFO": {
+      "required": false,
+      "type": "String",
+      "order": 5,
+      "enumeration": [],
+      "section": "3"
+    },
+    "ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE": {
+      "required": false,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "3"
+    },
+    "ACCEPTANCE_DATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "order": 1,
+      "enumeration": [],
+      "section": "3"
+    },
+    "ACCEPTANCE_LANGUAGE": {
+      "required": false,
+      "type": "String",
+      "order": 4,
+      "enumeration": [],
+      "section": "3"
+    },
+    "ACCEPTANCE_METHOD": {
+      "required": false,
+      "type": "String",
+      "order": 2,
+      "enumeration": [],
+      "section": "3"
+    },
+    "CUSTOMER_ENTITY_ADDRESS": {
+      "required": true,
+      "type": "BusinessAddress",
+      "order": 14,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_ENTITY_COMPANY_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 13,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_ENTITY_CONTACT_PERSON_NAME": {
+      "required": false,
+      "type": "String",
+      "order": 15,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_ENTITY_EMAIL": {
+      "required": false,
+      "type": "String",
+      "order": 18,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_ENTITY_ID": {
+      "required": true,
+      "type": "String",
+      "order": 19,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_ENTITY_ID_COPY": {
+      "required": true,
+      "type": "File",
+      "order": 20,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_ENTITY_PHONE": {
+      "required": false,
+      "type": "String",
+      "order": 17,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "CUSTOMER_NATURAL_BIRTHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 5,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_COMPANY_ID": {
+      "required": false,
+      "type": "String",
+      "order": 11,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_COMPANY_ID_COPY": {
+      "required": false,
+      "type": "File",
+      "order": 12,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_COMPANY_NAME": {
+      "required": false,
+      "type": "String",
+      "order": 9,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_EMAIL": {
+      "required": false,
+      "type": "String",
+      "order": 4,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_NATIONALITY": {
+      "required": true,
+      "type": "CountryCode",
+      "order": 6,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_NATIONAL_ID": {
+      "required": true,
+      "type": "String",
+      "order": 7,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_NATIONAL_ID_COPY": {
+      "required": true,
+      "type": "File",
+      "order": 8,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_PHONE": {
+      "required": false,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_REGISTERED_OFFICE": {
+      "required": false,
+      "type": "String",
+      "order": 10,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_NATURAL_RESIDENTIAL": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "order": 2,
+      "enumeration": [],
+      "section": "1"
+    },
+    "CUSTOMER_TYPE": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "4"
+    },
+    "EMBARGO_TERRORISM_INFO": {
+      "required": false,
+      "type": "String",
+      "order": 2,
+      "enumeration": [],
+      "section": "5"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FOUNDER_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_1_founder>[]",
+      "order": 1,
+      "enumeration": [],
+      "section": "2"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+    "RELATIONSHIP_PURPOSE": {
+      "required": false,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "6"
+    },
+    "RELATIONSHIP_TYPE": {
+      "required": false,
+      "type": "String",
+      "order": 1,
+      "enumeration": ["MONEY_EXCHANGE","MONEY_ASSET_TRANSFER","OTHER"],
+      "section": "6"
+    },
+    "RELATIONSHIP_TYPE_OTHER": {
+      "required": false,
+      "type": "String",
+      "order": 2,
+      "enumeration": [],
+      "section": "6"
+    },
+"":""},
+  "VQF_902_11": {
+    "CONTROLLING_ENTITY_CONTRACTING_PARTNER": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "1"
+    },
+    "CONTROLLING_ENTITY_DOMICILE": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": "3"
+    },
+    "CONTROLLING_ENTITY_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "3"
+    },
+    "CONTROLLING_ENTITY_LEVEL": {
+      "required": true,
+      "type": "String",
+      "enumeration": ["25_MORE_RIGHTS","OTHER_WAY","DIRECTOR"],
+      "section": "2"
+    },
+    "CONTROLLING_ENTITY_THIRD_PERSON": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "4"
+    },
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+    "SIGNATURE": {
+      "required": true,
+      "type": "String",
+      "order": 2,
+      "enumeration": [],
+      "section": "footer"
+    },
+    "SIGN_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 1,
+      "enumeration": [],
+      "section": "footer"
+    },
+"":""},
+  "VQF_902_12": {
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FOUNDATION_BENEFICIARY_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_12_beneficiary>[]",
+      "enumeration": [],
+      "section": "4"
+    },
+    "FOUNDATION_CONTRACTING_PARTNER": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "0"
+    },
+    "FOUNDATION_DISCRETIONARY": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "1"
+    },
+    "FOUNDATION_FOUNDER_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_12_founder>[]",
+      "enumeration": [],
+      "section": "2"
+    },
+    "FOUNDATION_KNOWN_AS": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "0"
+    },
+    "FOUNDATION_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "1"
+    },
+    "FOUNDATION_PRE_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_12_pre>[]",
+      "enumeration": [],
+      "section": "3"
+    },
+    "FOUNDATION_REPRESENTATIVE_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_12_representative>[]",
+      "enumeration": [],
+      "section": "5"
+    },
+    "FOUNDATION_REVOCABLE": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "1"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+    "SIGNATURE": {
+      "required": true,
+      "type": "String",
+      "order": 2,
+      "enumeration": [],
+      "section": "footer"
+    },
+    "SIGN_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 1,
+      "enumeration": [],
+      "section": "footer"
+    },
+"":""},
+  "VQF_902_12_beneficiary": {
+    "FOUNDATION_BENEFICIARY_ADDITION": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_BENEFICIARY_BIRTHDATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_BENEFICIARY_COUNTRY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_BENEFICIARY_DOMICILE": {
+      "required": false,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_BENEFICIARY_FULL_NAME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_BENEFICIARY_NATIONALITY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM": {
+      "required": false,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_12_founder": {
+    "FOUNDATION_FOUNDER_BIRTHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_FOUNDER_DEATHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_FOUNDER_DOMICILE": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_FOUNDER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_FOUNDER_NATIONALITY": {
+      "required": true,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_FOUNDER_RIGHT_TO_REVOKE": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_12_pre": {
+    "FOUNDATION_PRE_BIRTHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_PRE_COUNTRY": {
+      "required": true,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_PRE_DEATHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_PRE_DOMICILE": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_PRE_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_PRE_NATIONALITY": {
+      "required": true,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_12_representative": {
+    "FOUNDATION_REPRESENTATIVE_BIRTHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_REPRESENTATIVE_COUNTRY": {
+      "required": true,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_REPRESENTATIVE_DOMICILE": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_REPRESENTATIVE_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_REPRESENTATIVE_NATIONALITY": {
+      "required": true,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_13": {
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+    "SIGNATURE": {
+      "required": true,
+      "type": "String",
+      "order": 2,
+      "enumeration": [],
+      "section": "footer"
+    },
+    "SIGN_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 1,
+      "enumeration": [],
+      "section": "footer"
+    },
+    "TRUST_BENEFICIARY_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_13_beneficiary>[]",
+      "enumeration": [],
+      "section": "4"
+    },
+    "TRUST_CONTRACTING_PARTNER": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "0"
+    },
+    "TRUST_DISCRETIONARY": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "1"
+    },
+    "TRUST_KNOWN_AS": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "0"
+    },
+    "TRUST_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "1"
+    },
+    "TRUST_PRE_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_13_pre>[]",
+      "enumeration": [],
+      "section": "3"
+    },
+    "TRUST_PROTECTOR_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_13_protector>[]",
+      "enumeration": [],
+      "section": "5"
+    },
+    "TRUST_REVOCABLE": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "1"
+    },
+    "TRUST_SETTLOR_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_13_settlor>[]",
+      "enumeration": [],
+      "section": "2"
+    },
+"":""},
+  "VQF_902_13_beneficiary": {
+    "TRUST_BENEFICIARY_ADDITION": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_BENEFICIARY_BIRTHDATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_BENEFICIARY_COUNTRY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_BENEFICIARY_DOMICILE": {
+      "required": false,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_BENEFICIARY_FULL_NAME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_BENEFICIARY_NATIONALITY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_BENEFICIARY_RIGHT_TO_CLAIM": {
+      "required": false,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_13_further": {
+    "TRUST_FURTHER_BIRTHDATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_FURTHER_COUNTRY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_FURTHER_DOMICILE": {
+      "required": false,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_FURTHER_FULL_NAME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_FURTHER_LIST": {
+      "required": true,
+      "type": "Form<VQF_902_13_further>[]",
+      "enumeration": [],
+      "section": "5"
+    },
+    "TRUST_FURTHER_NATIONALITY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_FURTHER_RIGHT_TO_REVOKE": {
+      "required": false,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_13_pre": {
+    "TRUST_PRE_BIRTHDATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PRE_COUNTRY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PRE_DEATHDATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PRE_DOMICILE": {
+      "required": false,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PRE_FULL_NAME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PRE_NATIONALITY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_13_protector": {
+    "TRUST_PROTECTOR_BIRTHDATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PROTECTOR_COUNTRY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PROTECTOR_DOMICILE": {
+      "required": false,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PROTECTOR_FULL_NAME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PROTECTOR_NATIONALITY": {
+      "required": false,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_PROTECTOR_RIGHT_TO_REVOKE": {
+      "required": false,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_13_settlor": {
+    "TRUST_SETTLOR_BIRTHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_SETTLOR_DEATHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_SETTLOR_DOMICILE": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_SETTLOR_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_SETTLOR_NATIONALITY": {
+      "required": true,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+    "TRUST_SETTLOR_RIGHT_TO_REVOKE": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_14": {
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "INCRISK_DOCUMENTS": {
+      "required": true,
+      "type": "File[]",
+      "enumeration": [],
+      "section": "3"
+    },
+    "INCRISK_MEANS": {
+      "required": true,
+      "type": "String",
+      "enumeration": ["GATHERING","CONSULTATION","ENQUIRIES","OTHER"],
+      "section": "2"
+    },
+    "INCRISK_MEANS_OTHER": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "2"
+    },
+    "INCRISK_REASON": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "1"
+    },
+    "INCRISK_RESULT": {
+      "required": true,
+      "type": "String",
+      "enumeration": 
["NO_SUSPICION","REASONABLE_SUSPICION","SIMPLE_SUSPICION","OTHER"],
+      "section": "4"
+    },
+    "INCRISK_RESULT_OTHER": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "4"
+    },
+    "INCRISK_SUMMARY": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "3"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+"":""},
+  "VQF_902_1_founder": {
+    "FOUNDER_AUTHORIZATION_TYPE": {
+      "required": true,
+      "type": "String",
+      "order": 4,
+      "enumeration": [],
+      "section": "2"
+    },
+    "FOUNDER_BIRTHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDER_NATIONALITY": {
+      "required": true,
+      "type": "CountryCode",
+      "order": 3,
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDER_NATIONAL_ID": {
+      "required": true,
+      "type": "String",
+      "order": 5,
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDER_POWER_OF_ATTORNEY": {
+      "required": true,
+      "type": "String",
+      "order": 6,
+      "enumeration": ["CR","MANDATE","OTHER"],
+      "section": ""
+    },
+    "FOUNDER_POWER_OF_ATTORNEY_OTHER": {
+      "required": false,
+      "type": "String",
+      "order": 7,
+      "enumeration": [],
+      "section": ""
+    },
+    "FOUNDER_RESIDENTIAL_ADDRESS": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "order": 1,
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+  "VQF_902_4": {
+    "CONTACT_RISK_LEVEL": {
+      "required": false,
+      "type": "String",
+      "enumeration": ["LOW","MEDIUM","HIGH"],
+      "section": "3"
+    },
+    "COUNTRY_RISK_LEVEL": {
+      "required": false,
+      "type": "String",
+      "enumeration": ["LOW","MEDIUM","HIGH"],
+      "section": "3"
+    },
+    "COUNTRY_RISK_TYPE": {
+      "required": false,
+      "type": "String",
+      "enumeration": 
["NATIONALITY_CUSTOMER","NATIONALITY_OWNER","DOMICILE_CUSTOMER","DOMICILE_OWNER","DOMICILE_CONTROLLING","BUSINESS_ACTIVITY","PAYMENTS"],
+      "section": "3"
+    },
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "EXTRA_CRITERA_1_RISK_DEFINITION": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "3"
+    },
+    "EXTRA_CRITERA_1_RISK_LEVEL": {
+      "required": false,
+      "type": "String",
+      "enumeration": ["LOW","MEDIUM","HIGH"],
+      "section": "3"
+    },
+    "EXTRA_CRITERA_2_RISK_DEFINITION": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "3"
+    },
+    "EXTRA_CRITERA_2_RISK_LEVEL": {
+      "required": false,
+      "type": "String",
+      "enumeration": ["LOW","MEDIUM","HIGH"],
+      "section": "3"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "HIGH_RISK_COUNTRY": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "2"
+    },
+    "HIGH_RISK__ACCEPTANCE_DATE": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "2"
+    },
+    "INDUSTRY_RISK_LEVEL": {
+      "required": false,
+      "type": "String",
+      "enumeration": 
["TRANSPARENT","HIGH_CASH_TRANSACTION","NOT_WELL_KNOWN","HIGH_RISK_TRADE","UNKNOWN_INDUSTRY"],
+      "section": "3"
+    },
+    "INDUSTRY_RISK_TYPE": {
+      "required": false,
+      "type": "String",
+      "enumeration": ["CUSTOMER","OWNER"],
+      "section": "3"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+    "PEP_ACCEPTANCE_DATE": {
+      "required": false,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": "1"
+    },
+    "PEP_DOMESTIC": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "1"
+    },
+    "PEP_FOREIGN": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "1"
+    },
+    "PEP_INTERNATIONAL_ORGANIZATION": {
+      "required": true,
+      "type": "Boolean",
+      "enumeration": [],
+      "section": "1"
+    },
+    "PRODUCT_RISK_LEVEL": {
+      "required": false,
+      "type": "String",
+      "enumeration": 
["EASY","SOPHISTICATED","OFFSHORE,","COMPLEX_STRUCTURE","LARGE_NUMBER_OF_ACCOUNTS","COMPLEX_SERVICE","FREQ_TRANS_WITH_HIGH_RISK"],
+      "section": "3"
+    },
+    "RISK_CLASIFICATION_ACCEPTANCE_DATE": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "3"
+    },
+    "RISK_CLASIFICATION_LEVEL": {
+      "required": false,
+      "type": "String",
+      "enumeration": ["WITH","WITHOUT"],
+      "section": "3"
+    },
+"":""},
+  "VQF_902_5": {
+    "BIZREL_DEVELOPMENT": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "4"
+    },
+    "BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS": {
+      "required": false,
+      "type": "BusinessAddress",
+      "enumeration": [],
+      "section": "4"
+    },
+    "BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "4"
+    },
+    "BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "4"
+    },
+    "BIZREL_FINANCIAL_VOLUME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "4"
+    },
+    "BIZREL_FURTHER_INFO": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "6"
+    },
+    "BIZREL_INCOME": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "2"
+    },
+    "BIZREL_ORIGIN_AMOUNT": {
+      "required": true,
+      "type": "Amount",
+      "enumeration": [],
+      "section": "3"
+    },
+    "BIZREL_ORIGIN_CATEGORY": {
+      "required": true,
+      "type": "String",
+      "enumeration": ["SAVINGS","OWN_BUSINESS","INHERITANCE","OTHER"],
+      "section": "3"
+    },
+    "BIZREL_ORIGIN_CATEGORY_OTHER": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "3"
+    },
+    "BIZREL_ORIGIN_DETAIL": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "3"
+    },
+    "BIZREL_PROFESSION": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "1"
+    },
+    "BIZREL_PURPOSE": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "4"
+    },
+    "BIZREL_THIRDPARTY_AMLA_FILES": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "5"
+    },
+    "BIZREL_THIRDPARTY_REFERENCES": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "5"
+    },
+    "BIZREL_THIRDPARTY_RELATIONSHIP": {
+      "required": false,
+      "type": "String",
+      "enumeration": [],
+      "section": "5"
+    },
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+"":""},
+  "VQF_902_9": {
+    "CUSTOMER_ID": {
+      "required": true,
+      "type": "String",
+      "order": 3,
+      "enumeration": [],
+      "section": "header"
+    },
+    "FORM_FILLING_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 2,
+      "enumeration": [],
+      "section": "header"
+    },
+    "IDENTITY_CONTRACTING_PARTNER": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": "1"
+    },
+    "IDENTITY_LIST": {
+      "required": false,
+      "type": "Form<VQF_902_9_identity>[]",
+      "enumeration": [],
+      "section": "2"
+    },
+    "OFFICER_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "order": 1,
+      "enumeration": [],
+      "section": "header"
+    },
+    "SIGNATURE": {
+      "required": true,
+      "type": "String",
+      "order": 2,
+      "enumeration": [],
+      "section": "footer"
+    },
+    "SIGN_DATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "order": 1,
+      "enumeration": [],
+      "section": "footer"
+    },
+"":""},
+  "VQF_902_9_identity": {
+    "IDENTITY_BIRTHDATE": {
+      "required": true,
+      "type": "AbsoluteTime",
+      "enumeration": [],
+      "section": ""
+    },
+    "IDENTITY_DOMICILE": {
+      "required": true,
+      "type": "ResidentialAddress",
+      "enumeration": [],
+      "section": ""
+    },
+    "IDENTITY_FULL_NAME": {
+      "required": true,
+      "type": "String",
+      "enumeration": [],
+      "section": ""
+    },
+    "IDENTITY_NATIONALITY": {
+      "required": true,
+      "type": "CountryCode",
+      "enumeration": [],
+      "section": ""
+    },
+"":""},
+"":""}
\ No newline at end of file
diff --git a/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts 
b/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts
new file mode 100644
index 000000000..9eb9d7da7
--- /dev/null
+++ b/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts
@@ -0,0 +1,1057 @@
+/*
+  This file is part of GNU Taler
+  Copyright (C) 2012-2020 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 AbsoluteTime = string;
+type CountryCode = string;
+type Amount = string;
+type ResidentialAddress = string;
+type BusinessAddress = string;
+type Form<T> = T
+
+export namespace TalerAmlAttributes {
+  export interface VQF_902_1 {
+    /**
+     * 
+     * Required: 
+     */
+    ACCEPTANCE_ADDITIONAL_INFO: String;
+    /**
+     * 
+     * Required: 
+     */
+    ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE: String;
+    /**
+     * 
+     * Required: 
+     */
+    ACCEPTANCE_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    ACCEPTANCE_LANGUAGE: String;
+    /**
+     * 
+     * Required: 
+     */
+    ACCEPTANCE_METHOD: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ENTITY_ADDRESS: BusinessAddress;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ENTITY_COMPANY_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_ENTITY_CONTACT_PERSON_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_ENTITY_EMAIL: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ENTITY_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ENTITY_ID_COPY: File;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_ENTITY_PHONE: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_NATURAL_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_NATURAL_COMPANY_ID: String;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_NATURAL_COMPANY_ID_COPY: File;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_NATURAL_COMPANY_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_NATURAL_EMAIL: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_NATURAL_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_NATURAL_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_NATURAL_NATIONAL_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_NATURAL_NATIONAL_ID_COPY: File;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_NATURAL_PHONE: String;
+    /**
+     * 
+     * Required: 
+     */
+    CUSTOMER_NATURAL_REGISTERED_OFFICE: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_NATURAL_RESIDENTIAL: ResidentialAddress;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_TYPE: String;
+    /**
+     * 
+     * Required: 
+     */
+    EMBARGO_TERRORISM_INFO: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_LIST: Form<VQF_902_1_founder>[];
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    RELATIONSHIP_PURPOSE: String;
+    /**
+     * 
+     * Required: 
+     */
+    RELATIONSHIP_TYPE: String;
+    /**
+     * 
+     * Required: 
+     */
+    RELATIONSHIP_TYPE_OTHER: String;
+  }
+  export interface VQF_902_11 {
+    /**
+     * 
+     * Required: true
+     */
+    CONTROLLING_ENTITY_CONTRACTING_PARTNER: String;
+    /**
+     * 
+     * Required: true
+     */
+    CONTROLLING_ENTITY_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: true
+     */
+    CONTROLLING_ENTITY_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    CONTROLLING_ENTITY_LEVEL: String;
+    /**
+     * 
+     * Required: true
+     */
+    CONTROLLING_ENTITY_THIRD_PERSON: Boolean;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGNATURE: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGN_DATE: AbsoluteTime;
+  }
+  export interface VQF_902_12 {
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_BENEFICIARY_LIST: Form<VQF_902_12_beneficiary>[];
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_CONTRACTING_PARTNER: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_DISCRETIONARY: Boolean;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_FOUNDER_LIST: Form<VQF_902_12_founder>[];
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_KNOWN_AS: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_PRE_LIST: Form<VQF_902_12_pre>[];
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REPRESENTATIVE_LIST: Form<VQF_902_12_representative>[];
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REVOCABLE: Boolean;
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGNATURE: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGN_DATE: AbsoluteTime;
+  }
+  export interface VQF_902_12_beneficiary {
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDATION_BENEFICIARY_ADDITION: String;
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDATION_BENEFICIARY_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDATION_BENEFICIARY_COUNTRY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDATION_BENEFICIARY_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDATION_BENEFICIARY_FULL_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDATION_BENEFICIARY_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM: Boolean;
+  }
+  export interface VQF_902_12_founder {
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_FOUNDER_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_FOUNDER_DEATHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_FOUNDER_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_FOUNDER_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_FOUNDER_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_FOUNDER_RIGHT_TO_REVOKE: Boolean;
+  }
+  export interface VQF_902_12_pre {
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_PRE_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_PRE_COUNTRY: CountryCode;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_PRE_DEATHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_PRE_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_PRE_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_PRE_NATIONALITY: CountryCode;
+  }
+  export interface VQF_902_12_representative {
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REPRESENTATIVE_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REPRESENTATIVE_COUNTRY: CountryCode;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REPRESENTATIVE_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REPRESENTATIVE_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REPRESENTATIVE_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDATION_REPRESENTATIVE_RIGHT_TO_REVOKE: Boolean;
+  }
+  export interface VQF_902_13 {
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGNATURE: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGN_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_BENEFICIARY_LIST: Form<VQF_902_13_beneficiary>[];
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_CONTRACTING_PARTNER: String;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_DISCRETIONARY: Boolean;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_KNOWN_AS: String;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_PRE_LIST: Form<VQF_902_13_pre>[];
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_PROTECTOR_LIST: Form<VQF_902_13_protector>[];
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_REVOCABLE: Boolean;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_SETTLOR_LIST: Form<VQF_902_13_settlor>[];
+  }
+  export interface VQF_902_13_beneficiary {
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_BENEFICIARY_ADDITION: String;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_BENEFICIARY_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_BENEFICIARY_COUNTRY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_BENEFICIARY_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_BENEFICIARY_FULL_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_BENEFICIARY_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_BENEFICIARY_RIGHT_TO_CLAIM: Boolean;
+  }
+  export interface VQF_902_13_further {
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_FURTHER_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_FURTHER_COUNTRY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_FURTHER_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_FURTHER_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_FURTHER_LIST: Form<VQF_902_13_further>[];
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_FURTHER_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_FURTHER_RIGHT_TO_REVOKE: Boolean;
+  }
+  export interface VQF_902_13_pre {
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PRE_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PRE_COUNTRY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PRE_DEATHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PRE_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PRE_FULL_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PRE_NATIONALITY: CountryCode;
+  }
+  export interface VQF_902_13_protector {
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PROTECTOR_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PROTECTOR_COUNTRY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PROTECTOR_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PROTECTOR_FULL_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PROTECTOR_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: 
+     */
+    TRUST_PROTECTOR_RIGHT_TO_REVOKE: Boolean;
+  }
+  export interface VQF_902_13_settlor {
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_SETTLOR_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_SETTLOR_DEATHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_SETTLOR_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_SETTLOR_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_SETTLOR_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: true
+     */
+    TRUST_SETTLOR_RIGHT_TO_REVOKE: Boolean;
+  }
+  export interface VQF_902_14 {
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    INCRISK_DOCUMENTS: File[];
+    /**
+     * 
+     * Required: true
+     */
+    INCRISK_MEANS: String;
+    /**
+     * 
+     * Required: 
+     */
+    INCRISK_MEANS_OTHER: String;
+    /**
+     * 
+     * Required: true
+     */
+    INCRISK_REASON: String;
+    /**
+     * 
+     * Required: true
+     */
+    INCRISK_RESULT: String;
+    /**
+     * 
+     * Required: 
+     */
+    INCRISK_RESULT_OTHER: String;
+    /**
+     * 
+     * Required: true
+     */
+    INCRISK_SUMMARY: String;
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+  }
+  export interface VQF_902_1_founder {
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_AUTHORIZATION_TYPE: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_NATIONALITY: CountryCode;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_NATIONAL_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_POWER_OF_ATTORNEY: String;
+    /**
+     * 
+     * Required: 
+     */
+    FOUNDER_POWER_OF_ATTORNEY_OTHER: String;
+    /**
+     * 
+     * Required: true
+     */
+    FOUNDER_RESIDENTIAL_ADDRESS: ResidentialAddress;
+  }
+  export interface VQF_902_4 {
+    /**
+     * 
+     * Required: 
+     */
+    CONTACT_RISK_LEVEL: String;
+    /**
+     * 
+     * Required: 
+     */
+    COUNTRY_RISK_LEVEL: String;
+    /**
+     * 
+     * Required: 
+     */
+    COUNTRY_RISK_TYPE: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: 
+     */
+    EXTRA_CRITERA_1_RISK_DEFINITION: String;
+    /**
+     * 
+     * Required: 
+     */
+    EXTRA_CRITERA_1_RISK_LEVEL: String;
+    /**
+     * 
+     * Required: 
+     */
+    EXTRA_CRITERA_2_RISK_DEFINITION: String;
+    /**
+     * 
+     * Required: 
+     */
+    EXTRA_CRITERA_2_RISK_LEVEL: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    HIGH_RISK_COUNTRY: Boolean;
+    /**
+     * 
+     * Required: 
+     */
+    HIGH_RISK__ACCEPTANCE_DATE: String;
+    /**
+     * 
+     * Required: 
+     */
+    INDUSTRY_RISK_LEVEL: String;
+    /**
+     * 
+     * Required: 
+     */
+    INDUSTRY_RISK_TYPE: String;
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    PEP_ACCEPTANCE_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    PEP_DOMESTIC: Boolean;
+    /**
+     * 
+     * Required: true
+     */
+    PEP_FOREIGN: Boolean;
+    /**
+     * 
+     * Required: true
+     */
+    PEP_INTERNATIONAL_ORGANIZATION: Boolean;
+    /**
+     * 
+     * Required: 
+     */
+    PRODUCT_RISK_LEVEL: String;
+    /**
+     * 
+     * Required: 
+     */
+    RISK_CLASIFICATION_ACCEPTANCE_DATE: String;
+    /**
+     * 
+     * Required: 
+     */
+    RISK_CLASIFICATION_LEVEL: String;
+  }
+  export interface VQF_902_5 {
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_DEVELOPMENT: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_FINANCIAL_BENEFICIARIES_ADDRESS: BusinessAddress;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_FINANCIAL_BENEFICIARIES_BANK_ACCOUNT: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_FINANCIAL_BENEFICIARIES_FULL_NAME: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_FINANCIAL_VOLUME: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_FURTHER_INFO: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_INCOME: String;
+    /**
+     * 
+     * Required: true
+     */
+    BIZREL_ORIGIN_AMOUNT: Amount;
+    /**
+     * 
+     * Required: true
+     */
+    BIZREL_ORIGIN_CATEGORY: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_ORIGIN_CATEGORY_OTHER: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_ORIGIN_DETAIL: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_PROFESSION: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_PURPOSE: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_THIRDPARTY_AMLA_FILES: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_THIRDPARTY_REFERENCES: String;
+    /**
+     * 
+     * Required: 
+     */
+    BIZREL_THIRDPARTY_RELATIONSHIP: String;
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+  }
+  export interface VQF_902_9 {
+    /**
+     * 
+     * Required: true
+     */
+    CUSTOMER_ID: String;
+    /**
+     * 
+     * Required: true
+     */
+    FORM_FILLING_DATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    IDENTITY_CONTRACTING_PARTNER: String;
+    /**
+     * 
+     * Required: 
+     */
+    IDENTITY_LIST: Form<VQF_902_9_identity>[];
+    /**
+     * 
+     * Required: true
+     */
+    OFFICER_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGNATURE: String;
+    /**
+     * 
+     * Required: true
+     */
+    SIGN_DATE: AbsoluteTime;
+  }
+  export interface VQF_902_9_identity {
+    /**
+     * 
+     * Required: true
+     */
+    IDENTITY_BIRTHDATE: AbsoluteTime;
+    /**
+     * 
+     * Required: true
+     */
+    IDENTITY_DOMICILE: ResidentialAddress;
+    /**
+     * 
+     * Required: true
+     */
+    IDENTITY_FULL_NAME: String;
+    /**
+     * 
+     * Required: true
+     */
+    IDENTITY_NATIONALITY: CountryCode;
+  }
+
+
+}
diff --git a/packages/aml-backoffice-ui/tsconfig.json 
b/packages/aml-backoffice-ui/tsconfig.json
index 9826fac07..a69021452 100644
--- a/packages/aml-backoffice-ui/tsconfig.json
+++ b/packages/aml-backoffice-ui/tsconfig.json
@@ -9,6 +9,7 @@
     "jsx": "react" /* Specify JSX code generation: 'preserve', 'react-native', 
or 'react'. */,
     "jsxFactory": "h",
     "jsxFragmentFactory": "Fragment",
+    "resolveJsonModule": true,
     "noEmit": true /* Do not emit outputs. */,
     // "importHelpers": true,                 /* Import emit helpers from 
'tslib'. */
     // "downlevelIteration": true,            /* Provide full support for 
iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. 
*/

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]