AML Monitoring
Create AML check for users and companies
You can create AML monitoring for users and companies, which will be periodically searched until the expiration date, set to one year after entry creation. The monitoring will be automatically extended by setting autoExpirationExtension since it is true
by default, and will continue to extend until either you run out of credits or manually unsubscribe or delete the monitoring subject. When information about the monitored user or company matches entries in AML databases, a webhook and/or email will be sent to the partner.
To trigger Alert statuses on DEVELOPMENT env. AML monitoring subjects should be created using:
- Company -> GoPayments;
- Person -> Manfred Weber;
- Adverse Media -> Cliff Hazard.
It is possible that results for other subjects could not be returned as they are simulated on DEVELOPMENT environment. We recommend using TEST environment to perform proper test cases.
Sending request
To add a user to AML monitoring, send a HTTP POST request to: https://ivs.idenfy.com/api/v2/add-aml-user
The request must contain basic auth headers where username is API key and password is API secret.
To add a user to AML monitoring, the request must contain JSON with scanRef of client's verification that needs to be monitored or manually typed data, where name and surname, type set as 'PERSON' are required fields and nationality, dateOfBirth are optional.
To add a company to AML monitoring, the request must contain JSON with name, country and type set as 'COMPANY'.
If you'll pass a scanRef in your request the type will automatically be counted as 'PERSON' regardless of the value provided in the request.
JSON key | Type | Explanation |
---|---|---|
scanRef | String | A unique string identifying a client verification on iDenfy’s side. |
type | String | Values: - COMPANY Specifies the type as a company.- PERSON Specifies the type as a person. |
name | String | Name of the monitored user or company. |
surname | String | Surname of the monitored user. |
nationality | String | Nationality of the monitored user. |
dateOfBirth | String | Monitored user's date of birth. |
country | String | Mandatory parameter for the COMPANY checks in alpha2/alpha3 format. |
autoExpirationExtension | Bool | The subject's monitoring will be automatically extended after the expiration date if an account has funds. If not, after updating the funds, the previous expired monitoring subjects will be extended. Default value is true |
Example request using:
- scanRef
- Data
- Company
{
"scanRef": "scanRef"
}
{
"name": "name",
"surname": "surname",
"dateOfBirth": "1990-01-01",
"nationality": "LTU",
"type": "PERSON"
}
{
"name": "Company's name",
"type": "COMPANY"
}
Example responses:
A successful API call returns a JSON response with monitoringId.
An example response with all fields provided:
{
"monitoring_id": "123456789"
}
Get monitoring webhook
To receive webhook data, send a HTTP POST request to: https://ivs.idenfy.com/api/v2/get-monitoring-callback
With monitoring ID in the request body.
Monitoring user table
JSON key | Type | Explanation |
---|---|---|
monitoringId | String | A unique string identifying a monitored user or company. |
name | String | Name of the monitored user or company. |
surname | String | Surname of the monitored user. |
nationality | String | Nationality of the monitored user. |
dob | String | Date of birth monitored user. |
scanRefList | List | A list of strings that are used for identifying a client's verification on iDenfy’s side. |
alert_status | String | Current status of the monitored user. Possible values: ALERT ,ACCEPTED ,DECLINED ,PENDING |
Results table
JSON key | Type | Explanation |
---|---|---|
serviceSuspected | Bool | Indicates whether a service found a record about the person under check. |
checkSuccessful | Bool | Indicated whether an error occurred while doing a check. |
serviceFound | Bool | Indicates whether a service was found for a given country. |
serviceUsed | Bool | Indicated whether a service was used. |
overallStatus | String | A mapping string indicating overall status of the check. |
status | Object | The overall status of the service check. |
data | List | Data returned from services. |
serviceName | String | The name of the service that was used to check a person. |
serviceGroupType | String | The type of the service that was used. It is always AML . |
uid | String | A unique identifier for a request. NOTE that it is unique only in one request scope. It is not unique globally. This parameter is only useful when doing multi-person checks. |
errorMessage | String | In case of an error in the checking process a human readable error message is given. |
name | String | The name of the person in the service's database. |
surname | String | The surname of the person in the service's database. |
nationality | String | The nationality of the person in the service's database. |
dob | String | The date of birth of the person in the service's database. |
suspicion | String | Tells the kind of the suspicion. Possible values: PEPS SANCTION INTERPOL OTHER |
reason | String | Tells the reason of the kind of the suspicion. |
score | Integer | Confidence coefficient that the information about the person is true. |
lastUpdate | String | Date of when the record was last updated. |
isPerson | Bool | Indicates whether the record is about a person. |
isActive | Bool | Indicated whether a record is active. |
checkDate | String | Date and time of when AML name service was checked. |
whitelisted | Bool | Boolean indicator if the entry is whitelisted. |
Example request:
{
"monitoringId": "123456789"
}
Example response:
{
"monitoringId": "123456789",
"name": "Carl",
"surname": "Smith",
"nationality": "",
"dob": null,
"isActive": true,
"expiration": "2022-02-02",
"scanRefList": "[]",
"alert_status": "DECLINED",
"results": [
{
"status": {
"serviceSuspected": true,
"serviceUsed": true,
"serviceFound": true,
"checkSuccessful": true,
"overallStatus": "SUSPECTED"
},
"serviceName": "PilotApiAmlV2NameCheck",
"serviceGroupType": "AML",
"uid": "RHO3XRYH32W4C4OAWEWHGH1TS",
"errorMessage": null,
"data": [
{
"reason": "",
"listNumber": "000000",
"suspicion": "PEPS",
"isActive": true,
"checkDate": "2021-02-02 20:02:02",
"isPerson": true,
"score": 100,
"nationality": "",
"surname": "SURNAME",
"dob": "1956",
"lastUpdate": "2018-10-24",
"name": "NAME",
"listName": "PEPS",
"whitelisted": false
}
]
}
]
}
companyId
, beneficiaryId
, comments
, pepsStatus
,status_set_by
, status_set_at
, adverseMediaStatus
, and sanctionsStatus
also appear in the results if the user has a company assigned to him.
Viewing entries in AML monitoring
To view a list of entries, send a HTTP GET request to: https://ivs.idenfy.com/api/v2/get-aml-users
Example response:
{
"users": [
{
"id": 5074,
"created": "2022-12-08 08:05:10",
"monitoring_id": "09165fef-76cf-11ed-9b45-025ad99a18e7",
"type": "PERSON",
"name": "Name Surname",
"date_of_birth": null,
"nationality": "LT",
"last_check_date": "2023-06-02",
"is_active": true,
"expiration_time": "2023-12-08",
"auto_expiration_extension": false,
"alert_status": "ACCEPTED",
"is_suspected": false,
"whitelisted": false
}
]
}
If the alert_status has "DECLINED" value, that user is not monitored anymore and the data won't be updated further.
Deleting an entry
To delete an entry from monitoring list, send a HTTP POST request to: https://ivs.idenfy.com/api/v2/delete-monitoring-user/
with monitoring ID in the request body.
Example request:
{
"monitoringId": "12345678"
}
A successful API call returns an HTTP response with status 200.
Add AML checks to the whitelist for a monitored user or company
You can add specific AML checks to the whitelist for a monitored user. AML checks in the whitelist won't be counted as suspected upon detection.
Sending request
Send a HTTP POST request to: https://ivs.idenfy.com/api/v2/add-whitelist
The request must contain basic auth headers where username is API key and password is API secret.
The request must contain JSON with whitelist and one of three identifiers: monitoringId, scanRef or name and surname (nationality and dateOfBirth can also be added.)
Key | Type | Explanation |
---|---|---|
whitelist | List | List of whitelisted sanction and suspicions. Possible values: - SANCTION - INTERPOL - PEPS - OTHER |
type | String | Values: - COMPANY Specifies the type as a company.- PERSON Specifies the type as a person. |
monitoringId | String | A unique string identifying a monitored user. |
scanRef | String | A unique string identifying a client verification on iDenfy’s side. |
name | String | Name of the monitored user. |
surname | String | Surname of the monitored user. |
nationality | String | Nationality of the monitored user. |
dateOfBirth | String | Monitored user's date of birth. |
Example request with monitoringId:
{
"monitoringId": "OVXVXHLL43",
"whitelist": { "PEPS": ["ListNumber"], "gb_hmt_sanctions": ["entity_id"] }
}
Example request with scanRef:
{
"scanRef": "OVXVXHLL43",
"whitelist": { "PEPS": ["ListNumber"], "gb_hmt_sanctions": ["entity_id"] }
}
Example request with additional data:
{
"name": "name",
"surname": "surname",
"nationality": "LT",
"dateOfBirth": "1999-12-31",
"whitelist": { "PEPS": ["ListNumber"], "gb_hmt_sanctions": ["entity_id"] }
}
Example requests with a company:
{
"name": "Company's name",
"whitelist": { "gb_hmt_sanctions": ["entity_id"] }
}
{
"monitoringId": "monitoringId",
"whitelist": { "PEPS": ["ListNumber"] }
}
Removing entries from whitelist
To remove an entry from whitelist, send a HTTP POST request to: https://ivs.idenfy.com/api/v2/clear-user-whitelist/
with monitoring ID in the request body.
Example request:
{
"monitoringId": "12345678"
}
Example responses:
A successful API call returns an HTTP response with status 200.
Generate AML monitoring report
You can retrieve a report in PDF format about the monitoring entry.
The report contains the following information about the entry:
- Monitoring ID;
- Personal information, such as name, surname, full name, nationality, and date of birth;
- Type (person or company);
- Entry date;
- Last check date;
- Expiration date;
- Suspicion type and reason for suspicion;
- Checked service name;
- Indicators (probability score, active or not).
Sending request
Send a HTTP POST request to: https://ivs.idenfy.com/api/v2/generate-pdf-aml
The request must contain basic auth headers where username is API key and password is API secret. The request must contain JSON with parameter:
Key | Required | Explanation | Type |
---|---|---|---|
monitoringId | Yes | A unique string identifying AML monitoring entry. | String |
Response
After a successful API call, you will receive a PDF file in Base64 format and a response with a positive 200 status.
Only one entry is accepted per request.
Examples
Example request
{
"monitoringId": "{{monitoringId}}"
}
Subcribe/extend monitoring expiration date of a subject
The subject's monitoring date can be automatically extended by setting autoExpirationExtension to true (subscribed), and will continue to extend until either you run out of credits or manually unsubscribe or delete the monitoring subject.
Sending request
Send a HTTP POST request to: https://ivs.idenfy.com/api/v2/monitoring-subscription
Example request
{
"monitoringId": "e1d2a8d5-eb39-11ed-b4c0-0187e22eae15",
"autoExpirationExtension": true
}