gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated (e1d53718d -> eca6e4163)


From: gnunet
Subject: [taler-wallet-core] branch master updated (e1d53718d -> eca6e4163)
Date: Wed, 08 Jan 2025 19:37:35 +0100

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

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

    from e1d53718d harness: adjust tests to new kyc config constraints 
(continued)
     new c06e48ba0 prevent jed from throwing
     new 3df4239d7 remove duplicated code, some ui tweaks
     new eca6e4163 update gana forms

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 packages/aml-backoffice-ui/src/forms/ganaForms.ts  |  240 ----
 packages/aml-backoffice-ui/src/forms/index.ts      |   13 +-
 .../src/forms/taler_aml_attributes.json            | 1292 --------------------
 .../src/forms/taler_aml_attributes.ts              | 1057 ----------------
 .../aml-backoffice-ui/src/pages/CaseDetails.tsx    |  110 +-
 .../aml-backoffice-ui/src/pages/MeasuresTable.tsx  |    2 +-
 .../src/pages/ShowConsolidated.tsx                 |    2 +-
 packages/kyc-ui/src/forms/VQF_902_1.ts             |   10 +-
 packages/kyc-ui/src/forms/VQF_902_11.ts            |   10 +-
 packages/kyc-ui/src/forms/VQF_902_12.ts            |   10 +-
 packages/kyc-ui/src/forms/VQF_902_13.ts            |   10 +-
 packages/kyc-ui/src/forms/VQF_902_14.ts            |   10 +-
 packages/kyc-ui/src/forms/VQF_902_15.ts            |   10 +-
 packages/kyc-ui/src/forms/VQF_902_4.ts             |   10 +-
 packages/kyc-ui/src/forms/VQF_902_5.ts             |   10 +-
 packages/kyc-ui/src/forms/VQF_902_9.ts             |   10 +-
 ..._aml_attributes.ts => taler_form_attributes.ts} |  551 +++++----
 packages/taler-util/src/i18n.ts                    |    2 +
 18 files changed, 398 insertions(+), 2961 deletions(-)
 delete mode 100644 packages/aml-backoffice-ui/src/forms/ganaForms.ts
 delete mode 100644 
packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json
 delete mode 100644 packages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts
 rename packages/kyc-ui/src/forms/{taler_aml_attributes.ts => 
taler_form_attributes.ts} (75%)

diff --git a/packages/aml-backoffice-ui/src/forms/ganaForms.ts 
b/packages/aml-backoffice-ui/src/forms/ganaForms.ts
deleted file mode 100644
index 4d43f55e7..000000000
--- a/packages/aml-backoffice-ui/src/forms/ganaForms.ts
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- 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) => (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 bd17b69d3..1d2126241 100644
--- a/packages/aml-backoffice-ui/src/forms/index.ts
+++ b/packages/aml-backoffice-ui/src/forms/index.ts
@@ -18,7 +18,6 @@ import type {
   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) => [
   {
@@ -139,12 +138,12 @@ export const preloadedForms: (
     id: "__simple_comment",
     version: 1,
     config: simplest(i18n),
-  },
-  {
-    label: i18n.str`Identification form`,
-    id: "vqf-902-1",
-    version: 1,
-    config: VQF_902_1(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",
diff --git a/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json 
b/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json
deleted file mode 100644
index b77b625db..000000000
--- a/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.json
+++ /dev/null
@@ -1,1292 +0,0 @@
-{
-  "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
deleted file mode 100644
index 9eb9d7da7..000000000
--- a/packages/aml-backoffice-ui/src/forms/taler_aml_attributes.ts
+++ /dev/null
@@ -1,1057 +0,0 @@
-/*
-  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/src/pages/CaseDetails.tsx 
b/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
index 5cf090816..6ca364c76 100644
--- a/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
+++ b/packages/aml-backoffice-ui/src/pages/CaseDetails.tsx
@@ -295,25 +295,8 @@ export function CaseDetails({
     );
   }
 
-  return (
-    <div class="min-w-60">
-      <header class="flex items-center justify-between border-b border-white/5 
px-4 py-4 sm:px-6 sm:py-6 lg:px-8">
-        <h1 class="text-base font-semibold leading-7 text-black">
-          <i18n.Translate>Case history for account: </i18n.Translate>
-        </h1>
-        <div>{account}</div>
-        <CopyButton class="" getContent={() => account} />
-      </header>
-
-      {!activeDecision || !activeDecision.to_investigate ? undefined : (
-        <Attention title={i18n.str`Under investigation`} type="warning">
-          <i18n.Translate>
-            This account requires a manual review and is waiting for a decision
-            to be made.
-          </i18n.Translate>
-        </Attention>
-      )}
-
+  function ShortcutActionButtons(): VNode {
+    return (
       <div>
         <button
           onClick={async () => {
@@ -435,6 +418,51 @@ export function CaseDetails({
           <i18n.Translate>Set predefined measure</i18n.Translate>
         </button>
       </div>
+    );
+  }
+
+  return (
+    <div class="min-w-60">
+      <header class="flex items-center justify-between border-b border-white/5 
px-4 py-4 sm:px-6 sm:py-6 lg:px-8">
+        <h1 class="text-base font-semibold leading-7 text-black">
+          <i18n.Translate>Case history for account: </i18n.Translate>
+        </h1>
+        <div>{account}</div>
+        <CopyButton class="" getContent={() => account} />
+      </header>
+
+      {!activeDecision || !activeDecision.to_investigate ? undefined : (
+        <Attention title={i18n.str`Under investigation`} type="warning">
+          <i18n.Translate>
+            This account requires a manual review and is waiting for a decision
+            to be made.
+          </i18n.Translate>
+        </Attention>
+      )}
+
+      <ShortcutActionButtons />
+
+      {selected && <ShowConsolidated history={events} until={selected} />}
+      <div class="p-4">
+        <h1 class="text-base font-semibold leading-6 text-black">
+          <i18n.Translate>Collected information</i18n.Translate>
+        </h1>
+        <p class="mt-1 text-sm leading-6 text-gray-600">
+          <i18n.Translate>
+            Every event when the user was asked information.
+          </i18n.Translate>
+        </p>
+      </div>
+      {events.length === 0 ? (
+        <Attention title={i18n.str`The event list is empty`} type="warning" />
+      ) : (
+        <ShowTimeline
+          history={events}
+          onSelect={(time) => {
+            setSelected(time);
+          }}
+        />
+      )}
 
       {!activeDecision ? (
         <Attention title={i18n.str`No active rules found`} type="warning" />
@@ -456,28 +484,6 @@ export function CaseDetails({
           />
         </div>
       )}
-      <div class="px-4 sm:px-0">
-        <h1 class="text-base font-semibold leading-6 text-black">
-          <i18n.Translate>KYC collection events</i18n.Translate>
-        </h1>
-        <p class="mt-1 text-sm leading-6 text-gray-600">
-          <i18n.Translate>
-            Every event when the user was asked information.
-          </i18n.Translate>
-        </p>
-      </div>
-      {events.length === 0 ? (
-        <Attention title={i18n.str`The event list is empty`} type="warning" />
-      ) : (
-        <ShowTimeline
-          history={events}
-          onSelect={(time) => {
-            setSelected(time);
-          }}
-        />
-      )}
-      {/* {selected && <ShowEventDetails event={selected} />} */}
-      {selected && <ShowConsolidated history={events} until={selected} />}
       {restDecisions.length > 0 ? (
         <div class="my-4 grid gap-y-4">
           <h1 class="text-base font-semibold leading-6 text-black">
@@ -706,10 +712,12 @@ function SubmitNewDecision({
         <i18n.Translate>New rules to submit</i18n.Translate>
       </h1>
 
-      <ShowMesaureInfo
-        nextMeasures={separateMeasures(decision.request.new_measures)}
-        customMeasure={decision.request.new_rules.custom_measures}
-      />
+      <div class="my-2">
+        <ShowMesaureInfo
+          nextMeasures={separateMeasures(decision.request.new_measures)}
+          customMeasure={decision.request.new_rules.custom_measures}
+        />
+      </div>
 
       <ShowDecisionLimitInfo
         fixed
@@ -797,11 +805,7 @@ function ShowMesaureInfo({
   const filteredMeasures = nextMeasures.filter((n) => !!n.length);
 
   if (!filteredMeasures.length) {
-    return (
-      <div>
-        <i18n.Translate>no new measure</i18n.Translate>
-      </div>
-    );
+    return <Fragment />;
   }
   if (filteredMeasures.length === 1) {
     const measurePath = filteredMeasures[0];
@@ -811,7 +815,7 @@ function ShowMesaureInfo({
       return (
         <div>
           <i18n.Translate>
-            the user needs to complete this measure
+            The customer needs to complete this measure
           </i18n.Translate>
           <CurrentMeasureTable list={[m]} />
         </div>
@@ -820,7 +824,7 @@ function ShowMesaureInfo({
     return (
       <div>
         <i18n.Translate>
-          the user needs to complete all of these measures
+          The customer needs to complete all of these measures
         </i18n.Translate>
         <CurrentMeasureTable list={measurePath.map((name) => map[name])} />
       </div>
@@ -830,7 +834,7 @@ function ShowMesaureInfo({
   return (
     <div>
       <i18n.Translate>
-        the user has more than one option with different measures to complete.
+        The user has more than one option with different measures to complete.
         For any options, if there is more than one measure then the user will
         need to complete all the measures.
       </i18n.Translate>
diff --git a/packages/aml-backoffice-ui/src/pages/MeasuresTable.tsx 
b/packages/aml-backoffice-ui/src/pages/MeasuresTable.tsx
index a9a02c2cb..b3bd68561 100644
--- a/packages/aml-backoffice-ui/src/pages/MeasuresTable.tsx
+++ b/packages/aml-backoffice-ui/src/pages/MeasuresTable.tsx
@@ -35,7 +35,7 @@ export function CurrentMeasureTable({
 }): VNode {
   const { i18n } = useTranslationContext();
   return (
-    <div class="mt-8 flow-root">
+    <div class="mt-4 flow-root">
       <div class="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
         <div class="inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8">
           <div class="overflow-hidden shadow ring-1 ring-black/5 
sm:rounded-lg">
diff --git a/packages/aml-backoffice-ui/src/pages/ShowConsolidated.tsx 
b/packages/aml-backoffice-ui/src/pages/ShowConsolidated.tsx
index 4088ed823..b7812ed49 100644
--- a/packages/aml-backoffice-ui/src/pages/ShowConsolidated.tsx
+++ b/packages/aml-backoffice-ui/src/pages/ShowConsolidated.tsx
@@ -72,7 +72,7 @@ export function ShowConsolidated({
       Object.entries(fixed).length > 0
         ? [
             {
-              title: i18n.str`KYC collected info`,
+              title: i18n.str`Collected information`,
               description:
                 until.t_ms === "never"
                   ? undefined
diff --git a/packages/kyc-ui/src/forms/VQF_902_1.ts 
b/packages/kyc-ui/src/forms/VQF_902_1.ts
index 7663817c8..467596a03 100644
--- a/packages/kyc-ui/src/forms/VQF_902_1.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_1.ts
@@ -4,7 +4,7 @@ import {
   UIHandlerId,
   SelectUiChoice,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 
 export function countryList(i18n: InternationalizationAPI): SelectUiChoice[] {
   return [
@@ -21,14 +21,6 @@ export function VQF_902_1(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_1 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_1 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_11.ts 
b/packages/kyc-ui/src/forms/VQF_902_11.ts
index 2bf5b705d..0fd5f7cf0 100644
--- a/packages/kyc-ui/src/forms/VQF_902_11.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_11.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 
 export function VQF_902_11(i18n: InternationalizationAPI): DoubleColumnForm {
   return {
@@ -12,14 +12,6 @@ export function VQF_902_11(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_11 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_11 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_12.ts 
b/packages/kyc-ui/src/forms/VQF_902_12.ts
index 4fd9d2d4e..52483a15e 100644
--- a/packages/kyc-ui/src/forms/VQF_902_12.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_12.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 import { countryList } from "./VQF_902_1.js";
 
 export function VQF_902_12(i18n: InternationalizationAPI): DoubleColumnForm {
@@ -13,14 +13,6 @@ export function VQF_902_12(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_12 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_12 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_13.ts 
b/packages/kyc-ui/src/forms/VQF_902_13.ts
index 6189b1094..7f5bddc26 100644
--- a/packages/kyc-ui/src/forms/VQF_902_13.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_13.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 import { countryList } from "./VQF_902_1.js";
 
 export function VQF_902_13(i18n: InternationalizationAPI): DoubleColumnForm {
@@ -13,14 +13,6 @@ export function VQF_902_13(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_13 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_13 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_14.ts 
b/packages/kyc-ui/src/forms/VQF_902_14.ts
index c328f3641..f0045f0ac 100644
--- a/packages/kyc-ui/src/forms/VQF_902_14.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_14.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 
 export function VQF_902_14(i18n: InternationalizationAPI): DoubleColumnForm {
   return {
@@ -12,14 +12,6 @@ export function VQF_902_14(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_14 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_14 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_15.ts 
b/packages/kyc-ui/src/forms/VQF_902_15.ts
index 731f5c0cf..f55f84ebb 100644
--- a/packages/kyc-ui/src/forms/VQF_902_15.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_15.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 import { countryList } from "./VQF_902_1.js";
 
 export function VQF_902_15(i18n: InternationalizationAPI): DoubleColumnForm {
@@ -13,14 +13,6 @@ export function VQF_902_15(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_15 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_15 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_4.ts 
b/packages/kyc-ui/src/forms/VQF_902_4.ts
index daaa78e16..d30e13f16 100644
--- a/packages/kyc-ui/src/forms/VQF_902_4.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_4.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 
 export function VQF_902_4(i18n: InternationalizationAPI): DoubleColumnForm {
   return {
@@ -12,14 +12,6 @@ export function VQF_902_4(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_1 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_1 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_5.ts 
b/packages/kyc-ui/src/forms/VQF_902_5.ts
index b79f39b06..df63d9eff 100644
--- a/packages/kyc-ui/src/forms/VQF_902_5.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_5.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 
 export function VQF_902_5(i18n: InternationalizationAPI): DoubleColumnForm {
   return {
@@ -12,14 +12,6 @@ export function VQF_902_5(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_5 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_5 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/VQF_902_9.ts 
b/packages/kyc-ui/src/forms/VQF_902_9.ts
index 20d78064a..19fcc7aff 100644
--- a/packages/kyc-ui/src/forms/VQF_902_9.ts
+++ b/packages/kyc-ui/src/forms/VQF_902_9.ts
@@ -3,7 +3,7 @@ import {
   DoubleColumnForm,
   UIHandlerId,
 } from "@gnu-taler/web-util/browser";
-import { TalerAmlAttributes } from "./taler_aml_attributes.js";
+import { TalerAmlAttributes } from "./taler_form_attributes.js";
 import { countryList } from "./VQF_902_1.js";
 
 export function VQF_902_9(i18n: InternationalizationAPI): DoubleColumnForm {
@@ -13,14 +13,6 @@ export function VQF_902_9(i18n: InternationalizationAPI): 
DoubleColumnForm {
       {
         title: i18n.str`This form was completed by`,
         fields: [
-          {
-            id: "OFFICER_FULL_NAME" satisfies keyof 
TalerAmlAttributes.VQF_902_9 as UIHandlerId,
-            label: i18n.str`Full name`,
-            // gana_type: "String",
-            type: "text",
-            required: true,
-            disabled: true,
-          },
           {
             id: "FORM_FILLING_DATE" satisfies keyof 
TalerAmlAttributes.VQF_902_9 as UIHandlerId,
             label: i18n.str`Date`,
diff --git a/packages/kyc-ui/src/forms/taler_aml_attributes.ts 
b/packages/kyc-ui/src/forms/taler_form_attributes.ts
similarity index 75%
rename from packages/kyc-ui/src/forms/taler_aml_attributes.ts
rename to packages/kyc-ui/src/forms/taler_form_attributes.ts
index f66feee76..84e200bb0 100644
--- a/packages/kyc-ui/src/forms/taler_aml_attributes.ts
+++ b/packages/kyc-ui/src/forms/taler_form_attributes.ts
@@ -31,43 +31,37 @@ type Paragraph = string;
 type LangCode = string;
 type Email = string;
 type Phone = string;
+type Hostname = string;
+type HttpHostnamePath = string;
 type Form<T> = T;
 
 export namespace TalerAmlAttributes {
   export interface VQF_902_1 {
     /**
-     *
+     * 
      * Required: false
      */
-    ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE?:
-      | "TO_THE_CUSTOMER"
-      | "HOLD_AT_BANK"
-      | "TO_THE_MEMBER"
-      | "TO_A_THIRD_PARTY"
-      | String;
+    ACCEPTANCE_CORRESPONDENCE_SERVICE_TYPE?: 'TO_THE_CUSTOMER' | 
'HOLD_AT_BANK' | 'TO_THE_MEMBER' | 'TO_A_THIRD_PARTY' | String;
     /**
      * Conclusion of the conract
      * Required: false
      */
     ACCEPTANCE_DATE?: AbsoluteDate;
     /**
-     *
+     * 
      * Required: false
      */
     ACCEPTANCE_FURTHER_INFO?: String;
     /**
-     *
+     * 
      * Required: false
      */
     ACCEPTANCE_LANGUAGE?: LangCode;
     /**
-     *
+     * 
      * Required: false
      */
-    ACCEPTANCE_METHOD?:
-      | "FACE_TO_FACE"
-      | "AUTHENTICATED_COPY"
-      | "RESIDENTIAL_ADDRESS_VALIDATED";
+    ACCEPTANCE_METHOD?: 'FACE_TO_FACE' | 'AUTHENTICATED_COPY' | 
'RESIDENTIAL_ADDRESS_VALIDATED';
     /**
      * If the customer is a legal entity.
      * Required: true
@@ -94,7 +88,7 @@ export namespace TalerAmlAttributes {
      */
     CUSTOMER_ENTITY_ID: String;
     /**
-     *
+     * 
      * Required: true
      */
     CUSTOMER_ENTITY_ID_COPY: File;
@@ -134,7 +128,7 @@ export namespace TalerAmlAttributes {
      */
     CUSTOMER_NATURAL_EMAIL?: Email;
     /**
-     *
+     * 
      * Required: true
      */
     CUSTOMER_NATURAL_FULL_NAME: String;
@@ -172,40 +166,34 @@ export namespace TalerAmlAttributes {
      * Establishment of the beneficial owner of the assets and/or contrilling 
person
      * Required: true
      */
-    CUSTOMER_TYPE:
-      | "NATURAL"
-      | "LEGAL_ENTITY"
-      | "FOUNDATION"
-      | "TRUST"
-      | "LIFE_INSURANCE"
-      | "OTHER";
+    CUSTOMER_TYPE: 'NATURAL' | 'LEGAL_ENTITY' | 'FOUNDATION' | 'TRUST' | 
'LIFE_INSURANCE' | 'OTHER';
     /**
      * 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)
      * Required: false
      */
     EMBARGO_TERRORISM_INFO?: Paragraph;
     /**
-     *
+     * 
      * Required: false
      */
     ENCLOSURE_BENEFICIAL_OWNER?: Boolean;
     /**
-     *
+     * 
      * Required: false
      */
     ENCLOSURE_CUSTOMER_DOCUMENTS?: Boolean;
     /**
-     *
+     * 
      * Required: false
      */
     ENCLOSURE_CUSTOMER_PROFILE?: Boolean;
     /**
-     *
+     * 
      * Required: false
      */
     ENCLOSURE_IDENTIFICATION_DOCUMENTS?: Boolean;
     /**
-     *
+     * 
      * Required: false
      */
     ENCLOSURE_RISK_PROFILE?: Boolean;
@@ -219,43 +207,38 @@ export namespace TalerAmlAttributes {
      * Required: true
      */
     FOUNDER_LIST: Form<VQF_902_1_founder>[];
-    /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
     /**
      * Purpose of service requested
      * Required: false
      */
     RELATIONSHIP_PURPOSE?: Paragraph;
     /**
-     *
+     * 
      * Required: false
      */
-    RELATIONSHIP_TYPE?: "MONEY_EXCHANGE" | "MONEY_ASSET_TRANSFER" | String;
+    RELATIONSHIP_TYPE?: 'MONEY_EXCHANGE' | 'MONEY_ASSET_TRANSFER' | String;
   }
   export interface VQF_902_11 {
     /**
-     *
+     * 
      * Required: true
      */
     CONTROLLING_ENTITY_CONTRACTING_PARTNER: Paragraph;
     /**
-     *
+     * 
      * Required: true
      */
     CONTROLLING_ENTITY_DOMICILE: ResidentialAddress;
     /**
-     *
+     * 
      * Required: true
      */
     CONTROLLING_ENTITY_FULL_NAME: String;
     /**
-     *
+     * 
      * Required: true
      */
-    CONTROLLING_ENTITY_LEVEL: "25_MORE_RIGHTS" | "OTHER_WAY" | "DIRECTOR";
+    CONTROLLING_ENTITY_LEVEL: '25_MORE_RIGHTS' | 'OTHER_WAY' | 'DIRECTOR';
     /**
      * Is a third person the beneficial owner of the assets?
      * Required: true
@@ -272,12 +255,7 @@ export namespace TalerAmlAttributes {
      */
     FORM_FILLING_DATE: AbsoluteDateTime;
     /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
-    /**
-     *
+     * 
      * Required: true
      */
     SIGNATURE: String;
@@ -299,62 +277,57 @@ export namespace TalerAmlAttributes {
      */
     FORM_FILLING_DATE: AbsoluteDateTime;
     /**
-     *
+     * 
      * Required: false
      */
     FOUNDATION_BENEFICIARY_ADDITION?: Paragraph;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDATION_BENEFICIARY_LIST: Form<VQF_902_12_beneficiary>[];
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDATION_CONTRACTING_PARTNER: Paragraph;
     /**
-     *
+     * 
      * 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;
     /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
-    /**
-     *
+     * 
      * Required: true
      */
     SIGNATURE: String;
@@ -366,128 +339,128 @@ export namespace TalerAmlAttributes {
   }
   export interface VQF_902_12_beneficiary {
     /**
-     *
+     * 
      * Required: false
      */
     FOUNDATION_BENEFICIARY_BIRTHDATE?: AbsoluteDate;
     /**
-     *
+     * 
      * Required: false
      */
     FOUNDATION_BENEFICIARY_COUNTRY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     FOUNDATION_BENEFICIARY_DOMICILE?: ResidentialAddress;
     /**
-     *
+     * 
      * Required: false
      */
     FOUNDATION_BENEFICIARY_FULL_NAME?: String;
     /**
-     *
+     * 
      * Required: false
      */
     FOUNDATION_BENEFICIARY_NATIONALITY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     FOUNDATION_BENEFICIARY_RIGHT_TO_CLAIM?: Boolean;
   }
   export interface VQF_902_12_founder {
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDATION_FOUNDER_BIRTHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDATION_FOUNDER_DEATHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * 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: AbsoluteDate;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDATION_PRE_COUNTRY: CountryCode;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDATION_PRE_DEATHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * 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: AbsoluteDate;
     /**
-     *
+     * 
      * 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;
@@ -504,12 +477,7 @@ export namespace TalerAmlAttributes {
      */
     FORM_FILLING_DATE: AbsoluteDateTime;
     /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
-    /**
-     *
+     * 
      * Required: true
      */
     SIGNATURE: String;
@@ -519,217 +487,217 @@ export namespace TalerAmlAttributes {
      */
     SIGN_DATE: AbsoluteDateTime;
     /**
-     *
+     * 
      * Required: true
      */
     TRUST_BENEFICIARY_LIST: Form<VQF_902_13_beneficiary>[];
     /**
-     *
+     * 
      * Required: true
      */
     TRUST_CONTRACTING_PARTNER: Paragraph;
     /**
-     *
+     * 
      * 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: false
      */
     TRUST_BENEFICIARY_ADDITION?: Paragraph;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_BENEFICIARY_BIRTHDATE?: AbsoluteDate;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_BENEFICIARY_COUNTRY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_BENEFICIARY_DOMICILE?: ResidentialAddress;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_BENEFICIARY_FULL_NAME?: String;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_BENEFICIARY_NATIONALITY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_BENEFICIARY_RIGHT_TO_CLAIM?: Boolean;
   }
   export interface VQF_902_13_further {
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_FURTHER_BIRTHDATE?: AbsoluteDate;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_FURTHER_COUNTRY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_FURTHER_DOMICILE?: ResidentialAddress;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_FURTHER_FULL_NAME?: String;
     /**
-     *
+     * 
      * Required: true
      */
     TRUST_FURTHER_LIST: Form<VQF_902_13_further>[];
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_FURTHER_NATIONALITY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_FURTHER_RIGHT_TO_REVOKE?: Boolean;
   }
   export interface VQF_902_13_pre {
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PRE_BIRTHDATE?: AbsoluteDate;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PRE_COUNTRY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PRE_DEATHDATE?: AbsoluteDate;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PRE_DOMICILE?: ResidentialAddress;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PRE_FULL_NAME?: String;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PRE_NATIONALITY?: CountryCode;
   }
   export interface VQF_902_13_protector {
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PROTECTOR_BIRTHDATE?: AbsoluteDate;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PROTECTOR_COUNTRY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PROTECTOR_DOMICILE?: ResidentialAddress;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PROTECTOR_FULL_NAME?: String;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PROTECTOR_NATIONALITY?: CountryCode;
     /**
-     *
+     * 
      * Required: false
      */
     TRUST_PROTECTOR_RIGHT_TO_REVOKE?: Boolean;
   }
   export interface VQF_902_13_settlor {
     /**
-     *
+     * 
      * Required: true
      */
     TRUST_SETTLOR_BIRTHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * Required: true
      */
     TRUST_SETTLOR_DEATHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * 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;
@@ -751,33 +719,25 @@ export namespace TalerAmlAttributes {
      */
     INCRISK_DOCUMENTS: File[];
     /**
-     *
+     * 
      * Required: true
      */
-    INCRISK_MEANS: "GATHERING" | "CONSULTATION" | "ENQUIRIES" | String;
+    INCRISK_MEANS: 'GATHERING' | 'CONSULTATION' | 'ENQUIRIES' | String;
     /**
      * Description of the circumstances/transactions, which triggered the 
special clarifications
      * Required: true
      */
     INCRISK_REASON: String;
     /**
-     *
+     * 
      * Required: true
      */
-    INCRISK_RESULT:
-      | "NO_SUSPICION"
-      | "REASONABLE_SUSPICION"
-      | "SIMPLE_SUSPICION";
+    INCRISK_RESULT: 'NO_SUSPICION' | 'REASONABLE_SUSPICION' | 
'SIMPLE_SUSPICION';
     /**
-     *
+     * 
      * Required: true
      */
     INCRISK_SUMMARY: Paragraph;
-    /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
   }
   export interface VQF_902_15 {
     /**
@@ -791,17 +751,17 @@ export namespace TalerAmlAttributes {
      */
     FORM_FILLING_DATE: AbsoluteDateTime;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_CONTRACTING_PARTNER: Paragraph;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_HOLDER_BIRTHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_HOLDER_DOMICILE: ResidentialAddress;
@@ -811,17 +771,17 @@ export namespace TalerAmlAttributes {
      */
     INSURANCE_HOLDER_FULL_NAME?: String;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_HOLDER_NATIONALITY: CountryCode;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_PAYER_BIRTHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_PAYER_DOMICILE: ResidentialAddress;
@@ -831,7 +791,7 @@ export namespace TalerAmlAttributes {
      */
     INSURANCE_PAYER_FULL_NAME?: String;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_PAYER_NATIONALITY: CountryCode;
@@ -841,17 +801,12 @@ export namespace TalerAmlAttributes {
      */
     INSURANCE_RELATIONSHIP_NAME: String;
     /**
-     *
+     * 
      * Required: true
      */
     INSURANCE_RELATIONSHIP_POLICY: String;
     /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
-    /**
-     *
+     * 
      * Required: true
      */
     SIGNATURE: String;
@@ -868,37 +823,37 @@ export namespace TalerAmlAttributes {
      */
     FOUNDER_AUTHORIZATION_TYPE: String;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDER_BIRTHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDER_FULL_NAME: String;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDER_NATIONALITY: CountryCode;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDER_NATIONAL_COPY: File;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDER_NATIONAL_ID: String;
     /**
-     *
+     * 
      * Required: true
      */
-    FOUNDER_POWER_OF_ATTORNEY: "CR" | "MANDATE" | "OTHER" | String;
+    FOUNDER_POWER_OF_ATTORNEY: 'CR' | 'MANDATE' | 'OTHER' | String;
     /**
-     *
+     * 
      * Required: true
      */
     FOUNDER_RESIDENTIAL_ADDRESS: ResidentialAddress;
@@ -908,24 +863,17 @@ export namespace TalerAmlAttributes {
      * Based on 902.4.1 country list
      * Required: false
      */
-    CONTACT_RISK_LEVEL?: "LOW" | "MEDIUM" | "HIGH";
+    CONTACT_RISK_LEVEL?: 'LOW' | 'MEDIUM' | 'HIGH';
     /**
      * Based on 902.4.1 country list
      * Required: false
      */
-    COUNTRY_RISK_LEVEL?: "LOW" | "MEDIUM" | "HIGH";
+    COUNTRY_RISK_LEVEL?: 'LOW' | 'MEDIUM' | 'HIGH';
     /**
-     *
+     * 
      * Required: false
      */
-    COUNTRY_RISK_TYPE?:
-      | "NATIONALITY_CUSTOMER"
-      | "NATIONALITY_OWNER"
-      | "DOMICILE_CUSTOMER"
-      | "DOMICILE_OWNER"
-      | "DOMICILE_CONTROLLING"
-      | "BUSINESS_ACTIVITY"
-      | "PAYMENTS";
+    COUNTRY_RISK_TYPE?: 'NATIONALITY_CUSTOMER' | 'NATIONALITY_OWNER' | 
'DOMICILE_CUSTOMER' | 'DOMICILE_OWNER' | 'DOMICILE_CONTROLLING' | 
'BUSINESS_ACTIVITY' | 'PAYMENTS';
     /**
      * Customer system ID required to correlate different AML forms.
      * Required: true
@@ -940,7 +888,7 @@ export namespace TalerAmlAttributes {
      * Based on 902.4.1 country list
      * Required: false
      */
-    EXTRA_CRITERA_1_RISK_LEVEL?: "LOW" | "MEDIUM" | "HIGH";
+    EXTRA_CRITERA_1_RISK_LEVEL?: 'LOW' | 'MEDIUM' | 'HIGH';
     /**
      * Criteria description
      * Required: false
@@ -950,7 +898,7 @@ export namespace TalerAmlAttributes {
      * Based on 902.4.1 country list
      * Required: false
      */
-    EXTRA_CRITERA_2_RISK_LEVEL?: "LOW" | "MEDIUM" | "HIGH";
+    EXTRA_CRITERA_2_RISK_LEVEL?: 'LOW' | 'MEDIUM' | 'HIGH';
     /**
      * When the form was completed.
      * Required: true
@@ -967,25 +915,15 @@ export namespace TalerAmlAttributes {
      */
     HIGH_RISK_COUNTRY: Boolean;
     /**
-     *
+     * 
      * Required: false
      */
-    INDUSTRY_RISK_LEVEL?:
-      | "TRANSPARENT"
-      | "HIGH_CASH_TRANSACTION"
-      | "NOT_WELL_KNOWN"
-      | "HIGH_RISK_TRADE"
-      | "UNKNOWN_INDUSTRY";
+    INDUSTRY_RISK_LEVEL?: 'TRANSPARENT' | 'HIGH_CASH_TRANSACTION' | 
'NOT_WELL_KNOWN' | 'HIGH_RISK_TRADE' | 'UNKNOWN_INDUSTRY';
     /**
-     *
+     * 
      * Required: false
      */
-    INDUSTRY_RISK_TYPE?: "CUSTOMER" | "OWNER";
-    /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
+    INDUSTRY_RISK_TYPE?: 'CUSTOMER' | 'OWNER';
     /**
      * The decision of the Senior executive body on the acceptance of a 
business relationsip was obtained on ___
      * Required: false
@@ -1007,27 +945,20 @@ export namespace TalerAmlAttributes {
      */
     PEP_INTERNATIONAL_ORGANIZATION: Boolean;
     /**
-     *
+     * 
      * Required: false
      */
-    PRODUCT_RISK_LEVEL?:
-      | "EASY"
-      | "SOPHISTICATED"
-      | "OFFSHORE"
-      | "COMPLEX_STRUCTURE"
-      | "LARGE_NUMBER_OF_ACCOUNTS"
-      | "COMPLEX_SERVICE"
-      | "FREQ_TRANS_WITH_HIGH_RISK";
+    PRODUCT_RISK_LEVEL?: 'EASY' | 'SOPHISTICATED' | 'OFFSHORE' | 
'COMPLEX_STRUCTURE' | 'LARGE_NUMBER_OF_ACCOUNTS' | 'COMPLEX_SERVICE' | 
'FREQ_TRANS_WITH_HIGH_RISK';
     /**
      * The decision of the Senior executive body on the acceptance of a 
business relationsip was obtained on ___
      * Required: false
      */
     RISK_CLASIFICATION_ACCEPTANCE_DATE?: AbsoluteDateTime;
     /**
-     *
+     * 
      * Required: false
      */
-    RISK_CLASIFICATION_LEVEL?: "WITH" | "WITHOUT";
+    RISK_CLASIFICATION_LEVEL?: 'WITH' | 'WITHOUT';
   }
   export interface VQF_902_5 {
     /**
@@ -1071,16 +1002,12 @@ export namespace TalerAmlAttributes {
      */
     BIZREL_ORIGIN_AMOUNT: Amount;
     /**
-     *
+     * 
      * Required: true
      */
-    BIZREL_ORIGIN_CATEGORY:
-      | "SAVINGS"
-      | "OWN_BUSINESS"
-      | "INHERITANCE"
-      | "OTHER";
+    BIZREL_ORIGIN_CATEGORY: 'SAVINGS' | 'OWN_BUSINESS' | 'INHERITANCE' | 
'OTHER';
     /**
-     *
+     * 
      * Required: false
      */
     BIZREL_ORIGIN_CATEGORY_OTHER?: String;
@@ -1124,11 +1051,6 @@ export namespace TalerAmlAttributes {
      * Required: true
      */
     FORM_FILLING_DATE: AbsoluteDateTime;
-    /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
   }
   export interface VQF_902_9 {
     /**
@@ -1142,7 +1064,7 @@ export namespace TalerAmlAttributes {
      */
     FORM_FILLING_DATE: AbsoluteDateTime;
     /**
-     *
+     * 
      * Required: true
      */
     IDENTITY_CONTRACTING_PARTNER: Paragraph;
@@ -1152,12 +1074,7 @@ export namespace TalerAmlAttributes {
      */
     IDENTITY_LIST?: Form<VQF_902_9_identity>[];
     /**
-     * Full legal name of the officer filling the form.
-     * Required: true
-     */
-    OFFICER_FULL_NAME: String;
-    /**
-     *
+     * 
      * Required: true
      */
     SIGNATURE: String;
@@ -1169,24 +1086,200 @@ export namespace TalerAmlAttributes {
   }
   export interface VQF_902_9_identity {
     /**
-     *
+     * 
      * Required: true
      */
     IDENTITY_BIRTHDATE: AbsoluteDate;
     /**
-     *
+     * 
      * Required: true
      */
     IDENTITY_DOMICILE: ResidentialAddress;
     /**
-     *
+     * 
      * Required: true
      */
     IDENTITY_FULL_NAME: String;
     /**
-     *
+     * 
      * Required: true
      */
     IDENTITY_NATIONALITY: CountryCode;
   }
+  export interface GLS_Onboarding {
+    /**
+     * Building name of the of the individual or business.
+     * Required: false
+     */
+    ADDRESS_BUILDING_NAME?: String;
+    /**
+     * Building number of the individual or business.
+     * Required: false
+     */
+    ADDRESS_BUILDING_NUMBER?: String;
+    /**
+     * Country where the individual or business resides. Format is 2-letter 
ISO country-code.
+     * Required: false
+     */
+    ADDRESS_COUNTRY?: CountryCode;
+    /**
+     * Country subdivision of the individual or business.
+     * Required: false
+     */
+    ADDRESS_COUNTRY_SUBDIVISION?: String;
+    /**
+     * Additional address information of the individual or business.
+     * Required: false
+     */
+    ADDRESS_LINES?: String;
+    /**
+     * Street address name of the individual or business.
+     * Required: false
+     */
+    ADDRESS_STREET_NAME?: String;
+    /**
+     * Street address number of the individual or business.
+     * Required: false
+     */
+    ADDRESS_STREET_NUMBER?: String;
+    /**
+     * Town district of the individual or business.
+     * Required: false
+     */
+    ADDRESS_TOWN_DISTRICT?: String;
+    /**
+     * Town location of the individual or business.
+     * Required: false
+     */
+    ADDRESS_TOWN_LOCATION?: String;
+    /**
+     * Postal code of the city where the individual or business resides.
+     * Required: false
+     */
+    ADDRESS_ZIPCODE?: String;
+    /**
+     * Name of the company or business.
+     * Required: false
+     */
+    BUSINESS_DISPLAY_NAME?: String;
+    /**
+     * Industry in which the company or business mainly operate.
+     * Required: false
+     */
+    BUSINESS_INDUSTRY?: String;
+    /**
+     * True if the company or business is a non-profit.
+     * Required: false
+     */
+    BUSINESS_IS_NON_PROFIT?: Boolean;
+    /**
+     * City or location where the company or business is registered.
+     * Required: false
+     */
+    BUSINESS_LEGAL_JURISDICTION?: String;
+    /**
+     * List of natural persons that are legal representatives or shareholders.
+     * Required: false
+     */
+    BUSINESS_LEGAL_REPRESENTATIVES?: GLS_BusinessRepresentative[];
+    /**
+     * Registration founding date of the company or business.
+     * Required: false
+     */
+    BUSINESS_REGISTRATION_DATE?: AbsoluteDate;
+    /**
+     * Registration id on legal entity of the company or business.
+     * Required: false
+     */
+    BUSINESS_REGISTRATION_ID?: String;
+    /**
+     * Type of company form or business (limited liability company, general 
partnership, limited partnership, corporations, etc... ).
+     * Required: false
+     */
+    BUSINESS_TYPE?: String ;
+    /**
+     * DNS domain name owned by the individual or business.
+     * Required: false
+     */
+    CONTACT_DNS_DOMAIN?: Hostname;
+    /**
+     * E-mail address to contact the individual or business. Can be validated 
via E-mail with TAN.
+     * Required: false
+     */
+    CONTACT_EMAIL?: Email;
+    /**
+     * Phone number to contact the individual or business. Can be validated 
via SMS-TAN or phone call.
+     * Required: false
+     */
+    CONTACT_PHONE?: Phone;
+    /**
+     * Web site owned by the individual or business.
+     * Required: false
+     */
+    CONTACT_WEB_DOMAIN?: HttpHostnamePath;
+    /**
+     * List of natural persons that are legal representatives or shareholders.
+     * Required: false
+     */
+    PERSON_BUSINESS_REPRESENTATIVE_TYPE?: GLS_BusinessRepresentative[];
+    /**
+     * Date of birth of an individual. Format is YYYY-MM-DD.
+     * Required: false
+     */
+    PERSON_DATE_OF_BIRTH?: AbsoluteDate;
+    /**
+     * Full legal name of an individual as in the national identity card.
+     * Required: false
+     */
+    PERSON_FULL_NAME?: String;
+    /**
+     * Last name of an individual as in the national identity card.
+     * Required: false
+     */
+    PERSON_LAST_NAME?: String;
+    /**
+     * Nationality of an individual. Format is 2-letter ISO country-code.
+     * Required: false
+     */
+    PERSON_NATIONALITY?: CountryCode;
+    /**
+     * Identification number or string of national identity card.
+     * Required: false
+     */
+    PERSON_NATIONAL_ID?: String;
+    /**
+     * Scan of a recognized national identity card of an individual.
+     * Required: false
+     */
+    PERSON_NATIONAL_ID_SCAN?: File;
+    /**
+     * Country name of of the individual or business.
+     * Required: false
+     */
+    TAX_COUNTRY?: CountryCode;
+    /**
+     * Tax identifier of the individual or business.
+     * Required: false
+     */
+    TAX_ID?: String;
+    /**
+     * Is the individual or business economically active or passive.
+     * Required: false
+     */
+    TAX_IS_ACTIVE?: Boolean;
+    /**
+     * Is the business entitled to deduct input tax.
+     * Required: false
+     */
+    TAX_IS_DEDUCTED?: Boolean;
+    /**
+     * Is business founded or under USA law.
+     * Required: false
+     */
+    TAX_IS_USA_LAW?: Boolean;
+  }
+  export interface GLS_BusinessRepresentative {
+  }
+
+
 }
diff --git a/packages/taler-util/src/i18n.ts b/packages/taler-util/src/i18n.ts
index 3c6f5ac57..1d3b30bc9 100644
--- a/packages/taler-util/src/i18n.ts
+++ b/packages/taler-util/src/i18n.ts
@@ -53,6 +53,8 @@ export function singular(
   ...values: any[]
 ): TranslatedString {
   const s = toI18nString(stringSeq);
+  // jed throws a Error when key is empty
+  if (!s) return "" as TranslatedString;
   const tr = jed
     .translate(s)
     .ifPlural(1, s)

-- 
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]