curl --request POST \
--url https://lens-api.tic.io/screening/companies/{companyId} \
--header 'Content-Type: application/json-patch+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"roles": [],
"serviceScope": "<string>",
"nameMatching": "<string>",
"minimumNameMatchScore": 123,
"fuzzyBirthDateMatching": true,
"updatedAfter": "2023-11-07T05:31:56Z",
"minExpires": "2023-11-07T05:31:56Z",
"testMode": true
}
'import requests
url = "https://lens-api.tic.io/screening/companies/{companyId}"
payload = {
"roles": [],
"serviceScope": "<string>",
"nameMatching": "<string>",
"minimumNameMatchScore": 123,
"fuzzyBirthDateMatching": True,
"updatedAfter": "2023-11-07T05:31:56Z",
"minExpires": "2023-11-07T05:31:56Z",
"testMode": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
roles: [],
serviceScope: '<string>',
nameMatching: '<string>',
minimumNameMatchScore: 123,
fuzzyBirthDateMatching: true,
updatedAfter: '2023-11-07T05:31:56Z',
minExpires: '2023-11-07T05:31:56Z',
testMode: true
})
};
fetch('https://lens-api.tic.io/screening/companies/{companyId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lens-api.tic.io/screening/companies/{companyId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'roles' => [
],
'serviceScope' => '<string>',
'nameMatching' => '<string>',
'minimumNameMatchScore' => 123,
'fuzzyBirthDateMatching' => true,
'updatedAfter' => '2023-11-07T05:31:56Z',
'minExpires' => '2023-11-07T05:31:56Z',
'testMode' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://lens-api.tic.io/screening/companies/{companyId}"
payload := strings.NewReader("{\n \"roles\": [],\n \"serviceScope\": \"<string>\",\n \"nameMatching\": \"<string>\",\n \"minimumNameMatchScore\": 123,\n \"fuzzyBirthDateMatching\": true,\n \"updatedAfter\": \"2023-11-07T05:31:56Z\",\n \"minExpires\": \"2023-11-07T05:31:56Z\",\n \"testMode\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://lens-api.tic.io/screening/companies/{companyId}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"roles\": [],\n \"serviceScope\": \"<string>\",\n \"nameMatching\": \"<string>\",\n \"minimumNameMatchScore\": 123,\n \"fuzzyBirthDateMatching\": true,\n \"updatedAfter\": \"2023-11-07T05:31:56Z\",\n \"minExpires\": \"2023-11-07T05:31:56Z\",\n \"testMode\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://lens-api.tic.io/screening/companies/{companyId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"roles\": [],\n \"serviceScope\": \"<string>\",\n \"nameMatching\": \"<string>\",\n \"minimumNameMatchScore\": 123,\n \"fuzzyBirthDateMatching\": true,\n \"updatedAfter\": \"2023-11-07T05:31:56Z\",\n \"minExpires\": \"2023-11-07T05:31:56Z\",\n \"testMode\": true\n}"
response = http.request(request)
puts response.read_body{
"screeningId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"companyId": 123,
"personId": 123,
"screenedAtUtc": "2023-11-07T05:31:56Z",
"testMode": true,
"reused": true,
"order": {
"documentOrderGuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"orderedAtUtc": "2023-11-07T05:31:56Z",
"price": 123,
"currency": "<string>"
},
"summary": {
"subjectCount": 123,
"screenedSubjectCount": 123,
"notScreenedCount": 123,
"queryCount": 123,
"subjectsWithHits": 123,
"hitCount": 123,
"newHitCount": 123,
"pendingHitCount": 123,
"hitCountByCategory": {}
},
"beneficialOwnerStatus": "<string>",
"beneficialOwnerStatusDescription": "<string>",
"subjects": [
{
"subjectId": 123,
"type": "person",
"personId": 123,
"companyId": 123,
"reference": "<string>",
"name": "<string>",
"identityNumber": "<string>",
"birthDate": "<string>",
"citizenshipCountryCode": "<string>",
"screenedOn": "<string>",
"notScreenedReason": "protectedIdentity",
"roles": [
{
"group": "target",
"code": "<string>",
"description": "<string>",
"extentCode": "<string>",
"extentDescription": "<string>",
"positionStart": "2023-11-07T05:31:56Z"
}
],
"queryCount": 123,
"queries": [
{
"reason": "primary",
"name": "<string>",
"itemNumber": "<string>",
"itemDate": "<string>",
"rawHitCount": 123
}
],
"hitCount": 123,
"newHitCount": 123,
"maxHitRating": 123,
"hits": [
{
"hitId": 123,
"category": "other",
"name": "<string>",
"birthDate": "<string>",
"isEntity": true,
"sourceName": "<string>",
"listType": "<string>",
"externalId": "<string>",
"hitRating": 123,
"nameMatchScore": 123,
"tier": 123,
"matchedVia": "primary",
"isNew": true,
"resolution": "pending",
"resolvedAtUtc": "2023-11-07T05:31:56Z",
"resolutionComment": "<string>",
"listEntryUpdatedAtUtc": "2023-11-07T05:31:56Z"
}
]
}
],
"warnings": [
"<string>"
],
"errors": [
"<string>"
]
}Screen a company with its board and beneficial owners
Screens a company and everyone behind it against the PEP and sanctions lists in one call. Included: the company itself; its current board, management, external signatories, liquidators and partners (the positions in GET /companies//representatives); the owners in its latest beneficial-owner registration; and the companies they control it through. Auditors only when asked for in roles. Each person or company is screened once, with all their roles. A person is screened on every personnummer and samordningsnummer they have had, so a list entry carrying an earlier number is found, and on the family name with the birth date, which finds an entry however many given names it lists. People registered with only a birth date (e.g. foreign board members) are screened on name and birth date, people with only a name on given name and family name (screenedOn). Protected identities are never sent to the supplier and are listed as not screened. The company is screened on its organisation number and its name without the legal form, plus previous and foreign-language names. Every sanctions list (including Finansinspektionen’s warning list) and PEP list is screened; serviceScope narrows that. Adverse media is not screened. The screening is stored: each hit is marked isNew when the team has not seen the list entry for the same person or company before, and a decision recorded with PUT /screening//hits//resolution is carried into later screenings unless the supplier updates the entry. Billed as one order at the team’s screening price per screened subject (summary.screenedSubjectCount); testMode runs free against the supplier’s test data. The same screening (same people, queries and options) asked again within 24 hours returns the earlier result with reused true, without a new order or cost; refresh=true screens again. The response is compact: every subject with its roles and a short line per hit. onlyWithHits=true leaves out subjects without hits (they are still counted), includeQueries=true adds the queries sent. Full details of a hit: GET /screening//hits/.
curl --request POST \
--url https://lens-api.tic.io/screening/companies/{companyId} \
--header 'Content-Type: application/json-patch+json' \
--header 'x-api-key: <api-key>' \
--data '
{
"roles": [],
"serviceScope": "<string>",
"nameMatching": "<string>",
"minimumNameMatchScore": 123,
"fuzzyBirthDateMatching": true,
"updatedAfter": "2023-11-07T05:31:56Z",
"minExpires": "2023-11-07T05:31:56Z",
"testMode": true
}
'import requests
url = "https://lens-api.tic.io/screening/companies/{companyId}"
payload = {
"roles": [],
"serviceScope": "<string>",
"nameMatching": "<string>",
"minimumNameMatchScore": 123,
"fuzzyBirthDateMatching": True,
"updatedAfter": "2023-11-07T05:31:56Z",
"minExpires": "2023-11-07T05:31:56Z",
"testMode": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json-patch+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json-patch+json'},
body: JSON.stringify({
roles: [],
serviceScope: '<string>',
nameMatching: '<string>',
minimumNameMatchScore: 123,
fuzzyBirthDateMatching: true,
updatedAfter: '2023-11-07T05:31:56Z',
minExpires: '2023-11-07T05:31:56Z',
testMode: true
})
};
fetch('https://lens-api.tic.io/screening/companies/{companyId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://lens-api.tic.io/screening/companies/{companyId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'roles' => [
],
'serviceScope' => '<string>',
'nameMatching' => '<string>',
'minimumNameMatchScore' => 123,
'fuzzyBirthDateMatching' => true,
'updatedAfter' => '2023-11-07T05:31:56Z',
'minExpires' => '2023-11-07T05:31:56Z',
'testMode' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json-patch+json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://lens-api.tic.io/screening/companies/{companyId}"
payload := strings.NewReader("{\n \"roles\": [],\n \"serviceScope\": \"<string>\",\n \"nameMatching\": \"<string>\",\n \"minimumNameMatchScore\": 123,\n \"fuzzyBirthDateMatching\": true,\n \"updatedAfter\": \"2023-11-07T05:31:56Z\",\n \"minExpires\": \"2023-11-07T05:31:56Z\",\n \"testMode\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://lens-api.tic.io/screening/companies/{companyId}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json-patch+json")
.body("{\n \"roles\": [],\n \"serviceScope\": \"<string>\",\n \"nameMatching\": \"<string>\",\n \"minimumNameMatchScore\": 123,\n \"fuzzyBirthDateMatching\": true,\n \"updatedAfter\": \"2023-11-07T05:31:56Z\",\n \"minExpires\": \"2023-11-07T05:31:56Z\",\n \"testMode\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://lens-api.tic.io/screening/companies/{companyId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json-patch+json'
request.body = "{\n \"roles\": [],\n \"serviceScope\": \"<string>\",\n \"nameMatching\": \"<string>\",\n \"minimumNameMatchScore\": 123,\n \"fuzzyBirthDateMatching\": true,\n \"updatedAfter\": \"2023-11-07T05:31:56Z\",\n \"minExpires\": \"2023-11-07T05:31:56Z\",\n \"testMode\": true\n}"
response = http.request(request)
puts response.read_body{
"screeningId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"companyId": 123,
"personId": 123,
"screenedAtUtc": "2023-11-07T05:31:56Z",
"testMode": true,
"reused": true,
"order": {
"documentOrderGuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"orderedAtUtc": "2023-11-07T05:31:56Z",
"price": 123,
"currency": "<string>"
},
"summary": {
"subjectCount": 123,
"screenedSubjectCount": 123,
"notScreenedCount": 123,
"queryCount": 123,
"subjectsWithHits": 123,
"hitCount": 123,
"newHitCount": 123,
"pendingHitCount": 123,
"hitCountByCategory": {}
},
"beneficialOwnerStatus": "<string>",
"beneficialOwnerStatusDescription": "<string>",
"subjects": [
{
"subjectId": 123,
"type": "person",
"personId": 123,
"companyId": 123,
"reference": "<string>",
"name": "<string>",
"identityNumber": "<string>",
"birthDate": "<string>",
"citizenshipCountryCode": "<string>",
"screenedOn": "<string>",
"notScreenedReason": "protectedIdentity",
"roles": [
{
"group": "target",
"code": "<string>",
"description": "<string>",
"extentCode": "<string>",
"extentDescription": "<string>",
"positionStart": "2023-11-07T05:31:56Z"
}
],
"queryCount": 123,
"queries": [
{
"reason": "primary",
"name": "<string>",
"itemNumber": "<string>",
"itemDate": "<string>",
"rawHitCount": 123
}
],
"hitCount": 123,
"newHitCount": 123,
"maxHitRating": 123,
"hits": [
{
"hitId": 123,
"category": "other",
"name": "<string>",
"birthDate": "<string>",
"isEntity": true,
"sourceName": "<string>",
"listType": "<string>",
"externalId": "<string>",
"hitRating": 123,
"nameMatchScore": 123,
"tier": 123,
"matchedVia": "primary",
"isNew": true,
"resolution": "pending",
"resolvedAtUtc": "2023-11-07T05:31:56Z",
"resolutionComment": "<string>",
"listEntryUpdatedAtUtc": "2023-11-07T05:31:56Z"
}
]
}
],
"warnings": [
"<string>"
],
"errors": [
"<string>"
]
}pep scope on the API key.
Company and person screening explains who is included, how each person is matched and the response, and Reviewing hits covers decisions and history.
reused true, without a new order. Add refresh=true to screen again (billed).Authorizations
Path Parameters
Internal company ID
Query Parameters
Leave out subjects without hits
Include the queries sent for each subject
Screen again even when the same screening ran in the last 24 hours (billed)
Body
target, board, management, signatory, liquidator, partner, beneficialOwner, beneficialOwnerRepresentative, ownershipChain, auditor, supplied Response
The stored screening
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes