You can run this check immediately via our Demo Postman collection . It's publicly available and doesn't require an account.
Overview of 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
Copy curl -X POST https://api.complycube.com/v1/clients \
-H 'Authorization: <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"type": "person",
"email": "john.doe@example.com",
"personDetails":{
"firstName": "John",
"lastName" :"Doe",
"dob": "1990-01-01"
}
}'
Copy const { ComplyCube } = require ( "@complycube/api" );
const complycube = new ComplyCube ({ apiKey : "<YOUR_API_KEY>" });
const client = await complycube . client .create ({
type : "person" ,
email : "john.doe@example.com" ,
personDetails : {
firstName : "John" ,
lastName : "Doe" ,
dob : "1990-01-01"
}
});
Copy from complycube import ComplyCubeClient
cc_api = ComplyCubeClient (api_key = '<YOUR API KEY>' )
new_client = {
'type' : 'person' ,
'email' : 'john.doe@example.com' ,
'personDetails' : {
'firstName' : 'John' ,
'lastName' : 'Doe' ,
'dob' : '1990-01-01'
}
}
client = cc_api . clients . create ( ** new_client)
Copy use ComplyCube \ ComplyCubeClient ;
$ccapi = new ComplyCubeClient ( '<YOUR_API_KEY>' );
$result = $ccapi -> clients () -> create ( [
'type' => 'person' ,
'email' => 'john.doe@example.com' ,
'personDetails' => [
'firstName' => 'John' ,
'lastName' => 'Doe' ,
'dob' => '1990-01-01'
]
] ) ;
Copy using ComplyCube . Net ;
using ComplyCube . Net . Resources . Clients ;
var clientApi = new ClientApi ( new ComplyCubeClient ( "<YOUR_API_KEY>" ));
var newclient = new ClientRequest {
type = "person" ,
email = "john.doe@example.com" ,
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.
Copy {
"id" : "5eb04fcd0f3e360008035eb1" ,
"type" : "person" ,
"email" : "john.doe@example.com" ,
"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
Copy 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"
}'
Copy const check = await complycube . check .create ( "5eb04fcd0f3e360008035eb1" , {
type : "extensive_screening_check"
});
Copy check = cc_api . complycube . checks . create (
"5eb04fcd0f3e360008035eb1" ,
type = "standard_screening_check"
)
Copy $result = $ccapi -> checks () -> create (
'5eb04fcd0f3e360008035eb1' ,
[ 'type' => 'standard_screening_check' ]
) ;
Copy 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.
Copy {
"id" : "65c12a6426d2ab000814037e" ,
"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"
}
3. Retrieve outcome
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
Copy curl -X GET https://api.complycube.com/v1/checks/5ebd40714f23960008c81527 \
-H 'Authorization: <YOUR_API_KEY>'
Copy const check = await complycube . check .get ( "5ebd40714f23960008c81527" );
Copy check = cc_api . checks . get ( '5ebd40714f23960008c81527' )
Copy $check = $ccapi -> checks () -> get ( '5ebd40714f23960008c81527' ) ;
Copy var check = await checkApi . GetAsync ( "5ebd40714f23960008c81527" );
Example response
Copy {
"id" : "65c12a6426d2ab000814037e" ,
"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"
}
Learn more about result outcome and breakdown ➔