TIC
Enterprise+ tier
POSThttps://lens-api.tic.io/screening/search

Screens people and organisations against PEP and sanctions lists. Unlike the screening endpoints on companies and persons, the subject does not need to exist as a record in the platform - you supply the name and/or identity number yourself.

The Screening overview explains how matching and hit ratings work, Results describes every property of a hit, and Lists covers which lists are screened.

Subjects

Up to 50 subjects can be screened in one call. Each is returned separately, in the order it was submitted, and each needs a name, an identity number, or both.

  • identityNumber - personnummer or samordningsnummer (10 or 12 digits), or organisationsnummer (10 digits). Matched exactly, and a match here outweighs the name. A list entry carrying a different identity number is left out, also from name matching.
  • name - every word must be on the list entry (any order, case and accents ignored), so send the given name the person uses and the family name rather than every given name. With an identity number as well, the name finds entries that carry no identity number of their own.
  • birthDate - yyyy-MM-dd, yyyy-MM or yyyy. List entries with no known birth date always match, whatever you supply.
  • countries - ISO 3166-1 alpha-3 codes, e.g. ["SWE", "NOR"]. Narrowing by country cuts false positives, but can also drop true hits where the list entry has poor country data.
  • reference - your own reference, echoed back on the matching result so you can pair them up. Generated for you if omitted.

Matching

nameMatching defaults to Regular, which matches exact aliases. Phonetic also matches similar-sounding names - it finds more true hits and considerably more false ones. Phonetic matching requires minimumNameMatchScore (0.6 to 0.99) to trim the tail; a value between 0.75 and 0.9 is recommended, and the score is ignored for regular matching.

serviceScope selects which lists to screen against, for example SANCTION or PEP_Edge, or a comma-separated combination. Leave it empty for every sanctions and PEP list. Adverse media is not screened.

Test mode

Set testMode to true to run the screening against the test environment. The response has the same shape, the order is placed free of charge, and hits come from test data rather than the live lists. See Test mode.

Stored screening

Every search is stored like a company or person screening. screeningId fetches it again with Get a screening, each result has a subjectId, and each hit a hitId, isNew (not seen before for the same person or organisation) and the team’s resolution. See Reviewing hits. Like all screening endpoints, search requires the pep scope on the API key.

Partial failures

A screening can succeed overall while individual subjects fail. warnings reports subjects that were ignored, and errors reports per-subject failures; the rest of the screening still runs. A subject that failed has notScreenedReason screeningError on its result. Check both before treating a subject as clear.

Authorization

x-api-keystringheaderrequired

Your API key, sent in the x-api-key header.

Query parameters

refreshboolean

Search again even when the same search ran in the last 24 hours (billed)

Bodyapplication/json

subjectsScreeningSubject_Dto[] | null
Hide child attributes
referencestring | null
namestring | null
identityNumberstring | null
birthDatestring | null
countriesstring[] | null
serviceScopestring | null
nameMatchingstring | null
minimumNameMatchScorenumber | null

format: double

fuzzyBirthDateMatchingboolean | null
updatedAfterstring | null

format: date-time

minExpiresstring | null

format: date-time

testModeboolean

Responses

Screening result, including the order it was billed as · application/json

screeningIdstring | null

format: uuid

reusedboolean
requestedAtUtcstring

format: date-time

sourcestring | null
testModeboolean
orderScreeningOrder_Dto
Hide child attributes
documentOrderGuidstring

format: uuid

orderedAtUtcstring

format: date-time

pricenumber | null

format: double

currencystring | null
summaryScreeningSummary_Dto
Hide child attributes
subjectCountinteger

format: int32

individualHitCountinteger

format: int32

entityHitCountinteger

format: int32

totalHitCountinteger

format: int32

servicesQueriedstring[] | null
resultsScreeningSubjectResult_Dto[] | null
Hide child attributes
referencestring | null
subjectIdinteger | null

format: int32

namestring | null
identityNumberstring | null
notScreenedReasonstring

One of: protectedIdentity notIdentifiable screeningError

hitCountinteger

format: int32

hitsScreeningHit_Dto[] | null
Show child attributes
typestring | null
hitIdinteger | null

format: int32

isNewboolean | null
resolutionstring

One of: pending truePositive falsePositive escalated noMatch

namestring | null
identityNumberstring | null
birthDatestring | null
hitRatinginteger

format: int32

hitRatingDescriptionstring | null
nameMatchScorenumber | null

format: double

listTypestring | null
listItemDataTypestring | null
sourceNamestring | null
externalIdstring | null
lastUpdatedUtcstring | null

format: date-time

tierinteger | null

format: int32

isProtectedIdentityboolean | null
isMaleboolean | null
titlestring | null
commentstring | null
legalFormstring | null
operationalStatusstring | null
countriesstring[] | null
citizenshipsstring[] | null
aliasesstring[] | null
externalUrlsstring[] | null
rolesScreeningRole_Dto[] | null
Show child attributes
roleTypestring | null
roleTypeDescriptionstring | null
titlestring | null
organizationstring | null
countryCodestring | null
fromstring | null
tostring | null
commentstring | null
engagementsScreeningEngagement_Dto[] | null
Show child attributes
engagementTypestring | null
namestring | null
corporateIdstring | null
ownershipStakenumber | null

format: double

fromstring | null
tostring | null
relationshipsScreeningRelationship_Dto[] | null
Show child attributes
namestring | null
relationshipTypestring | null
titlestring | null
commentstring | null
warningsstring[] | null
errorsstring[] | null