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: []