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.
Same webhook is used for both legacy AML Sanctions and enhanced AML Sanctions solutions’ sessions.
Main difference between the solution versions is that enhanced AML Sanctions offers more customization options regarding which lists to screen against, how strictly names are matched and how results are filtered.
Therefore, the enhanced AML Sanctions session’s webhook payload contains more parameters in the
searchTermobject:lists,countries,exactMatch,matchThresholdandexcludeDeceasedkeys.
→ 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
- Make sure you have access to the Veriff Customer Portal
- Set up webhook URL(s) on your side and have them at hand
- Make sure they match the Webhook URL requirements
- Make sure your system is able to handle Webhooks receipt, delivery and resending requirements
- Check the Webhooks headers and payload section for info
- Secure your communication, check the HMAC Authentication and Endpoint Security article
- Make sure your system is able to handle the Backwards compatible changes
5.Proceed to Watchlist-screening webhook setup below
Watchlist-screening webhook setup
Log in to the Veriff Customer Portal
Navigate to the Integrations page via the top menu and open the integration used for the AML solution
On the integration's page, select the Settings tab
Under the title Integration settings you see a list of webhooks
Fill in the
Webhook watchlist screening URL
→ See Webhooks Guide > Set up webhooks sub-section for detailed overview of the setup process
Additional notes
About matchStatus field
The matchStatus field is the primary outcome indicator of the AML/PEP screening itself. It directly answers the compliance question "Is this person flagged on any watchlist?"
The field has two possible values:
possible_match: the person was found in one or more listings/databases. Thedata.hitsarray is populated with data about the person.no_match: the person was not found. Thedata.hitsarray is empty.
This is independent from the session decision (approved/declined), which is driven by IDV checks.
The confidence in the matchStatus is higher when combined with IDV, because the screening data was extracted from a verified document. In standalone mode, the accuracy of the screening depends on the quality of the data you input.
If you require more data, you can use the relevant sessionId and query the GET sessions/{sessionId}/person[↗] endpoint to find more detailed info about the match. Look for data in the person.pepSanctionMatches array.
Possible session outcomes
Session approved + matchStatus: no_match
This is the ideal outcome. The end-user’s identity was verified successfully and they were not found on any PEP/Sanctions/Adverse Media lists. You can proceed with onboarding, no further AML action needed.
Session approved + matchStatus: possible_match
The end-user’s identity is verified (the document and selfie are genuine), but they were found on one or more watchlists. Veriff only flags potential matches, you retain decisioning responsibility. Therefore, you need to perform manual review:
Review the
hitsarray to examine the matched listings (source names, URLs, match types, etc.).Determine whether the hit is a true match or a false positive (e.g., common name coincidence).
Apply your own risk-based decision depending on your regulation and requirements (decline the end-user, apply enhanced due diligence, or escalate).
Sample request
{
"id":"a3f8b2c1-1234-4abc-8def-0123456789ab",
"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",
"lists":[
"SANCTIONS",
"PEP_CLASS_1",
"PEP_CLASS_2"
],
"countries":[
"GB",
"US",
"FR"
],
"exactMatch":false,
"matchThreshold":80,
"excludeDeceased":true
},
"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",
"snippet":"Sang Tan Judges in the High Court in London have ruled that Saleh Ibrahim Mabrouk, a former aide of Libyan leader Colonel Muammar Gaddafi, was partly to blame for the murder of PC Yvonne Fletcher. The gunman",
"sourceUrl":"https://www.exampleURL6.com"
}
]
}
}
]
}Request properties
*Required field
checkType:updated_result* Indicates if the succession of the check, one ofintial_result,updated_resultattemptId:string* UUID v4 which identifies session attemptsessionId:string* UUID v4 which identifies sessionvendorData:string | null* The unique identifier that you created for your end-userendUserId:string | null* TheUUIDthat you created for your end-usermatchStatus:string* Indicates the result of the search, one ofpossible_match,no_matchsearchTerm:object* Data used to perform the checkname:stringFull name used during the checkyear:stringBirth year used during the checklists:array of stringList of watchlists against which the check was performed. Available only for enhanced AML solution.countries:array of stringList of countries associated with the check, as ISO 3166-1 Alpha-2 country code. Available only for enhanced AML solution.exactMatch:booleanIndicates whether the name used in the check required an exact match. Available only for enhanced AML solution.matchThreshold:integerConfigured matching percentage threshold. Available only for enhanced AML solution.excludeDeceased:booleanIndicates whether deceased individuals were excluded from the check. Available only for enhanced AML solution.
totalHits:integer* total number of hits returned from the checkcreatedAt:string* Timestamp indicating when the check was performedhits:array* Check response hits array of matched records. Empty array if no hits were foundmatchedName:stringThe name that was matched in this hit based on the search termcountries:arrayList of countries that sources listed in relation to this hitdateOfBirth:stringBirth date of the person in the matched listingsdateOfDeath:stringDeath date of the person in the matched listingsmatchTypes:arrayArray that shows the match type in the listings. See data provider’s documentation[↗] for possible valuesaka:arrayArray of names that the matched person is also known asassociates:arrayArray of names that the matched person is associated withlistingsRelatedToMatch:objectMatched listings. Optional, empty object if "PEP & Sanctions" add-on is not enabledwarnings:arrayArray of warning matches. Empty array if no warnings were foundsourceName:stringName of the listingsourceUrl:stringURL of the listingdate:string | nullDate of the listing.Nullif listing doesn't have a date
sanctions:arrayArray of sanctions matches. Empty array if no sanctions were foundsourceName:stringName of the listingsourceUrl:stringUrl of the listingdate:stringDate of the listing.Nullif listing doesn't have a date
fitnessProbity:arrayArray of fitness probity matches. Empty array if no fitness probities were foundsourceName:stringName of the listingsourceUrl:stringURL of the listingdate:string | nullDate of the listing.Nullif listing doesn't have a date
pep:arrayArray of PEP matches. Empty array if no PEP matches were foundsourceName:stringName of the listingsourceUrl:stringURL of the listingdate:string | nullDate of the listing.Nullif listing doesn't have a date
adverseMedia:arrayArray of media matches. Empty array if no media were foundsourceName:stringName of the listingsnippet:stringText snippet of the related listingsourceUrl:stringURL of the listingdate:string | nullDate of the listing.Nullif listing does not have a date
Changelog
Date | Description |
|---|---|
May 19, 2026 | Distinction between legacy AML and enhanced AML solutions added to article intro and to |
Feb 10, 2026 |
|
Feb 2, 2026 | New string |
Jun 6, 2025 | Heading “Article versioning” changed to “Changelog” |
Apr 12, 2025 | Link added to |
Mar 12, 2025 | Documentation published |