Skip to main content

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.

caution

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'.

note

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 keyTypeExplanation
scanRefStringA unique string identifying a client verification on iDenfy’s side.
typeStringValues:
-COMPANY Specifies the type as a company.
-PERSON Specifies the type as a person.
nameStringName of the monitored user or company.
surnameStringSurname of the monitored user.
nationalityStringNationality of the monitored user.
dateOfBirthStringMonitored user's date of birth.
countryStringMandatory parameter for the COMPANY checks in alpha2/alpha3 format.
autoExpirationExtensionBoolThe 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": "scanRef"
}

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 keyTypeExplanation
monitoringIdStringA unique string identifying a monitored user or company.
nameStringName of the monitored user or company.
surnameStringSurname of the monitored user.
nationalityStringNationality of the monitored user.
dobStringDate of birth monitored user.
scanRefListListA list of strings that are used for identifying a client's verification on iDenfy’s side.
alert_statusStringCurrent status of the monitored user.
Possible values:
ALERT,
ACCEPTED,
DECLINED,
PENDING

Results table

JSON keyTypeExplanation
serviceSuspectedBoolIndicates whether a service found a record about the person under check.
checkSuccessfulBoolIndicated whether an error occurred while doing a check.
serviceFoundBoolIndicates whether a service was found for a given country.
serviceUsedBoolIndicated whether a service was used.
overallStatusStringA mapping string indicating overall status of the check.
statusObjectThe overall status of the service check.
dataListData returned from services.
serviceNameStringThe name of the service that was used to check a person.
serviceGroupTypeStringThe type of the service that was used. It is always AML.
uidStringA 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.
errorMessageStringIn case of an error in the checking process a human readable error message is given.
nameStringThe name of the person in the service's database.
surnameStringThe surname of the person in the service's database.
nationalityStringThe nationality of the person in the service's database.
dobStringThe date of birth of the person in the service's database.
suspicionStringTells the kind of the suspicion.
Possible values:
PEPS
SANCTION
INTERPOL
OTHER
reasonStringTells the reason of the kind of the suspicion.
scoreIntegerConfidence coefficient that the information about the person is true.
lastUpdateStringDate of when the record was last updated.
isPersonBoolIndicates whether the record is about a person.
isActiveBoolIndicated whether a record is active.
checkDateStringDate and time of when AML name service was checked.
whitelistedBoolBoolean 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
}
]
}
]
}
note

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
}
]
}
note

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.)

KeyTypeExplanation
whitelistListList of whitelisted sanction and suspicions.
Possible values:
- SANCTION
- INTERPOL
- PEPS
- OTHER
typeStringValues:
-COMPANY Specifies the type as a company.
-PERSON Specifies the type as a person.
monitoringIdStringA unique string identifying a monitored user.
scanRefStringA unique string identifying a client verification on iDenfy’s side.
nameStringName of the monitored user.
surnameStringSurname of the monitored user.
nationalityStringNationality of the monitored user.
dateOfBirthStringMonitored 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:

KeyRequiredExplanationType
monitoringIdYesA 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
}