Docs
API referenceComplianceSupportHomeLog inSign up
  • Introduction
  • Guides
    • API Quick Guide
      • Perform AML Screening
      • Perform Document Check
      • Perform Identity Check
      • Perform Proof of Address Check
      • Perform Multi-Bureau Check
    • Web Portal Quick Guide
      • Perform AML Screening
      • Perform Document Check
      • Perform Multi-Bureau Check
      • Send verification link to client
    • Web SDK Guide
      • Web SDK integration guide
      • Web SDK customizations
    • Mobile SDK Guide
      • Mobile SDK integration guide
      • Mobile SDK stages
      • Mobile SDK tracked events
      • Mobile SDK error codes
    • Hosted Solution Guide
      • Integration guide
    • Postman Guide
    • Webhooks Guide
    • Integration Checklist
  • Check Types
    • AML Screening Check
      • Lists coverage
    • Document Check
      • ID coverage
      • RFID authentication
      • Redaction
      • Expected sides per type
    • Identity Check
    • Enhanced Identity Check
    • Proof of Address Check
    • Multi-Bureau Check
      • Service coverage
    • Face Authentication Check
    • Age Estimation Check
    • Automation
  • Other Services
    • AML Risk Profile
    • Bulk Processing
    • Autofill
    • Company Search
    • Address Search
    • Custom Lists
    • Advanced Case Management
  • Access Management
    • Teams and User Roles
    • Single Sign On (SSO)
      • SSO with Okta
      • SSO with Microsoft Entra ID
  • Useful Resources
    • Testing Data
  • API Reference
Powered by GitBook
On this page
  • Overview of flow
  • 1. Create a client
  • 2. Create a check
  • 3. Retrieve outcome

Was this helpful?

  1. Guides
  2. API Quick Guide

Perform AML Screening

PreviousAPI Quick GuideNextPerform Document Check

Last updated 1 year ago

Was this helpful?

You can run this check immediately via our . 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 -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"
          }
        }'
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"
  }
});
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)
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'
    ]
]);
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.

{
    "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

Example request for creating a check

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": "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.

Example request for retrieving the check outcome

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": "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"
}

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

If you have , a notification will be sent upon completion of the check.

set up webhooks
Learn more about result outcome and breakdown ➔
Demo Postman collection
Standard AML Screening
Extensive AML Screening
AML screening API flow