Skip to main content

Screening Endpoint

Overview

Enigma's screening API endpoint enables you to programmatically screen customers and transactions against sanctions and other watchlists. Using your provided Enigma API key, you can submit requests directly to our screening endpoint. This guide provides details on the screening API request and response formats. All of the functionality available through our sanctions evaluation console is available to you via the API.

Once you become a customer or integration partner, we will guide you through the steps towards integrating with any watchlists of your choosing, including custom lists, as well as any case manager that suits your preference. Our API is list- and case manager-agnostic, allowing our clients to tailor our screening service to satisfy their needs, budget and volume demands. Through our screening API, we currently process over 1 billion requests per month and counting.

Screening Endpoint Specifications

Following are sample screening requests and responses to and from our Customer and Transaction screening endpoints to get you acquainted with the available inputs and outputs for screening.

Authentication

To make a screening API request, ensure that you include your API key in the designated request header.

Request and Response Formats

Customer Screening

curl --location 'https://api.enigma.com/evaluation/sanctions/screen' \
--header 'x-api-key: <YOUR API KEY>' \
--header 'Content-Type: application/json' \
--header 'Account-Name: public_evaluation' \
--data '{
"tag": "example customer screening request",
"caller_id": "<some-user-hostname-info>",
"query_type": "enigma_data",
"configuration_overrides": {
"entity": {
"alert_threshold": 0.8,
"hit_threshold": 0.5,
"max_results": 30,
"weights": {
"person_name": 3,
"dob": 1,
"country_of_affiliation": 2,
"address": 1,
"org_name": 3
}
},
"general": {
"archive_retention_days": 90,
"entity_detail_level": "minimum",
"overrides_on": true
},
"list_groups": [
"pos/sdn/all",
"pos/non_sdn/all"
],
"text": {
"alert_threshold": 0.8,
"hit_threshold": 0.5
}
},
"searches": [
{
"type": "ENTITY",
"tag": "",
"entity_description": {
"person_name": [
"John Hanafin"
],
"dob": [
"19740710"
],
"country_of_affiliation": [
"Ireland"
]
}
}
]
}'

Transaction Screening

Text Search Availability

The request below showcases how to use customized tags within the request to fit your transaction format. This example has an originator, originator bank, recipient, recipient bank, and message field for TEXT search. Please note that unstructured text-based search (search denoted by "type": "TEXT") is not yet open for public evaluation but soon will be. Therefore, the below sample won't work as it includes a search of this type.

curl --location 'https://api.enigma.com/evaluation/sanctions/screen' \
--header 'x-api-key: <YOUR API KEY>' \
--header 'Content-Type: application/json' \
--header 'Account-Name: public_evaluation' \
--data '{
"tag": "example transaction screening request",
"query_type": "enigma_data",
"configuration_overrides": {
"entity": {
"alert_threshold": 0.8,
"hit_threshold": 0.5,
"max_results": 30,
"weights": {
"person_name": 3,
"dob": 1,
"country_of_affiliation": 2,
"address": 1,
"org_name": 3
}
},
"general": {
"archive_retention_days": 90,
"entity_detail_level": "minimum",
"overrides_on": true
},
"list_groups": [
"pos/sdn/all",
"pos/non_sdn/all"
],
"text": {
"alert_threshold": 0.8,
"hit_threshold": 0.5
}
},
"searches": [
{
"type": "ENTITY",
"tag": "originator",
"entity_description": {
"person_name": [
"John D Hanafin"
],
"country_of_affiliation": [
"Ireland"
]
}
},
{
"type": "ENTITY",
"tag": "originator bank",
"entity_description": {
"org_name": [
"Wells Fargo"
]
}
},
{
"type": "ENTITY",
"tag": "recipient",
"entity_description": {
"person_name": [
"Sandra Milena Hernandez"
],
"address": [
"INVERSIONES MACARNIC PATINO Y CIA S.C.S. Pereira Risaralda Colombia"
]
}
},
{
"type": "ENTITY",
"tag": "recipient bank",
"entity_description": {
"org_name": [
"Banco de Bogota"
],
"country_of_affiliation": [
"Colombia"
]
}
}
]
}'

Request and Response Field Descriptions

REQUEST Body Fields

The following table describes the critical fields applicable to the customer and transaction screening request bodies:

FieldDescriptionRequired
tagA description or string associated with the whole request. The sub-level "tag" within each search in searches is associated with the search and those are optional. All tags are returned in the response in their appropriate places and can help in understanding the response.Yes
caller_idAn optional way for the user to provide hostname info associated with the request. This can be helpful for troubleshooting.No
query_typeMust be the name of one of your account's existing query types. During your trial, the account will use the default "enigma_data" query_type. We can change any specific parameter upon request. Upon onboarding, a new query type can be created with the POST /configuration/<query type> endpoint.Yes
searchesA list of searches. See Search Fields table below for details.Yes

Search Fields

Each item in the searches array contains:

FieldDescriptionRequired
typeEither "ENTITY" or "TEXT"Yes
tagA string to associate with the searchNo
entity_description or textFor type "ENTITY": attributes of the entity being searched for (see Entity Description Fields below). For type "TEXT": the text to search.Yes

Entity Description Fields

The following fields can be included in the entity_description:

FieldDescription
person_nameFull name of the individual
locationLocation information
dobDate of birth
org_nameOrganization name
country_of_affiliationCountry affiliation information

RESPONSE Body Fields

The following table describes the critical fields in the customer and transaction screening response bodies:

FieldDescription
alertWhether at least one of the entity scores were ≥ alert_threshold
caller_idThe caller_id given in the request, if one was provided
configuration_usedThe full configuration object used for the screening. A combination of the query_type's configuration object and any configuration_overrides
query_typeThe query_type specified in the request and used for the screening
request_idUUID1 created on the backend at the time the request was sent
request_timestampISO timestamp generated on the backend at the time the request was sent
search_resultsArray of search results. See Search Results Fields table below

Search Results Fields

Each item in the search_results array contains:

FieldDescription
hitsArray of hits found for the search item. See Hit Fields tables below
search_indexIndex of the corresponding search
tagThe tag given for this search (if any)
type"ENTITY" or "TEXT"
alertWhether at least one hit in hits was with score ≥ alert_threshold

Entity Type Hit Fields

For hits where type is "ENTITY":

FieldDescription
attributesHit info, broken down by attribute included in the search. Includes value and score for each
scoreThe hit's overall score, comes from a weighted average of attributes' individual scores based on weights
alertWhether the hit's score is ≥ alert_threshold
entityEntity_id and lookup url for the entity the hit claims your search matched against

Text Type Hit Fields

For hits where type is "TEXT":

FieldDescription
entity_attributeInfo about what your text search matched against - entity_id, database info, etc.
scoreThe hit's score
alertWhether the hit's score ≥ alert_threshold
spanThe word-based start and stop indices of the fragment this hit matched against

Attribute Types

Person Search Type

  • Person Name: full name of the individual (name type, name subtype, title honorific, first name, middle name, surname, suffix)
  • DOB: individual's date of birth in yyyymmdd format
  • Address: individual's street address, city, state/province, postal code
  • Country of affiliation: customized field that will match against citizenship, nationality, and/or place of birth, depending on what turns up in the entity record

Organization Search Type

  • Organization Name: full name of the organization (name type, name subtype, name)
  • Address: organization's street address, city, state/province, postal code
  • Country of affiliation: customized field that will match against citizenship and/or nationality fields in the entity record - usually the entity's country of domicile

Learn More

For more information on our Customer and Transaction Screening endpoint, integration, and pricing, please contact our sales team.