AML Check
The AML Check product allows you to perform due diligence on your customers by screening them against global watchlists, politically exposed persons lists, and adverse media publications. The product returns whether the screened customers are found on any of these lists and the corresponding details, which can be used to assess the customers’ associated risks.
Integration Options
Currently only available via the Rest API.
Endpoint
Request type: POST
Sandbox
https://testapi.smileidentity.com/v1/aml
Production
https://api.smileidentity.com/v1/aml
Request Values
The AML Check product requires the following input parameters which should be contained in a JSON body object submitted to the endpoint
Name
Type
Required
Description
partner_id
string
Yes
A unique number assigned by Smile ID to your account. Can be found in the portal here
source_sdk
string
No
The integration option you are using. For rest api send the value as rest_api
source_sdk_version
string
No
The version of the integration option you are using. Send value as 1.0.0
signature
string
Yes
The outgoing signature to authenticate the request from you to Smile ID. You can read more about calculating the signature here
timestamp
string
Yes
The timestamp used to calculate the signature in ISO date/time format
user_id
string
Yes
A value generated by you, so you can track users on your end. This value must be unique, can be any string and can follow your identifier convention
Note: If you intend to enhance your due diligence and perform KYC on the customer e.g. Biometric KYC or Document Verification, you can re-use the user_id
by setting the search_existing_user
key to true. A unique job_id is still required.
job_id
string
Yes
A value generated by you, so you can track jobs on your end. This value must be unique, can be any string and can follow your identifier convention.
countries
array
Yes
An array that takes the customer’s known nationalities e.g. Nigeria is NG
, Kenya is KE
, etc.
full_name
string
Yes
The full name of the customer
birth_year*
string
No
The customer’s year of birth, in the format yyyy
.
strict_match
boolean
No
The key provides flexibility in matching logic, allowing partners to specify whether they prefer strict or more lenient matching criteria per job search. Default value of the key is true
.
search_existing_user
string
No
If you intend to re-use the name and year of birth of a user’s previous KYC job, you can pass the string with the value set to True.
Note: You can only re-use name and year of birth from a user’s previously successful Biometric KYC or Document Verification, you are still required to pass the nationality in the countries field
*we highly recommend sending the birth_year
to reduce the number of false matches
Example JSON Body
Return Values
The AML Check product returns details of the customer screening and additional basic information about the user such as aliases, addresses, date of births, etc. whenever available.\
Name
Type
Description
Return Values
SmileJobID
string
The Smile internal reference number for the job. Please include this when contacting support on a job related issue
signature
string
The incoming signature, you can use this to verify that the response is from Smile ID
timestamp
string
The incoming timestamp in ISO date/time format, use this to calculate the incoming signature
ResultCode
string
Numeric value of the outcome of the AML Check job
For the list of potential result codes, check Result Code and Result Texts below
ResultText
string
Textual value of the job outcome. Human readable value for the result
For the list of potential result texts, check Result Code and Result Texts below
Actions
object
A JSON object containing the actions performed in the job. Currently only states whether the screened customer matched at least one record in our global watchlists, politically exposed persons list or an adverse article has been published about the person
Actions.Listed
string
Does the screened customer match any list or have had any adverse media published about them
Listed
or
Not Listed
PartnerParams
object
A JSON object containing the job references and any additional key-value pair you sent with the request
StrictMatch
boolean
Providing partners with clear visibility into the matching logic applied to their request.
True
or
False
PartnerParams.user_id
string
The unique user reference that was included in the request
PartnerParams.job_id
string
The unique job reference that was included in the request
PartnerParams.job_type
string
The numerical representation of the product you performed
10
no_of_persons_found
integer
The numbers of persons that matched with the customer based on the search parameters
people
array of objects
A JSON array containing JSON objects of each person that matches the customer based on the search parameters
people[].name
string
The name of the person that matches the customer based on the search parameters
people[].addresses
array of strings
A JSON array containing all the known addresses of the person that matches the customer based on the search parameters
people[].aliases
array of strings
A JSON array containing all the known aliases of the person that matches the customer based on the search parameters
people[].dates_of_birth
array of strings
A JSON array containing all the known dates of birth of the person that matches the customer based on the search parameters
people[].nationalities
array of strings
A JSON array containing all the known nationalities of the person that matches the customer based on the search parameters
people[].sanctions
array of objects
A JSON array containing JSON objects of each sanctions listing of the person that matches the customer based on the search parameters
people[].sanctions[].date_of_birth
string
The date of birth in the sanctions listing
people[].sanctions[].nationality
string
The nationality in the sanctions listing
people[].sanctions[].source_details
object
The source details of the sanctions listing
people[].sanctions[].source_details.listed_date
string
The date the sanction was listed
people[].sanctions[].source_details.source_link
array of strings
Links to the source of the sanctions listing
people[].sanctions[].source_details.source_name
string
Name of the source of the sanctions listing
people[].sanctions[].source_details.source_type
string
The type of source
Sanctions
people[].enforcement_action
array of objects
A JSON array containing JSON objects of each enforcement action of the person that matches the customer based on the search parameters
people[].enforcement_action[].description
string
Details of the enforcement action
people[].enforcement_action[].date
string
The date the enforcement action was enacted
people[].enforcement_action[].source_details
object
The source details of the enforcement action
people[].enforcement_action[].source_details.source_name
string
Name of the source of the enforcement action
people[].enforcement_action[].source_details.source_link
string
Link to the source of the enforcement action
people[].pep
object
A JSON objects containing details of the political positions of the person that matches the customer based on the search parameters
people[].pep.pep_level
integer
The level of political influence the person that matches the customer based on the search parameters holds or held in a country
1
- high
or
2
- medium
or
3
- low
people[].pep.politcal_positions
array of objects
A JSON array containing JSON objects of all the political positions the person that matches the customer based on the search parameters holds or held in a country
people[].pep.politcal_positions[].country
string
The country where the political position is/was held. Note, this might be different from the person’s nationality
people[].pep.politcal_positions[].position
string
The actual political position held
people[].pep.politcal_positions[].from
string
The date the person commenced holding the political position
people[].pep.politcal_positions[].to
string
The date the person stopped holding the political position (if applicable)
people[].pep.sources
array of objects
A JSON array containing JSON objects of all the sources of the political positions
people[].pep.sources[].source_link
string
Link to the source of the political position
people[].pep.sources[].source_name
string
Link to the source name of the political position
people[].associations
array of objects
A JSON array containing JSON objects of all sanctioned or politically exposed affiliates of the person that matches the customer based on the search parameters
people[].associations[].association_type
string
The association type to the affiliate
PEP
or
SANCTIONS
people[].associations[].name
string
Name of the affiliate
people[].associations[].relationship
string
The relationship between the affiliate and the person that matches the customer based on the search parameters
people[].adverse_media
array of objects
A JSON array containing JSON objects of all adverse media publications written about the person that matches the customer based on the search parameters
people[].adverse_media[].date_published
string
The date the article was published
people[].adverse_media[].publisher
string
The media outlet that published the article
people[].adverse_media[].source_link
string
Link to the source of the article
people[].adverse_media[].title
string
Title of the article
people[].news_summary[].newsCategory
string
The name of the news category eg Financial Crime
people[].news_summary[].numberOfArticles
integer
The total number of articles published under this category for the person
Example JSON Response
Error Codes
Error codes occur when there is a general failure that prevents the system from processing the job. AML Check jobs that return errors do not show up in the job list page of the portal.\
Code
Text
Description
2205
You are not authorized to do that.
An invalid signature/timestamp was used to sign the request. You can troubleshoot the error here.
2210
No enrolled user found
You attempted to re-use KYC from a previous Biometric KYC or Document Verification job but the user id was not found in the system. Check the user id or remove the search_existing_user key and re-run the job
2210
No KYC data found for this user
You attempted to re-use KYC of a previous user, however the user does not have any personal information e.g. a SmartSelfieTM Registration job was performed on the user. Remove the search_existing_user
key, then send the user’s full name, nationality and year of birth with a new job_id
but the same user_
id
2210
No name found in prior KYC
You attempted to re-use the KYC of a previous user, however the user’s Biometric KYC or Document Verification job did not return a name. This can happen in rare cases where there is a bug in the ID authority database. Remove the search_existing_user
key, then send the user’s full name, nationality and year of birth with a new job_id but the same user_id
2210
No date of birth found in prior KYC
You attempted to re-use the KYC of a previous user, however the user’s Biometric KYC or Document Verification job did not return a date of birth. Remove the search_existing_user
key, then send the user’s full name, nationality and year of birth with a new job_id
but the same user_id
2223
User KYC data is beyond the data retention expiration date
You attempted to re-use KYC from a previous Biometric KYC or Document Verification job but the job is past its data retention period and all personal information of the user has been deleted
2401
System Error
2403
Invalid JSON
The JSON is wrongly formatted or has an invalid structure
2413
<key> is required
The required key <key> is missing in the request body. Add the key and run the request again.
2414
This feature requires you to activate ID Validation for your Smile ID account
The AML Check product is not activated for your account. You can contact support to activate the product
2420
Production is not enabled for this account. Please complete your KYC with Smile ID.
You have not completed your KYC. You can read about our KYC requirement here.
Result Codes and Result Texts
AML check jobs that are processed successfully can have the following result codes
Code
Text
Description
1030
Listed
The search parameters matched at least one person in our system
1031
Not found on list
The search parameters did not match any persons in our system
1017
Not found on list - warning
The search parameters matched at least one person in our system but only returns news media
1023
No match found
Refine your query by adding strict_match or birth_year
1015
Database Unavailable
The AML Check database is currently unavailable
Last updated