Skip to main content

Person screening

1. Register Person

Start with Register person to add a person you wish to screen the watchlists for and get potential matches. The field personReferenceId should be set to a unique ID from your system, for example the Database ID for the person you are registering.

let request: RegisterPersonCommand {
identity: {
country = "us",
},
personReferenceId: "person-123",
firstName: "John F.",
lastName: "Kennedy"
};

let response = await client.registerPerson(request);
tip

See Search Options for more information about possible options to modifying the search algorithm.

danger

To comply to the GDPR regulations PersonalReferenceId should not contain data that is defined as Personal Data.

Response
{
"data": {
"personReferenceId": "person-123",
"identity": {
"identity": null,
"country": "us"
},
"firstName": "John F.",
"lastName": "Kennedy",
"birthdate": "????-??-??",
"addresses": [],
"hits": [
[
{
"aliasId": "5e9642c5f7b00dcebc42098008fde48e28d7e30962d8b128f9a3bd7dab080b81",
"referenceId": "person-123",
"matchedFirstName": [
{
"text": "John",
"isMatch": true
},
{
"text": " ",
"isMatch": false
},
{
"text": "F",
"isMatch": true
},
{
"text": ".",
"isMatch": false
}
],
"matchedLastName": [
{
"text": "Kennedy",
"isMatch": true
}
],
"isSanction": false,
"isPep": true,
"isRca": false,
"isSip": false,
"firstName": "John F.",
"lastName": "Kennedy",
"matchId": "7116f1a85030f2ed16d5d53224d772b9",
"classification": "Unknown",
"score": 1.0
}
]
],
"gender": "Unknown",
"archived": false,
"isPep": true,
"isRca": false,
"isSanction": false,
"birth": null,
"highRiskCountry": false,
"lastChanged": {
"timestampUtc": "2022-01-04T21:03:53.908646Z",
"checkpoint": "560ce33bf9637738575d7814d98ba71d39358f1816be97a296f89502706a6960"
},
"isSip": false
},
"status": "Success",
"success": true,
"message": null,
"checkpoint": "560ce33bf9637738575d7814d98ba71d39358f1816be97a296f89502706a6960"
}

We got a PEP Match

With the example we submitted, we can see the person has been matched with a PEP. The Watchlist endpoint can then be queried for further information about the matches. To decide whether the match was a true match or a false positive.

let request: WatchlistQuery_v2 = {
matchId: "7116f1a85030f2ed16d5d53224d772b9",
personReferenceId: "person-123"
};

let response = await client.watchlistPersonV2(request);
Response
{
"data": {
"listId": "list-id",
"nationalIdentificationNumber": null,
"names": [
{
"firstName": "John Fitzgerald",
"lastName": "Kennedy",
"selectedFirstName": [
{
"text": "John",
"isMatch": true
},
{
"text": " ",
"isMatch": false
},
{
"text": "Fitzgerald",
"isMatch": false
}
],
"selectedLastName": [
{
"text": "Kennedy",
"isMatch": true
}
],
"type": "Primary Name"
},
{
"firstName": "Jack",
"lastName": "Kennedy",
"selectedFirstName": [
{
"text": "Jack",
"isMatch": false
}
],
"selectedLastName": [
{
"text": "Kennedy",
"isMatch": true
}
],
"type": "Also Known As"
}
],
"birthdates": [
{
"circa": false,
"year": 1917,
"month": 5,
"day": 29,
"fromYear": 0,
"toYear": 0,
"type": "Date"
}
],
"addresses": [],
"countries": [
"us"
],
"isPep": true,
"isRca": false,
"isSanction": false,
"nationalities": [
"us"
],
"images": [
"https://images.pliance.io/?url=http%3a%2f%2fimg.timeinc.net%2ftime%2fpoy2000%2fimages%2fjfk.jpg",
"https://images.pliance.io/?url=http%3a%2f%2fbioguide.congress.gov%2fbioguide%2fphoto%2fK%2fK000107.jpg",
"https://images.pliance.io/?url=https%3a%2f%2fmedia1.britannica.com%2feb-media%2f99%2f1899-004-5293D7E2.jpg",
"https://images.pliance.io/?url=https%3a%2f%2fwww.whitehouse.gov%2fsites%2fwhitehouse.gov%2ffiles%2fimages%2ffirst-family%2f35_john_f_kennedy.jpg",
"https://images.pliance.io/?url=http%3a%2f%2fnstarzone.com%2fkennedy2.jpg"
],
"roles": [
{
"description": "President of the United States",
"isActive": false,
"sinceYear": "1961",
"sinceMonth": "Jan",
"sinceDay": "20",
"toYear": "1963",
"toMonth": "Nov",
"toDay": "22"
}
],
"relations": [
{
"firstName": "Jacqueline Lee",
"lastName": "Kennedy Onassis",
"relationPersonId": "DowJones-602367",
"isPep": false,
"isRca": true,
"isSanction": false,
"relationType": "1",
"isSip": false
}
],
"gender": "Male",
"lists": [],
"active": false,
"deceased": true,
"isSip": false,
"watchlistSource": {
"filename": "202205102330.xml",
"updatedAt": "2022-05-11T02:02:24.5246594Z",
"source": ""
},
"sources": [
"Montreal Gazette, 2-May-2006, on Factiva.com (https://global.factiva.com/redir/default.aspx?P=sa&AN=MTLG000020060502e2520001q&cat=a&ep=ASE)"
],
"notes": []
},
"status": "Success",
"success": true,
"message": null,
"checkpoint": "0000000000000000000000000000000000000000000000000000000000000000"
}

We can then Classify this match.

let request: ClassifyPersonHitCommand = {
personReferenceId: "person-123",
matchId: "7116f1a85030f2ed16d5d53224d772b9",
aliasId: "5e9642c5f7b00dcebc42098008fde48e28d7e30962d8b128f9a3bd7dab080b81",
classification: ClassificationType.FalsePositive
};

let response = await client.classifyPersonHit(request);

2. Monitoring status changes

Pliance will monitor the person for any PEP and Sanction status changes. To keep your system updated on these changes you have the following options.

Using view person

let request: ViewPersonQuery = {
personReferenceId: "person-123"
};

let response = await client.viewPerson(request);
Response
{
"data": {
"personReferenceId": "person-123",
"identity": {
"identity": null,
"country": "us"
},
"firstName": "John F.",
"lastName": "Kennedy",
"birthdate": "????-??-??",
"addresses": [],
"hits": [
[
{
"aliasId": "5e9642c5f7b00dcebc42098008fde48e28d7e30962d8b128f9a3bd7dab080b81",
"referenceId": "person-123",
"matchedFirstName": [
{
"text": "John",
"isMatch": true
},
{
"text": " ",
"isMatch": false
},
{
"text": "F",
"isMatch": true
},
{
"text": ".",
"isMatch": false
}
],
"matchedLastName": [
{
"text": "Kennedy",
"isMatch": true
}
],
"isSanction": false,
"isPep": true,
"isRca": false,
"isSip": false,
"firstName": "John F.",
"lastName": "Kennedy",
"matchId": "7116f1a85030f2ed16d5d53224d772b9",
"classification": "FalsePositive",
"score": 1.0
}
]
],
"gender": "Unknown",
"archived": false,
"isPep": false,
"isRca": false,
"isSanction": false,
"birth": null,
"highRiskCountry": false,
"lastChanged": {
"timestampUtc": "2022-01-04T21:03:54.099258Z",
"checkpoint": "bde1583db33032005e9048780368c7b4af27e3dce02551d0b868f6ecb0c89b1a"
},
"isSip": false
},
"status": "Success",
"success": true,
"message": null,
"checkpoint": "bde1583db33032005e9048780368c7b4af27e3dce02551d0b868f6ecb0c89b1a"
}

You can also search for all persons with unclassified matches, to get all the matches that haven't yet been classified.

let request: PersonSearchQuery = {
filter: {
isUnclassified: true
}
};

let response = await client.searchPerson(request);
Response
{
"data": {
"result": [
{
"personReferenceId": "person-123",
"firstName": [
{
"text": "John",
"isMatch": false
},
{
"text": " ",
"isMatch": false
},
{
"text": "F",
"isMatch": false
},
{
"text": ".",
"isMatch": false
}
],
"lastName": [
{
"text": "Kennedy",
"isMatch": true
}
],
"isPep": false,
"isRca": false,
"isSanction": false,
"identity": {
"identity": null,
"country": "us"
},
"archived": false,
"isSip": false
}
]
},
"status": "Success",
"success": true,
"message": null,
"checkpoint": "0000000000000000000000000000000000000000000000000000000000000000"
}

Using Webhooks

You also have the possibility to be notified about PEP and Sanction changes on your active persons by registering a webhook. Please refer to Webhooks for further details.

3. Manage watchlist matches

Pliance algorithms are designed to provide accurate screening results and we do our best to minimize false positives. In the event you need to correct an erroneous match, use the classify person command.

let request: ClassifyPersonHitCommand = {
personReferenceId: "person-123",
matchId: "c240d937a0e1635f222e3589b8760377",
aliasId: "85dd36a12f919dbe2f74aba4f30c05f353fe238eb5df3235e4baca91c177a695",
classification: ClassificationType.FalsePositive
};

let response = await client.classifyPersonHit(request);
Response
{
"status": "Success",
"success": true,
"message": null,
"checkpoint": "fd362e0faabd9e19de260ae542fc782210c05067118b61d99a327f4d77adbe1b"
}

4. Archive a Person

When you no longer wish to monitor the person, use the Archive person command. An archived person is no longer daily screened and will be exempt from billing (if it has been archived for the entire month).

let request: ArchivePersonCommand = {
personReferenceId: "person-123"
};

let response = await client.archivePerson(request);

5. Unarchive a Person

An archived person can be actively screened again by submitting an unarchive command.

let request: UnarchivePersonCommand = {
personReferenceId: "person-123"
};

let response = await client.unarchivePerson(request);
Response
{
"status": "Success",
"success": true,
"message": null,
"checkpoint": "fd362e0faabd9e19de260ae542fc782210c05067118b61d99a327f4d77adbe1b"
}

6. Delete a person

Lastly use Delete person to delete the person when there is no longer any business relationship with the person.

danger

This operation is irreversible. This will remove all data for a person. Can be used for upheld GDPR regulations.

let request: DeletePersonCommand = {
personReferenceId: "person-123"
};

let response = await client.deletePerson(request);