openapi: 3.0.3
info:
title: 'Pascal API documentation'
description: ''
version: 1.0.0
servers:
-
url: 'http://localhost'
paths:
/api/v1/cases/import:
post:
summary: 'Import cases'
operationId: importCases
description: "This endpoint allows you to import and search a list of new cases asynchronously.\nAfter making a request, a list of case UUIDs will be returned in the same order as your request.\nYou can use the case search API to check the status of the imported cases.\n"
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 99cbb5f6-49a7-492c-a1de-92ff356d98d8
totalJobs: 1
pendingJobs: 1
progress: 0
createdAt: '2023-08-02T18:48:22.000000Z'
uuids:
- a2546955-de2d-4907-a533-0846ee46f719
properties:
id:
type: string
example: 99cbb5f6-49a7-492c-a1de-92ff356d98d8
totalJobs:
type: integer
example: 1
pendingJobs:
type: integer
example: 1
progress:
type: integer
example: 0
createdAt:
type: string
example: '2023-08-02T18:48:22.000000Z'
uuids:
type: array
example:
- a2546955-de2d-4907-a533-0846ee46f719
items:
type: string
tags:
- Cases
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
cases:
type: array
description: 'An array of cases to be imported. You can import up to 200 cases per request.'
example:
- []
items:
type: object
properties:
type:
type: string
description: ''
example: Person
enum:
- Person
- Business
status:
type: string
description: 'Must be one of: Preview, In review.'
example: 'In review'
enum:
- 'In review'
- Preview
name:
type: string
description: 'The name to be checked. Must match the regex /[^'' '',\-\/\.]/. Must not be smaller than 2. Must not be larger than 190.'
example: 'John Doe'
confidence:
type: string
description: ''
example: Exact
enum:
- Relative
- Exact
aliases:
type: array
description: 'A list of additional name variations to be checked. Must not be larger than 190.'
example:
- 'J. Doe'
items:
type: string
additional_terms:
type: array
description: 'A list words that boost confidence if present in any visible text field. Must not be larger than 190.'
example:
- CEO
items:
type: string
description:
type: string
description: 'Additional information to be displayed in the case.'
example: 'Relation of a high risk client'
clients:
type: array
description: 'Must not be larger than 190.'
example:
- blsrqvz
items:
type: string
gender:
type: string
description: '[Person case] Must be one of Male or Female. This field is required when cases.passportVerificationForm is present.'
example: Male
enum:
- Female
- Male
nationalities:
type: array
description: '[Person case] array of max 10 nationalities, nationality ISO 3166-1 alpha-3 country code string.'
example:
- NLD
items:
type: string
country_of_birth:
type: string
description: '[Person case] ISO 3166-1 alpha-3 country code string.'
example: NLD
country_of_residence:
type: string
description: '[Person case] ISO 3166-1 alpha-3 country code string.'
example: NLD
date_of_birth:
type: string
description: '[Person case] ISO date string. Must be a valid date in the format Y-m-d.'
example: '2000-01-31'
passportVerificationForm:
type: object
description: '[Person case] Optional passport check information to be added to the case. This field must contain 7 items.'
example: null
properties:
country:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be larger than 190.'
example: lspxovuhlb
dateOfExpiry:
type: string
description: 'Must be a valid date in the format Y-m-d. This field is required when cases.passportVerificationForm is present.'
example: '2024-09-26'
documentNumber:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be smaller than 6. Must not be larger than 9.'
example: by
givenNames:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be larger than 190.'
example: dhojwpgwrjevdi
lastName:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be larger than 190.'
example: vqlscdovpireynxoz
nationality:
type: string
description: 'This field is required when cases.passportVerificationForm is present.'
example: null
optionalData:
type: string
description: 'Must not be larger than 14.'
example: yjrdraj
company_number:
type: string
description: '[Business case] string of max 190 characters. Must not be larger than 190.'
example: NL123
jurisdiction:
type: string
description: '[Business case] ISO 3166-2 jurisdiction code string (deprecated).'
example: NL
address:
type: string
description: '[Business case] string of max 190 characters. Must not be larger than 190.'
example: '3721 West Fork Street, Montana'
user_id:
type: integer
description: 'The assignee of the case. If both this and group_id are missing, the case is assigned to the default assignee specified in the organisation policies. If either is provided but neither specifies an id, the case is unassigned.'
example: null
group_id:
type: integer
description: 'The assigned group of the case. If both this and user_id are missing, the case is assigned to the default assignee specified in the organisation policies. If either is provided but neither specifies an id, the case is unassigned.'
example: null
required:
- type
- name
- confidence
- nationalities
deduplicate:
type: boolean
description: 'Whether or not to skip any cases that already exist in the organisation. A case is considered a duplicate if all of the following fields are an exact match (case insensitive): name, aliases, additional_terms, gender, date_of_birth, nationalities, country_of_birth, country_of_residence, address, jurisdiction, and company_number.'
example: false
update_duplicates:
type: boolean
description: "When a duplicate case is found, perform a new search.\nIf the existing case is 'archived', its status will be changed to 'in review'.\nSearch is skipped if the case is already monitored."
example: false
batch_id:
type: string
description: 'Because each import request is limited to 200 cases, you can use this parameter to add more cases to an existing batch. If the batch does not exist or is already finished, a 404 response will be returned. This field must be a valid UUID.'
example: 6a6b59a5-6d65-3bf3-8039-c71d5a378f7a
count:
type: integer
description: 'When you want to import using multiple requests in a single batch, you should provide the total number of cases to import in your first request (without a batch_id). When the total number of cases has not been processed and the batch has nothing to process, it will remain active for 1 minute, allowing you to add more cases to it. When the total number of cases has been processed, the batch will be marked as finished. Must not be smaller than 1.'
example: 84
required:
- cases
/api/v1/cases/searches:
post:
summary: 'Search cases'
operationId: searchCases
description: "This endpoint allows you to search for cases using filters.\nReturning basic information on a list of cases.\nPaginating through results is possible using the per_page and page parameters."
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
additional_terms: null
address: null
aliases: null
case_groups: []
case_users: []
clients: []
company_number: null
confidence: Relative
country_of_birth: null
country_of_residence: null
created_at: '2023-08-02T18:48:22.000000Z'
date_of_birth: null
deleted_at: null
description: 'Voluptas ad rem illum est dignissimos aut provident vitae.'
excluded_terms: []
gender: null
group: null
group_id: null
hit_counts:
negative:
enforcements: 0
news: 0
other: 0
peps: 0
sanctions: 0
positive:
enforcements: 0
news: 0
other: 0
peps: 0
sanctions: 0
unresolved:
enforcements: 0
news: 0
other: 0
peps: 0
sanctions: 0
hits_unresolved_count: 0
id: 2049050
jurisdiction: null
monitoring_frequency: 28
name: 'My test case'
nationalities: null
organization_id: 19
origin: import
resolve_progress: 100
risk: 0
searched_at: '2023-08-02T18:48:32.000000Z'
sources:
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 409
source: peps
vendor: default
data_source_id: 409
id: 18320030
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 413
source: news
vendor: default
data_source_id: 413
id: 18320031
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
status: 'In review'
type: Person
unresolved_risk: 0
updated_at: '2023-08-02T18:48:22.000000Z'
user: null
user_id: null
uuid: a2546955-de2d-4907-a533-0846ee46f719
meta:
current_page: 1
from: 1
last_page: 1
path: 'http://pascal.vartion.com/api/v1/cases/searches'
per_page: 10
to: 1
total: 1
properties:
data:
type: array
example:
-
additional_terms: null
address: null
aliases: null
case_groups: []
case_users: []
clients: []
company_number: null
confidence: Relative
country_of_birth: null
country_of_residence: null
created_at: '2023-08-02T18:48:22.000000Z'
date_of_birth: null
deleted_at: null
description: 'Voluptas ad rem illum est dignissimos aut provident vitae.'
excluded_terms: []
gender: null
group: null
group_id: null
hit_counts:
negative:
enforcements: 0
news: 0
other: 0
peps: 0
sanctions: 0
positive:
enforcements: 0
news: 0
other: 0
peps: 0
sanctions: 0
unresolved:
enforcements: 0
news: 0
other: 0
peps: 0
sanctions: 0
hits_unresolved_count: 0
id: 2049050
jurisdiction: null
monitoring_frequency: 28
name: 'My test case'
nationalities: null
organization_id: 19
origin: import
resolve_progress: 100
risk: 0
searched_at: '2023-08-02T18:48:32.000000Z'
sources:
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 409
source: peps
vendor: default
data_source_id: 409
id: 18320030
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 413
source: news
vendor: default
data_source_id: 413
id: 18320031
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
status: 'In review'
type: Person
unresolved_risk: 0
updated_at: '2023-08-02T18:48:22.000000Z'
user: null
user_id: null
uuid: a2546955-de2d-4907-a533-0846ee46f719
items:
type: object
properties:
additional_terms:
type: string
example: null
address:
type: string
example: null
aliases:
type: string
example: null
case_groups:
type: array
example: []
case_users:
type: array
example: []
clients:
type: array
example: []
company_number:
type: string
example: null
confidence:
type: string
example: Relative
country_of_birth:
type: string
example: null
country_of_residence:
type: string
example: null
created_at:
type: string
example: '2023-08-02T18:48:22.000000Z'
date_of_birth:
type: string
example: null
deleted_at:
type: string
example: null
description:
type: string
example: 'Voluptas ad rem illum est dignissimos aut provident vitae.'
excluded_terms:
type: array
example: []
gender:
type: string
example: null
group:
type: string
example: null
group_id:
type: string
example: null
hit_counts:
type: object
properties:
negative:
type: object
properties:
enforcements:
type: integer
example: 0
news:
type: integer
example: 0
other:
type: integer
example: 0
peps:
type: integer
example: 0
sanctions:
type: integer
example: 0
positive:
type: object
properties:
enforcements:
type: integer
example: 0
news:
type: integer
example: 0
other:
type: integer
example: 0
peps:
type: integer
example: 0
sanctions:
type: integer
example: 0
unresolved:
type: object
properties:
enforcements:
type: integer
example: 0
news:
type: integer
example: 0
other:
type: integer
example: 0
peps:
type: integer
example: 0
sanctions:
type: integer
example: 0
hits_unresolved_count:
type: integer
example: 0
id:
type: integer
example: 2049050
jurisdiction:
type: string
example: null
monitoring_frequency:
type: integer
example: 28
name:
type: string
example: 'My test case'
nationalities:
type: string
example: null
organization_id:
type: integer
example: 19
origin:
type: string
example: import
resolve_progress:
type: integer
example: 100
risk:
type: integer
example: 0
searched_at:
type: string
example: '2023-08-02T18:48:32.000000Z'
sources:
type: array
example:
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 409
source: peps
vendor: default
data_source_id: 409
id: 18320030
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 413
source: news
vendor: default
data_source_id: 413
id: 18320031
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
items:
type: object
properties:
active:
type: boolean
example: true
case_id:
type: integer
example: 2049050
data_source:
type: object
properties:
active:
type: boolean
example: true
deactivated_at:
type: string
example: '2023-02-21T12:57:31.000000Z'
id:
type: integer
example: 409
source:
type: string
example: peps
vendor:
type: string
example: default
data_source_id:
type: integer
example: 409
id:
type: integer
example: 18320030
searched_at:
type: string
example: '2023-08-02T18:48:22.000000Z'
succeeded:
type: boolean
example: true
status:
type: string
example: 'In review'
type:
type: string
example: Person
unresolved_risk:
type: integer
example: 0
updated_at:
type: string
example: '2023-08-02T18:48:22.000000Z'
user:
type: string
example: null
user_id:
type: string
example: null
uuid:
type: string
example: a2546955-de2d-4907-a533-0846ee46f719
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
path:
type: string
example: 'http://pascal.vartion.com/api/v1/cases/searches'
per_page:
type: integer
example: 10
to:
type: integer
example: 1
total:
type: integer
example: 1
tags:
- Cases
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
per_page:
type: integer
description: 'number between 1 and 1000. Must not be smaller than 1. Must not be larger than 1000.'
example: 10
page:
type: integer
description: 'Page to be returned. Must not be smaller than 1.'
example: 1
sort_by:
type: string
description: ''
example: updated_at
enum:
- updated_at
- status
- uuid
- name
- type
- confidence
- assignee
- hits_unresolved_count
- resolve_progress
- risk
- unresolved_risk
- searched_at
- passport_expiry_date
- organization_name
sort_order:
type: string
description: ''
example: desc
enum:
- asc
- desc
secondary_sort_by:
type: string
description: ''
example: null
enum:
- updated_at
- status
- uuid
- name
- type
- confidence
- assignee
- hits_unresolved_count
- resolve_progress
- risk
- unresolved_risk
- searched_at
- passport_expiry_date
- organization_name
secondary_sort_order:
type: string
description: ''
example: asc
enum:
- asc
- desc
with:
type: array
description: 'Adds additional values to the results, must be one of: hitCounts, hitCountsPerSource.'
example:
- hitCountsPerSource
items:
type: string
enum:
- hitCounts
- hitCountsPerSource
- passportVerification
id:
type: array
description: 'Case IDs to be filtered on. Must not be smaller than 1.'
example: null
items:
type: integer
type:
type: array
description: ''
example: null
items:
type: string
enum:
- Person
- Business
status:
type: array
description: ''
example: null
items:
type: string
enum:
- Preview
- 'In review'
- Archived
- Monitored
user_id:
type: array
description: 'Filter on case assignees using user ids.'
example: null
items:
type: integer
group_id:
type: array
description: 'Filter on case assigned to groups using group ids.'
example: null
items:
type: integer
organization_id:
type: array
description: 'Filter on cases from a specific organization (if token has access to multiple organizations).'
example: null
items:
type: integer
origin:
type: array
description: ''
example: null
items:
type: string
enum:
- person-check
- business-check
- hyperlink
confidence:
type: array
description: ''
example: null
items:
type: string
enum:
- Exact
- Relative
created_at:
type: string
description: ''
example: null
updated_at:
type: string
description: ''
example: null
hit_time_range:
type: string
description: ''
example: null
name:
type: string
description: 'Full text search on case names. Must not be larger than 190.'
example: null
client_id:
type: array
description: 'Cases associated to a list of clients. Must not be smaller than 1.'
example: null
items:
type: integer
exclude_client_id:
type: array
description: 'Exclude cases associated to any of a list of clients. Must not be smaller than 1.'
example: null
items:
type: integer
deleted:
type: boolean
description: ''
example: false
uuid:
type: array
description: 'Case UUIDs to be filtered on. Must not be larger than 36.'
example:
- a2546955-de2d-4907-a533-0846ee46f719
items:
type: string
query:
type: string
description: 'Must not be larger than 190.'
example: null
nationalities:
type: array
description: ''
example: null
items:
type: string
jurisdiction:
type: array
description: ''
example: null
items:
type: string
risk:
type: array
description: ''
example: null
items:
type: string
enum:
- 'very low'
- low
- moderate
- high
- 'very high'
- 'no risk'
custom_filters:
type: array
description: ''
example: null
items:
type: string
required:
- with
- nationalities
- jurisdiction
'/api/v1/cases/{id}':
patch:
summary: 'Update case'
operationId: updateCase
description: "This endpoint allows you to edit the specifications or status of an existing case.\nOnly fields provided will be updated, fields that are not provided will remain in the current state.\nWill return the updated case information.\n"
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
additional_terms: null
address: null
aliases: null
case_groups: []
case_users: []
clients: []
company_number: null
confidence: Relative
country_of_birth: null
country_of_residence: null
created_at: '2023-08-02T18:48:22.000000Z'
date_of_birth: null
deleted_at: null
description: 'Voluptas ad rem illum est dignissimos aut provident vitae.'
excluded_terms: []
gender: null
group: null
group_id: null
id: 2049050
jurisdiction: null
monitoring_frequency: 28
name: 'My test case'
nationalities: null
organization_id: 19
origin: import
risk: 0
searched_at: '2023-08-02T18:48:32.000000Z'
sources:
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 409
source: peps
vendor: default
data_source_id: 409
id: 18320030
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 413
source: news
vendor: default
data_source_id: 413
id: 18320031
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
status: Monitored
type: Person
unresolved_risk: 0
updated_at: '2023-08-02T18:48:22.000000Z'
user: null
user_id: null
uuid: a2546955-de2d-4907-a533-0846ee46f719
properties:
additional_terms:
type: string
example: null
address:
type: string
example: null
aliases:
type: string
example: null
case_groups:
type: array
example: []
case_users:
type: array
example: []
clients:
type: array
example: []
company_number:
type: string
example: null
confidence:
type: string
example: Relative
country_of_birth:
type: string
example: null
country_of_residence:
type: string
example: null
created_at:
type: string
example: '2023-08-02T18:48:22.000000Z'
date_of_birth:
type: string
example: null
deleted_at:
type: string
example: null
description:
type: string
example: 'Voluptas ad rem illum est dignissimos aut provident vitae.'
excluded_terms:
type: array
example: []
gender:
type: string
example: null
group:
type: string
example: null
group_id:
type: string
example: null
id:
type: integer
example: 2049050
jurisdiction:
type: string
example: null
monitoring_frequency:
type: integer
example: 28
name:
type: string
example: 'My test case'
nationalities:
type: string
example: null
organization_id:
type: integer
example: 19
origin:
type: string
example: import
risk:
type: integer
example: 0
searched_at:
type: string
example: '2023-08-02T18:48:32.000000Z'
sources:
type: array
example:
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 409
source: peps
vendor: default
data_source_id: 409
id: 18320030
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
-
active: true
case_id: 2049050
data_source:
active: true
deactivated_at: '2023-02-21T12:57:31.000000Z'
id: 413
source: news
vendor: default
data_source_id: 413
id: 18320031
searched_at: '2023-08-02T18:48:22.000000Z'
succeeded: true
items:
type: object
properties:
active:
type: boolean
example: true
case_id:
type: integer
example: 2049050
data_source:
type: object
properties:
active:
type: boolean
example: true
deactivated_at:
type: string
example: '2023-02-21T12:57:31.000000Z'
id:
type: integer
example: 409
source:
type: string
example: peps
vendor:
type: string
example: default
data_source_id:
type: integer
example: 409
id:
type: integer
example: 18320030
searched_at:
type: string
example: '2023-08-02T18:48:22.000000Z'
succeeded:
type: boolean
example: true
status:
type: string
example: Monitored
type:
type: string
example: Person
unresolved_risk:
type: integer
example: 0
updated_at:
type: string
example: '2023-08-02T18:48:22.000000Z'
user:
type: string
example: null
user_id:
type: string
example: null
uuid:
type: string
example: a2546955-de2d-4907-a533-0846ee46f719
tags:
- Cases
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
clients:
type: array
description: 'List of clients to link this case to. Must match the regex /^[a-z0-9 ]*$/i.'
example: null
items:
type: string
excluded_terms:
type: array
description: 'List terms that should not be matched on when searching for new hits in this case. Must not be larger than 190.'
example: null
items:
type: string
status:
type: string
description: ''
example: Monitored
enum:
- 'In review'
- Archived
- Monitored
description:
type: string
description: 'Additional information to be displayed in the case.'
example: null
monitoring_frequency:
type: integer
description: ''
example: '0'
enum:
- '0'
- '1'
- '7'
- '28'
- '365'
monitoring_frequency_sanctions:
type: integer
description: 'The frequency in days that the case should be monitored for new sanctions hits. Must be one of 0, 1, 7, 28, 365. If set to 0, the case will not be monitored for sanctions hits.'
example: null
enum:
- '0'
- '1'
- '7'
- '28'
- '365'
monitoring_frequency_enforcements:
type: integer
description: 'The frequency in days that the case should be monitored for new enforcement hits. Must be one of 0, 1, 7, 28, 365. If set to 0, the case will not be monitored for enforcement hits.'
example: null
enum:
- '0'
- '1'
- '7'
- '28'
- '365'
monitoring_frequency_peps:
type: integer
description: 'The frequency in days that the case should be monitored for new PEP hits. Must be one of 0, 1, 7, 28, 365. If set to 0, the case will not be monitored for PEP hits.'
example: null
enum:
- '0'
- '1'
- '7'
- '28'
- '365'
monitoring_frequency_other:
type: integer
description: 'The frequency in days that the case should be monitored for new hits from other sources. Must be one of 0, 1, 7, 28, 365. If set to 0, the case will not be monitored for hits from other sources.'
example: null
enum:
- '0'
- '1'
- '7'
- '28'
- '365'
monitoring_frequency_news:
type: integer
description: 'The frequency in days that the case should be monitored for new media hits. Must be one of 0, 1, 7, 28, 365. If set to 0, the case will not be monitored for media hits.'
example: null
enum:
- '0'
- '1'
- '7'
- '28'
- '365'
name:
type: string
description: 'Must match the regex /[^'' '',\-\/\.]/. Must not be larger than 190.'
example: null
aliases:
type: array
description: 'Must not be larger than 190.'
example: null
items:
type: string
confidence:
type: string
description: ''
example: null
enum:
- Relative
- Exact
additional_terms:
type: array
description: 'Must not be larger than 190.'
example: null
items:
type: string
sources:
type: array
description: ''
example: null
items:
type: string
enum:
- sanctions
- enforcements
- peps
- news
- other
gender:
type: string
description: '[Person case] Must be one of Male or Female. This field is required when cases.passportVerificationForm is present.'
example: Male
enum:
- Female
- Male
nationalities:
type: array
description: '[Person case] array of max 10 nationalities, nationality ISO 3166-1 alpha-3 country code string.'
example:
- NLD
items:
type: string
country_of_birth:
type: string
description: '[Person case] ISO 3166-1 alpha-3 country code string.'
example: NLD
country_of_residence:
type: string
description: '[Person case] ISO 3166-1 alpha-3 country code string.'
example: NLD
date_of_birth:
type: string
description: '[Person case] ISO date string. Must be a valid date in the format Y-m-d.'
example: '2000-01-31'
passportVerificationForm:
type: object
description: '[Person case] Optional passport check information to be added to the case.'
example: null
properties:
country:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be larger than 190.'
example: ukxldlwqnlhqxddjhs
dateOfExpiry:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be larger than 190.'
example: tnfpqvwxqbqyopamaputkbsvb
documentNumber:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be smaller than 6. Must not be larger than 9.'
example: tjvp
givenNames:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be larger than 190.'
example: hrughhyuafirquaepnbnhwq
lastName:
type: string
description: 'This field is required when cases.passportVerificationForm is present. Must not be larger than 190.'
example: nhdapfcstahi
nationality:
type: string
description: 'This field is required when cases.passportVerificationForm is present. This field must be 3 characters.'
example: ukb
optionalData:
type: string
description: 'Must not be larger than 14.'
example: emglbwlz
company_number:
type: string
description: '[Business case] string of max 190 characters. Must not be larger than 190.'
example: NL123
jurisdiction:
type: string
description: '[Business case] ISO 3166-2 jurisdiction code string (deprecated).'
example: NL
address:
type: string
description: '[Business case] string of max 190 characters. Must not be larger than 190.'
example: '3721 West Fork Street, Montana'
search:
type: boolean
description: "Controls whether or not to initiate a new search after updating the case. By default, this parameter is set to false.\n\nWhen search is set to false (the default), the operation will not trigger a new search on the case. This means that no changes will be made to the existing hits, resolved or unresolved.\nHowever, when you set search to true, the API will perform a new search on the case. Here's what happens when you initiate a new search:\n\nUnresolved Hits: Will be deleted. \nResolved Hits: Any existing resolved hits, regardless of their current state, will not be deleted.\n\nPossible refound hits: It is possible that some hits that were previously unresolved might be refound during the new search. These hits will reappear as unresolved items. \nPossible new hits: The new search might also discover new hits that were not present in the previous search. These hits will be added as unresolved items."
example: null
required:
- nationalities
parameters:
-
in: path
name: id
description: 'The ID of the case.'
example: eF9Ec24a-2ba2-eAA6-BCcD-FfbeEee7B87e|2
required: true
schema:
type: string
'/api/v1/cases/{id}/hits-key-information':
get:
summary: 'Case hits key information'
operationId: caseHitsKeyInformation
description: "This endpoint allows you to get the key information of a case's hits."
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
unresolved:
enforcements:
-
data:
birth_dates: null
connections: null
jurisdiction_code: gb
name: 'John Doe'
nationalities:
-
country: 'United States of America'
resolution: unresolved
source: enforcements
properties:
unresolved:
type: object
properties:
enforcements:
type: array
example:
-
data:
birth_dates: null
connections: null
jurisdiction_code: gb
name: 'John Doe'
nationalities:
-
country: 'United States of America'
resolution: unresolved
source: enforcements
items:
type: object
properties:
data:
type: object
properties:
birth_dates:
type: string
example: null
connections:
type: string
example: null
jurisdiction_code:
type: string
example: gb
name:
type: string
example: 'John Doe'
nationalities:
type: array
example:
-
country: 'United States of America'
items:
type: object
properties:
country: { type: string, example: 'United States of America' }
resolution:
type: string
example: unresolved
source:
type: string
example: enforcements
tags:
- Cases
parameters:
-
in: path
name: id
description: 'The ID of the case.'
example: e1c8Ae0C-Ccbd-dcF2-a49C-Eca6EAEB0e34|94
required: true
schema:
type: string
/api/v1/clients:
post:
summary: 'Create client'
operationId: createClient
description: 'This endpoint allows you to create a new client.'
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses: { }
tags:
- Clients
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be larger than 190.'
example: spjhrrj
description:
type: string
description: 'Must not be larger than 2000.'
example: 'Quaerat earum dolor repellat adipisci possimus totam in maiores.'
assignee_user_id:
type: integer
description: ''
example: 16
collaborator_user_ids:
type: array
description: 'Must not be smaller than 1.'
example:
- 4
items:
type: integer
required:
- name
'/api/v1/clients/{id}':
get:
summary: 'Get client'
operationId: getClient
description: 'This endpoint allows you to get detailed information on a specific client.'
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses: { }
tags:
- Clients
parameters:
-
in: path
name: id
description: 'The ID of the client.'
example: '2'
required: true
schema:
type: string
/api/v1/clients/searches:
post:
summary: 'Search clients'
operationId: searchClients
description: "This endpoint allows you to search for clients using filters.\nReturning basic information on a list of clients.\nPaginating through results is possible using the per_page and page parameters."
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses: { }
tags:
- Clients
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Search on client names. Supports SQL LIKE wildcards.'
example: null
id:
type: array
description: 'Client IDs to be filtered on. Must not be smaller than 1.'
example: null
items:
type: integer
page:
type: integer
description: 'Page to be returned. Must not be smaller than 1.'
example: 1
per_page:
type: integer
description: 'number between 1 and 1000. Must not be smaller than 1. Must not be larger than 1000.'
example: 10
updated_at:
type: string
description: ''
example: null
status:
type: array
description: ''
example: null
items:
type: string
enum:
- Active
- Archived
onboarding_status:
type: array
description: ''
example:
- 'submitted by client'
items:
type: string
enum:
- 'in progress'
- 'submitted by client'
- completed
sort_by:
type: string
description: ''
example: updated_at
enum:
- updated_at
- name
- risk
- resolve_progress
- status
- onboarding_status
sort_order:
type: string
description: ''
example: desc
enum:
- asc
- desc
organization_id:
type: array
description: 'Filter on clients from a specific organization (if token has access to multiple organizations). Must not be smaller than 1.'
example: null
items:
type: integer
custom_filters:
type: array
description: "Specific filters: - 'has_onboarding_forms': Filter clients that have at least one onboarding form."
example:
- has_onboarding_forms
items:
type: string
enum:
- assigned
- has_onboarding_forms
/api/v1/onboarding-forms/searches:
post:
summary: 'Search onboarding forms'
operationId: searchOnboardingForms
description: "This endpoint allows you to search for onboarding forms using filters.\nReturning basic information on a list of onboarding forms.\nPaginating through results is possible using the per_page and page parameters."
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses: { }
tags:
- 'Onboarding forms'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: array
description: 'Onboarding form IDs to be filtered on. Must not be smaller than 1.'
example: null
items:
type: integer
page:
type: integer
description: 'Page to be returned. Must not be smaller than 1.'
example: 1
per_page:
type: integer
description: 'number between 1 and 1000. Must not be smaller than 1. Must not be larger than 1000.'
example: 10
updated_at:
type: string
description: ''
example: null
sort_by:
type: string
description: ''
example: created_at
enum:
- created_at
- updated_at
- name
sort_order:
type: string
description: ''
example: desc
enum:
- asc
- desc
organization_id:
type: array
description: 'Filter on onboarding forms from a specific organization (if token has access to multiple organizations). Must not be smaller than 1.'
example: null
items:
type: integer
external_user_ids:
type: array
description: 'Must not be smaller than 1.'
example:
- 82
items:
type: integer
client_id:
type: array
description: 'Must not be smaller than 1.'
example:
- 82
items:
type: integer
with:
type: array
description: 'Additional information to include with the onboarding forms. Must be one of: user, externalUsers, organizationTheme.'
example:
- user
items:
type: string
enum:
- user
- externalUsers
- organizationTheme
required:
- external_user_ids
- with
/api/v1/one-time-case-links:
post:
summary: 'Create one time case links'
operationId: createOneTimeCaseLinks
description: 'This endpoint allows you to create one time case links. '
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
case_uuid: ac6962da-4ff0-42ad-b5ee-35153d15e924
created_at: '2023-08-14T10:50:25.000000Z'
created_by_id: 4
expires_at: '2099-01-31T23:00:00.000000Z'
id: 11
return_url: 'https://localhost'
token: ehgwKBKPPubqQ7CC
updated_at: '2023-08-14T10:50:25.000000Z'
user_id: 13989
properties:
case_uuid:
type: string
example: ac6962da-4ff0-42ad-b5ee-35153d15e924
created_at:
type: string
example: '2023-08-14T10:50:25.000000Z'
created_by_id:
type: integer
example: 4
expires_at:
type: string
example: '2099-01-31T23:00:00.000000Z'
id:
type: integer
example: 11
return_url:
type: string
example: 'https://localhost'
token:
type: string
example: ehgwKBKPPubqQ7CC
updated_at:
type: string
example: '2023-08-14T10:50:25.000000Z'
user_id:
type: integer
example: 13989
tags:
- 'One time case links'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
case_uuid:
type: uuid
description: 'The uuid of the case.'
example: ac6962da-4ff0-42ad-b5ee-35153d15e924
user_email:
type: email
description: 'The email address of the user that will use the link.'
example: example@vartion.com
return_url:
type: url
description: 'The url that the user will be redirected to when they finish resolving the case. If no return_url is supplied, the window is closed instead. (this only works when the page is opened in a new tab)'
example: 'https://localhost'
expires_at:
type: datetime
description: 'When the link should expire. This needs to be later than "now" and less than 31 days from now.'
example: '1970-01-31 23:00:00'
interface_language:
type: string
description: 'The language that the user interface should be displayed in. Can be one of: en-gb, en, nl, fr, ru, and es'
example: en-gb
required:
- case_uuid
- user_email
- expires_at
'/api/v1/one-time-case-links/{id}':
get:
summary: 'View a one time case link'
operationId: viewAOneTimeCaseLink
description: 'This endpoint allows you to view a one time case link. '
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
case_uuid: ac6962da-4ff0-42ad-b5ee-35153d15e924
created_at: '2023-08-14T10:50:25.000000Z'
created_by_id: 4
expires_at: '2099-01-31T23:00:00.000000Z'
id: 11
return_url: 'https://localhost'
updated_at: '2023-08-14T10:50:25.000000Z'
used_at: null
user_id: 13989
properties:
case_uuid:
type: string
example: ac6962da-4ff0-42ad-b5ee-35153d15e924
created_at:
type: string
example: '2023-08-14T10:50:25.000000Z'
created_by_id:
type: integer
example: 4
expires_at:
type: string
example: '2099-01-31T23:00:00.000000Z'
id:
type: integer
example: 11
return_url:
type: string
example: 'https://localhost'
updated_at:
type: string
example: '2023-08-14T10:50:25.000000Z'
used_at:
type: string
example: null
user_id:
type: integer
example: 13989
tags:
- 'One time case links'
delete:
summary: 'Delete a one time case link'
operationId: deleteAOneTimeCaseLink
description: 'This endpoint allows you to delete a one time case link. '
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses: { }
tags:
- 'One time case links'
parameters:
-
in: path
name: id
description: 'The id of the one time case link.'
example: 1
required: true
schema:
type: integer
/v1/one-time-case-link-authentication:
get:
summary: 'Authenticate using a one time case link'
operationId: authenticateUsingAOneTimeCaseLink
description: "This endpoint allows you to authenticate using a one time case link. \nWhen successful, the user will be redirected to the page where they can resolve the linked case."
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "\n\n...\n\n"
422:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Incorrect id or token.'
errors:
authentication:
- 'Incorrect id or token.'
properties:
message:
type: string
example: 'Incorrect id or token.'
errors:
type: object
properties:
authentication:
type: array
example:
- 'Incorrect id or token.'
items:
type: string
tags:
- 'One time case links'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
id:
type: integer
description: 'The one time case link ID.'
example: 1
token:
type: 'The one time case link token.'
description: ''
example: fpncIktnu0GfUKJl
required:
- id
- token
security: []
post:
summary: 'Authenticate using a one time case link'
operationId: authenticateUsingAOneTimeCaseLink
description: "This endpoint allows you to authenticate using a one time case link. \nWhen successful, the user will be redirected to the page where they can resolve the linked case."
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "\n\n...\n\n"
422:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Incorrect id or token.'
errors:
authentication:
- 'Incorrect id or token.'
properties:
message:
type: string
example: 'Incorrect id or token.'
errors:
type: object
properties:
authentication:
type: array
example:
- 'Incorrect id or token.'
items:
type: string
tags:
- 'One time case links'
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
id:
type: integer
description: 'The one time case link ID.'
example: 1
token:
type: 'The one time case link token.'
description: ''
example: fpncIktnu0GfUKJl
required:
- id
- token
security: []
/api/v1/pdf/case:
post:
summary: 'Generate case reports'
operationId: generateCaseReports
description: "This endpoint allows you to start the generation of one or more PDF case reports.\nCases to be used are selected using the filter parameter.\nAn id is returned which can be used to check if the download is finished and download the PDF when it is finished."
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n \"id\": \"99d92417-1264-4cce-9e86-e71a8357e044\",\n \"name\": \"Generating case reports...\",\n \"totalJobs\": 1,\n \"pendingJobs\": 1,\n \"progress\": 0,\n \"createdAt\": \"2023-08-09T11:02:04.000000Z\",\n}"
tags:
- Reports
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
filename:
type: string
description: 'Must not be larger than 190.'
example: exaqkonqxxuyg
detailed:
type: boolean
description: ''
example: true
pages:
type: array
description: 'Pages to include in the report. Must be one or more of: overview, input, policies, passport_verification, key_findings, audit, comments, unresolved, positive, negative.'
example:
- overview
items:
type: string
enum:
- overview
- input
- policies
- passport_verification
- key_findings
- audit
- comments
- unresolved
- positive
- negative
comment:
type: string
description: 'An additional comment to be displayed in the report.'
example: 'Automatically generated from the Pascal API'
to_email:
type: boolean
description: 'whether or not to send the report as an email to the API user.'
example: false
filters:
type: object
description: ''
example: []
properties:
id:
type: array
description: 'Case IDs to be filtered on. Must not be smaller than 1.'
example: null
items:
type: integer
type:
type: array
description: ''
example: null
items:
type: string
enum:
- Person
- Business
status:
type: array
description: ''
example: null
items:
type: string
enum:
- Preview
- 'In review'
- Archived
- Monitored
user_id:
type: array
description: 'Filter on case assignees using user ids.'
example: null
items:
type: integer
group_id:
type: array
description: 'Filter on case assigned to groups using group ids.'
example: null
items:
type: integer
organization_id:
type: array
description: 'Filter on cases from a specific organization (if token has access to multiple organizations).'
example: null
items:
type: integer
origin:
type: array
description: ''
example: null
items:
type: string
enum:
- person-check
- business-check
- hyperlink
confidence:
type: array
description: ''
example: null
items:
type: string
enum:
- Exact
- Relative
created_at:
type: string
description: ''
example: null
updated_at:
type: string
description: ''
example: null
hit_time_range:
type: string
description: ''
example: null
name:
type: string
description: 'Full text search on case names. Must not be larger than 190.'
example: null
client_id:
type: array
description: 'Cases associated to a list of clients. Must not be smaller than 1.'
example: null
items:
type: integer
exclude_client_id:
type: array
description: 'Exclude cases associated to any of a list of clients. Must not be smaller than 1.'
example: null
items:
type: integer
deleted:
type: boolean
description: ''
example: false
uuid:
type: array
description: 'Case UUIDs to be filtered on. Must not be larger than 36.'
example:
- a2546955-de2d-4907-a533-0846ee46f719
items:
type: string
query:
type: string
description: 'Must not be larger than 190.'
example: null
nationalities:
type: array
description: ''
example: null
items:
type: string
jurisdiction:
type: array
description: ''
example: null
items:
type: string
risk:
type: array
description: ''
example: null
items:
type: string
enum:
- 'very low'
- low
- moderate
- high
- 'very high'
- 'no risk'
custom_filters:
type: array
description: ''
example: null
items:
type: string
'/api/v1/reports/{id}/download':
get:
summary: 'Download reports'
operationId: downloadReports
description: 'This endpoint allows you to download a previously generated report, using a report id or a report job id.'
parameters:
-
in: header
name: OrganizationId
description: ''
example: 1
schema:
type: string
responses:
200:
description: File
content:
text/plain:
schema:
type: string
example: 'PDF report file'
404:
description: ''
content:
text/plain:
schema:
type: string
example: 'Report is not (yet) generated'
tags:
- Reports
parameters:
-
in: path
name: id
description: 'The ID of the report.'
example: d9eCAcb0-AcAd-a4f5-Be97-E2e63bf25A3C|487301
required: true
schema:
type: string
tags:
-
name: Cases
description: ''
-
name: Clients
description: ''
-
name: 'Onboarding forms'
description: ''
-
name: 'One time case links'
description: "The usual flow for a one time case link is as follows:\n1. Create a one time case link using your personal access token.\n2. Store the generated one time case link id and token somewhere secure.\n3. Use a one time case link (this is done by your user). See: Authenticate using a one time case link"
-
name: Reports
description: ''
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'You can retrieve your token by visiting your personal settings page and clicking Add API token.'
security:
-
default: []