Screen an individual or business for AML/sanctions
POST /api/v1/aml/screen
POST https://api.trustverify.co.uk/api/v1/aml/screen
Screens the subject against sanctions and PEP list. A 200 means the screen ran: riskLevel and hits describe what was found, and pepStatus / adverseMedia are derived from the matched entities' topics. If sanctions and PEP list does not return a result the endpoint responds 503 — it never reports an unscreened subject as clear, because a clear that was never performed is not evidence and cannot support a CDD record.
Request body#
| Field | Type | Description |
|---|---|---|
| type | string: "individual" | "business" | What the subject is: "individual", "person" for a person, matched against people; "business", "company", "organisation", "organization", "entity" for an organisation, matched against organisations. Case-insensitive. Omit it to screen a person. Any other value is a 400 and nothing is screened. |
| namerequired | string | |
| dateOfBirth | string | |
| country | string |
Example request#
curl -sS -X POST 'https://api.trustverify.co.uk/api/v1/aml/screen' \
-H "Authorization: Bearer $TRUSTVERIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "individual",
"name": "Test Person",
"dateOfBirth": "1990-01-01",
"country": "GB"
}'Responses#
200 AML screening result — the screen ran
| Field | Type | Description |
|---|---|---|
| subjectTyperequired | string: "individual" | "business" | What the subject was screened as. "business" means it was matched against organisations. |
| statusrequired | string: "clear" | "potential_match" | "match" | |
| riskLevelrequired | string: "low" | "medium" | "high" | "hit" | |
| totalHitsrequired | number | |
| sanctionsMatchrequired | boolean | |
| pepStatusrequired | boolean | Derived from the matched entities' sanctions and PEP list topics (role.pep / role.rca). Only meaningful because the screen ran — an unavailable screen returns 503, not false. |
| adverseMediarequired | boolean | Derived from matched-entity topics (crime*, poi, debarment, wanted). This endpoint performs NO media screening — no media provider is called — so this flag is a classification of sanctions-hit topics and must not be read as "no adverse media exists". See `coverage.adverseMedia`. |
| riskScorerequired | number | |
| hitsrequired | array of object |
400 validation_failed — name is required, or type is not an accepted value (nothing was screened)
401 Invalid API key
503 Screening could not be completed (sanctions and PEP list unavailable). No result is returned. This is not a clear and mu
Screening could not be completed (sanctions and PEP list unavailable). No result is returned. This is not a clear and must not be recorded as one. Safe to retry.
| Field | Type | Description |
|---|---|---|
| errorrequired | string: "screening_unavailable" | |
| messagerequired | string | |
| providersrequired | object | |
| requestIdrequired | string |