Entity Management
Verify Entity (AML)
Runs Anti-Money Laundering (AML) checks such as PEP and sanctions screening against an entity, including its Ultimate Beneficial Owners.
POST
/
v2
/
api
/
entities
/
{entityId}
/
amlChecks
Verify Entity (AML)
curl --request POST \
--url https://api.youverify.co/v2/api/entities/{entityId}/amlChecks \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"entityType": "business",
"isSubjectConsent": true,
"incorporationName": "Acme Corp",
"incorporationCountry": "NG",
"incorporationDate": "2010-01-01",
"amlCheckType": "name",
"amlChecks": [
"pep"
],
"ubos": {
"uboList": [
{
"category": "individual",
"firstName": "Jon",
"lastName": "Snow"
}
],
"amlChecks": [
"pep"
]
}
}
'import requests
url = "https://api.youverify.co/v2/api/entities/{entityId}/amlChecks"
payload = {
"entityType": "business",
"isSubjectConsent": True,
"incorporationName": "Acme Corp",
"incorporationCountry": "NG",
"incorporationDate": "2010-01-01",
"amlCheckType": "name",
"amlChecks": ["pep"],
"ubos": {
"uboList": [
{
"category": "individual",
"firstName": "Jon",
"lastName": "Snow"
}
],
"amlChecks": ["pep"]
}
}
headers = {
"token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entityType: 'business',
isSubjectConsent: true,
incorporationName: 'Acme Corp',
incorporationCountry: 'NG',
incorporationDate: '2010-01-01',
amlCheckType: 'name',
amlChecks: ['pep'],
ubos: {
uboList: [{category: 'individual', firstName: 'Jon', lastName: 'Snow'}],
amlChecks: ['pep']
}
})
};
fetch('https://api.youverify.co/v2/api/entities/{entityId}/amlChecks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.youverify.co/v2/api/entities/{entityId}/amlChecks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'entityType' => 'business',
'isSubjectConsent' => true,
'incorporationName' => 'Acme Corp',
'incorporationCountry' => 'NG',
'incorporationDate' => '2010-01-01',
'amlCheckType' => 'name',
'amlChecks' => [
'pep'
],
'ubos' => [
'uboList' => [
[
'category' => 'individual',
'firstName' => 'Jon',
'lastName' => 'Snow'
]
],
'amlChecks' => [
'pep'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.youverify.co/v2/api/entities/{entityId}/amlChecks"
payload := strings.NewReader("{\n \"entityType\": \"business\",\n \"isSubjectConsent\": true,\n \"incorporationName\": \"Acme Corp\",\n \"incorporationCountry\": \"NG\",\n \"incorporationDate\": \"2010-01-01\",\n \"amlCheckType\": \"name\",\n \"amlChecks\": [\n \"pep\"\n ],\n \"ubos\": {\n \"uboList\": [\n {\n \"category\": \"individual\",\n \"firstName\": \"Jon\",\n \"lastName\": \"Snow\"\n }\n ],\n \"amlChecks\": [\n \"pep\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.youverify.co/v2/api/entities/{entityId}/amlChecks")
.header("token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entityType\": \"business\",\n \"isSubjectConsent\": true,\n \"incorporationName\": \"Acme Corp\",\n \"incorporationCountry\": \"NG\",\n \"incorporationDate\": \"2010-01-01\",\n \"amlCheckType\": \"name\",\n \"amlChecks\": [\n \"pep\"\n ],\n \"ubos\": {\n \"uboList\": [\n {\n \"category\": \"individual\",\n \"firstName\": \"Jon\",\n \"lastName\": \"Snow\"\n }\n ],\n \"amlChecks\": [\n \"pep\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.youverify.co/v2/api/entities/{entityId}/amlChecks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entityType\": \"business\",\n \"isSubjectConsent\": true,\n \"incorporationName\": \"Acme Corp\",\n \"incorporationCountry\": \"NG\",\n \"incorporationDate\": \"2010-01-01\",\n \"amlCheckType\": \"name\",\n \"amlChecks\": [\n \"pep\"\n ],\n \"ubos\": {\n \"uboList\": [\n {\n \"category\": \"individual\",\n \"firstName\": \"Jon\",\n \"lastName\": \"Snow\"\n }\n ],\n \"amlChecks\": [\n \"pep\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"status_code": 200,
"message": "AML checks performed successfully!",
"data": {
"id": "ent_6834f77bc55aea948b907391",
"entityType": "business",
"amlProcessedChecks": {
"sanctions": {
"status": "not_cleared",
"reportId": "68364960534488d5449f0784",
"data": []
}
},
"uboChecks": [
{
"ubo": "Jon Snow",
"pep": {
"status": "cleared",
"reportId": "68364962534488d5449f0787",
"data": []
}
}
]
},
"links": []
}{
"success": false,
"statusCode": 401,
"message": "Permission denied",
"name": "UnauthorizedError",
"data": {}
}{
"success": false,
"statusCode": 402,
"message": "Insufficient fund",
"name": "PaymentRequiredError",
"data": {}
}{
"success": false,
"statusCode": 404,
"message": "You have attempted to get a resource that does not exist.",
"name": "ResourceNotFoundError",
"data": {}
}{
"success": false,
"statusCode": 429,
"message": "Too many requests",
"name": "RateLimitError",
"data": {}
}{
"success": false,
"statusCode": 500,
"message": "Internal Server Error",
"name": "Error",
"data": {}
}Authorizations
Your Youverify API secret key. Never expose client-side.
Headers
API secret token
Path Parameters
Id of the entity being checked
Body
application/json
Type of entity
Available options:
individual, business Must be true
Required if amlCheckType is "id_number"
Business registered name
ISO 3166-1 alpha-2 code
Format: YYYY-MM-DD
AML check strategy
Available options:
name, id_number Additional AML checks, e.g. pep, sanctions
Ultimate Beneficial Owners info, containing uboList and amlChecks
List of UBOs
UBO category
Available options:
individual, business Required for individual UBOs
Required for individual UBOs
Format: YYYY-MM-DD
2-character code
Response
Success
⌘I
Verify Entity (AML)
curl --request POST \
--url https://api.youverify.co/v2/api/entities/{entityId}/amlChecks \
--header 'Content-Type: application/json' \
--header 'token: <api-key>' \
--data '
{
"entityType": "business",
"isSubjectConsent": true,
"incorporationName": "Acme Corp",
"incorporationCountry": "NG",
"incorporationDate": "2010-01-01",
"amlCheckType": "name",
"amlChecks": [
"pep"
],
"ubos": {
"uboList": [
{
"category": "individual",
"firstName": "Jon",
"lastName": "Snow"
}
],
"amlChecks": [
"pep"
]
}
}
'import requests
url = "https://api.youverify.co/v2/api/entities/{entityId}/amlChecks"
payload = {
"entityType": "business",
"isSubjectConsent": True,
"incorporationName": "Acme Corp",
"incorporationCountry": "NG",
"incorporationDate": "2010-01-01",
"amlCheckType": "name",
"amlChecks": ["pep"],
"ubos": {
"uboList": [
{
"category": "individual",
"firstName": "Jon",
"lastName": "Snow"
}
],
"amlChecks": ["pep"]
}
}
headers = {
"token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entityType: 'business',
isSubjectConsent: true,
incorporationName: 'Acme Corp',
incorporationCountry: 'NG',
incorporationDate: '2010-01-01',
amlCheckType: 'name',
amlChecks: ['pep'],
ubos: {
uboList: [{category: 'individual', firstName: 'Jon', lastName: 'Snow'}],
amlChecks: ['pep']
}
})
};
fetch('https://api.youverify.co/v2/api/entities/{entityId}/amlChecks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.youverify.co/v2/api/entities/{entityId}/amlChecks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'entityType' => 'business',
'isSubjectConsent' => true,
'incorporationName' => 'Acme Corp',
'incorporationCountry' => 'NG',
'incorporationDate' => '2010-01-01',
'amlCheckType' => 'name',
'amlChecks' => [
'pep'
],
'ubos' => [
'uboList' => [
[
'category' => 'individual',
'firstName' => 'Jon',
'lastName' => 'Snow'
]
],
'amlChecks' => [
'pep'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.youverify.co/v2/api/entities/{entityId}/amlChecks"
payload := strings.NewReader("{\n \"entityType\": \"business\",\n \"isSubjectConsent\": true,\n \"incorporationName\": \"Acme Corp\",\n \"incorporationCountry\": \"NG\",\n \"incorporationDate\": \"2010-01-01\",\n \"amlCheckType\": \"name\",\n \"amlChecks\": [\n \"pep\"\n ],\n \"ubos\": {\n \"uboList\": [\n {\n \"category\": \"individual\",\n \"firstName\": \"Jon\",\n \"lastName\": \"Snow\"\n }\n ],\n \"amlChecks\": [\n \"pep\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.youverify.co/v2/api/entities/{entityId}/amlChecks")
.header("token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entityType\": \"business\",\n \"isSubjectConsent\": true,\n \"incorporationName\": \"Acme Corp\",\n \"incorporationCountry\": \"NG\",\n \"incorporationDate\": \"2010-01-01\",\n \"amlCheckType\": \"name\",\n \"amlChecks\": [\n \"pep\"\n ],\n \"ubos\": {\n \"uboList\": [\n {\n \"category\": \"individual\",\n \"firstName\": \"Jon\",\n \"lastName\": \"Snow\"\n }\n ],\n \"amlChecks\": [\n \"pep\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.youverify.co/v2/api/entities/{entityId}/amlChecks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entityType\": \"business\",\n \"isSubjectConsent\": true,\n \"incorporationName\": \"Acme Corp\",\n \"incorporationCountry\": \"NG\",\n \"incorporationDate\": \"2010-01-01\",\n \"amlCheckType\": \"name\",\n \"amlChecks\": [\n \"pep\"\n ],\n \"ubos\": {\n \"uboList\": [\n {\n \"category\": \"individual\",\n \"firstName\": \"Jon\",\n \"lastName\": \"Snow\"\n }\n ],\n \"amlChecks\": [\n \"pep\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"status_code": 200,
"message": "AML checks performed successfully!",
"data": {
"id": "ent_6834f77bc55aea948b907391",
"entityType": "business",
"amlProcessedChecks": {
"sanctions": {
"status": "not_cleared",
"reportId": "68364960534488d5449f0784",
"data": []
}
},
"uboChecks": [
{
"ubo": "Jon Snow",
"pep": {
"status": "cleared",
"reportId": "68364962534488d5449f0787",
"data": []
}
}
]
},
"links": []
}{
"success": false,
"statusCode": 401,
"message": "Permission denied",
"name": "UnauthorizedError",
"data": {}
}{
"success": false,
"statusCode": 402,
"message": "Insufficient fund",
"name": "PaymentRequiredError",
"data": {}
}{
"success": false,
"statusCode": 404,
"message": "You have attempted to get a resource that does not exist.",
"name": "ResourceNotFoundError",
"data": {}
}{
"success": false,
"statusCode": 429,
"message": "Too many requests",
"name": "RateLimitError",
"data": {}
}{
"success": false,
"statusCode": 500,
"message": "Internal Server Error",
"name": "Error",
"data": {}
}