Field definitions template
Guidelines​
- Field definitions are coded on module/card level. Therefore there is a table per module/card.
- The HCUSTOM-team follows the order of the fields as provided in the tables.
- Always select data fields available within the Harmoney data model over metadata (custom fields).
- different from Harmoney data fields, a format needs to be defined for metadata fields.
- Provide information in the respective columns:
- Field/enum:
- the identifier
- the identifier for metadata start with
metadata.followed by camel case (You start by making the first word lowercase. Then, you capitalize the first letter of each word that follows.).
- Format: string, list, autocomplete, number (decimal/integer), multiselect autocomplete, boolean, rich text,…
- Present in the flow:
- should the field be present in the flow?
- Conditional visibility
- is the visibility of the field dependent on another field?
- should the field only be visible to certain (associated) party types? See Field definitions per associated party type.
- Leave empty in case of no dependencies.
- Read Only:
- should the field be read only?
- Why would the field be read only? In special case where input is coming from a provider, automation or API gateway, the client does not allow the information to be adapted.
- Conditional field validation:
- should the field be mandatory or not?
- Values:
- the name of the list the field should point to.
- Field/enum:
- Remove tables and rows which are not required.
- When requesting a change to the field definitions, always create a new page and update the version in the title.
- Highlight the changes with a red background. Highlight the entire row in case of a new field, highlight specific cells if a dedicated change is requested.
- Highlight the changes with a yellow background if the order of the fields should be switched.
- Make sure every page is representative of that version, updating changes that have been performed in the previous version.
The fields in the table below are added because of common request. Add and remove fields that are (not) necessary.
Migration needed when switching between TEXT_AREA and RICH_TEXT!
Rich text editor values are saved with html formatting in the database. This means it is not straightforward to switch between a text-area and the rich text editor. The migration below can be used if you want to switch some_table.some_field from text-area to the editor. The migration encodes <, > and & and replaces new-lines by a proper html <br/>. Remember to migrate the _archive table if relevant.
The final not like '<p>%' is to avoid migrating rows that already contain html. This query can only be executed once! Double execution would lead to a double encoding of & to & to &amp;.
UPDATE some_table
SET some_field = REPLACE(REPLACE(REPLACE(REPLACE(some_field, '&', '&'),'<', '<'),'>', '>'), '\n', '<br/>')
WHERE
some_field IS NOT NULL
AND
(some_field LIKE '%&%' OR some_field LIKE '%<%' OR some_field LIKE '%>%' OR some_field LIKE '%\n%')
AND
some_field NOT LIKE '<p>%';
Field definitions per associated party type​
Field definitions can be made dependent on a party's associated party type within a dossier — that is, the party's role in the dossier (client, owner, dossier related party, signatory, …) — and not only on its base PartyType (individual, company, …). This makes it possible to apply different visibility, requirement or read-only rules to parties that share the same base type depending on the role they fulfil. For example: industrySector required for the client party but optional for a dossier related party, or certain fields read-only for owners with a specific uboType.
To request this, describe the desired per-role behaviour in the Conditional visibility / Read only / Mandatory columns of the tables below.
Selecting the applicable parties​
The selection of which parties a field definition applies to uses the same granularity as the Associated Party Data Filter. A field definition can therefore be scoped by:
- association type — e.g.
client,clientOwners,clientRelatedParties,dossierRelatedParties,clientSignatories,selectedSignatory, …; - association-specific attributes — e.g. a related party's
relationType, an owner'suboType, a signatory'ssignatoryType; - party type — restrict to
INDIVIDUAL,COMPANY, …; - party data points — any party-related data point (e.g. party nationality), via a party filter.
Scope and merging​
- Flow context only. Associated party type is only meaningful within the context of a specific dossier, so these field definitions are evaluated in the flow only. On the FSP side a party can be linked to many dossiers of different types, so the filter does not apply there.
- Multiple roles are merged. When a party holds more than one associated party type in the dossier (for example, it is both the client and a dossier related party), every matching field definition is applied.
Fields on Dossier​
| Field/ENUM | Format | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | |||||
|---|---|---|---|---|---|---|---|---|
dossierStatus | NA | ![(tick)] | NA | NA | NA | |||
lifecycle | autocomplete | NA | ![(tick)] | NA | NA | NA | fspname_lifecycle | |
assignee | NA | ![(error)] | NA | ![(error)] | NA | |||
dossierName | NA | ![(error)] | NA | ![(tick)] | NA | |||
number | NA | ![(error)] | NA | ![(tick)] | NA | |||
dossierType | NA | ![(tick)] | NA | ![(tick)] | NA | |||
service | NA | ![(tick)] | NA | ![(tick)] | NA | |||
description | NA | ![(error)] | NA | ![(error)] | NA | |||
metadata.xxx | string | NA | ![(error)] | NA | ![(error)] | NA |
Documents on dossier​
| Field/ENUM | Mandatory | Values |
| FSP | FLOW | ||
|---|---|---|---|
| dossier documents | NA | NA | fspname_dossier_document_types |
validUntil | ![(error)] | NA | |
manualAssessment | NA | NA | DEFAULT_MANUAL_DOC_ASSESSMENT |
Related parties on dossier​
| Field/ENUM | Format | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | |||||
|---|---|---|---|---|---|---|---|---|
| dossier related party types | autocomplete | NA | ![(error)] | NA | ![(error)] | ![(tick)] | fspname_dossier_related_party_types | |
metadata.xxx | integer | NA | ![(error)] | NA | ![(error)] | ![(tick)] | fspname_lifecycle |
Fields on RBA​
| Field/ENUM | Mandatory | Values |
|---|---|---|
rbaScore | NA | |
escalation | NA | |
systemAssessment | NA | |
manualAssessment | ![(error)] | DEFAULT_MANUAL_RBA_ASSESSMENT |
comments | ![(error)] |
Fields on Party​
INDIVIDUAL​
| Field/ENUM | Format | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | |||||
|---|---|---|---|---|---|---|---|---|
firstName | ![(tick)] | ![(error)] | ![(error)] | ![(tick)] | ![(tick)] | |||
lastName | ![(tick)] | ![(error)] | ![(error)] | ![(tick)] | ![(tick)] | |||
phone | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
email | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
address | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
dateOfBirth | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
countryOfBirth | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
nationality | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
additionalNationalities | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(error)] | |||
occupation | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
industrySector | autocomplete | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | DEFAULT_INDUSTRY_SECTOR | |
language | ![(error)] | ![(error)] | NA | ![(error)] | ![(tick)] | |||
internalInfo | ![(error)] | ![(error)] | NA | ![(error)] | ![(tick)] | |||
metadata.xxx | string | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] |
Documents on individual​
| Field/ENUM | Mandatory | Values |
| FSP | FLOW | ||
|---|---|---|---|
| individual documents | NA | NA | fspname_individual_document_types |
validUntil | ![(error)] | NA | |
manualAssessment | NA | NA | DEFAULT_MANUAL_DOC_ASSESSMENT |
Related parties on individual​
| Field/ENUM | Format | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | |||||
|---|---|---|---|---|---|---|---|---|
| individual related party types | autocomplete | NA | ![(error)] | NA | ![(error)] | ![(tick)] | fspname_individual_related_party_types | |
metadata.xxx | integer | NA | ![(error)] | NA | ![(error)] | ![(tick)] |
COMPANY​
| Field/ENUM | Format | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | |||||
|---|---|---|---|---|---|---|---|---|
name | ![(tick)] | ![(error)] | ![(error)] | ![(tick)] | ![(tick)] | |||
companyNumber | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
companyType | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
legalForm | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
vatLiable | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
vatNumber | ![(tick)] | visible if vatLiable= true | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | ||
address | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
industrySector | autocomplete | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | DEFAULT_INDUSTRY_SECTOR | |
email | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | |||
internalInfo | ![(error)] | ![(error)] | NA | ![(error)] | NA | |||
metadata.xxx | string | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] |
Documents on company​
| Field/ENUM | Mandatory | Values |
| FSP | FLOW | ||
|---|---|---|---|
| company documents | NA | NA | fspname_company_document_types |
validUntil | ![(error)] | NA | |
manualAssessment | NA | NA | DEFAULT_MANUAL_DOC_ASSESSMENT |
Related parties on company​
| Field/ENUM | Format | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | |||||
|---|---|---|---|---|---|---|---|---|
| individual related party types | autocomplete | NA | ![(error)] | NA | ![(error)] | ![(tick)] | fspname_individual_related_party_types | |
metadata.xxx | integer | NA | ![(error)] | NA | ![(error)] | ![(tick)] |
Fields on IDENTITY​
| Field/ENUM | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | ||||
|---|---|---|---|---|---|---|---|
identityCardNumber | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | ||
nationalIdentificationNumber | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(error)] | ||
doesCardExpire | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | ||
identityCardValidTo | ![(tick)] | Visible if doesCardExpire= true | ![(error)] | ![(error)] | ![(error)] | ![(tick)] |
Documents on identity​
| Field/ENUM | Mandatory | Values |
| FSP | FLOW | ||
|---|---|---|---|
| company documents | NA | NA | fspname_identity_document_types |
manualAssessment | NA | NA | DEFAULT_MANUAL_DOC_ASSESSMENT |
Fields on FISCALITY​
| Field/ENUM | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | ||||
|---|---|---|---|---|---|---|---|
tin | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | ||
since | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] |
Fields on UBO​
| Field/ENUM | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | ||||
|---|---|---|---|---|---|---|---|
uboType | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] | ||
share | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] |
Fields on SIGNATORIES​
| Field/ENUM | Present in the flow | Conditional visibility | Read only | Mandatory | Values |
| FSP | FLOW | FSP | FLOW | ||||
|---|---|---|---|---|---|---|---|
metadata.xxx | ![(tick)] | ![(error)] | ![(error)] | ![(error)] | ![(tick)] |
Harmoney fields​
Always select data fields available within the Harmoney data model over metadata (custom fields). Here's an overview of all fields within the Harmoney data model.
Dossier​
dossierNamenumberdossierTypeservicedossierStatuslifecycleownerdescription
Party - Individual​
firstNamelastNamegendermobilePhoneemailaddressfullStreetpostalCodecitysubdivisioncountry
postalAddressfullStreetpostalCodecitysubdivisioncountry
dateOfBirthplaceOfBirthnationalityadditionalNationalitiescountryOfBirthdependentChildreneducationoccupationoccupationSinceemployerNameemployerAddressexternalDescriptionindustrySectorlegalCapacitysocialStatesocialStateSincemaritalStatusmaritalStatusSincepartnerNamenaceCodestateownerassigneeexpiryDate
Identity​
identityCardNumbernationalIdentificationNumberdoesCardExpireidentityCardValidTo
Party - company​
namecompanyNumbercompanyTypelegalFormvatLiablevatNumberleiLiableleiNumberaddressfullStreetpostalCodecitysubdivisioncountry
postalAddressfullStreetpostalCodecitysubdivisioncountry
establishmentCountryCodeindustrySectornaceCodecommonCompanyStructureestablishmentDatecompanyPhonewebsitestateowner
Party - indivision​
namestateowner
Party - partnership​
namestateregistrationNumberaddressowner
Relation type - UBO​
uboTypeshare
Relation type - related party​
relationTypecomment
Documents​
systemAssessmentsystemInfomanualAssessmentvalidUntil
RBA​
rbaScoresystemAssessmentmanualAssessmentescalation
Bank account​
account_nameaccount_holder_namebank_account_number_typebank_account_numberBIC_SWIFTbank_account_typebank_nameaccount_balanceaccount_balance_date