Harmoney Associated Parties Data
- Version 1
Business goal​
This generic class can be used to perform data checks on a set of related parties of a dossier (properties of the party, validations on party documents, etc).
Mechanism​
The validation will only be executed if the dossier matches certain conditions (optional).
These conditions can be defined in the (global) dossierFilter or in the dossierFilterCondition defined in the settings.
When the dossier is applicable the dossier is further processed.
Using the associatedPartyFilter, all associated parties matching this filter are retrieved. It is possible to filter on certain types only (client, related party, etc).
See settings schema & examples below for more information on those filtering options.
Those parties are further validated based on the validations.
Depending on which card the data validation needs to be performed, a validation can be configured. We currently support validations on data from the following cards:
- Party Details
- Identity Details (for individuals)
- External Party Details
- Party Documents
- Identity Documents (for individuals)
For some cards there is a list of data points available (e.g. documents). The validation will be performed on all entries in the list, unless there is an additional filter defined in the settings.
This filter can be different depending on the card the validation is performed on.
Configuration​
Settings​
This validation class is highly configurable and depending on the use case, a different set of properties need to be set. Therefore, please consult the examples below to find a configuration that is most equivalent to your use case.
- Make sure there is always an error code provided for the validation.
- Optionally, you can define which fields are required. Therefore, define the exact field path from the field definitions for the corresponding object/card.
See also the Generic Validation settings for more information.
Example(s)​
Verify Assessment of identity documents
{
"associatedPartyFilter": {
"associatedPartyTypes": {
"client": {},
"clientRelatedParties": {},
"clientOwners": {},
"responsibles": {}
},
"partyTypes": [
"INDIVIDUAL"
]
},
"validations": {
"identityDocuments": {
"error": {
"errorCode": "IDENTITY_DOCS_NOT_APPROVED"
},
"validation": {
"and": [
{
"isNotNull": {
"fieldPath": "assessment"
}
},
{
"notEquals": {
"fieldPath": "assessment",
"value": "APPROVED"
}
}
]
}
}
}
}
Require an external metadata field for the client for specific dossier type & service
{
"dossierFilterCondition": {
"and": [
{
"in": {
"fieldPath": "service",
"values": [
"KNOW_YOUR_CUSTOMER",
"KNOW_YOUR_CUSTOMER_BETTER"
]
}
},
{
"equals": {
"fieldPath": "type",
"value": "KNOW_YOUR_CUSTOMER"
}
}
]
},
"associatedPartyFilter": {
"associatedPartyTypes": {
"client": {}
}
},
"validations": {
"externalDetails": {
"error": {
"errorCode": "EXTERNAL_REF_REQUIRED",
"requiredFields": [
"externalPartyMetadata.METADATA_RISK"
]
},
"validation": {
"isNotNull": {
"fieldPath": "externalMetadata.METADATA_RISK"
}
}
}
}
}
Require a field for a related party of the client of a certain type
{
"associatedPartyFilter": {
"associatedPartyTypes": {
"clientRelatedParties": {
"filter": {
"equals": {
"fieldPath": "relationType",
"value": "DIRECTOR_MANAGER"
}
}
}
}
},
"validations": {
"details": {
"error": {
"errorCode": "INDUSTRY_MISSING",
"requiredFields": [
"individual.industrySector"
]
},
"validation": {
"and": [
{
"isNotNull": {
"fieldPath": "individual.industrySector"
}
}
]
}
}
}
}
Validate that at least one associated party is available. Optionally with extra filters
{
"errorCode": "RELATION_OF_TYPE_XX_REQUIRED_RANDOM_TEST",
"associatedPartyFilter": {
"associatedPartyTypes": {
"clientRelatedParties": {}
}
},
"validations": {
"partyListNotEmpty": true
}
}
Require at least one identity document
{
"associatedPartyFilter": {
"associatedPartyTypes": {
"responsibles": {}
},
"partyTypes": [
"INDIVIDUAL"
]
},
"validations": {
"identityDocuments": {
"error": {
"errorCode": "IDENTITY_DOCUMENT_REQUIRED"
},
"notEmpty": true
}
}
}