Global Watchlist

Non-repudiation

In today's rapidly evolving digital landscape, ensuring security and compliance within various processes has become paramount. The Watchlist module, a sophisticated processing node, stands at the forefront of this initiative. Designed to integrate seamlessly into workflows, this module empowers users with the ability to specify detailed search criteria through comprehensive module configuration options. By collecting user data via forms or ID capture and validation, the system leverages this information to conduct thorough searches. This user guide provides an in-depth look at how to configure and utilize the Watchlist module effectively, outlining the prerequisites for data collection, the nuances of module configuration, and the steps for subscribing to updates. With a focus on optimizing search results through various filters and keeping users informed of any changes, this guide serves as a comprehensive resource for integrating the Watchlist module into your workflow, ensuring enhanced security and compliance with regulatory standards.

Integration

Watchlist belongs to processing nodes. Module configuration gives various options to specify different search criteria. Given that watchlist is a processing module, it needs to be added to the workflow tree after user data is collected. User data can be collected via forms by using predefined questions: What is your name? and What is your date of birth?, where user can type in their name and date of birth that will be used for search, or when user input is not present, that will be extracted from the ID. Forms data has priority over ID data when both are present.

📘

Requisites

Before Watchlist module user data needs to be collected via Forms or ID Capture + ID Validation modules.

Module Configuration


Watchlist module configuration

Watchlist module configuration

  • Include customer’s birth year: (optional) Use this option to narrow down search results by birth year.
  • Country of operation: (optional) Select list of countries to narrow down search results. List Results are filtered by the entity nationality or country of residence.
    • Country code filtering applies to:
      • Entity of type PEP only
      • Entity of type PEP with Adverse Media
      • Entity that has 1 country value or more (only one has to match)
    • Country code filtering does not apply to (i.e. results will still appear regardless of the country filter):
      • Entity on sanction lists will always appear regardless of other status (PEP, Adverse media)
      • Entity that has adverse media mentions only
      • Entity that does not have a country assigned
  • watchlistTypes: Choose multiple values to configure monitoring settings. Either watchlist types or search profile can be configured.
    • One or more of: sanction warning fitness-probity pep pep-class-1 pep-class-2 pep-class-3 pep-class-4
    • If you use classic Adverse Media Taxonomy: adverse-media adverse-media-financial-crime adverse-media-violent-crime adverse-media-sexual-crime adverse-media-terrorism adverse-media-fraud adverse-media-narcotics adverse-media-general
    • If you use FATF-aligned Adverse Media Taxonomy: adverse-media-v2-property adverse-media-v2-financial-aml-cft adverse-media-v2-fraud-linked adverse-media-v2-narcotics-aml-cft adverse-media-v2-violence-aml-cft adverse-media-v2-terrorism adverse-media-v2-cybercrime adverse-media-v2-general-aml-cft adverse-media-v2-regulatory adverse-media-v2-financial-difficulty adverse-media-v2-violence-non-aml-cft adverse-media-v2-other-financial adverse-media-v2-other-serious adverse-media-v2-other-minor
  • fuzziness: Determines how closely the returned results must match the supplied name. Ranges from 0.0 to 1.0. Default is 1.0 (loose matching).
  • subscribe: Subscribes to updates on the watchlists to receive notification for updates on the search. Unsubscribing from updates is possible from single session view.
  • search_profile: Set search profile from your Comply Advantage configuration. You can specify either search profile or watchlist types.

Conditions

Watchlist results can be used in conditions to impact further user journey or session result:

  • Watchlist Match Status; The search match status returned as one of: 'NO MATCH', 'FALSE POSITIVE', 'POTENTIAL MATCH', 'TRUE POSITIVE', 'UNKNOWN', 'TRUE POSITIVE APPROVE', 'TRUE POSITIVE REJECT'
  • Watchlist Risk Level; Selector: The search risk level was one of: 'LOW', 'MEDIUM', 'HIGH', 'UNKNOWN'
  • Watchlist Total Hits; Number of hits
  • Watchlist Total Matches; Number of matches
Watchlist related conditions

Watchlist related conditions

Single Session Dashboard Results

They are available on Single Session view under Risk tab → Watchlist Result. Clicking on Click here to discover more takes you to detailed view of all matches, hits with information where the user was found.

Watchlist results

Watchlist results

Subscribe for updates

You can subscribe to updates on the search results and received notification via web hooks.

To configure a webhook for notifying when the global watchlist has updates, you'll need to set up a POST request to a client-defined URL. Configure your webhook url under on Omni Dashboard Configuration → Webhooks: Watchlist update webhook URL. This request will include a body with three mandatory fields:

  • interviewId String, session ID
  • ref String, a reference number received when the search was created
  • search_id String, the search ID created when the search was initiated.

These fields are used to identify and retrieve the new search result via API - Updated watchlist result.

Watchlist webhook url

Watchlist webhook url

You can manually unsubscribe from the Single Session view.

Unsubscribe from updates option on Single session view.

Unsubscribe from updates option on Single session view.

📘

Notes:

Once session is deleted, notifications on the search results will no longer be received.

Direct API Approach

All module configurations and user data can be forwarded directly in the request for performing global watchlist search. This will override existing configuration and data collected about the user.

📘

API Authentication

All endpoints require authentication headers to be specified as stated in Incode API Documentation


POST /omni/watchlist-result

Note: Endpoint can have empty body {} and in that case information will be pulled from module configuration and session details.

RESPONSE EXAMPLE
{
  "content": {
    "data": {
      "id": 1697044869,
      "ref": "1712607640-1sEYsOYW",
      "searcher_id": 14876,
      "assignee_id": 14876,
      "filters": {
        "birth_year": 1961, // Date of birth from session/API
        "country_codes": ["US"],
        "exact_match": false,
        "fuzziness": 0.5,
        "remove_deceased": 0,
        "types": [ // Watchlist types as defined in the module/API
          "pep-class-4",
          "pep-class-1",
          "pep-class-3",
          "pep",
          "sanction",
          "pep-class-2"
        ]
      },
      "match_status": "potential_match", 
      "risk_level": "unknown", 
      "search_term": "John Doe", // Name from session/API
      "total_hits": 2,
      "total_matches": 2,
      "updated_at": "2024-04-08 20:20:40",
      "created_at": "2024-04-08 20:20:40",
      "tags": [],
      "limit": 100,
      "offset": 0,
      "share_url": "https://app.eu.complyadvantage.com/public/search/1712607640-1sEYsOYW/573af167e1a0",
      "hits": [
        {
          "doc": {
            "aka": [
              {"name": "John Doe"}
              // Truncated for brevity, include all names as in your example
            ],
            "associates": [
              {"association": "parent", "name": "Nick Doe"},
              {"association": "spouse", "name": "Jane Doe"}
              // Truncated for brevity, includes all associates
            ],
            "fields": [
              {"name": "Nationality", "source": "complyadvantage", "value": "United States"},
              {"name": "Political Position", "source": "complyadvantage", "value": "44th President of the United States of America"}
              // Truncated for brevity, includes varios terms found
            ],
            "id": "1CLBTB5OU7NL55O",
            "last_updated_utc": "2024-04-08T15:04:40Z",
            "name": "John Doe",
            "sources": ["complyadvantage"],
            "types": ["pep", "pep-class-1", "pep-class-2"]
          },
          "is_whitelisted": false,
          "match_types": ["aka_exact", "year_of_birth"],
          "score": 1.0
        }
        // Truncated for brevity, includes other hits
      ]
    }
  },
  "status": "success"
}

POST https://{client-defined-url}

Url is the one specified in the Configuration → Webhook

Request body

  • interviewId: String, mandatory. Session ID.
  • ref: String, mandatory. Reference number received when search was created.
  • search_id: String, mandatory. Search id created when search was created.

Values for interviewId or ref should be forwarded in the Updated watchlist result to pull updates.

GET /omni/updated-watchlist-result?id={{interviewId}}&ref={{ref}}

InterviewId and ref are values received in the webhook

RESPONSE EXAMPLE
{
  "content": {
    "data": {
      "id": 1697044869,
      "ref": "1712607640-1sEYsOYW",
      "searcher_id": 14876,
      "assignee_id": 14876,
      "filters": {
        "birth_year": 1961, // Date of birth from session/API
        "country_codes": ["US"],
        "exact_match": false,
        "fuzziness": 0.5,
        "remove_deceased": 0,
        "types": [ // Watchlist types as defined in the module/API
          "pep-class-4",
          "pep-class-1",
          "pep-class-3",
          "pep",
          "sanction",
          "pep-class-2"
        ]
      },
      "match_status": "potential_match", 
      "risk_level": "unknown", 
      "search_term": "John Doe", // Name from session/API
      "total_hits": 2,
      "total_matches": 2,
      "updated_at": "2024-04-08 20:20:40",
      "created_at": "2024-04-08 20:20:40",
      "tags": [],
      "limit": 100,
      "offset": 0,
      "share_url": "https://app.eu.complyadvantage.com/public/search/1712607640-1sEYsOYW/573af167e1a0",
      "hits": [
        {
          "doc": {
            "aka": [
              {"name": "John Doe"}
              // Truncated for brevity, include all names as in your example
            ],
            "associates": [
              {"association": "parent", "name": "Nick Doe"},
              {"association": "spouse", "name": "Jane Doe"}
              // Truncated for brevity, includes all associates
            ],
            "fields": [
              {"name": "Nationality", "source": "complyadvantage", "value": "United States"},
              {"name": "Political Position", "source": "complyadvantage", "value": "44th President of the United States of America"}
              // Truncated for brevity, includes varios terms found
            ],
            "id": "1CLBTB5OU7NL55O",
            "last_updated_utc": "2024-04-08T15:04:40Z",
            "name": "John Doe",
            "sources": ["complyadvantage"],
            "types": ["pep", "pep-class-1", "pep-class-2"]
          },
          "is_whitelisted": false,
          "match_types": ["aka_exact", "year_of_birth"],
          "score": 1.0
        }
        // Truncated for brevity, includes other hits
      ]
    }
  },
  "status": "success"
}

Provisioning

To obtain comprehensive details on the pricing and provisioning of the Watchlist module, we encourage you to contact our dedicated customer support team. Our experts are on hand to assist you in tailoring a search profile that precisely meets your unique requirements, guiding you through the most effective configuration options for your specific use case. This personalized approach ensures that you leverage the full potential of the Watchlist module, optimizing your workflows for security and compliance. Our team is committed to providing you with the support and insights needed to make informed decisions, ensuring a seamless integration process.