Links

Perform AML Screening

You can run this check immediately via our Demo Postman collection. It's publicly available and doesn't require an account.

Overview of flow

AML screening API flow

1. Create a client

The first step in creating any check is to create a client from your backend server. A client can be a person or a company. For a person, you must provide their first name and last name. Only the name is required for a company.
Note: Though it's not a strict requirement, we highly recommend you provide a client's date of birth.

Example request for creating a client

cURL
Node.js
Python
PHP
.NET
curl -X POST https://api.complycube.com/v1/clients \
-H 'Authorization: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"type": "person",
"email": "[email protected]",
"personDetails":{
"firstName": "John",
"lastName" :"Doe",
"dob": "1990-01-01"
}
}'
const { ComplyCube } = require("@complycube/api");
const complycube = new ComplyCube({ apiKey: "<YOUR_API_KEY>" });
const client = await complycube.client.create({
type: "person",
personDetails: {
firstName: "John",
lastName: "Doe",
dob: "1990-01-01"
}
});
from complycube import ComplyCubeClient
cc_api = ComplyCubeClient(api_key='<YOUR API KEY>')
new_client = {
'type':'person',
'email':'[email protected]',
'personDetails': {
'firstName':'John',
'lastName':'Doe',
'dob':'1990-01-01'
}
}
client = cc_api.clients.create(**new_client)
use ComplyCube\ComplyCubeClient;
$ccapi = new ComplyCubeClient('<YOUR_API_KEY>');
$result = $ccapi->clients()->create(['type' => 'person',
'email' => '[email protected]',
'personDetails' => ['firstName' => 'John',
'lastName' => 'Doe',
'dob' => '1990-01-01']]);
using ComplyCube.Net;
using ComplyCube.Net.Resources.Clients;
var clientApi = new ClientApi(new ComplyCubeClient("<YOUR_API_KEY>"));
var newclient = new ClientRequest {
type = "person",
email = "[email protected]",
personDetails = new PersonDetails {
firstName = "John",
lastName = "Doe",
dob = "1990-01-01"
}
}
var client = await clientApi.CreateAsync(newclient);

Example response

The response will contain an id (the Client ID). It is required for the next step.
{
"id": "5eb04fcd0f3e360008035eb1",
"type": "person",
"email": "[email protected]",
"personDetails": {
"firstName": "John",
"lastName": "Doe",
"dob": "1990-01-01"
},
"createdAt": "2020-01-04T17:24:29.146Z",
"updatedAt": "2020-01-04T17:24:29.146Z"
}

2. Create a check

Create a check by providing the Client ID and Check type. There are two types of AML Screening checks - Standard AML Screening and Extensive AML Screening. The example below uses Extensive AML Screening.

Example request for creating a check

cURL
Node.js
Python
PHP
.NET
curl -X POST https://api.complycube.com/v1/checks \
-H 'Authorization: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"clientId":"5eb04fcd0f3e360008035eb1",
"type": "extensive_screening_check"
}'
const check = await complycube.check.create("5eb04fcd0f3e360008035eb1", {
type: "extensive_screening_check"
});
check = cc_api.complycube.checks.create(
'5eb04fcd0f3e360008035eb1',
type='standard_screening_check');
$result = $ccapi->checks()->create('5eb04fcd0f3e360008035eb1',
['type' => 'standard_screening_check']);
var checkRequest = new CheckRequest
{
clientId = "5eb04fcd0f3e360008035eb1",
type = "standard_screening_check"
};
var check = await checkApi.CreateAsync(checkRequest);

Example response

The response will contain an id (the Check ID). It is required for the next step.
{
"id": "5ebd40714f23960008c81527",
"entityName": "John Doe",
"type": "standard_screening_check",
"clientId": "5eb04fcd0f3e360008035eb1",
"status": "pending",
"createdAt": "2020-01-04T17:25:21.116Z",
"updatedAt": "2020-01-04T17:25:21.116Z"
}

Perform check

ComplyCube will perform the check. You can retrieve a check's outcome and breakdown via the API.
If you have set up webhooks, a notification will be sent upon completion of the check.

Example request for retrieving the check outcome

cURL
Node.js
Python
PHP
.NET
curl -X GET https://api.complycube.com/v1/checks/5ebd40714f23960008c81527 \
-H 'Authorization: <YOUR_API_KEY>'
const check = await complycube.check.get("5ebd40714f23960008c81527");
check = cc_api.checks.get('5ebd40714f23960008c81527')
$check = $ccapi->checks()->get('5ebd40714f23960008c81527');
var check = await checkApi.GetAsync("5ebd40714f23960008c81527");

Example response

{
"id": "5ebd40714f23960008c81527",
"entityName": "John Doe",
"type": "standard_screening_check",
"clientId": "5eb04fcd0f3e360008035eb1",
"status": "complete",
"result": {
"outcome": "clear",
"breakdown": {
"summary": {
"pep": {
"level1": "clear",
"level2": "clear",
"level3": "clear",
"level4": "clear"
},
"watchlist":{
"sanctionsLists": "clear",
"otherOfficialLists": "clear",
"warCrimes": "clear",
"terror": "clear",
"otherExclusionLists": "clear",
"sanctionsControlAndOwnership": "clear"
},
"adverseMedia": {
"environmentProduction": "clear",
"socialLabour": "clear",
"competitiveFinancial": "clear",
"regulatory": "clear"
},
"otherLists": {
"associatedEntity": "clear",
"organisedCrime": "clear",
"financialCrime": "clear",
"taxCrime": "clear",
"corruption": "clear",
"trafficking": "clear"
}
}
}
},
"createdAt": "2020-01-04T17:25:21.116Z",
"updatedAt": "2020-01-04T17:25:21.116Z"
}