This documentation aims to provide all the information you need to work with our API.
In this API, all datetime values are represented in Coordinated Universal Time (UTC) timezone. This ensures uniformity and accuracy across various time-related operations. Please note that regardless of the user's or system's local timezone, all datetime inputs and outputs are converted to and from UTC for consistent handling of time-related data.
In Pascal 6.2 we replaced the `jurisdiction` field with a `country` field in cases:
You can configure webhooks in the organization settings -> integrations page. In response to Pascal calling your webhook, you only have to return an HTTP status of 2xx. Pascal then knows your system correctly processed the request. In case you return a different status we will keep trying for a few hours. Our webhook calls time out after 15 seconds. Even if you return a 200 HTTP status code after 16 seconds, we mark the request as failed and try again later.
In total we will call your webhook 10 times with an increasing interval. If after the 10th call we still do not get a 2xx status response, we will stop trying. We use the following intervals between attempts while trying to call your webhook:
Attempt | Interval | Time after initial call |
---|---|---|
1st | - | 00:00 |
2nd | 1 minute | 00:01 |
3rd | 2 minutes | 00:03 |
4th | 4 minutes | 00:07 |
5th | 8 minutes | 00:15 |
6th | 16 minutes | 00:31 |
7th | 29 minutes | 01:00 |
8th | 1 hour | 02:00 |
9th | 2 hours | 04:00 |
10th | 22 hours | 26:00 |
Pascal sends POST requests with `Content-Type: application/json` to your configured URL. The request body looks like:
{
"events": [
{
"event": "Case created",
"organization_id": 1,
"case_id": 1,
"case_uuid": "6e182844-727e-4f04-a2a1-e6096baacc1b"
}
]
}
Our API returns 4xx status codes when there is something wrong with your request.
Common client errors are:
To authenticate requests, include an Authorization
header with the value "Bearer {YOUR_AUTH_KEY}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can retrieve your token by visiting your personal settings page and clicking Add API token.
This endpoint allows you to import and search a list of new cases asynchronously. After making a request, a list of case UUIDs will be returned in the same order as your request. You can use the case search API to check the status of the imported cases.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/cases/import" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"cases\": [
{
\"type\": \"Person\",
\"status\": \"In review\",
\"name\": \"John Doe\",
\"confidence\": \"Relative\",
\"aliases\": [
\"J. Doe\"
],
\"additional_terms\": [
\"CEO\"
],
\"description\": \"Relation of a high risk client\",
\"clients\": [
\"viqpbyipplxeymwhme\"
],
\"gender\": \"Male\",
\"nationalities\": [
\"NLD\"
],
\"country_of_birth\": \"NLD\",
\"country_of_residence\": \"NLD\",
\"date_of_birth\": \"2000-01-31\",
\"passportVerificationForm\": {
\"country\": \"ayob\",
\"dateOfExpiry\": \"2025-01-15\",
\"documentNumber\": \"mmukjywq\",
\"givenNames\": \"xgdu\",
\"lastName\": \"dltixvfklucvigwdssufqjucw\",
\"optionalData\": \"fapdpfugum\"
},
\"company_number\": \"NL123\",
\"country\": \"NL\",
\"address\": \"3721 West Fork Street, Montana\",
\"asset_type\": \"vessel\",
\"identifier\": \"123456\"
}
],
\"deduplicate\": false,
\"update_duplicates\": false,
\"batch_id\": \"6661a00e-9d1b-3f48-b715-bb00367c083e\",
\"count\": 15
}"
{
"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"
]
}
This endpoint allows you to search for cases using filters. Returning basic information on a list of cases. Paginating through results is possible using the per_page and page parameters.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/cases/searches" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"per_page\": 10,
\"page\": 1,
\"sort_by\": \"updated_at\",
\"sort_order\": \"asc\",
\"secondary_sort_order\": \"asc\",
\"with\": [
\"hitCountsPerSource\"
],
\"transaction_id\": [
36
],
\"exclude_transaction_id\": [
35
],
\"deleted\": false,
\"uuid\": [
\"a2546955-de2d-4907-a533-0846ee46f719\"
],
\"nationalities\": null,
\"country\": null
}"
{
"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,
"country": 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
}
}
This endpoint allows you to edit the specifications or status of an existing case. Only fields provided will be updated, fields that are not provided will remain in the current state. Will return the updated case information.
The ID of the case.
curl --request PATCH \
"https://app.pascal.vartion.com/api/v1/cases/4C37Afb8-476b-Becb-a17f-7c22DeC8ebd7|77432" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"status\": \"Monitored\",
\"monitoring_frequency\": \"1\",
\"gender\": \"Male\",
\"nationalities\": [
\"NLD\"
],
\"country_of_birth\": \"NLD\",
\"country_of_residence\": \"NLD\",
\"date_of_birth\": \"2000-01-31\",
\"passportVerificationForm\": {
\"country\": \"lenynwoqiefdflj\",
\"dateOfExpiry\": \"nry\",
\"documentNumber\": \"eqb\",
\"givenNames\": \"vigmpasxpsy\",
\"lastName\": \"xvzuqommuklmhegap\",
\"nationality\": \"trl\",
\"optionalData\": \"kmffyj\"
},
\"company_number\": \"NL123\",
\"country\": \"NL\",
\"address\": \"3721 West Fork Street, Montana\",
\"asset_type\": \"vessel\",
\"identifier\": \"123456\"
}"
{
"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,
"country": 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"
}
This endpoint allows you to get the key information of a case's hits.
The ID of the case.
curl --request GET \
--get "https://app.pascal.vartion.com/api/v1/cases/171689E2-dbCF-FE4c-A703-1baD2A5875bd|86334/hits-key-information" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1"
{
"unresolved": {
"enforcements": [
{
"data": {
"birth_dates": null,
"connections": null,
"name": "John Doe",
"nationalities": [
{
"country": "United States of America"
}
]
},
"resolution": "unresolved",
"source": "enforcements"
}
]
}
}
This endpoint allows you to create a new client.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/clients" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"name\": \"uphkaxwoeaidocq\",
\"description\": \"Reprehenderit ratione ipsam mollitia sed sit.\",
\"assignee_user_id\": 2,
\"collaborator_user_ids\": [
38
]
}"
This endpoint allows you to get detailed information on a specific client.
The ID of the client.
curl --request GET \
--get "https://app.pascal.vartion.com/api/v1/clients/4" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1"
This endpoint allows you to search for clients using filters. Returning basic information on a list of clients. Paginating through results is possible using the per_page and page parameters.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/clients/searches" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"custom_filters\": [
\"has_onboarding_forms\"
],
\"id\": null,
\"not_id\": [
53
],
\"client_client_id\": [
57
],
\"not_client_client_id\": [
10
],
\"not_cases_id\": [
69
],
\"onboarding_status\": [
\"completed\"
],
\"organization_id\": null,
\"page\": 1,
\"per_page\": 10,
\"sort_by\": \"updated_at\",
\"sort_order\": \"asc\"
}"
This endpoint allows you to search for onboarding forms using filters. Returning basic information on a list of onboarding forms. Paginating through results is possible using the per_page and page parameters.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/onboarding-forms/searches" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"page\": 1,
\"per_page\": 10,
\"sort_by\": \"created_at\",
\"sort_order\": \"asc\",
\"external_user_ids\": [
46
],
\"client_id\": [
61
],
\"with\": [
\"user\"
]
}"
This endpoint allows you to search for onboarding form questions using filters.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/onboarding-form-questions/searches" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"page\": 1,
\"per_page\": 10,
\"onboarding_form_ids\": null
}"
{
"data": [
{
"id": 164,
"title": "Yes / No",
"answer": "Yes",
"type": "true_false",
"created_at": "2024-04-18T09:55:40.000000Z",
"updated_at": "2024-04-18T09:55:48.000000Z"
},
{
"id": 178,
"title": "Date of birth",
"answer": "2024-04-02",
"type": "datepicker",
"created_at": "2024-04-19T07:47:24.000000Z",
"updated_at": "2024-04-19T07:58:17.000000Z"
},
{
"id": 168,
"title": "True or false",
"answer": "Yes",
"type": "true_false",
"created_at": "2024-04-18T10:01:46.000000Z",
"updated_at": "2024-04-18T10:01:54.000000Z"
},
{
"id": 173,
"title": "Yes / No",
"answer": "Yes",
"type": "true_false",
"created_at": "2024-04-18T11:40:29.000000Z",
"updated_at": "2024-04-18T11:51:59.000000Z"
},
{
"id": 175,
"title": "Name",
"answer": "John Doe",
"type": "text",
"created_at": "2024-04-18T11:51:56.000000Z",
"updated_at": "2024-04-18T11:52:01.000000Z"
},
{
"id": 176,
"title": "E-mail",
"answer": "john.doe@vartion.com",
"type": "text",
"created_at": "2024-04-18T11:51:56.000000Z",
"updated_at": "2024-04-18T11:52:04.000000Z"
},
{
"id": 548,
"title": "Name",
"answer": null,
"type": "text",
"created_at": "2024-05-28T11:15:07.000000Z",
"updated_at": "2024-05-28T11:15:07.000000Z"
},
{
"id": 170,
"title": "Website",
"answer": null,
"type": "url",
"created_at": "2024-04-18T10:01:46.000000Z",
"updated_at": "2024-05-07T07:39:07.000000Z"
},
{
"id": 166,
"title": "Please give a number",
"answer": "2",
"type": "number",
"created_at": "2024-04-18T10:01:46.000000Z",
"updated_at": "2024-04-23T12:42:32.000000Z"
},
{
"id": 167,
"title": "Website",
"answer": "http://example.com",
"type": "url",
"created_at": "2024-04-18T10:01:46.000000Z",
"updated_at": "2024-04-23T12:42:38.000000Z"
},
{
"id": 171,
"title": "Choose a fruit",
"answer": null,
"type": "dropdown",
"created_at": "2024-04-18T10:01:46.000000Z",
"updated_at": "2024-05-07T07:39:10.000000Z"
},
{
"id": 172,
"title": "Choose another fruit",
"answer": "a",
"type": "dropdown",
"created_at": "2024-04-18T10:01:46.000000Z",
"updated_at": "2024-04-23T12:42:40.000000Z"
},
{
"id": 177,
"title": "Please upload your document",
"answer": null,
"type": "upload",
"created_at": "2024-04-18T11:51:56.000000Z",
"updated_at": "2024-04-18T11:51:56.000000Z"
},
{
"id": 185,
"title": "E-mail",
"answer": null,
"type": "text",
"created_at": "2024-04-22T08:11:43.000000Z",
"updated_at": "2024-04-23T14:28:48.000000Z"
},
{
"id": 169,
"title": "Please choose another number",
"answer": "2",
"type": "number",
"created_at": "2024-04-18T10:01:46.000000Z",
"updated_at": "2024-04-23T12:43:29.000000Z"
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 13,
"per_page": 15,
"to": 15,
"total": 187
}
}
This endpoint allows you to download an uploaded file for a question in an onboarding form.
The ID of the onboarding form question.
curl --request GET \
--get "https://app.pascal.vartion.com/api/v1/onboarding-form-question-uploads/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: */*" \
--header "OrganizationId: 1"
The usual flow for a one time case link is as follows:
This endpoint allows you to create one time case links.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/one-time-case-links" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"case_uuid\": \"ac6962da-4ff0-42ad-b5ee-35153d15e924\",
\"user_email\": \"example@vartion.com\",
\"return_url\": \"https:\\/\\/localhost\",
\"expires_at\": \"1970-01-31 23:00:00\",
\"interface_language\": \"en-gb\"
}"
{
"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
}
This endpoint allows you to view a one time case link.
The id of the one time case link.
curl --request GET \
--get "https://app.pascal.vartion.com/api/v1/one-time-case-links/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1"
{
"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
}
This endpoint allows you to delete a one time case link.
The id of the one time case link.
curl --request DELETE \
"https://app.pascal.vartion.com/api/v1/one-time-case-links/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1"
This endpoint allows you to authenticate using a one time case link.
When successful, the user will be redirected to the page where they can resolve the linked case.
curl --request GET \
--get "https://app.pascal.vartion.com/v1/one-time-case-link-authentication" \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: text/html" \
--data "id=1&token=fpncIktnu0GfUKJl"
<!DOCTYPE html>
<html lang="en-gb">
...
</html>
This endpoint allows you to authenticate using a one time case link.
When successful, the user will be redirected to the page where they can resolve the linked case.
curl --request POST \
"https://app.pascal.vartion.com/v1/one-time-case-link-authentication" \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: text/html" \
--data "id=1&token=fpncIktnu0GfUKJl"
<!DOCTYPE html>
<html lang="en-gb">
...
</html>
This endpoint allows you to start the generation of one or more PDF case reports. Cases to be used are selected using the filter parameter. An id is returned which can be used to check if the download is finished and download the PDF when it is finished.
curl --request POST \
"https://app.pascal.vartion.com/api/v1/pdf/case" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "OrganizationId: 1" \
--data "{
\"filename\": \"fiphukrvsk\",
\"detailed\": true,
\"language\": \"ru\",
\"pages\": [
\"overview\"
],
\"comment\": \"Automatically generated from the Pascal API\",
\"to_email\": false,
\"filters\": {
\"transaction_id\": [
13
],
\"exclude_transaction_id\": [
13
],
\"deleted\": false,
\"uuid\": [
\"a2546955-de2d-4907-a533-0846ee46f719\"
],
\"nationalities\": null,
\"country\": null
}
}"
{
"id": "99d92417-1264-4cce-9e86-e71a8357e044",
"name": "Generating case reports...",
"totalJobs": 1,
"pendingJobs": 1,
"progress": 0,
"createdAt": "2023-08-09T11:02:04.000000Z",
}
This endpoint allows you to download a previously generated report, using a report id or a report job id.
The ID of the report.
curl --request GET \
--get "https://app.pascal.vartion.com/api/v1/reports/757E06f8-3B6d-1c0c-d68c-3aA0dceB14bc|1/download" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/pdf" \
--header "OrganizationId: 1"
PDF report file