AML & Sanctions Screening
Risk & ComplianceScreen people and entities against global sanctions, PEP and watchlists.
Check an individual or company against international and domestic sanctions lists, politically exposed person databases, regulatory enforcement lists and watchlists. Get scored matches with the list, reason and profile, and re-screen automatically as lists change.
Endpoint
Request parameters
| Field | Type | Description |
|---|---|---|
name_individual_or_entity
required
|
string | Name (individual or entity) |
date_of_birth_or_incorporation
optional
|
string | Date of birth or incorporation |
nationality_or_country
optional
|
string | Nationality or country |
identifiers_p_a_n_passport
optional
|
string | Identifiers (PAN, passport) |
Example request
curl -X POST https://app.emver.io/api/sandbox/v1/aml-screening \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"name_individual_or_entity": "string",
"date_of_birth_or_incorporation": "string",
"nationality_or_country": "string",
"identifiers_p_a_n_passport": "string"
}'
import requests
response = requests.post(
"https://app.emver.io/api/sandbox/v1/aml-screening",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
json={
"name_individual_or_entity": "string",
"date_of_birth_or_incorporation": "string",
"nationality_or_country": "string",
"identifiers_p_a_n_passport": "string"
},
timeout=60,
)
response.raise_for_status()
data = response.json()
const response = await fetch("https://app.emver.io/api/sandbox/v1/aml-screening", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
"name_individual_or_entity": "string",
"date_of_birth_or_incorporation": "string",
"nationality_or_country": "string",
"identifiers_p_a_n_passport": "string"
}),
});
const data = await response.json();
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->post('https://app.emver.io/api/sandbox/v1/aml-screening', {
"name_individual_or_entity": "string",
"date_of_birth_or_incorporation": "string",
"nationality_or_country": "string",
"identifiers_p_a_n_passport": "string"
});
$data = $response->json();
Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.
Response
Structure · 200
{
"status": INTEGER,
"message": STRING,
"data": {
"match_status": STRING,
"ranked_matches_with_score": STRING,
"list__category_and_reason": STRING,
"p_e_p_level_and_relationships": STRING,
"profile_summary_for_each_match": STRING
}
}
Example · 200
{
"status": 200,
"message": "string",
"data": {
"match_status": "string",
"ranked_matches_with_score": "string",
"list__category_and_reason": "string",
"p_e_p_level_and_relationships": "string",
"profile_summary_for_each_match": "string"
}
}
Error · 4xx / 5xx
{
"status": INTEGER,
"message": STRING
}
See Errors & status codes for what each status means and which calls are billed.
About this API
Anti-money-laundering obligations require screening before onboarding and monitoring afterwards. The AML & Sanctions Screening API runs a name, with optional date of birth, nationality and identifiers, across consolidated global and Indian lists and returns ranked matches with enough detail for a compliance officer to clear or escalate.
Ongoing monitoring re-screens your customer and vendor base as lists update, and posts new hits to your webhook.
Typical uses
- Customer onboarding (KYC/AML). Mandatory screening for regulated entities.
- Vendor and partner due diligence. Screen counterparties and their directors.
- Senior hire due diligence. PEP and enforcement checks for leadership roles.
- Investment and broking. Screen investors and beneficial owners.
Questions
- Which lists are covered?
- Major international sanctions programmes, domestic regulatory and enforcement lists, PEP databases and adverse-media-derived watchlists. The console lists current sources.
- How do we handle a hit?
- Matches come with scores and profiles. Your team clears or escalates in your own system, and the decision is logged against the request.