Watchlist-screening webhook

This webhook returns data from Veriff PEP and Sanctions, adverse media (AM) checks and ongoing monitoring (OGM) services. The payload is sent to Webhook watchlist screening URL, which you need to set up the webhook in the Veriff Customer Portal.

→ See Webhooks Guide > Set up webhooks sub-section for detailed overview of the setup process


When is watchlist-screening webhook sent?

The webhook is sent after the PEP and Sanctions, adverse media and OGM checks have been passed.

Note that a new webhook will be sent if the system detects that the person’s status in the database has changed.


Prerequisites

  1.  Make sure you have access to the Veriff Customer Portal
    1. If you do not, see the Getting Started → Sign up and Log in articles
  2.  Set up webhook URL(s) on your side and have them at hand
    1.  Make sure they match the Webhook URL requirements
    2. Make sure your system is able to handle Webhooks receipt, delivery and resending requirements
  3. Secure your communication, check the HMAC Authentication and Endpoint Security article
  4. Make sure your system is able to handle the Backwards compatible changes

5.Proceed to Watchlist-screening webhook setup below


Watchlist-screening webhook setup

  1. Log in to the Veriff Customer Portal

  2. Navigate to the Integrations page via the top menu and open the integration used for the AML solution

  3. On the integration's page, select the Settings tab

  4. Under the title Integration settings you see a list of webhooks

  5. Fill in the Webhook watchlist screening URL

→ See Webhooks Guide > Set up webhooks sub-section for detailed overview of the setup process


Additional notes

String matchStatus shows if the person has a match in any of the listings or databases:

  • possible_match indicates that the person was found. The hits array is populated with data about the person

  • no_match indicates that the person was not found. The hits array is empty


Sample request

{
    "checkType": "initial_result",
    "attemptId": "54233318-f81c-4ec4-8e4c-413168a3f5e6",
    "sessionId": "f04bdb47-d3be-4b28-b028-a652feb060b5",
    "vendorData": "12345678",
    "endUserId": "a1b2c35d-e8f7-6d5e-3cd2-a1b2c35db3d4",
    "matchStatus": "possible_match",
    "searchTerm": {
        "name": "Mirko Kokki",
        "year": "1960"
    },
    "totalHits": 5,
    "createdAt": "2021-06-02T11:04:00.287Z",
    "hits": [{
        "matchedName": "Miro kokkino",
        "countries": [
          "Australia",
          "Brazil"
        ],
        "dateOfBirth": "1960",
        "dateOfDeath": null,
        "matchTypes": [
          "aka_exact"
        ],
        "aka": [
          "Kokki Mirko",
          "Mirko Kokki"
        ],
        "associates": [
          "Desmon Lamela",
          "Fred Austin"
        ],
        "listingsRelatedToMatch": {
            "warnings": [
            {
                "sourceName": "FBI Most Wanted",
                "sourceUrl": "http://www.exampleUrl.com",
                "date": null
            }
            ],
            "sanctions": [
            {
                "sourceName": "Example Source",
                "sourceUrl": "https://www.exampleURL2.com",
                "date": null
            },
            {
                "sourceName": "Example Source 2",
                "sourceUrl": "https://www.exampleURL3.com",
                "date": null
            }
            ],
            "fitnessProbity": [
            {
              "sourceName": "Example Source 3",
              "sourceUrl": "https://www.exampleURL4.com"
            }
            ],
            "pep": [
            {
              "sourceName": "Example Source 4",
              "sourceUrl": "https://www.exampleURL5.com"
            }
            ],
            "adverseMedia": [
            {
              "date": "2020-09-23T00:00:00Z",
              "sourceName": "Example Source 5",
              "sourceUrl": "https://www.exampleURL6.com"
            }
            ]
        }
    }
    ]
  }

Request properties

*Required field

  • checkType: updated_result* Indicates if the succession of the check, one of intial_result, updated_result

  • attemptId: string* UUID v4 which identifies session attempt

  • sessionId: string* UUID v4 which identifies session

  • vendorData: string | null* The unique identifier that you created for your end-user

  • endUserId: string | null* The UUID that you created for your end-user

  • matchStatus: string* Indicates the result of the search, one of possible_match, no_match

  • searchTerm: object* Data used to perform the check

    • name: string Full name used during the check

    • year: string Birth year used during the check

  • totalHits: integer* total number of hits returned from the check

  • createdAt: string* Timestamp indicating when the check was performed

  • hits: array* Check response hits array of matched records. Empty array if no hits were found

    • matchedName: string The name that was matched in this hit based on the search term

    • countries: array List of countries that sources listed in relation to this hit

    • dateOfBirth: string Birth date of the person in the matched listings

    • dateOfDeath: string Death date of the person in the matched listings

    • matchTypes: array Array that shows the match type in the listings. See data provider’s documentation[↗] for possible values

    • aka: array Array of names that the matched person is also known as

    • associates: array Array of names that the matched person is associated with

    • listingsRelatedToMatch: object Matched listings. Optional, empty object if "PEP & Sanctions" add-on is not enabled

    • warnings: array Array of warning matches. Empty array if no warnings were found

      • sourceName: string Name of the listing

      • sourceUrl: string URL of the listing

      • date: string | null Date of the listing. Null if listing doesn't have a date

    • sanctions: array Array of sanctions matches. Empty array if no sanctions were found

      • sourceName: string Name of the listing

      • sourceUrl: string Url of the listing

      • date: string Date of the listing. Null if listing doesn't have a date

    • fitnessProbity: array Array of fitness probity matches. Empty array if no fitness probities were found

      • sourceName: string Name of the listing

      • sourceUrl: string URL of the listing

      • date: string | null Date of the listing. Null if listing doesn't have a date

    • pep: array Array of PEP matches. Empty array if no PEP matches were found

      • sourceName: string Name of the listing

      • sourceUrl: string URL of the listing

      • date: string | null Date of the listing. Null if listing doesn't have a date

    • adverseMedia: array Array of media matches. Empty array if no media were found

      • sourceName: string Name of the listing

      • sourceUrl: string URL of the listing

      • date: string | null Date of the listing. Null if listing does not have a date


Article versioning

Date

Description

Apr 12, 2025

Link added to matchType array, to provide access to array’s possible values

Mar 12, 2025

Documentation published