API Reference
Search…
AML Screening Check
Screen clients against ComplyCube's Sanctions & Watchlists, PEP, and Adverse Media database.

Run an AML screening check

To run an AML Screening Check, you must create a check with type set to:
  1. 1.
    standard_screening_check, or
  2. 2.
    extensive_screening_check
For a client of type person, you can run an AML Screening Check when the firstName and lastName are present. For a company, only the name is required.
The more data you provide for a client, the more accurate the AML Screening Check results. This will ultimately reduce the number of potential 'false positive' matches.
It is highly recommended that you provide the client's date of birth in addition to the first and last names of persons.

Screening check request

Attribute
Type
Description
clientId
string
The ID of the client associated with this check. (Required)
type
string
The type of AML screening check. Valid values include:
  1. 1.
    standard_screening_check
  2. 2.
    extensive_screening_check
(Required)
enableMonitoring
boolean
Determines whether continuous monitoring is enabled. When not provided, it defaults to false. (Optional)
options
object
The advanced optional configuration associated with the check. Also, see the options object below. (Optional)

The options object

Attribute
Description
screeningListsScope
Type: object
The scope of lists to search as part of a screening check. See the screeningListsScope below.
When this attribute is not provided, we will search all eligible lists.
screeningNameSearchMode
Type: string
The name matching technique to apply:
  1. 1.
    fuzzy: applies various linguistic, phonetic, and near-match techniques on names to find matches.
  2. 2.
    precise: only matches names that are exact
When this attribute is not provided, we will use fuzzy name matching.
screeningClassification
Type: array[string]
The match classifications to include as part of a screening check. Valid values include:
  1. 1.
    pepLevel1
  2. 2.
    pepLevel2
  3. 3.
    pepLevel3
  4. 4.
    pepLevel4
  5. 5.
    watchlistSanctionsLists
  6. 6.
    watchlistOtherOfficialLists
  7. 7.
    watchlistWarCrimes
  8. 8.
    watchlistTerror
  9. 9.
    watchlistOtherExclusionLists
  10. 10.
    watchlistSanctionsControlAndOwnership
  11. 11.
    adverseMediaEnvironmentProduction
  12. 12.
    adverseMediaSocialLabour
  13. 13.
    adverseMediaCompetitiveFinancial
  14. 14.
    adverseMediaRegulatory
  15. 15.
    otherListsAssociatedEntity
  16. 16.
    otherListsOrganisedCrime
  17. 17.
    otherListsFinancialCrime
  18. 18.
    otherListsTaxCrime
  19. 19.
    otherListsCorruption
  20. 20.
    otherListsTrafficking
When this attribute is not provided, we will conduct a search against all eligible classifications.

The screeningListsScope object

Attribute
Description
mode
Type: string
The criteria to apply to the lists when performing a screening search. Valid values include:
  1. 1.
    inclusion
  2. 2.
    exclusion
When this attribute is not provided, it will default to inclusion.
lists
Type: array[string]
The lists to include or exclude as part of the screening search.

Example requests

Simple request

cURL
Node.js
Python
PHP
.NET
1
curl -X POST https://api.complycube.com/v1/checks \
2
-H 'Authorization: <YOUR_API_KEY>' \
3
-H 'Content-Type: application/json' \
4
-d '{
5
"clientId":"CLIENT_ID",
6
"type": "extensive_screening_check"
7
}'
Copied!
1
const { ComplyCube } = require("@complycube/api");
2
3
const complycube = new ComplyCube({ apiKey: "<YOUR_API_KEY>" });
4
5
const check = await complycube.check.create("CLIENT_ID", {
6
type: "extensive_screening_check"
7
});
Copied!
1
from complycube import ComplyCubeClient
2
3
cc_api = ComplyCubeClient(api_key='<YOUR_API_KEY>')
4
5
check = cc_api.checks.create('CLIENT_ID','extensive_screening_check')
Copied!
1
use ComplyCube\ComplyCubeClient;
2
3
$ccapi = new ComplyCubeClient('<YOUR_API_KEY>');
4
5
$result = $ccapi->checks()->create('CLIENT_ID',
6
['type' => 'extensive_screening_check']);
Copied!
1
using ComplyCube.Net;
2
using ComplyCube.Net.Resources.Checks;
3
4
var checkApi = new CheckApi(new ComplyCubeClient("<YOUR_API_KEY>"));
5
6
var checkRequest = new CheckRequest
7
{
8
clientId = "CLIENT_ID",
9
type = "extensive_screening_check"
10
};
11
12
var check = await checkApi.CreateAsync(checkRequest);
Copied!

Request with optional attributes

cURL
Node.js
Python
PHP
.NET
1
curl -X POST https://api.complycube.com/v1/checks \
2
-H 'Authorization: <YOUR_API_KEY>' \
3
-H 'Content-Type: application/json' \
4
-d '{
5
"clientId":"CLIENT_ID",
6
"type": "extensive_screening_check",
7
"enableMonitoring": true,
8
"options":{
9
"screeningClassification": ["otherListsFinancialCrime"],
10
"screeningNameSearchMode": "precise",
11
"screeningListsScope": {
12
"mode": "inclusion",
13
"lists": ["Companies House (UK) Disqualified Directors"]
14
}
15
}
16
}'
Copied!
1
const { ComplyCube } = require("@complycube/api");
2
3
const complycube = new ComplyCube({ apiKey: "<YOUR_API_KEY>" });
4
5
const check = await complycube.check.create("CLIENT_ID", {
6
type: "extensive_screening_check",
7
enableMonitoring: true,
8
options: {
9
screeningClassification: ["otherListsFinancialCrime"],
10
screeningNameSearchMode: "precise",
11
screeningListsScope": {
12
mode:"inclusion",
13
lists: ["Companies House (UK) Disqualified Directors"]
14
}
15
}
16
});
Copied!
1
from complycube import ComplyCubeClient
2
3
cc_api = ComplyCubeClient(api_key='<YOUR_API_KEY>')
4
5
options = {
6
'screeningClassification': ['otherListsFinancialCrime'],
7
'screeningNameSearchMode': 'precise',
8
'screeningListsScope': {
9
'mode':'inclusion',
10
'lists': ['Companies House (UK) Disqualified Directors']
11
}}
12
13
check = cc_api.checks.create( 'CLIENT_ID',
14
'extensive_screening_check',
15
options=options)
Copied!
1
use ComplyCube\ComplyCubeClient;
2
3
$ccapi = new ComplyCubeClient('<YOUR_API_KEY>');
4
5
$check = [ 'type' => 'extensive_screening_check',
6
'options' => [
7
'screeningClassification' => ['pepLevel1'],
8
'screeningNameSearchMode' => 'precise',
9
'screeningListsScope' => [
10
'mode' => 'inclusion',
11
'lists' => ['Companies House (UK) Disqualified Directors']
12
]
13
]
14
];
15
16
$result = $ccapi->checks()->create('CLIENT_ID', $check);
Copied!
1
using ComplyCube.Net;
2
using ComplyCube.Net.Resources.Checks;
3
4
var checkApi = new CheckApi(new ComplyCubeClient("<YOUR_API_KEY>"));
5
6
var checkRequest = new CheckRequest
7
{
8
clientId = "CLIENT_ID",
9
type = "extensive_screening_check"
10
};
11
12
checkRequest.options = new CheckRequestOptions {
13
screeningClassification = new string[] { "pepLevel1" },
14
screeningNameSearchMode = "precise",
15
analysisCoverage = new string[] {
16
"consistency_analysis",
17
"forensic_analysis" }};
18
19
var check = await checkApi.CreateAsync(checkRequest);
Copied!

Result object

The result object is only returned when the status of the check is complete . It has two components - outcome and breakdown.

Outcome

The outcome attribute represents the overall check result. Returned values include:
  1. 1.
    clear: Indicates ComplyCube found no matches.
  2. 2.
    attention: Indicates ComplyCube found potentials matches.
All summary results will either return clear, attention, or not_processed. The value not_processed is expected to return on Standard AML Screening checks, as the service coverage scope is a subset of an Extensive AML Screening.

Breakdown

The breakdown comprises the following objects:

summary object

The outcome summary of the check. For each conducted check, the returned values include:
  1. 1.
    clear: Indicates no matches were found on the corresponding database.
  2. 2.
    attention: Indicates potential matches found on the corresponding database.
  3. 3.
    not_processed: Returned when the corresponding database has not been checked. This is to be expected for Standard AML Screening checks, as the coverage scope is a subset of an Extensive AML Screening check as highlighted on the service page.

The summary object has the following constituents:

  • watchlist: Contains the outcome for checks against the Sanctions & Watchlist database, with matches classified with one or more of the following values:
    • sanctionsList
    • terror
    • warCrimes
    • otherOfficialLists
    • otherExclusionLists
    • sanctionsControlAndOwnership
  • pep : Contains the outcome for checks against the Politically Exposed Persons (PEP) database, with matches classified as per the levels described here.
    • level1
    • level2
    • level3
    • level4
  • adverseMedia : Contains the outcome for checks against the Adverse Media database, with matches classified with one or more of the following values:
    • competitiveFinancial
    • regulatory:
    • environmentProduction
    • socialLabour
  • otherLists : Contains the outcome for checks conducted against other prudent lists, with matches classified with one or more of the following values:
    • taxCrime
    • corruption
    • trafficking
    • financialCrime
    • organisedCrime
    • associatedEntity

matches array

The matches array contains a list of match objects, which contain the details of the entity that matched with the screened client's details. For each match object has the following constituents:
  • id: The unique identifier for a match.
  • score: The match score, as calculated by ComplyCube. A higher score indicates a closer match.
  • details: This contains the details of a match.
    • entityName: The full name of the matched entity.
    • entityType: The type of matched entity. Values include:
      • person
      • company
    • classifications: This contains key and string array pairs that classify the match. Possible values of the key and associated string array will align with the summary object's key.
    • names: An array of name objects that contain all known aliases for the match. The name object has the following attributes:
      • type: The type of name. Values include:
        • primary : The Latin name by which entity is primarily or legally known as.
        • alias : An alias by which the entity is also known as.
        • localised_name : The entity name as transcribed or known in languages or scripts such as Arabic, Cyrillic, Sanskrit, and so forth.
      • firstName: The match's first name.
      • middleName: The match's middle name.
      • lastName: The match's last name.
      • entityName: The match's complete name, returned for person and company.
    • countries: An array of value pair objects covering known associated countries for the match.
    • birthPlaces: An array of strings that contain all known birthplaces for the match.
    • gender: The gender of the match, if of type person. Values include:
      • male
      • female
      • other
    • deceased: A boolean that indicates whether the match is deceased.
    • occupations: An array of occupation objects that contain all known occupations for the match. This is only returned when the match is a Politically Exposed Person (PEP). The occupation object has the following attributes:
      • type: The type of occupation.
      • category: The category of the occupation.
      • title: The role title.
      • fromDate: The occupation start date. This will be a structured date.
      • toDate: The occupation end date. This will be a structured date.
    • dates: An array of value pair objects covering important dates associated with the match.
    • addresses: An array of address objects that contain known associated countries for the match. The address object has the following attributes:
      • line: The line of the address.
      • city: The city or town of the address.
      • postalCode: The post or zip code of the client's address.
      • country: The country of the address. This will be the two-letter country ISO code.
    • references: An array of reference objects that contain list references for the match. The reference object has the following attributes:
      • source: The source name.
      • fromDate: The start date of the source's validity. This will be a structured date.
      • toDate: The end date of the source's validity. This will be a structured date.
    • identifications: An array of value pair objects covering known identifications associated with the match.
      • type: The type of identification.
      • value: The value or reference associated with the identification.
    • images: An array of strings that contain URIs of images for the match.

Sample Response

1
{
2
"id": "5ebe587ffd7de4000876118e",
3
"entityName": "Viktor Shayman",
4
"type": "extensive_screening_check",
5
"clientId": "5ebe587bfd7de4000876118d",
6
"status": "complete",
7
"enableMonitoring": false,
8
"result": {
9
"outcome": "attention",
10
"breakdown": {
11
"summary": {
12
"otherLists": {
13
"associatedEntity": "attention",
14
"organisedCrime": "clear",
15
"financialCrime": "clear",
16
"taxCrime": "clear",
17
"corruption": "clear",
18
"trafficking": "clear"
19
},
20
"pep": {
21
"level2": "attention",
22
"level3": "attention",
23
"level1": "attention",
24
"level4": "clear"
25
},
26
"watchlist": {
27
"sanctionsLists": "clear",
28
"otherOfficialLists": "clear",
29
"warCrimes": "clear",
30
"terror": "clear",
31
"otherExclusionLists": "clear",
32
"sanctionsControlAndOwnership": "clear"
33
},
34
"adverseMedia": {
35
"environmentProduction": "clear",
36
"socialLabour": "clear",
37
"competitiveFinancial": "clear",
38
"regulatory": "clear"
39
}
40
},
41
"matches": [
42
{
43
"id": "5ebe5880fd7de4000876118f",
44
"score": 100,
45
"status": "attention",
46
"details": {
47
"entityName": "Viktor Vladimirovich Sheyman",
48
"entityType": "person",
49
"gender": "male",
50
"deceased": false,
51
"names": [
52
{
53
"type": "primary",
54
"firstName": "Viktor",
55
"middleName": "Vladimirovich",
56
"lastName": "Sheyman",
57
"entityName": "Viktor Vladimirovich Sheyman"
58
},
59
{
60
"type": "localised_name",
61
"entityName": "Віктар Уладзіміравіч Шэйман"
62
},
63
{
64
"type": "localised_name",
65
"entityName": "Шейман Виктор Владимирович"
66
},
67
{
68
"type": "localised_name",
69
"entityName": "Виктор Владимирович Шейман"
70
},
71
{
72
"type": "alias",
73
"firstName": "Victor",
74
"middleName": "Vladimirovich",
75
"lastName": "Sheyman",
76
"entityName": "Victor Vladimirovich Sheyman"
77
},
78
{
79
"type": "alias",
80
"firstName": "Victor",
81
"middleName": "Vladimirovich",
82
"lastName": "Sheiman",
83
"entityName": "Victor Vladimirovich Sheiman"
84
}
85
],
86
"countries": [
87
{
88
"type": "Born in",
89
"country": "BY"
90
},
91
{
92
"type": "Citizenship",
93
"country": "BY"
94
},
95
{
96
"type": "Resident of",
97
"country": "BY"
98
},
99
{
100
"type": "Jurisdiction",
101
"country": "BY"
102
}
103
],
104
"birthPlaces": [
105
"Grodno region,Belarus",
106
"Hrodna region,Belarus",
107
"Soltanishka, Voronovskovo,Belarus",
108
"Soltanishki,Belarus",
109
"Belarus"
110
],
111
"occupations": [
112
{
113
"type": "Primary Occupation",
114
"category": "Senior Civil Servants-National Government",
115
"title": "Head, President's Office",
116
"fromDate": {
117
"day": "21",
118
"month": "01",
119
"year": "2013"
120
}
121
},
122
{
123
"type": "Previous Roles",
124
"category": "Senior Civil Servants-National Government",
125
"title": "State Secretary, National Security Council",
126
"fromDate": {
127
"day": "20",
128
"month": "03",
129
"year": "2006"
130
},
131
"toDate": {
132
"day": "08",
133
"month": "07",
134
"year": "2008"
135
}
136
},
137
{
138
"type": "Previous Roles",
139
"category": "Senior Civil Servants-National Government",
140
"title": "State Secretary, National Security Council",
141
"fromDate": {
142
"month": "12",
143
"year": "1995"
144
},
145
"toDate": {
146
"year": "2000"
147
}
148
},
149
{
150
"type": "Previous Roles",
151
"category": "Senior Members of the Judiciary",
152
"title": "Prosecutor General",
153
"fromDate": {
154
"year": "2000"
155
},
156
"toDate": {
157
"month": "11",
158
"year": "2004"
159
}
160
},
161
{
162
"type": "Previous Roles",
163
"category": "Senior Civil Servants-National Government",
164
"title": "Presidential Aide for Special Missions",
165
"fromDate": {
166
"month": "01",
167
"year": "2013"
168
},
169
"toDate": {
170
"day": "21",
171
"month": "01",
172
"year": "2013"
173
}
174
},
175
{
176
"type": "Previous Roles",
177
"category": "Senior Civil Servants-National Government",
178
"title": "State Secretary, National Security Council",
179
"fromDate": {
180
"day": "05",
181
"month": "08",
182
"year": "1994"
183
},
184
"toDate": {
185
"month": "10",
186
"year": "1995"
187
}
188
},
189
{
190
"type": "Previous Roles",
191
"category": "National Government Ministers",
192
"title": "Minister of Interior",
193
"fromDate": {
194
"month": "10",
195
"year": "1995"
196
},
197
"toDate": {
198
"month": "12",
199
"year": "1995"
200
}
201
},
202
{
203
"type": "Previous Roles",
204
"category": "Senior Civil Servants-National Government",
205
"title": "Head, Presidential Administration",
206
"fromDate": {
207
"month": "11",
208
"year": "2004"
209
},
210
"toDate": {
211
"day": "04",
212
"month": "01",
213
"year": "2006"
214
}
215
}
216
],
217
"dates": [
218
{
219
"type": "Date of Birth",
220
"date": {
221
"day": "26",
222
"month": "05",
223
"year": "1958"
224
}
225
}
226
],
227
"references": [
228
{
229
"source": "EC 2015/1949 Belarus List",
230
"fromDate": {
231
"day": "29",
232
"month": "10",
233
"year": "2015"
234
}
235
},
236
{
237
"source": "EC (CFSP) 2015/1957 Belarus List",
238
"fromDate": {
239
"day": "29",
240
"month": "10",
241
"year": "2015"
242
}
243
},
244
{
245
"source": "EC 2016/276 Belarus List",
246
"fromDate": {
247
"day": "25",
248
"month": "02",
249
"year": "2016"
250
}
251
},
252
{
253
"source": "EC (CFSP) 2016/280 Belarus List",
254
"fromDate": {
255
"day": "25",
256
"month": "02",
257
"year": "2016"
258
}
259
},
260
{
261
"source": "French Economy Ministry - EU and UN Asset Freezing Measures",
262
"fromDate": {
263
"day": "30",
264
"month": "07",
265
"year": "2017"
266
}
267
}
268
],
269
"addresses": [
270
{
271
"line": "Karl Marx, 38",
272
"city": "Minsk",
273
"postalCode": "220016",
274
"country": "BY"
275
}
276
],
277
"identifications": [
278
{
279
"type": "OFAC Program ID",
280
"value": "BELARUS"
281
},
282
{
283
"type": "OFAC Unique ID",
284
"value": "9769"
285
},
286
{
287
"type": "EU Sanctions Programme Indicator",
288
"value": "BLR"
289
},
290
{
291
"type": "EU Consolidated Electronic List ID",
292
"value": "3411"
293
},
294
{
295
"type": "HM Treasury Group ID",
296
"value": "8904"
297
},
298
{
299
"type": "SECO SSID",
300
"value": "4596"
301
}
302
],
303
"images": [
304
"https://naviny.com/c/b0/b06235bad25e89f92f5ffe89676e8589.jpg",
305
"http://pmrb.gov.by/images/shejman.jpg"
306
],
307
"classifications": {
308
"pep": [
309
"level2",
310
"level1"
311
]
312
}
313
},
314
"breakdown": [
315
{
316
"fieldName": "name",
317
"riskWeight": 100,
318
"breakdowns": [],
319
"fieldValue": "viktor uladzimiravich sheyman",
320
"score": 93,
321
"riskWeightedScore": 93,
322
"normalisedScore": 100
323
}
324
]
325
}
326
]
327
}
328
},
329
"createdAt": "2020-05-15T08:53:20.307Z",
330
"updatedAt": "2020-05-15T08:53:20.307Z"
331
}}
Copied!