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.

Recent changes

In Pascal 6.2 we replaced the `jurisdiction` field with a `country` field in cases:

  • The `country` field is an ISO 3166-1 alpha-3 country code string.
  • The `jurisdiction` field was removed.
  • These changes apply to the "Import cases", "Search cases", and "Update case" endpoints.

Webhooks

You can configure webhooks in the organization settings -> integrations page. You can also see recent webhook calls and their payloads there.
Our webhooks are sent using the following IP address: 51.105.166.62
Although authenticity is commonly verified using IP addresses, we recommend against this approach. Instead we only send you an 'ID' of a resource (like a case) and you can use our authenticated API to fetch the resource. Our IP address may change in the future, if this happens we will notify you.
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

Webhook events

Pascal sends POST requests with `Content-Type: application/json` to your configured URL. The following request body shows an example of all available webhook events that we can send:

{
    "events": [
        {
            "event": "Case created",
            "organization_id": 1,
            "case_id": 1,
            "case_uuid": "6e182844-727e-4f04-a2a1-e6096baacc1b"
        },
        {
            "event": "Case searched",
            "organization_id": 1,
            "case_id": 1,
            "case_uuid": "6e182844-727e-4f04-a2a1-e6096baacc1b"
        },
        {
            "event": "Case hits found",
            "organization_id": 1,
            "case_id": 1,
            "case_uuid": "6e182844-727e-4f04-a2a1-e6096baacc1b"
        },
        {
            "event": "Case resolved",
            "organization_id": 1,
            "case_id": 1,
            "case_uuid": "6e182844-727e-4f04-a2a1-e6096baacc1b"
        }
    ]
}
We may or may not send multiple events in one webhook call. The `events` array contains one or more event objects. There is no guarantee that events are sent together or in order. You may use our API to fetch the updated information after receiving a webhook call.

Client errors

Our API returns 4xx status codes when there is something wrong with your request.
Common client errors are:

  • 401 Unauthorized. You are either missing the `Authorization` header or the specified `Authorization` header is incorrect.
  • 403 Forbidden. This usually means that your account is not allowed to access the given resource. Maybe you forgot to add the `OrganizationId` header.
  • 404 Not Found. The resource you are trying to access does not exist.
  • 419 Session Expired. Your session has expired. This can happen if you use a session cookie to authenticate with the API. We recommend you use `API tokens` instead as described under `Authenticating requests`.
  • 422 Unprocessable Entity. Something in the request body is incorrect. Every endpoint has its own validation rules. This error means that the request did not comply with those rules. The response usually contains information about what fields are incorrect.
  • 429 Too Many Requests. Our API has a global rate limit of 1.000 requests per minute per user. This error means that that limit was reached.

Authenticating requests

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.

Getting started

Who this guide is for

This guide is intended for developers who wish to integrate Pascal into any onboarding, screening, or monitoring workflow.

Concepts

  • Case. In Pascal, a case is the central record used to screen a single entity, whether a person, business, or asset. It contains all associated searches, potential matches (hits), decisions, and monitoring activity.

  • Client. In Pascal, a client is a container used to group related cases. It represents an organisation-level view, for example a company that holds several directors and UBOs. Clients can be created, searched, and linked to cases, making it easier to manage relationships between multiple entities.

  • Hit. Hit - A hit in Pascal is a potential match against screening categories such as sanctions, PEPs, enforcements, or media. Hits may be unresolved (awaiting review) or resolved (classified as true or false positives). Pascal tracks hit counts per source on each case.

  • Unresolved hit. An unresolved hit is a potential match that still requires review, usually by a compliance officer. It indicates that further investigation is needed to determine whether it is relevant. The hits-key-information endpoint provides a compact overview of unresolved hits.

  • Resolved hit. A resolved hit is one that has been reviewed and classified as either a true positive (confirmed match) or a false positive (not relevant). Resolved hits remain recorded in the case history for audit purposes.

  • Monitoring. Monitoring in Pascal means automatically re-screening a case at defined intervals to detect new or updated hits. Monitoring frequency can be set per data source. Typically, a case status moves from In review during initial screening to Monitored when ongoing checks are required.

  • UUID. A UUID (Universal Unique Identifier) is the unique reference Pascal assigns to a case upon creation or import. It is used in API calls for searches, updates, and filtering, ensuring consistent identification across integrations.

Important things to know early

  • Everything begins with a Case - In Pascal, nearly all data, including hits, is tied to a case ID. Without a case, attempts to retrieve hits or screening results will not return anything.

  • search=true on Update Case - Adding search=true will perform a new search. All unresolved hits are cleared, resolved hits are kept, and both refound and new hits can appear again as unresolved. This is typically used when you want to restart the compliance review cycle.

  • Clients vs Cases - why both? - In Pascal, both clients and cases serve distinct but complementary purposes. A client provides the organisation-level view: it groups together all related cases for the same customer, such as a company with its directors and UBOs. Clients also let you link related customers and manage onboarding workflows in a structured way. A case, by contrast, is the detailed record of screening for one entity – person, business, or asset - It contains all associated searches, potential matches (hits), decisions, and monitoring activity.

Example onboarding flow

When no sanctions are found, the onboarding process might look like this:

  • Create a Client - e.g. “Acme Corp”.

  • Import a case for the entity you want to screen - person, business or asset. Import is asynchronous and returns UUIDs so you can track progress.

  • Check search status or fetch key hit info - cases/searches for list views, or cases/{id}/hits-key-information for a concise unresolved view while the reviewer decides.

  • Resolve hits in your process - once unresolved items are reviewed, set the case to Monitored and configure monitoring frequencies as needed.

  • Re-check later - when you need a new search (apart from monitoring), call Update Case with search=true. This resets the unresolved set for a new cycle without losing previous resolutions.

Example interpretation of "no hits"

A newly created case might return no hits, in which situation onboarding could simply continue. If unresolved hits appear instead, a compliance officer might review them and decide to include true positives (which could block onboarding) or exclude false positives (after which onboarding could proceed).

Quick start

Below is a minimal recipe to see the flow end-to-end.

  • Create a Client POST /api/v1/clients - returns the client id.

  • Import a case POST /api/v1/cases/import - send up to 200 entities; you get case UUIDs back and can deduplicate or update duplicates.

  • Poll for cases or search POST /api/v1/cases/searches - list cases and check source success and hit counts.

  • Retrieve unresolved items GET /api/v1/cases/{id}/hits-key-information - show what needs manual review.

  • Move to monitoring or re-check PATCH /api/v1/cases/{id} - set status to Monitored and monitoring frequencies; later, use search=true to start a fresh search cycle.

Webhooks

  • Pascal expects any 2xx to consider delivery successful. Calls time out after 15 seconds - a 200 after 16 seconds is treated as failed and retried. Up to 10 attempts are made using increasing intervals, then Pascal stops retrying.

  • You can subscribe from your organisation settings and you will receive a JSON events array per request.

Bank Accounts

Import bank accounts

POST
https://app.pascal.vartion.com
/api/v1/bank-accounts/import
requires authentication

This endpoint allows you to import a list of bank accounts asynchronously. You can provide up to 200 bank accounts per request.

Note: Access to transaction monitoring is required to use this endpoint.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/bank-accounts/import" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"bank_accounts\": [
        {
            \"name\": \"Main Business Account\",
            \"account_number\": \"NL91ABNA0417164300\",
            \"swift_code\": \"ABNANL2A\",
            \"bank_name\": \"ABN AMRO Bank N.V.\",
            \"currency\": \"EUR\",
            \"account_type\": \"current\",
            \"clients\": [
                \"b\"
            ],
            \"active\": false
        }
    ],
    \"batch_id\": \"99cbb5f6-49a7-492c-a1de-92ff356d98d8\",
    \"count\": 150
}"
Example response:
{
    "id": "99cbb5f6-49a7-492c-a1de-92ff356d98d8",
    "name": "Importing bank accounts...",
    "totalJobs": 1,
    "pendingJobs": 1,
    "progress": 0,
    "createdAt": "2023-08-02T18:48:22.000000Z",
    "finishedAt": null,
}

Cases

Import cases

POST
https://app.pascal.vartion.com
/api/v1/cases/import
requires authentication

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. A list of "imported" case UUIDs will also be returned. This allows you to distinguish between cases that were imported and those that were deduplicated. You can use the case search API to check the status of the imported cases.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/cases/import" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --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\": [
                \"b\"
            ],
            \"sources\": [
                \"sanctions\"
            ],
            \"gender\": \"Male\",
            \"nationalities\": [
                \"NLD\"
            ],
            \"country_of_birth\": \"NLD\",
            \"country_of_residence\": \"NLD\",
            \"date_of_birth\": \"2000-01-31\",
            \"passportVerificationForm\": {
                \"dateOfExpiry\": \"2025-10-22\",
                \"documentNumber\": \"ngzmiyv\",
                \"givenNames\": \"d\",
                \"lastName\": \"l\",
                \"optionalData\": \"jnikhwaykcmyuw\"
            },
            \"company_number\": \"NL123\",
            \"country\": \"NL\",
            \"address\": \"3721 West Fork Street, Montana\",
            \"asset_type\": \"vessel\",
            \"identifier\": \"123456\"
        }
    ],
    \"deduplicate\": false,
    \"update_duplicates\": false,
    \"update_duplicates_clients\": false,
    \"batch_id\": \"99cbb5f6-49a7-492c-a1de-92ff356d98d8\",
    \"count\": 150
}"
Example response:
{
    "id": "99cbb5f6-49a7-492c-a1de-92ff356d98d8",
    "name": "Importing cases...",
    "totalJobs": 1,
    "pendingJobs": 1,
    "progress": 0,
    "createdAt": "2023-08-02T18:48:22.000000Z",
    "finishedAt": null,
    "uuids": [
        "a2546955-de2d-4907-a533-0846ee46f719",
        "d6253422-5197-429c-a8eb-4af7f6f7fffc",
        "052c7db6-bdca-4b95-b872-363b4287200f",
    ],
    "imported": [
        "a2546955-de2d-4907-a533-0846ee46f719",
    ]
}

Search cases

POST
https://app.pascal.vartion.com
/api/v1/cases/searches
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/cases/searches" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"per_page\": 10,
    \"page\": 1,
    \"sort_by\": \"updated_at\",
    \"sort_order\": \"desc\",
    \"secondary_sort_by\": \"uuid\",
    \"secondary_sort_order\": \"desc\",
    \"with\": [
        \"hitCountsPerSource\"
    ],
    \"user_id\": [
        1
    ],
    \"group_id\": [
        1
    ],
    \"created_at\": [
        \"2025-01-01\",
        \"2025-01-31\"
    ],
    \"updated_at\": [
        \"2025-01-01\",
        \"2025-01-31\"
    ],
    \"deleted\": false,
    \"uuid\": [
        \"a2546955-de2d-4907-a533-0846ee46f719\"
    ],
    \"company_number\": \"b\",
    \"address\": \"n\",
    \"hit_resolution\": [
        [
            \"unresolved\",
            \"positive\"
        ]
    ],
    \"hit_source\": null,
    \"hit_time_range\": [
        \"2025-01-01\",
        \"2025-01-31\"
    ],
    \"client_status\": [
        [
            \"Active\"
        ]
    ],
    \"clients\": {
        \"cases_count\": [
            1
        ],
        \"clients_count\": [
            1
        ],
        \"created_at\": [
            \"2025-01-01\",
            \"2025-01-31\"
        ],
        \"risk\": [
            [
                \"high\",
                \"very high\"
            ]
        ],
        \"updated_at\": [
            \"2025-01-01\",
            \"2025-01-31\"
        ]
    }
}"
Example response:
{
    "data": [
        {
            "additional_terms": null,
            "address": null,
            "aliases": null,
            "clients": [
                {
                    "name": "John Doe",
                    "id": 1
                }
            ],
            "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_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_id": null,
            "uuid": "a2546955-de2d-4907-a533-0846ee46f719"
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "per_page": 10,
        "to": 1,
        "total": 1
    }
}

Update case

PATCH
https://app.pascal.vartion.com
/api/v1/cases/{id}
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
string
required

The ID of the case.

Example:
B3b1a0de-E464-0660-dEBB-cE54cDE1a84b|15

Body Parameters

Example request:
curl --request PATCH \
    "https://app.pascal.vartion.com/api/v1/cases/B3b1a0de-E464-0660-dEBB-cE54cDE1a84b|15" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"clients\": null,
    \"status\": \"Monitored\",
    \"monitoring_frequency\": \"365\",
    \"name\": \"John Doe\",
    \"confidence\": \"Relative\",
    \"gender\": \"Male\",
    \"nationalities\": [
        \"NLD\"
    ],
    \"country_of_birth\": \"NLD\",
    \"country_of_residence\": \"NLD\",
    \"date_of_birth\": \"2000-01-31\",
    \"passportVerificationForm\": {
        \"country\": \"b\",
        \"dateOfExpiry\": \"n\",
        \"documentNumber\": \"gzmiyvd\",
        \"givenNames\": \"l\",
        \"lastName\": \"j\",
        \"nationality\": \"nik\",
        \"optionalData\": \"hwaykcmyuwpwlv\"
    },
    \"company_number\": \"NL123\",
    \"country\": \"NL\",
    \"address\": \"3721 West Fork Street, Montana\",
    \"asset_type\": \"vessel\",
    \"identifier\": \"123456\"
}"
Example response:
{
    "additional_terms": null,
    "address": null,
    "aliases": null,
    "asset_type": null,
    "clients": [
        {
            "name": "John Doe",
            "id": 1
        }
    ],
    "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_id": null,
    "id": 2049050,
    "identifier": null,
    "country": null,
    "monitoring_frequency_sanctions": 90,
    "monitoring_frequency_peps": 90,
    "monitoring_frequency_news": 90,
    "monitoring_frequency_enforcements": 90,
    "monitoring_frequency_other": 90,
    "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_id": null,
    "uuid": "a2546955-de2d-4907-a533-0846ee46f719"
}

Case hits key information

GET
https://app.pascal.vartion.com
/api/v1/cases/{id}/hits-key-information
requires authentication

This endpoint allows you to get the key information of a case's hits.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
string
required

The ID of the case.

Example:
B3b1a0de-E464-0660-dEBB-cE54cDE1a84b|15
Example request:
curl --request GET \
    --get "https://app.pascal.vartion.com/api/v1/cases/B3b1a0de-E464-0660-dEBB-cE54cDE1a84b|15/hits-key-information" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "unresolved": {
        "enforcements": [
            {
                "data": {
                    "birth_dates": null,
                    "connections": null,
                    "name": "John Doe",
                    "nationalities": [
                        {
                            "country": "United States of America"
                        }
                    ]
                },
                "resolution": "unresolved",
                "source": "enforcements"
            }
        ]
    }
}

Clients

Create client

POST
https://app.pascal.vartion.com
/api/v1/clients
requires authentication

This endpoint allows you to create a new client.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/clients" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\"
}"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    x-ratelimit-limit
                                                            : 1000
                                                                                                                    x-ratelimit-remaining
                                                            : 998
                                                                                                                    vary
                                                            : Precognition, Origin
                                                         
{
    "id": 95106,
    "name": "b",
    "organization_id": 1,
    "created_at": "2025-09-29T14:43:22.000000Z",
    "updated_at": "2025-09-29T14:43:22.000000Z",
    "description": "",
    "status": "Active",
    "assignee_user_id": null,
    "onboarding_status": null,
    "onboarding_risk": null,
    "cases_count": 2,
    "risk": null,
    "hits_total_count": 0,
    "hits_unresolved_count": 0,
    "resolve_progress": 100
}

Get client

GET
https://app.pascal.vartion.com
/api/v1/clients/{id}
requires authentication

This endpoint allows you to get detailed information on a specific client.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The ID of the client.

Example:
50031
Example request:
curl --request GET \
    --get "https://app.pascal.vartion.com/api/v1/clients/50031" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    x-ratelimit-limit
                                                            : 1000
                                                                                                                    x-ratelimit-remaining
                                                            : 997
                                                                                                                    vary
                                                            : Precognition, Origin
                                                         
{
    "message": "No query results for model [App\\Models\\Client]."
}

Search clients

POST
https://app.pascal.vartion.com
/api/v1/clients/searches
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/clients/searches" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": null,
    \"not_id\": [
        16
    ],
    \"assignee_user_id\": [
        22
    ],
    \"client_client_id\": [
        67
    ],
    \"not_client_client_id\": [
        66
    ],
    \"not_cases_id\": [
        27
    ],
    \"onboarding_status\": [
        \"waiting for client\"
    ],
    \"organization_id\": null,
    \"page\": 1,
    \"per_page\": 10,
    \"sort_by\": \"updated_at\",
    \"sort_order\": \"desc\",
    \"updated_at\": [
        \"2025-01-01\",
        \"2025-01-31\"
    ],
    \"created_at\": [
        \"2025-01-01\",
        \"2025-01-31\"
    ],
    \"risk\": [
        [
            \"high\",
            \"very high\"
        ]
    ],
    \"cases_count\": [
        1
    ],
    \"clients_count\": [
        1
    ],
    \"custom_filters\": [
        \"has_onboarding_forms\"
    ],
    \"cases\": {
        \"group_id\": [
            1
        ],
        \"user_id\": [
            1
        ],
        \"created_at\": [
            \"2025-01-01\",
            \"2025-01-31\"
        ],
        \"status\": null,
        \"type\": null,
        \"updated_at\": [
            \"2025-01-01\",
            \"2025-01-31\"
        ],
        \"hits\": {
            \"resolution\": [
                [
                    \"unresolved\",
                    \"positive\"
                ]
            ],
            \"source\": null,
            \"time_range\": [
                \"2025-01-01\",
                \"2025-01-31\"
            ]
        }
    }
}"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    x-ratelimit-limit
                                                            : 1000
                                                                                                                    x-ratelimit-remaining
                                                            : 996
                                                                                                                    vary
                                                            : Precognition, Origin
                                                         
{
    "message": "The cases count length must be one of: 0, 2. (and 5 more errors)",
    "errors": {
        "cases_count": [
            "The cases count length must be one of: 0, 2."
        ],
        "clients_count": [
            "The clients count length must be one of: 0, 2."
        ],
        "risk.0": [
            "This field must be a string.",
            "The selected value is invalid."
        ],
        "cases.hits.resolution.0": [
            "This field must be a string.",
            "The selected value is invalid."
        ]
    }
}

Link clients

POST
https://app.pascal.vartion.com
/api/v1/clients/{id}/clients
requires authentication

This endpoint allows you to link a client to other clients.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The id of the client that you want to link to other clients.

Example:
1

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/clients/1/clients" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"client_ids\": [
        2,
        3
    ]
}"
Example response:
[Empty response]

Unlink clients

DELETE
https://app.pascal.vartion.com
/api/v1/clients/{id}/clients
requires authentication

This endpoint allows you to unlink a client from other clients.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The id of the client that you want to unlink from other clients.

Example:
1

Body Parameters

Example request:
curl --request DELETE \
    "https://app.pascal.vartion.com/api/v1/clients/1/clients" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"client_ids\": [
        2,
        3
    ]
}"
Example response:
[Empty response]

Onboarding forms

Search onboarding form templates

POST
https://app.pascal.vartion.com
/api/v1/onboarding-form-templates/searches
requires authentication

This endpoint allows you search for any created onboarding form templates.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/onboarding-form-templates/searches" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 1,
    \"per_page\": 10,
    \"updated_at\": [
        \"2025-01-01\",
        \"2025-01-31\"
    ],
    \"sort_by\": \"updated_at\",
    \"sort_order\": \"desc\"
}"
Example response:
{
    "data": [
        {
            "created_at": "2024-11-28T08:34:03.000000Z",
            "external_name": "Standard Form",
            "id": 88,
            "name": "Standard Form",
            "organization_id": 15,
            "updated_at": "2024-11-28T08:34:03.000000Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "per_page": 10,
        "to": 1,
        "total": 1
    }
}

Create onboarding form

POST
https://app.pascal.vartion.com
/api/v1/onboarding-forms
requires authentication

This endpoint allows you to create an onboarding form for an existing client.
Adding an onboarding form to a client will make it visible in the Onboarding application.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/onboarding-forms" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"assignee_user_email\": \"[email protected]\",
    \"external_users\": [
        {
            \"first_name\": \"g\",
            \"last_name\": \"z\",
            \"email\": \"[email protected]\"
        }
    ],
    \"onboarding_form_template_id\": 16,
    \"client_id\": 22
}"
Example response:
{
    "assignee_user_id": 24,
    "client_id": 2834,
    "created_at": "2025-03-31T11:22:10.000000Z",
    "external_name": "Standard Form",
    "external_questions_open": 1,
    "external_questions_total": 1,
    "id": 273,
    "name": "Standard Form",
    "organization_id": 10240,
    "questions_open": 1,
    "questions_total": 1,
    "status": "in progress",
    "updated_at": "2025-03-31T11:22:10.000000Z"
}

Search onboarding forms

POST
https://app.pascal.vartion.com
/api/v1/onboarding-forms/searches
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/onboarding-forms/searches" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 1,
    \"per_page\": 10,
    \"name\": \"b\",
    \"updated_at\": [
        \"2025-01-01\",
        \"2025-01-31\"
    ],
    \"sort_by\": \"updated_at\",
    \"sort_order\": \"desc\",
    \"external_user_ids\": [
        22
    ],
    \"client_id\": [
        67
    ],
    \"with\": [
        \"user\"
    ]
}"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    x-ratelimit-limit
                                                            : 1000
                                                                                                                    x-ratelimit-remaining
                                                            : 999
                                                                                                                    vary
                                                            : Precognition, Origin
                                                         
{
    "data": [],
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 10,
        "to": null,
        "total": 0
    }
}

Search onboarding form questions

POST
https://app.pascal.vartion.com
/api/v1/onboarding-form-questions/searches
requires authentication

This endpoint allows you to search for onboarding form questions using filters.

The following properties are always returned for each question:

  • id: A globally unique identifier of the question.
  • external_id: An optional identifier manually assigned to questions by developers.
  • question_id: A unique identifier of the question within the onboarding form.
  • parent_question_id: This is the 'question_id' of the parent question if it exists. It is used to retrieve a question's parent, enabling hierarchical organization of questions. This is particularly useful for groups of questions from repeatable entities, such as persons, businesses, or other repeaters. For example, in a form with questions about multiple individuals (e.g., Person 1, Person 2), the parent_question_id links each nested question (like "First Name" or "Last Name") to its corresponding parent entity. By querying with the parent_question_id, you can determine which person or entity a specific question belongs to within the form structure. Repeatable entity questions will always have an empty answer field.
  • linked_to_parent_answer_option: If this question is a child of a 'true_false' question, this field will contain the option of the parent question that this question is linked to. For example if the parent question has a 'Yes' and 'No' option, the parent question's answer is 'Yes', and this field is 'Yes', then this question is visible. If this field is 'No', then this question is hidden.
  • title
  • answer
  • type
  • created_at
  • updated_at

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/onboarding-form-questions/searches" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"external_ids\": [
        \"ABC123\"
    ],
    \"page\": 1,
    \"per_page\": 10,
    \"onboarding_form_ids\": null
}"
Example response:
{
    "data": [
        {
            "id": 164,
            "question_id": 2,
            "parent_question_id": null,
            "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,
            "question_id": 3,
            "parent_question_id": null,
            "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,
            "question_id": 4,
            "parent_question_id": null,
            "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,
            "question_id": 5,
            "parent_question_id": null,
            "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,
            "question_id": 6,
            "parent_question_id": null,
            "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,
            "question_id": 7,
            "parent_question_id": null,
            "title": "E-mail",
            "answer": "[email protected]",
            "type": "text",
            "created_at": "2024-04-18T11:51:56.000000Z",
            "updated_at": "2024-04-18T11:52:04.000000Z"
        },
        {
            "id": 548,
            "question_id": 8,
            "parent_question_id": null,
            "title": "Name",
            "answer": null,
            "type": "text",
            "created_at": "2024-05-28T11:15:07.000000Z",
            "updated_at": "2024-05-28T11:15:07.000000Z"
        },
        {
            "id": 170,
            "question_id": 9,
            "parent_question_id": null,
            "title": "Website",
            "answer": null,
            "type": "url",
            "created_at": "2024-04-18T10:01:46.000000Z",
            "updated_at": "2024-05-07T07:39:07.000000Z"
        },
        {
            "id": 166,
            "question_id": 10,
            "parent_question_id": null,
            "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,
            "question_id": 11,
            "parent_question_id": null,
            "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,
            "question_id": 12,
            "parent_question_id": null,
            "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,
            "question_id": 13,
            "parent_question_id": null,
            "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,
            "question_id": 14,
            "parent_question_id": null,
            "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": 189,
            "question_id": 15,
            "parent_question_id": null,
            "title": "Persons to email",
            "answer": null,
            "type": "repeater",
            "created_at": "2024-04-22T08:11:43.000000Z",
            "updated_at": "2024-04-23T14:28:48.000000Z"
        },
        {
            "id": 185,
            "question_id": 16,
            "parent_question_id": 15,
            "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,
            "question_id": 17,
            "parent_question_id": null,
            "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
    }
}

Download `upload` question file

GET
https://app.pascal.vartion.com
/api/v1/onboarding-form-question-uploads/{id}
requires authentication

This endpoint allows you to download an uploaded file for a question in an onboarding form.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Accept
Example:
application/json
OrganizationId
Example:
1
Content-Type
Example:
application/json

URL Parameters

id
integer
required

The ID of the onboarding form question.

Example:
1
Example request:
curl --request GET \
    --get "https://app.pascal.vartion.com/api/v1/onboarding-form-question-uploads/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Accept: application/json" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json"
Example response:

One time case links

The usual flow for a one time case link is as follows:

  1. Create a one time case link using your personal access token.
  2. Store the generated one time case link id and token somewhere secure.
  3. Use a one time case link (this is done by your user). See: Authenticate using a one time case link
POST
https://app.pascal.vartion.com
/api/v1/one-time-case-links
requires authentication

This endpoint allows you to create one time case links.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/one-time-case-links" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"case_uuid\": \"ac6962da-4ff0-42ad-b5ee-35153d15e924\",
    \"user_email\": \"[email protected]\",
    \"return_url\": \"https:\\/\\/localhost\",
    \"expires_at\": \"1970-01-31 23:00:00\",
    \"interface_language\": \"en-gb\"
}"
Example response:
GET
https://app.pascal.vartion.com
/api/v1/one-time-case-links/{id}
requires authentication

This endpoint allows you to view a one time case link.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The id of the one time case link.

Example:
1
Example request:
curl --request GET \
    --get "https://app.pascal.vartion.com/api/v1/one-time-case-links/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
DELETE
https://app.pascal.vartion.com
/api/v1/one-time-case-links/{id}
requires authentication

This endpoint allows you to delete a one time case link.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
integer
required

The id of the one time case link.

Example:
1
Example request:
curl --request DELETE \
    "https://app.pascal.vartion.com/api/v1/one-time-case-links/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
GET
https://app.pascal.vartion.com
/v1/one-time-case-link-authentication

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.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request GET \
    --get "https://app.pascal.vartion.com/v1/one-time-case-link-authentication" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"token\": \"fpncIktnu0GfUKJl\"
}"
Example response:
POST
https://app.pascal.vartion.com
/v1/one-time-case-link-authentication

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.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/v1/one-time-case-link-authentication" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"id\": 1,
    \"token\": \"fpncIktnu0GfUKJl\"
}"
Example response:

Reports

Generate case reports

POST
https://app.pascal.vartion.com
/api/v1/pdf/case
requires authentication

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.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/pdf/case" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"batch_name\": \"b\",
    \"filename\": \"n\",
    \"detailed\": true,
    \"language\": \"ru\",
    \"pages\": [
        \"overview\"
    ],
    \"comment\": \"Automatically generated from the Pascal API\",
    \"to_email\": false,
    \"filters\": {
        \"user_id\": [
            1
        ],
        \"group_id\": [
            1
        ],
        \"created_at\": [
            \"2025-01-01\",
            \"2025-01-31\"
        ],
        \"updated_at\": [
            \"2025-01-01\",
            \"2025-01-31\"
        ],
        \"deleted\": false,
        \"uuid\": [
            \"a2546955-de2d-4907-a533-0846ee46f719\"
        ],
        \"company_number\": \"g\",
        \"address\": \"z\",
        \"hit_resolution\": [
            [
                \"unresolved\",
                \"positive\"
            ]
        ],
        \"hit_source\": null,
        \"hit_time_range\": [
            \"2025-01-01\",
            \"2025-01-31\"
        ],
        \"client_status\": [
            [
                \"Active\"
            ]
        ],
        \"clients\": {
            \"cases_count\": [
                1
            ],
            \"clients_count\": [
                1
            ],
            \"created_at\": [
                \"2025-01-01\",
                \"2025-01-31\"
            ],
            \"risk\": [
                [
                    \"high\",
                    \"very high\"
                ]
            ],
            \"updated_at\": [
                \"2025-01-01\",
                \"2025-01-31\"
            ]
        }
    }
}"
Example response:
{
    "id": "99d92417-1264-4cce-9e86-e71a8357e044",
    "name": "Generating case reports...",
    "totalJobs": 1,
    "pendingJobs": 1,
    "progress": 0,
    "createdAt": "2023-08-09T11:02:04.000000Z",
}

Download reports

GET
https://app.pascal.vartion.com
/api/v1/reports/{id}/download
requires authentication

This endpoint allows you to download a previously generated report, using a report id or a report job id.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Accept
Example:
application/json
Content-Type
Example:
application/json

URL Parameters

id
string
required

The ID of the report.

Example:
B3b1a0de-E464-0660-dEBB-cE54cDE1a84b|15
Example request:
curl --request GET \
    --get "https://app.pascal.vartion.com/api/v1/reports/B3b1a0de-E464-0660-dEBB-cE54cDE1a84b|15/download" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Accept: application/json" \
    --header "Content-Type: application/json"
Example response:
PDF report file
Report is not (yet) generated

Transaction monitoring risk config

Get risk config

GET
https://app.pascal.vartion.com
/api/v1/transaction-monitoring-risk-config
requires authentication

This endpoint returns the transaction monitoring risk configuration.

Note: Access to transaction monitoring is required to use this endpoint.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://app.pascal.vartion.com/api/v1/transaction-monitoring-risk-config" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    // A list of country codes (ISO 3166-1 alpha-3) that are currently blocked.
    "blocked_countries": [
        "NLD",
        "USA",
        "JPN"
    ]
}

Transactions

Import transactions

POST
https://app.pascal.vartion.com
/api/v1/transactions/import
requires authentication

This endpoint allows you to import a list of transactions asynchronously.

Note: Access to transaction monitoring is required to use this endpoint.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
OrganizationId
Example:
1
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://app.pascal.vartion.com/api/v1/transactions/import" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "OrganizationId: 1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transactions\": [
        {
            \"client_account_number\": \"1234567890\",
            \"client_swift_code\": \"ABNANL2A\",
            \"client_bank_account_country\": \"NL\",
            \"identifier\": \"TXN123456\",
            \"amount\": 1000.5,
            \"currency\": \"EUR\",
            \"direction\": \"incoming\",
            \"counter_party_name\": \"John Doe\",
            \"counter_party_currency\": \"USD\",
            \"counter_party_account_number\": \"0987654321\",
            \"counter_party_swift_code\": \"RABONL2U\",
            \"counter_party_bank_name\": \"Rabobank\",
            \"counter_party_bank_account_country\": \"NL\",
            \"description\": \"Invoice payment #12345\",
            \"transaction_date\": \"2023-08-02T14:30:00+02:00\",
            \"type\": \"wire_transfer\",
            \"balance_after_transaction\": 15000.75
        }
    ],
    \"batch_id\": \"99cbb5f6-49a7-492c-a1de-92ff356d98d8\",
    \"count\": 150
}"
Example response:
{
    "id": "99cbb5f6-49a7-492c-a1de-92ff356d98d8",
    "name": "Importing transactions...",
    "totalJobs": 1,
    "pendingJobs": 1,
    "progress": 0,
    "createdAt": "2023-08-02T18:48:22.000000Z",
    "finishedAt": null
}