# AML Screening Check

## Run an AML screening check

To run an AML Screening Check, you must [create a check ](https://docs.complycube.com/documentation/api-reference/core-resources/checks/create-a-check)with `type` set to:

1. `standard_screening_check`, or
2. `extensive_screening_check`

For a [client](https://docs.complycube.com/documentation/api-reference/core-resources/clients) 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.

[Learn about AML Screening Checks](https://app.gitbook.com/s/KyFKMqftsmT6qln9zo5y/watchlist-pep-and-adverse-media/aml-screening-check).

{% hint style="info" %}
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.
{% endhint %}

{% hint style="info" %}
It is highly recommended that you provide the client's **date of birth** in addition to the first and last names of **persons**.
{% endhint %}

## Check request

<table><thead><tr><th width="246.1972549521724">Attribute</th><th width="104">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>clientId</code></td><td>string</td><td>The ID of the client associated with this check. (<strong>Required</strong>)</td></tr><tr><td><code>type</code></td><td>string</td><td><p>The type of AML screening check. Valid values include: </p><ol><li><code>standard_screening_check</code> </li><li><code>extensive_screening_check</code></li></ol><p>(<strong>Required</strong>)</p></td></tr><tr><td><code>enableMonitoring</code></td><td>boolean</td><td>Determines whether continuous monitoring is enabled. When not provided, it defaults to <strong>false</strong>. (<em>Optional</em>)</td></tr><tr><td><code>options</code></td><td>object</td><td>The optional settings for the check. Also, see the <a href="#the-options-object">options</a> object below. (<em>Optional</em>)</td></tr></tbody></table>

### The `options` object&#x20;

<table><thead><tr><th width="292.49234821088834">Attribute</th><th width="443.1219066187961">Description</th></tr></thead><tbody><tr><td><code>screeningListsScope</code></td><td><p><strong>Type</strong>: <code>object</code><br></p><p>The scope of lists to search as part of a screening check. See the <a href="#the-screeninglistsscope-object"><code>screeningListsScope</code></a> below.</p><p></p><p>When this attribute is not provided, we will search all eligible lists.</p></td></tr><tr><td><code>screeningNameSearchMode</code></td><td><p><strong>Type</strong>: <code>string</code><br></p><p>The name matching technique to apply:</p><p></p><ol><li><code>fuzzy</code>: applies various linguistic, phonetic, and near-match techniques on names to find matches.</li><li><code>precise</code><strong>:</strong> only matches names that are exact</li></ol><p>When this attribute is not provided, we will use <strong>fuzzy</strong> name matching.</p></td></tr><tr><td><code>screeningClassification</code></td><td><p><strong>Type</strong>: <code>array[string]</code><br></p><p>The match classifications to include as part of a screening check. Valid values include:</p><p></p><ol><li><code>pepLevel1</code></li><li><code>pepLevel2</code></li><li><code>pepLevel3</code></li><li><code>pepLevel4</code></li><li><code>watchlistSanctionsLists</code></li><li><code>watchlistOtherOfficialLists</code></li><li><code>watchlistWarCrimes</code></li><li><code>watchlistTerror</code></li><li><code>watchlistOtherExclusionLists</code></li><li><code>watchlistSanctionsControlAndOwnership</code></li><li><code>adverseMediaEnvironmentProduction</code></li><li><code>adverseMediaSocialLabour</code></li><li><code>adverseMediaCompetitiveFinancial</code></li><li><code>adverseMediaRegulatory</code></li><li><code>otherListsAssociatedEntity</code></li><li><code>otherListsOrganisedCrime</code></li><li><code>otherListsFinancialCrime</code></li><li><code>otherListsTaxCrime</code></li><li><code>otherListsCorruption</code></li><li><code>otherListsTrafficking</code></li></ol><p>When this attribute is not provided, we will conduct a search against all eligible classifications.</p></td></tr></tbody></table>

### The `screeningListsScope` object&#x20;

| **Attribute** | **Description**                                                                                                                                                                                                                                                                                                       |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mode`        | <p><strong>Type</strong>: <code>string</code><br></p><p>The criteria to apply to the lists when performing a screening search. Valid values include:</p><ol><li><code>inclusion</code></li><li><code>exclusion</code></li></ol><p>When this attribute is not provided, it will default to <code>inclusion</code>.</p> |
| `lists`       | <p><strong>Type</strong>: <code>array\[string]</code><br></p><p>The lists to include or exclude as part of the screening search.</p>                                                                                                                                                                                  |

## Example requests

#### Simple request

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://api.complycube.com/v1/checks \
     -H 'Authorization: <YOUR_API_KEY>' \
     -H 'Content-Type: application/json' \
     -d '{
          	"clientId":"CLIENT_ID",
          	"type": "extensive_screening_check"
        }'
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const { ComplyCube } = require("@complycube/api");

const complycube = new ComplyCube({ apiKey: "<YOUR_API_KEY>" });

const check = await complycube.check.create("CLIENT_ID", {
    type: "extensive_screening_check"
});
```

{% endtab %}

{% tab title="Python" %}

```python
from complycube import ComplyCubeClient

cc_api = ComplyCubeClient(api_key='<YOUR_API_KEY>')

check = cc_api.checks.create('CLIENT_ID','extensive_screening_check')
```

{% endtab %}

{% tab title="PHP" %}

```php
use ComplyCube\ComplyCubeClient;

$ccapi = new ComplyCubeClient('<YOUR_API_KEY>');

$result = $ccapi->checks()->create('CLIENT_ID', [
    'type' => 'extensive_screening_check'
]);
```

{% endtab %}

{% tab title=".NET" %}

```csharp
using ComplyCube.Net;
using ComplyCube.Net.Resources.Checks;

var checkApi = new CheckApi(new ComplyCubeClient("<YOUR_API_KEY>"));

var checkRequest = new CheckRequest {
  clientId = "CLIENT_ID",
  type = "extensive_screening_check"
};

var check = await checkApi.CreateAsync(checkRequest);
```

{% endtab %}
{% endtabs %}

#### Request with optional attributes

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://api.complycube.com/v1/checks \
     -H 'Authorization: <YOUR_API_KEY>' \
     -H 'Content-Type: application/json' \
     -d '{
          "clientId":"CLIENT_ID",
          "type": "extensive_screening_check",
          "enableMonitoring": true,
          "options":{
               "screeningClassification": ["otherListsFinancialCrime"],
               "screeningNameSearchMode": "precise",
               "screeningListsScope": {
                    "mode": "inclusion",
                    "lists": ["Companies House (UK) Disqualified Directors"]
          	}
          }
        }'
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const { ComplyCube } = require("@complycube/api");

const complycube = new ComplyCube({ apiKey: "<YOUR_API_KEY>" });

const check = await complycube.check.create("CLIENT_ID", {
    type: "extensive_screening_check",
    enableMonitoring: true,
    options: {
        screeningClassification: ["otherListsFinancialCrime"],
        screeningNameSearchMode: "precise",
        screeningListsScope": {
            mode:"inclusion",
            lists: ["Companies House (UK) Disqualified Directors"]
        }
    }
});
```

{% endtab %}

{% tab title="Python" %}

```python
from complycube import ComplyCubeClient

cc_api = ComplyCubeClient(api_key='<YOUR_API_KEY>')

options = {
        'screeningClassification': ['otherListsFinancialCrime'],
        'screeningNameSearchMode': 'precise',
        'screeningListsScope': {
            'mode':'inclusion',
            'lists': ['Companies House (UK) Disqualified Directors']
        }}
        
check = cc_api.checks.create( 'CLIENT_ID',
                              'extensive_screening_check',
                              options=options)
```

{% endtab %}

{% tab title="PHP" %}

```php
use ComplyCube\ComplyCubeClient;

$ccapi = new ComplyCubeClient('<YOUR_API_KEY>');

$check = [  'type' => 'extensive_screening_check', 
             'options' => [
               'screeningClassification' => ['pepLevel1'],
               'screeningNameSearchMode' => 'precise',
               'screeningListsScope' => [
                   'mode' => 'inclusion',
                   'lists' => ['Companies House (UK) Disqualified Directors']
                ]
              ]
           ];
           
$result = $ccapi->checks()->create('CLIENT_ID', $check);
```

{% endtab %}

{% tab title=".NET" %}

```csharp
using ComplyCube.Net;
using ComplyCube.Net.Resources.Checks;

var checkApi = new CheckApi(new ComplyCubeClient("<YOUR_API_KEY>"));

var checkRequest = new CheckRequest
                    {
                        clientId = "CLIENT_ID",
                        type = "extensive_screening_check"
                    };
                    
checkRequest.options = new CheckRequestOptions {    
                    screeningClassification = new string[] { "pepLevel1" },
                    screeningNameSearchMode = "precise",
                    analysisCoverage = new string[] { 
                                        "consistency_analysis", 
                                        "forensic_analysis" }};

var check = await checkApi.CreateAsync(checkRequest);
```

{% endtab %}
{% endtabs %}

## 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. `clear`: Indicates ComplyCube found no matches.
2. `attention`: Indicates ComplyCube found potentials matches.

{% hint style="info" %}
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](https://docs.complycube.com/documentation/checks/aml-screening-check#standard-and-extensive-aml-screening-differences) is a subset of an **Extensive AML Screening**.
{% endhint %}

#### Breakdown

The breakdown comprises the following objects:

#### `summary` object

The outcome summary of the check. For each conducted check, the returned values include:

1. `clear`: Indicates no matches were found on the corresponding database.
2. `attention`: Indicates potential matches found on the corresponding database.
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](https://docs.complycube.com/documentation/checks/aml-screening-check#standard-and-extensive-aml-screening-differences).

#### 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](https://docs.complycube.com/documentation/checks/aml-screening-check#pep-levels-explained).

  * `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`:&#x20;
  * `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. <br>
* `score`: The match score, as calculated by ComplyCube. A higher score indicates a closer match.<br>
* `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](#the-summary-object-has-the-following-constituents) 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.
    * `type`: The type of association.
    * `country`: The country. This will be the [two-letter country ISO code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).&#x20;

  * `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](https://docs.complycube.com/documentation/api-reference/core-resources/checks#structured-date-format).
    * `toDate`: The occupation end date. This will be a  [structured date](https://docs.complycube.com/documentation/api-reference/core-resources/checks#structured-date-format).

  * `dates`: An array of value pair objects covering important dates associated with the match.
    * `type`: The type of date.
    * `data`: The date. This will be a  [structured date](https://docs.complycube.com/documentation/api-reference/core-resources/checks#structured-date-format).

  * `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](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).&#x20;

  * `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](https://docs.complycube.com/api-reference/checks#structured-date-format).
    * `toDate`: The end date of the source's validity. This will be a [structured date](https://docs.complycube.com/documentation/api-reference/core-resources/checks#structured-date-format).

  * `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

```json
{
   "id": "5ebe587ffd7de4000876118e",
   "entityName": "Viktor Shayman",
   "type": "extensive_screening_check",
   "clientId": "5ebe587bfd7de4000876118d",
   "status": "complete",
   "enableMonitoring": false,
   "result": {
      "outcome": "attention",
      "breakdown": {
         "summary": {
            "otherLists": {
               "associatedEntity": "attention",
               "organisedCrime": "clear",
               "financialCrime": "clear",
               "taxCrime": "clear",
               "corruption": "clear",
               "trafficking": "clear"
            },
            "pep": {
               "level2": "attention",
               "level3": "attention",
               "level1": "attention",
               "level4": "clear"
            },
            "watchlist": {
               "sanctionsLists": "clear",
               "otherOfficialLists": "clear",
               "warCrimes": "clear",
               "terror": "clear",
               "otherExclusionLists": "clear",
               "sanctionsControlAndOwnership": "clear"
            },
            "adverseMedia": {
               "environmentProduction": "clear",
               "socialLabour": "clear",
               "competitiveFinancial": "clear",
               "regulatory": "clear"
            }
         },
         "matches": [
            {
               "id": "5ebe5880fd7de4000876118f",
               "score": 100,
               "status": "attention",
               "details": {
                  "entityName": "Viktor Vladimirovich Sheyman",
                  "entityType": "person",
                  "gender": "male",
                  "deceased": false,
                  "names": [
                     {
                        "type": "primary",
                        "firstName": "Viktor",
                        "middleName": "Vladimirovich",
                        "lastName": "Sheyman",
                        "entityName": "Viktor Vladimirovich Sheyman"
                     },
                     {
                        "type": "localised_name",
                        "entityName": "Віктар Уладзіміравіч Шэйман"
                     },
                     {
                        "type": "localised_name",
                        "entityName": "Шейман Виктор Владимирович"
                     },
                     {
                        "type": "localised_name",
                        "entityName": "Виктор Владимирович Шейман"
                     },
                     {
                        "type": "alias",
                        "firstName": "Victor",
                        "middleName": "Vladimirovich",
                        "lastName": "Sheyman",
                        "entityName": "Victor Vladimirovich Sheyman"
                     },
                     {
                        "type": "alias",
                        "firstName": "Victor",
                        "middleName": "Vladimirovich",
                        "lastName": "Sheiman",
                        "entityName": "Victor Vladimirovich Sheiman"
                     }
                  ],
                  "countries": [
                     {
                        "type": "Born in",
                        "country": "BY"
                     },
                     {
                        "type": "Citizenship",
                        "country": "BY"
                     },
                     {
                        "type": "Resident of",
                        "country": "BY"
                     },
                     {
                        "type": "Jurisdiction",
                        "country": "BY"
                     }
                  ],
                  "birthPlaces": [
                     "Grodno region,Belarus",
                     "Hrodna region,Belarus",
                     "Soltanishka, Voronovskovo,Belarus",
                     "Soltanishki,Belarus",
                     "Belarus"
                  ],
                  "occupations": [
                     {
                        "type": "Primary Occupation",
                        "category": "Senior Civil Servants-National Government",
                        "title": "Head, President's Office",
                        "fromDate": {
                           "day": "21",
                           "month": "01",
                           "year": "2013"
                        }
                     },
                     {
                        "type": "Previous Roles",
                        "category": "Senior Civil Servants-National Government",
                        "title": "State Secretary, National Security Council",
                        "fromDate": {
                           "day": "20",
                           "month": "03",
                           "year": "2006"
                        },
                        "toDate": {
                           "day": "08",
                           "month": "07",
                           "year": "2008"
                        }
                     },
                     {
                        "type": "Previous Roles",
                        "category": "Senior Civil Servants-National Government",
                        "title": "State Secretary, National Security Council",
                        "fromDate": {
                           "month": "12",
                           "year": "1995"
                        },
                        "toDate": {
                           "year": "2000"
                        }
                     },
                     {
                        "type": "Previous Roles",
                        "category": "Senior Members of the Judiciary",
                        "title": "Prosecutor General",
                        "fromDate": {
                           "year": "2000"
                        },
                        "toDate": {
                           "month": "11",
                           "year": "2004"
                        }
                     },
                     {
                        "type": "Previous Roles",
                        "category": "Senior Civil Servants-National Government",
                        "title": "Presidential Aide for Special Missions",
                        "fromDate": {
                           "month": "01",
                           "year": "2013"
                        },
                        "toDate": {
                           "day": "21",
                           "month": "01",
                           "year": "2013"
                        }
                     },
                     {
                        "type": "Previous Roles",
                        "category": "Senior Civil Servants-National Government",
                        "title": "State Secretary, National Security Council",
                        "fromDate": {
                           "day": "05",
                           "month": "08",
                           "year": "1994"
                        },
                        "toDate": {
                           "month": "10",
                           "year": "1995"
                        }
                     },
                     {
                        "type": "Previous Roles",
                        "category": "National Government Ministers",
                        "title": "Minister of Interior",
                        "fromDate": {
                           "month": "10",
                           "year": "1995"
                        },
                        "toDate": {
                           "month": "12",
                           "year": "1995"
                        }
                     },
                     {
                        "type": "Previous Roles",
                        "category": "Senior Civil Servants-National Government",
                        "title": "Head, Presidential Administration",
                        "fromDate": {
                           "month": "11",
                           "year": "2004"
                        },
                        "toDate": {
                           "day": "04",
                           "month": "01",
                           "year": "2006"
                        }
                     }
                  ],
                  "dates": [
                     {
                        "type": "Date of Birth",
                        "date": {
                           "day": "26",
                           "month": "05",
                           "year": "1958"
                        }
                     }
                  ],
                  "references": [
                     {
                        "source": "EC 2015/1949 Belarus List",
                        "fromDate": {
                           "day": "29",
                           "month": "10",
                           "year": "2015"
                        }
                     },
                     {
                        "source": "EC (CFSP) 2015/1957 Belarus List",
                        "fromDate": {
                           "day": "29",
                           "month": "10",
                           "year": "2015"
                        }
                     },
                     {
                        "source": "EC 2016/276 Belarus List",
                        "fromDate": {
                           "day": "25",
                           "month": "02",
                           "year": "2016"
                        }
                     },
                     {
                        "source": "EC (CFSP) 2016/280 Belarus List",
                        "fromDate": {
                           "day": "25",
                           "month": "02",
                           "year": "2016"
                        }
                     },
                     {
                        "source": "French Economy Ministry - EU and UN Asset Freezing Measures",
                        "fromDate": {
                           "day": "30",
                           "month": "07",
                           "year": "2017"
                        }
                     }
                  ],
                  "addresses": [
                     {
                        "line": "Karl Marx, 38",
                        "city": "Minsk",
                        "postalCode": "220016",
                        "country": "BY"
                     }
                  ],
                  "identifications": [
                     {
                        "type": "OFAC Program ID",
                        "value": "BELARUS"
                     },
                     {
                        "type": "OFAC Unique ID",
                        "value": "9769"
                     },
                     {
                        "type": "EU Sanctions Programme Indicator",
                        "value": "BLR"
                     },
                     {
                        "type": "EU Consolidated Electronic List ID",
                        "value": "3411"
                     },
                     {
                        "type": "HM Treasury Group ID",
                        "value": "8904"
                     },
                     {
                        "type": "SECO SSID",
                        "value": "4596"
                     }
                  ],
                  "images": [
                     "https://naviny.com/c/b0/b06235bad25e89f92f5ffe89676e8589.jpg",
                     "http://pmrb.gov.by/images/shejman.jpg"
                  ],
                  "classifications": {
                     "pep": [
                        "level2",
                        "level1"
                     ]
                  }
               },
               "breakdown": [
                  {
                     "fieldName": "name",
                     "riskWeight": 100,
                     "breakdowns": [],
                     "fieldValue": "viktor uladzimiravich sheyman",
                     "score": 93,
                     "riskWeightedScore": 93,
                     "normalisedScore": 100
                  }
               ]
            }
         ]
      }
   },
   "createdAt": "2020-05-15T08:53:20.307Z",
   "updatedAt": "2020-05-15T08:53:20.307Z"
}}
```
