Skip to main content

AML Screening

Our AML "Anti-Money Laundering" service is dedicated to protecting your business from financial crimes and illegal activities. In today's complex financial landscape, it's crucial to ensure that your business follows anti-money laundering regulations.

Our AML service provides a comprehensive set of tools and solutions designed to carefully examine financial transactions, detect suspicious activities, and prevent illegal funds from entering your business by using advanced algorithms and data analysis.

We offer "real-time monitoring and analysis" through our AML service, giving you confidence that your business is actively preventing money laundering and other unlawful practices, creating a secure and compliant financial environment.

kyb-flow-diagram-light

Request

"Requests" refer to the various HTTP methods used for interacting with the API, providing details on endpoint URLs, parameters, headers, request bodies, and examples.

Listing the Available Countries

Description:
The "Listing Available Countries" API serves as a valuable resource for users to explore and understand the geographic coverage of the product. By providing a comprehensive list of covered countries and associated details, users can gain a clear picture of the product's global availability and make informed decisions regarding its usage in various regions.

Method Call:   GET

API:

https://api.thekyb.com/api/readAmlCountries
GET /api/readAmlCountries HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

Description:
The functionality of this API allows users to search for Aml Screening. You can search for single or multiple countries with search using this API. It directly accesses and fetches data from the official registries of the selected countries.

Method Call:   POST

API:

https://api.thekyb.com/api/search
ParameterDescription
searchType: String
Required: Yes
Minimum: 2 characters
Maximum: 100 characters.
Constraint: Search should not consist entirely of special characters or numbers.
Description: The name of entity/business you want to search.
unique_identifierType: String
Required: No
Minimum: 2 characters
Maximum: 50 characters.
Constraint: Unique identifier should not consist entirely of special characters.
Description: Unique identifier can be used to filter the search. It can be any key within the data object like Passport No, National ID number.
fuzzinessType: String
Required: No
Default: "90"
Description: Specifies the extent to which a search should accommodate variances between the search term and the matched terms. A value of 0 signifies a loose match, allowing for more flexible results, while a value of 100 indicates a closely matched result, limiting results to those very similar to the search term.
exact_searchType: Boolean
Required: No
Default: false
Description: When set to true, the exact match feature disables all pre-processing, such as name variations and fuzzy searches, ensuring that only exact matches are returned in the search results. This can help narrow down results to precisely what you are looking for without any modifications or approximations.
rca_searchType: String
Required: No
Default: "false"
Description: RCA search is used to specify whether user want to perform search within rca or not.
alias_searchType: String
Required: No
Default: "false"
Description: Alias search is used to specify whether user want to perform search within aliases or not.
servicesType: Array
Required: Yes
Description: Array of Services based on which you want to use service in this case we use aml like ["aml"].
biometric_search_imageType: Base64 encoded
Required: No
Description: Biometric AML Screening: AML innovative screening matrix features Name + Image + DOB + Unique Identifier which facilitates precise matching. Biometric AML serves the purpose of reducing the manual effort of MLROs and compliance officers by minimizing false positives as well as false negatives with image based search filtration.
Note: Image size should not be greater than 5MBs. Only JPG and PNG image types are accepted.
entity_typeType: Array
Required: Yes
Description: AML screening serves the purpose of identifying individuals or entities listed in various AML databases. The KYB provides AML Screening services of three types of entities i.e. Person, Company, and Organization.
categoriesType: Array
Required: Yes
Description: An array of categories based on which you want to filter the reports. See Categories
birth_incorporation_dateType: String
Required: No
Description: Date(DD-MM-YYYY) based on which you want to filter reports.
Note: To perform year search you can use the format 00-00-1947 and vice versa for date, month or combination of the three.
country_namesType: Array
Required: No
Description: Array of countries based on which you want to filter reports. Just input the country name, like ['united_kingdom']. This way, you can easily customize your search for a particular country or across all countries. Supported Countries
POST /api/search HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY
{
"search": "apple",
"unique_identifier": "",
"fuzziness": "90",
"exact_search": true,
"rca_search": "false",
"alias_search": "false",
"services": [
"aml"
],
"biometric_search_image": "",
"entity_type": [
"Company",
"Organization",
"Person"
],
"categories": [
"PEP Level 1",
"PEP Level 2",
"PEP Level 3",
"PEP Level 4",
"Fitness and Probity",
"Insolvency",
"Sanctions",
"SIP",
"SIE",
"Warnings and Regulatory Enforcement"
],
"birth_incorporation_date": "",
"country_names": [
"united_kingdom"
]
}

Retrieving AML Search Profiles

Description:
When users perform a search using the API, the system will retrieve a list of companies from the AML that match the provided search criteria. For instance, if a user searches for the company name "Apple" with country name "estonia," the API will display all the companies in the "estonia," that match the search term "Apple". This API breaks down the data into smaller, manageable pieces called "pages". Each page contains a limited number of results, which is determined by the "limit" value. By specifying the "page" number and "limit" value in the request, users can access different segments of the data retrieved by the aml request id. This approach is helpful for handling large datasets more efficiently, as it allows users to retrieve data in smaller chunks, one page at a time, rather than getting the entire dataset all at once.

Method Call:   GET

API:

https://api.thekyb.com/api/readAmlResponse?aml_request_id=REQUEST_ID&page=PAGE_NUMBER&limit=LIMIT
ParameterDescription
aml_request_idRequired: Yes
Type: string
Description: This is the unique request ID of request and can be generated by performing a “search” request.
pageRequired: Optional
Type: String
Default: 1
Description: Page attribute tells the page number of the retrieved result. The page number can be specified using the "page" query parameter.
limitType: String
Required: Optional
Description: The "limit" key refers to a parameter that allows users to specify the maximum number of results or records they want to receive from a request. This parameter is particularly useful when dealing with large datasets or when users only need a specific number of items from the API response.
For example, if the API provides a paginated response with 100 records per page, a user can set the "limit" key to 10 if they only want to receive the first 10 results. This way, the API will return a subset of the data containing the first 10 records, making the response more focused and efficient.
GET /api/readAmlResponse?aml_request_id=REQUEST_ID&page=PAGE_NUMBER&limit=LIMIT HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

Enhanced AML Search Profile

Description:
This API provides users the ability to select their desired AML Profile from the list of AML Search Profiles results displayed on a page after search is performed. Each listed AML profile includes search details and a unique "aml_company_id". This "aml_company_id" serves as a special code to uniquely identify each AML profile in the dataset.
To access detailed information about a specific AML profile, users can extract the "aml_company_id" from the results. With this "aml_company_id" in hand, users can then use it along with the original "aml_request_id" (which initiated the data retrieval process) to retrieve the comprehensive profile of the chosen company.

Method Call:   GET

API:

https://api.thekyb.com/api/amlCompanyRead?aml_company_id=AML_COMPANY_ID&aml_request_id=REQUEST_ID
ParameterDescription
aml_company_idRequired: Yes
Type: string
Description: The "aml_company_id" acts like a special code or label assigned to each company or aml profile, allowing easy and precise access to detailed information about that particular company. It serves as a key to unlock the specific profile or data associated with the company within the API's stored records.
aml_request_idRequired: Yes
Type: string
This is the unique aml_request_id of request and can be generated by performing a "search" request.
GET /api/amlCompanyRead?aml_company_id=AML_COMPANY_ID&aml_request_id=AML_REQUEST_ID HTTP/1.1
Host: api.thekyb.com
Content-Type: application/json
Accept: application/json
token: YOUR_SECRET_KEY

Response

The AML Verification API offers two types of responses when a verification request is made: an HTTP response and a callback response. Both responses are presented in JSON format with an application/json header. The response header also includes a Key Signature, which is utilized for verifying the authenticity of the response source.

Listing the Available Countries

Description:
The "Listing Available Countries" response serves as a valuable resource for users to explore and understand the geographic coverage of the product. By providing a comprehensive list of covered countries and associated details, users can gain a clear picture of the product's global availability and make informed decisions regarding its usage in various regions.

API:

https://api.thekyb.com/api/readAmlCountries

Response:

{
"error": false,
"message": "countries fetched successfully",
"data": {
"countries": [
"afghanistan",
"albania",
"algeria",
"american_samoa",
"andorra",
"angola",
....
]
}
}

Response Parameters:

ParameterDescription
errorThe "error" parameter can have a value of either "true" or "false." In the current scenario, since there were no errors during the request processing, the value of "error" is "false." However, in situations where errors occur, such as missing required parameters or criteria not being met, the value of the "error" parameter will change to "true."
messageThe "message" field in API response formats provides a descriptive text or notification intended to convey additional information or instructions to the API consumer. It is commonly used to communicate relevant details about the response, such as success messages, error messages, or any other informative content that aids in understanding the outcome of the API request. The "message" field helps provide context and guidance to the API consumer regarding the status or result of the API operation.
dataThe "data" field in API documentation refers to the main payload or content of the API response. It contains the actual information, results, or entities being transmitted back to the API consumer. The structure and format of the "data" field depend on the specific API and the nature of the response.
data.countriesThe "data.countries" key within the API response provides users with a comprehensive list of countries covered in the search results. It facilitates a clear understanding of the geographic scope of the retrieved companies.

AML Search

Description:
Whenever a user performs an AML search, a unique ID called aml_request_id will be generated and shown in the response.

API:

https://api.thekyb.com/api/search

Response:

{
"aml_request_id": "AML_REQUEST_ID",
"service_id": "AML_SERVICE_ID",
}

Response Parameters:

ParameterDescription
aml_request_idThis is the unique AML request ID that is generated by performing a 'search' request.
service_idThis is the unique Service ID of service and can be generated by performing a “search” request.

Retrieving AML Search Profiles

Description:
When users perform a search using the request API then in the response, the system will retrieve a list of AML Profiles that match the provided search criteria so users can view the AML profiles.
For instance, if a user searches for the company name "Apple" within the United States, the API will display all the companies that match the search term "Apple." When users perform a search using the request API, the system will retrieve a list of AML profiles that match the provided search criteria, allowing users to view the AML profiles. For instance, if a user searches for the company name "Apple" within the United States, the API will display all the companies that match the search term "Apple".

API:

https://api.thekyb.com/api/readAmlResponse?aml_request_id=REQUEST_ID&page=PAGE_NUMBER&limit=LIMIT

Response:

AML Profile Response Data
{
"error": false,
"message": "aml request data fetched successfully",
"data": {
"request_status": "resolved",
"match_status": "potential match",
"aml_request_data": [
{
"_id": "",
"birth_incorporation_date": [
""
],
"categories": [
""
],
"countries": [
""
],
"data": {
"additional_information": {
"country_codes": [],
"dorm_date": [],
"ibcRUC": [
""
],
"original_name": [
""
],
"service_provider": [],
"source_url": [
""
],
"valid_until": [
""
]
},
"linked_entities": [
{
"address": [],
"countries": [
""
],
"country_codes": [
""
],
"description": [],
"name": [
""
],
"status": [],
"type": [
""
],
"valid_until": [
""
]
}
],
"summary": {
"address": [],
"alias": [],
"country": [],
"dissolution_date": [
""
],
"inactive_date": [],
"incorporation_date": [
""
],
"jurisdiction": [
""
],
"name": "",
"status": [],
"type": []
}
},
"entity_types": [
""
],
"matched_alias": "",
"matched_names": [
{
"matched_name": "",
"matching_fields": [],
"record_id": "",
"score": "",
"source_ids": [
""
]
}
],
"matched_rca": "",
"name": "",
"relevance_status": {
"alias": false,
"birth_incorporation_date": false,
"category": true,
"country": false,
"entity_type": false,
"image_match": false,
"potential_match": true,
"profile_name": true,
"rca_name": false,
"unique_identifier": false
},
"risk_level": "",
"source_details": [
{
"description": "",
"publisher": "",
"url": ""
}
],
"aml_request_id": "",
"service_id": "",
"aml_response_reference_id": "",
"updated_at": "",
"created_at": ""
},
...
],
"pagination": {
"total": 500,
"per_page": 15,
"current_page": 1,
"last_page": 34,
"from": 61,
"to": 75
},
"aml_request": {
"_id": "",
"user_id": "",
"search_name": "apple",
"company_id": "",
"service_id": "",
"fuzziness": "",
"exact_search": true,
"unique_identifier": null,
"status": "resolved",
"country_names": [
"estonia"
],
"country_codes": [
"EE"
],
"services": [
"aml"
],
"updated_at": "",
"created_at": "",
"match_status": "",
"resolved_at": ""
}
}
}

Response Parameters:

ParameterDescription
errorThe "error" parameter can have a value of either "true" or "false." In the current scenario, since there were no errors during the request processing, the value of "error" is "false." However, in situations where errors occur, such as missing required parameters or criteria not being met, the value of the "error" parameter will change to "true".
messageThe "message" field in API response formats provides a descriptive text or notification intended to convey additional information or instructions to the API consumer. It is commonly used to communicate relevant details about the response, such as success messages, error messages, or any other informative content that aids in understanding the outcome of the API request. The "message" field helps provide context and guidance to the API consumer regarding the status or result of the API operation.
dataThe "data" field in API documentation refers to the main payload or content of the API response. It contains the actual information, results, or entities being transmitted back to the API consumer. The structure and format of the "data" field depend on the specific API and the nature of the response.
data.request_statusThe current status of the AML Screening request.
"request_status": "pending" indicates that the request is still in progress and has not yet been completed.
"request_status": "resolved" indicates the completion of service request.
data.match_statusThe current status of the matching process.
"match_status": "potential match" indicates that the service request has identified a possible match, but further verification may be required.
"match_status": "no match" indicates that the service request has been completed, and no match was found.
data.aml_request_dataThe key aml_request_data shows the data of the companies based on the search criteria. Moreover it also provides the “aml_company_id”, aml_request_id for the enhanced company profiles.
data.paginationdata.pagination is used to control and navigate through large result sets when retrieving paginated data.
data.pagination.total"pagination.total" refers to the total number of results or items available in a paginated API response. This value indicates the overall count of items that match the search criteria or data retrieval request.
data.pagination.per_page"data.pagination.per_page" refers to the number of data items or results displayed per page during pagination. This value indicates how many data entries or companies’ profiles are presented to the user in a single page of the API response.
data.pagination.current_page"data.pagination.current_page" represents the page number of the current set of data being displayed. This value indicates which specific page of the API response the user is currently viewing. As the user navigates through the paginated results, the "current_page" parameter helps keep track of their progress within the dataset, enabling efficient access to different segments of the data.
data.pagination.last_pageIn the API response, "data.pagination.last_page" indicates the page number of the last page available in the paginated results. This value helps users understand the total number of pages in the response and facilitates easy navigation through the complete dataset. When users reach the last page, they know they have accessed all the available data items within the paginated response.
data.pagination.from"data.pagination.from" shows the position of the first data item on the current page of the API response. It helps users know where the displayed data starts within the complete dataset. For example, in the above response the value of pagination.from is 1.
data.pagination.toIn the API response, "data.pagination.to" represents the position of the last data item displayed on the current page. It helps users understand where the displayed data ends within the complete dataset, making it easier to keep track of the data range being shown on the current page of the paginated results.

Enhanced AML Search Profile

Description:
This response provides users the ability to view their desired AML detailed profile from the list of AML Profiles displayed on a page after search is performed. Each listed AML profile includes search details and a unique "aml_company_id." This "aml_company_id" serves as a special code to uniquely identify each company in the dataset.
To access detailed information about a specific aml company, users can extract the "aml_company_id" from the results. With this "aml_company_id" in hand, users can then use it along with the original "aml_request_id" (which initiated the data retrieval process) to receive the comprehensive profile of the selected company in response.

API:

https://api.thekyb.com/api/amlCompanyRead?aml_company_id=AML_COMPANY_ID&aml_request_id=AML_REQUEST_ID

Response:

Enhanced AML Profile Response Data
{
"error": false,
"message": "Aml company",
"data": {
"_id": "",
"birth_incorporation_date": [
""
],
"categories": [
""
],
"countries": [
""
],
"data": {
"additional_information": {
"country_codes": [],
"dorm_date": [],
"ibcRUC": [
""
],
"original_name": [
""
],
"service_provider": [],
"source_url": [
""
],
"valid_until": [
""
]
},
"linked_entities": [
{
"address": [],
"countries": [
""
],
"country_codes": [
""
],
"description": [],
"name": [
""
],
"status": [],
"type": [
""
],
"valid_until": [
""
]
}
],
"summary": {
"address": [],
"alias": [],
"country": [],
"dissolution_date": [
""
],
"inactive_date": [],
"incorporation_date": [
""
],
"jurisdiction": [
""
],
"name": "",
"status": [],
"type": []
}
},
"entity_types": [
""
],
"matched_alias": "",
"matched_names": [
{
"matched_name": "",
"matching_fields": [],
"record_id": "",
"score": "64",
"source_ids": [
""
]
}
],
"matched_rca": "",
"name": "",
"previous_fields_data": [
{
"data.summary.alias": "Véronique Cabos",
"previous_data": "Véronique Cabbos",
"updated_at": "2024-07-06T00:03:58.000000Z"
},
],
"relevance_status": {
"alias": false,
"birth_incorporation_date": false,
"category": true,
"country": false,
"entity_type": false,
"image_match": false,
"potential_match": true,
"profile_name": true,
"rca_name": false,
"unique_identifier": false
},
"risk_level": "",
"source_details": [
{
"description": "",
"publisher": "",
"url": ""
}
],
"aml_request_id": "",
"service_id": "",
"aml_response_reference_id": "",
"updated_at": "",
"created_at": ""
}
}

Response Parameters:

ParameterDescription
errorThe "error" parameter can have a value of either "true" or "false." In the current scenario, since there were no errors during the request processing, the value of "error" is "false." However, in situations where errors occur, such as missing required parameters or criteria not being met, the value of the "error" parameter will change to "true".
messageThe "message" field in API response formats provides a descriptive text or notification intended to convey additional information or instructions to the API consumer. It is commonly used to communicate relevant details about the response, such as success messages, error messages, or any other informative content that aids in understanding the outcome of the API request. The "message" field helps provide context and guidance to the API consumer regarding the status or result of the API operation.
dataThe "data" field in API documentation refers to the main payload or content of the API response. It contains the actual information, results, or entities being transmitted back to the API consumer. The structure and format of the "data" field depend on the specific API and the nature of the response.

Technical Appendix

AML Categories

For AML Screening, the following categories are accepted.

CategoryDescription
Fitness and ProbityFitness and Probity refer to evaluating an individual's or entity's competence, skills, integrity, and ethical conduct in the financial services industry.
Warnings and Regulatory EnforcementWarnings alert individuals or entities to rule violations, while regulatory enforcement involves imposing penalties or legal actions for non-compliance with laws and regulations.
SanctionsSanctions are penalties or restrictions imposed by authorities on individuals, organizations, or countries for violating laws or international norms.
Adverse MediaRefers to negative or damaging information about individuals, organizations, or entities that can pose significant risks to businesses and other institutions.
PEP Level 1High-risk PEPs - State and government executives, military/judicial/law enforcement leaders, parliament officials, prominent political party figures.
PEP Level 2Medium-high Risk PEPs - Senior state/military/law enforcement officials, high-rank civil servants, religious/state agency leaders, ambassadors/diplomats/commissioners.
PEP Level 3Medium-risk PEPs - Senior management in government-owned businesses, state organization board members.
PEP Level 4Low Risk PEPs - Senior officials/employees in international bodies, state/district assembly members.
SIPSIP (Special Interest Person) - Special Interest Persons are individuals that present a heightened level of risk due to their suspected or confirmed involvement in criminal activity.
SIESIE (Special Interest Entity) - Special Interest Entities are companies/organisations that present a heightened level of risk due to their suspected or confirmed involvement in criminal activity.
InsolvencyInsolvency - Companies and organisations that are unable to pay their debts they owe or have been declared bankrupt by judicial process.