Download OpenAPI specification:
REST API for ingesting, retrieving, and managing private entity data. Supports batch and real-time ingestion of persons, organizations, accounts, payments, and products, along with contact management, user-defined identifiers/texts, and transaction monitoring.
Initialize and configure Elasticsearch indices, templates, and lifecycle policies for transaction monitoring
Creates or replaces the Elasticsearch index (with alias and mapping), lifecycle policy, and index template used by the transaction monitoring module. Idempotent -- safe to call multiple times.
{- "status": true,
- "message": "string"
}Accepts a search payload, queries Elasticsearch for matching transactions, and streams the results back as a CSV file attachment. The response uses chunked transfer encoding.
Elasticsearch query payload defining the transaction search criteria
{ }{- "status": false,
- "error": "string",
- "message": "string"
}Performs a paginated search against the Elasticsearch transaction index. Supports cursor-based pagination via the cursor_id parameter for efficient deep paging.
| max_page_size | integer Default: 10 Maximum number of records to return per page |
| cursor_id | string Opaque cursor returned by a previous search response for fetching the next page |
Elasticsearch query payload defining the search criteria
{ }{ }Appends a new batch of entity data to an existing job identified by job_id. The payload is validated, uploaded to cloud blob storage, and a background thread monitors the downstream processing service. Returns HTTP 202 with the job_id once the batch is accepted.
| job_id required | string <uuid> UUID of the existing ingestion job to append data to |
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| load_type | string Default: "delta" Enum: "full" "delta" Whether this is a full load (replaces all data) or delta load (incremental changes) |
| is_mc_enable | string Enum: "true" "false" Enable or disable master-config chunking for the ingestion job |
| mc_chunk_size | integer <= 1000 Number of records per chunk when master-config chunking is enabled. Capped at 1000. |
Entity data payload for batch ingestion. Contains the entity type, batch metadata, and the data records array.
| entity_type | string The type of entity in the data array |
| batch_id | integer Identifier for this batch within the job. Defaults to 1. |
| num_of_batches | integer Total number of batches expected for this job. Defaults to 1. |
| data | Array of objects Array of entity data records to ingest |
{- "entity_type": "string",
- "batch_id": 0,
- "num_of_batches": 0,
- "data": [
- { }
]
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}Functionally identical to PUT on this path. Submits a batch of entity data under an existing job_id.
| job_id required | string <uuid> UUID of the existing ingestion job |
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| load_type | string Default: "delta" Enum: "full" "delta" Whether this is a full load (replaces all data) or delta load (incremental changes) |
Entity data payload for batch ingestion. Contains the entity type, batch metadata, and the data records array.
| entity_type | string The type of entity in the data array |
| batch_id | integer Identifier for this batch within the job. Defaults to 1. |
| num_of_batches | integer Total number of batches expected for this job. Defaults to 1. |
| data | Array of objects Array of entity data records to ingest |
{- "entity_type": "string",
- "batch_id": 0,
- "num_of_batches": 0,
- "data": [
- { }
]
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}Creates a new ingestion job, validates the payload against entity-type rules, uploads the data to cloud blob storage, and kicks off background processing. Returns HTTP 202 with the newly generated job_id. Supports optional master-config chunking via is_mc_enable and mc_chunk_size.
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| load_type | string Default: "delta" Enum: "full" "delta" Whether this is a full load (replaces all data) or delta load (incremental changes) |
| is_mc_enable | string Enum: "true" "false" Enable or disable master-config chunking for the ingestion job |
| mc_chunk_size | integer <= 1000 Number of records per chunk when master-config chunking is enabled. Capped at 1000. |
Entity data payload for batch ingestion. Contains the entity type, batch metadata, and the data records array.
| entity_type | string The type of entity in the data array |
| batch_id | integer Identifier for this batch within the job. Defaults to 1. |
| num_of_batches | integer Total number of batches expected for this job. Defaults to 1. |
| data | Array of objects Array of entity data records to ingest |
{- "entity_type": "string",
- "batch_id": 0,
- "num_of_batches": 0,
- "data": [
- { }
]
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}Functionally identical to PUT on this path. Creates a new ingestion job and submits entity data for processing.
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| load_type | string Default: "delta" Enum: "full" "delta" Whether this is a full load (replaces all data) or delta load (incremental changes) |
Entity data payload for batch ingestion. Contains the entity type, batch metadata, and the data records array.
| entity_type | string The type of entity in the data array |
| batch_id | integer Identifier for this batch within the job. Defaults to 1. |
| num_of_batches | integer Total number of batches expected for this job. Defaults to 1. |
| data | Array of objects Array of entity data records to ingest |
{- "entity_type": "string",
- "batch_id": 0,
- "num_of_batches": 0,
- "data": [
- { }
]
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}Accepts a JSON Patch-style array of operations (op, path, value) to partially update an entity record. The entity is identified by entity_type, id, source_system, and business_unit query parameters. Creates a new background job for the patch operation.
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| id | string The primary identifier of the entity to patch |
| source_system | string Source system code that owns the entity |
| business_unit | string Business unit code that owns the entity |
Array of JSON Patch-style operations to apply to the entity
| op | string Operation type (e.g. replace, add, remove) |
| path | string JSON pointer to the field being modified |
| value | any New value for the field |
[- {
- "op": "string",
- "path": "string",
- "value": null
}
]{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}Queues an entity deletion through the standard ingestion pipeline. The entity is identified by entity_type, id, source_system, and business_unit query parameters. A background job is created and the deletion is processed asynchronously.
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| id | string The primary identifier of the entity to delete |
| source_system | string Source system code that owns the entity |
| business_unit | string Business unit code that owns the entity |
{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}V2 ingestion endpoint that validates and transforms entity data before uploading to blob storage and inserting a message into the processing queue. Supports upsert and overwrite modes. For account entities, a reference_entity_type field is required in the payload.
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| load_type | string Default: "delta" Enum: "full" "delta" Whether this is a full load (replaces all data) or delta load (incremental changes) |
| is_mc_enable | string Enum: "true" "false" Enable or disable master-config chunking for the ingestion job |
| mc_chunk_size | integer <= 1000 Number of records per chunk when master-config chunking is enabled. Capped at 1000. |
| mode | string Default: "upsert" Enum: "upsert" "overwrite" Ingestion mode. 'upsert' merges with existing data; 'overwrite' replaces existing records entirely. |
Entity data payload for batch ingestion. Contains the entity type, batch metadata, and the data records array.
| entity_type | string The type of entity in the data array |
| batch_id | integer Identifier for this batch within the job. Defaults to 1. |
| num_of_batches | integer Total number of batches expected for this job. Defaults to 1. |
| data | Array of objects Array of entity data records to ingest |
{- "entity_type": "string",
- "batch_id": 0,
- "num_of_batches": 0,
- "data": [
- { }
]
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}V2 patch endpoint that validates patch operations, transforms them through the ETL execute pipeline, and uploads the result for asynchronous processing. Each patch operation object in the array is enriched with the entity ID, source system, and business unit before processing.
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| id | string The primary identifier of the entity to patch |
| source_system | string Source system code |
| business_unit | string Business unit code |
Array of patch operations
| op | string |
| path | string |
| value | any |
[- {
- "op": "string",
- "path": "string",
- "value": null
}
]{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}V2 delete endpoint. Validates the delete request, passes it through the ETL execute pipeline for transformation, and queues the deletion for asynchronous processing.
| entity_type | string Enum: "person" "organization" "payment" "product" "account" "relatedentities" "identifier" "account_product" The type of entity being ingested |
| id | string The primary identifier of the entity to delete |
| source_system | string Source system code |
| business_unit | string Business unit code |
{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}Queries the request metadata table for the given job_id and returns a summary of each batch's current processing status. If a batch has failed or partially succeeded, the response includes a link to the invalidated records file.
| job_id required | string <uuid> UUID of the ingestion job to query |
{- "job_id": "string",
- "job_summary": [
- {
- "batch_id": "string",
- "status": "string",
- "invalidated_records_link": "string"
}
]
}Looks up the pipeline metadata table by file_name and returns the current processing status, counts of transformed and validated records, and a link to any invalidated records.
JSON object containing the file name to look up
| file_name required | string The exact file name as it was submitted to the ingestion pipeline |
{- "file_name": "string"
}{- "file_name": "string",
- "status": "string",
- "invalidated_records_link": "string",
- "records_transformed": 0,
- "records_validated": 0
}Proxies the request to the downstream ETL service to fetch the fully processed entity record. Requires entity_type, id, and optionally source_system and business_unit to uniquely identify the record.
| entity_type required | string Enum: "person" "organization" "payment" "product" "account" Type of entity to retrieve |
| id required | string Primary identifier of the entity |
| source_system | string Source system code |
| business_unit | string Business unit code |
{ }Returns a paginated list of contacts associated with the given referenceId. Results are sorted by firstName. An optional JSON-encoded filters parameter allows filtering by firstName, lastName, position, email, phoneNumber, isMainContact, sourceSystem, businessUnit, or contactType. The contactType field in the response is enriched with display labels from the lookup table.
| referenceId required | string The entity reference ID to fetch contacts for |
| page_number required | integer >= 1 1-based page number |
| page_size required | integer >= 1 Number of records per page |
| filters | string JSON-encoded array of filter objects, each with 'columnName' and 'columnValue' keys |
{- "data": [
- {
- "contactId": "string",
- "referenceId": "string",
- "sourceSystem": "string",
- "businessUnit": "string",
- "firstName": "string",
- "lastName": "string",
- "position": "string",
- "phoneNumber": "string",
- "email": "string",
- "contactType": [
- {
- "id": "string",
- "label": "string"
}
], - "isMainContact": true
}
], - "total_num_of_records": 0
}Accepts an array of contact objects. If a contactId is present in an item, the corresponding record is updated; otherwise a new contact is created with an auto-generated UUID. At most one contact per referenceId may have isMainContact set to true. The endpoint validates required fields (referenceId, firstName, lastName, phoneNumber) and data types before persisting.
Array of contact objects to create or update
| contactId | string UUID of an existing contact to update. Omit to create a new contact. |
| referenceId required | string Entity reference ID to associate the contact with |
| sourceSystem | string |
| businessUnit | string |
| firstName required | string |
| lastName required | string |
| position | string |
| phoneNumber required | string |
string | |
| contactType | Array of strings Array of contact type codes. Stored as comma-separated values internally. |
| isMainContact required | boolean At most one contact per referenceId may be true |
[- {
- "contactId": "string",
- "referenceId": "string",
- "sourceSystem": "string",
- "businessUnit": "string",
- "firstName": "string",
- "lastName": "string",
- "position": "string",
- "phoneNumber": "string",
- "email": "string",
- "contactType": [
- "string"
], - "isMainContact": true
}
][- {
- "contactId": "string",
- "referenceId": "string",
- "sourceSystem": "string",
- "businessUnit": "string",
- "firstName": "string",
- "lastName": "string",
- "position": "string",
- "phoneNumber": "string",
- "email": "string",
- "contactType": [
- "string"
], - "isMainContact": true
}
]Deletes one or more contact records identified by a comma-separated list of contactId values. If any contactId does not exist, the request is rejected with HTTP 404 before any deletions occur.
| contact_ids required | string Comma-separated list of contactId values to delete |
{- "status": 200,
- "detail": "Deleted"
}Retrieves the contact record matching the given contactId. The contactType field is enriched with display labels from the lookup table. Returns an array (typically with zero or one element).
| id required | string The UUID of the contact to retrieve |
[- {
- "contactId": "string",
- "referenceId": "string",
- "sourceSystem": "string",
- "businessUnit": "string",
- "firstName": "string",
- "lastName": "string",
- "position": "string",
- "phoneNumber": "string",
- "email": "string",
- "contactType": [
- {
- "id": "string",
- "label": "string"
}
], - "isMainContact": true
}
]Returns all contact records for the given referenceId without pagination. Supports the same optional filters parameter as the paginated list endpoint. Intended for bulk export workflows.
| referenceId required | string The entity reference ID to export contacts for |
| filters | string JSON-encoded array of filter objects with 'columnName' and 'columnValue' keys |
{- "data": [
- {
- "contactId": "string",
- "referenceId": "string",
- "sourceSystem": "string",
- "businessUnit": "string",
- "firstName": "string",
- "lastName": "string",
- "position": "string",
- "phoneNumber": "string",
- "email": "string",
- "contactType": [
- {
- "id": "string",
- "label": "string"
}
], - "isMainContact": true
}
], - "total_num_of_records": 0
}Synchronous create, update, and delete operations for primary entities (person, organization, account, payment, product)
Synchronously creates a primary entity record (person, organization, account, payment, or product). The request body is validated against the JSON schema for the given entity type. The primaryEntityData object must contain all required attributes for the entity type. An optional primaryEntityExtraData object may contain flat key-value pairs of additional data.
| primary_entity_type required | string Enum: "person" "organization" "account" "payment" "product" The type of primary entity to operate on |
Primary entity creation payload
| businessUnit required | string Business unit owning the entity |
| sourceSystem required | string Source system providing the entity |
| primaryEntityID required | string Unique ID of the entity within the source system |
| primaryEntityData required | object Entity-type-specific attributes (validated against JSON schema) |
| primaryEntityExtraData | object Optional flat key-value pairs of extra data. Must not contain nested objects. |
{- "businessUnit": "string",
- "sourceSystem": "string",
- "primaryEntityID": "string",
- "primaryEntityData": { },
- "primaryEntityExtraData": { }
}{- "version": 0
}Synchronously updates a primary entity record. Only the businessUnit, sourceSystem, and primaryEntityID fields are required; all other primaryEntityData fields are optional and only provided fields will be updated. Validated against the entity type's JSON schema with relaxed required-field rules.
| primary_entity_type required | string Enum: "person" "organization" "account" "payment" "product" The type of primary entity to operate on |
Primary entity update payload (partial update supported)
| businessUnit required | string |
| sourceSystem required | string |
| primaryEntityID required | string |
| primaryEntityData | object Fields to update. Only provided fields are modified. |
| primaryEntityExtraData | object Optional flat key-value pairs. Must not contain nested objects. |
{- "businessUnit": "string",
- "sourceSystem": "string",
- "primaryEntityID": "string",
- "primaryEntityData": { },
- "primaryEntityExtraData": { }
}{- "version": 0
}Synchronously deletes a primary entity identified by the combination of businessUnit, sourceSystem, and primaryEntityID query parameters. Exactly these three query parameters must be provided.
| primary_entity_type required | string Enum: "person" "organization" "account" "payment" "product" The type of primary entity to operate on |
| businessUnit required | string Business unit that owns the entity |
| sourceSystem required | string Source system that owns the entity |
| primaryEntityID required | string The primary entity's unique identifier within the source system |
{- "version": 0
}Synchronous create, update, and delete operations for related/weak entities linked to a primary entity
Synchronously creates a related (weak) entity linked to a primary entity. The relatedEntityPath identifies the type of relationship (e.g. address, identifier, contactpoint). Date fields like birthDate and incorporationDate are automatically converted from dd-MMM-YYYY to YYYY-MM-DD format if needed.
| primary_entity_type required | string Enum: "person" "organization" "account" "payment" "product" The type of primary entity to operate on |
Related entity creation payload
| businessUnit required | string |
| sourceSystem required | string |
| primaryEntityID required | string ID of the parent primary entity |
| relatedEntityPath required | string Relationship type (e.g. address, identifier, contactpoint, nationality) |
| relatedEntityHash | string Optional hash identifier for the related entity |
| relatedEntity required | object Related entity attributes (validated against relationship-type JSON schema) |
{- "businessUnit": "string",
- "sourceSystem": "string",
- "primaryEntityID": "string",
- "relatedEntityPath": "string",
- "relatedEntityHash": "string",
- "relatedEntity": { }
}{- "version": 0
}Synchronously updates or deletes a related entity identified by its relatedEntityHash. The operation field must be either 'UPDATE' or 'DELETE'. For UPDATE operations, only the provided relatedEntity fields are modified. For DELETE operations, the related entity is removed from the primary entity.
| primary_entity_type required | string Enum: "person" "organization" "account" "payment" "product" The type of primary entity to operate on |
Related entity update or delete payload
| businessUnit required | string |
| sourceSystem required | string |
| primaryEntityID required | string |
| relatedEntityHash required | string Hash identifier of the related entity to update/delete |
| operation required | string Enum: "UPDATE" "DELETE" Whether to update or delete the related entity |
| relatedEntity | object Updated attributes (required for UPDATE, ignored for DELETE) |
{- "businessUnit": "string",
- "sourceSystem": "string",
- "primaryEntityID": "string",
- "relatedEntityHash": "string",
- "operation": "UPDATE",
- "relatedEntity": { }
}{- "version": 0
}Manage custom identifier records (e.g. tax IDs, passport numbers) attached to entities
Creates a new identifier record (e.g. passport number, tax ID) linked to an entity via reference_id. Required fields are reference_id, identifier_type, and identifier_value. The created_date and updated_date are set to the current UTC timestamp automatically. An audit log entry is created upon successful insertion.
Identifier record to create
| reference_id required | string Entity reference ID to link the identifier to |
| identifier_type required | integer Lookup ID for the identifier type |
| identifier_value required | string The identifier value (e.g. passport number) |
| issuing_authority | string Authority that issued the identifier |
| valid_from | string <date> Start of validity period (YYYY-MM-DD) |
| valid_to | string <date> End of validity period (YYYY-MM-DD) |
| created_by | integer User ID of the creator |
| created_by_username | string Username of the creator |
| updated_by | integer User ID of the updater |
| updated_by_username | string Username of the updater |
{- "reference_id": "string",
- "identifier_type": 0,
- "identifier_value": "string",
- "issuing_authority": "string",
- "valid_from": "2019-08-24",
- "valid_to": "2019-08-24",
- "created_by": 0,
- "created_by_username": "string",
- "updated_by": 0,
- "updated_by_username": "string"
}{- "id": 0,
- "reference_id": "string",
- "identifier_type": 0,
- "identifier_value": "string",
- "issuing_authority": "string",
- "valid_from": "2019-08-24",
- "valid_to": "2019-08-24",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}Accepts an array of reference_id values and returns all identifier records grouped by reference_id. Reference IDs with no matching identifiers appear as empty arrays in the response. Note: this endpoint returns HTTP 200 for all outcomes including validation errors and auth failures.
List of reference IDs to search
| reference_ids required | Array of strings non-empty Array of entity reference IDs to look up |
{- "reference_ids": [
- "string"
]
}{- "property1": [
- {
- "id": 0,
- "reference_id": "string",
- "identifier_type": 0,
- "identifier_value": "string",
- "issuing_authority": "string",
- "valid_from": "2019-08-24",
- "valid_to": "2019-08-24",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}
], - "property2": [
- {
- "id": 0,
- "reference_id": "string",
- "identifier_type": 0,
- "identifier_value": "string",
- "issuing_authority": "string",
- "valid_from": "2019-08-24",
- "valid_to": "2019-08-24",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}
]
}Updates an existing identifier record. Only the fields provided in the request body are modified; omitted fields remain unchanged. Each changed field generates an individual audit log entry capturing the old and new values. The updated_date is set to the current UTC timestamp automatically.
| identifier_id required | integer Auto-incremented ID of the identifier record |
Fields to update on the identifier record
| identifier_type | integer Updated identifier type lookup ID |
| identifier_value | string Updated identifier value |
| issuing_authority | string Updated issuing authority |
| valid_from | string <date> Updated start of validity (YYYY-MM-DD) |
| valid_to | string <date> Updated end of validity (YYYY-MM-DD) |
| updated_by | integer User ID performing the update |
| updated_by_username | string Username performing the update |
{- "identifier_type": 0,
- "identifier_value": "string",
- "issuing_authority": "string",
- "valid_from": "2019-08-24",
- "valid_to": "2019-08-24",
- "updated_by": 0,
- "updated_by_username": "string"
}{- "id": 0,
- "reference_id": "string",
- "identifier_type": 0,
- "identifier_value": "string",
- "issuing_authority": "string",
- "valid_from": "2019-08-24",
- "valid_to": "2019-08-24",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}Permanently removes an identifier record. The updated_by and updated_by_username query parameters are used for audit logging purposes only. Note: this endpoint returns HTTP 200 for all outcomes including not-found and auth failures.
| identifier_id required | integer Auto-incremented ID of the identifier record to delete |
| updated_by | string User ID of the person performing the deletion (for audit trail) |
| updated_by_username | string Username of the person performing the deletion (for audit trail) |
{- "message": "401 Unauthorized"
}Creates a new free-text comment record linked to an entity via reference_id. If a record with the same reference_id already exists, it is updated (upsert behavior). Required fields are reference_id and comment. An audit log entry is created only for new records, not updates.
Text record to create or update
| reference_id required | string Entity reference ID. If a record with this ID already exists, it is updated. |
| comment required | string Free-text comment content |
| created_by | integer User ID of the creator |
| created_by_username | string Username of the creator |
| updated_by | integer User ID of the updater |
| updated_by_username | string Username of the updater |
{- "reference_id": "string",
- "comment": "string",
- "created_by": 0,
- "created_by_username": "string",
- "updated_by": 0,
- "updated_by_username": "string"
}{- "id": 0,
- "reference_id": "string",
- "comment": "string",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}Accepts an array of reference_id values and returns the matching text records keyed by reference_id. Since text records have a unique reference_id, each key maps to a single object (or null if no record exists). Note: this endpoint returns HTTP 200 for all outcomes including validation errors and auth failures.
List of reference IDs to search
| reference_ids required | Array of strings non-empty Array of entity reference IDs to look up |
{- "reference_ids": [
- "string"
]
}{- "property1": {
- "id": 0,
- "reference_id": "string",
- "comment": "string",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}, - "property2": {
- "id": 0,
- "reference_id": "string",
- "comment": "string",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}
}Updates an existing text record. Only the fields provided in the request body are modified. Each changed field generates an individual audit log entry. The updated_date is set to the current UTC timestamp automatically.
| text_id required | integer Auto-incremented ID of the text record |
Fields to update on the text record
| reference_id | string Updated entity reference ID |
| comment | string Updated comment text |
| updated_by | integer User ID performing the update |
| updated_by_username | string Username performing the update |
{- "reference_id": "string",
- "comment": "string",
- "updated_by": 0,
- "updated_by_username": "string"
}{- "id": 0,
- "reference_id": "string",
- "comment": "string",
- "created_by": 0,
- "created_by_username": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "updated_by": 0,
- "updated_by_username": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}Permanently removes a text record. The updated_by and updated_by_username query parameters are used for audit logging purposes only. Note: this endpoint returns HTTP 200 for all outcomes including not-found and auth failures.
| text_id required | integer Auto-incremented ID of the text record to delete |
| updated_by | string User ID of the person performing the deletion (for audit trail) |
| updated_by_username | string Username of the person performing the deletion (for audit trail) |
{- "message": "401 Unauthorized"
}Composite ingestion endpoint that accepts person, account, and product entity data in a single payload, validates each entity type against its JSON schema, transforms and maps the data through the ETL pipeline, and uploads the result for asynchronous processing. Account entities are automatically annotated with reference_entity_type='person'. Supports upsert and overwrite modes.
| is_mc_enable | string Enum: "true" "false" Enable or disable master-config chunking for the ingestion job |
| mc_chunk_size | integer <= 1000 Number of records per chunk when master-config chunking is enabled. Capped at 1000. |
| mode | string Default: "upsert" Enum: "upsert" "overwrite" Ingestion mode. 'upsert' merges with existing data; 'overwrite' replaces existing records. |
Composite payload containing person, account, and product data keyed by entity type
| batch_id | integer Optional batch identifier. Defaults to 1 if not provided. |
required | object Entity data grouped by entity type name (e.g. 'person', 'account', 'product'). Each value is an array of entity records. |
{- "batch_id": 0,
- "data": {
- "property1": [
- { }
], - "property2": [
- { }
]
}
}{- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "status": "started"
}Internal-only endpoints for bulk data retrieval, bulk deletion of related entities, and blob migration
Lists all blobs in the temporary Azure Blob Storage container, downloads each one, uploads it to the permanent container, and then deletes the original from the temporary container. Returns a count of migrated files.
{- "code": 200,
- "message": "string"
}Accepts a list of internal entity IDs and returns the matching records. Any IDs that do not correspond to existing records are returned in the not_found_ids array. This is an internal endpoint with no authentication requirement.
Entity type and list of internal IDs to look up
| entity_type required | string The entity type to query (e.g. person, organization) |
| entity_ids required | Array of strings List of internal entity IDs to retrieve |
{- "entity_type": "string",
- "entity_ids": [
- "string"
]
}{- "data": [
- { }
], - "not_found_ids": [
- "string"
]
}API for managing alerts:
| crime_indicator required | string (Crime Indicator) Category of crime detected |
| entity_id required | string (Entity Id) Unique identifier for the subject entity |
Description (string) or Description (null) (Description) Additional contextual text describing the alert | |
required | object (EvidenceRequest) Structured evidence details |
Dedup Key (string) or Dedup Key (null) (Dedup Key) Unique identifier for semantic deduplication |
[- {
- "crime_indicator": "fraud",
- "entity_id": "ent_999",
- "description": "string",
- "evidence": {
- "watchlist": "interpol_red",
- "confidence": 0.95,
- "watchlist_data": { },
- "search_parameters": { },
- "match_criteria": { },
- "description": "string"
}, - "dedup_key": "string"
}
][- 0
]Entity Id (string) or Entity Id (null) (Entity Id) | |
Case Id (string) or Case Id (null) (Case Id) | |
Status (string) or Status (null) (Status) | |
Start Date (string) or Start Date (null) (Start Date) | |
End Date (string) or End Date (null) (End Date) | |
| include_evidence | boolean (Include Evidence) Default: false |
| sort_by | string (AlertSortBy) Default: "created_at" Enum: "created_at" "id" "crime_indicator" "entity_id" "case_id" |
| sort_order | string (SortOrder) Default: "desc" Enum: "asc" "desc" |
| page | integer (Page) >= 1 Default: 1 |
| page_size | integer (Page Size) [ 1 .. 100 ] Default: 20 |
{- "total_results": 0,
- "page": 0,
- "page_size": 0,
- "total_pages": 0,
- "results": [
- {
- "id": 123,
- "status": "new",
- "crime_indicator": "fraud",
- "creation_date": "2019-08-24T14:15:22Z",
- "entity_id": "ent_999",
- "case_id": "case_abc",
- "description": "string",
- "evidence": {
- "watchlist": "interpol_red",
- "confidence": 0.95,
- "watchlist_data": { },
- "search_parameters": { },
- "match_criteria": { },
- "description": "string"
}
}
]
}| alert_id required | integer (Alert Id) Unique alert identifier |
{- "id": 123,
- "status": "new",
- "crime_indicator": "fraud",
- "created_at": "2019-08-24T14:15:22Z",
- "entity_id": "ent_999",
- "case_id": "case_abc",
- "description": "string",
- "evidence": {
- "watchlist": "interpol_red",
- "confidence": 0.95,
- "watchlist_data": { },
- "search_parameters": { },
- "match_criteria": { },
- "description": "string"
}
}| alert_id required | integer (Alert Id) Unique alert identifier |
| status_code required | string (Status Code) The target status task definition key from the Activiti workflow |
{- "status_code": "in_progress"
}{- "id": 123,
- "status": "new",
- "crime_indicator": "fraud",
- "created_at": "2019-08-24T14:15:22Z",
- "entity_id": "ent_999",
- "case_id": "case_abc",
- "description": "string",
- "evidence": {
- "watchlist": "interpol_red",
- "confidence": 0.95,
- "watchlist_data": { },
- "search_parameters": { },
- "match_criteria": { },
- "description": "string"
}
}| alert_id required | integer (Alert Id) Unique alert identifier |
{- "alert_id": 0,
- "status": "string",
- "workflow_status": {
- "name": "In Progress",
- "id": "in_progress",
- "type": "current",
- "end_status": "string"
}, - "available_transitions": [
- {
- "name": "In Progress",
- "id": "in_progress",
- "type": "current",
- "end_status": "string"
}
]
}| alert_ids required | Array of integers (Alert Ids) List of alert IDs to associate |
| case_id required | string (Case Id) Case ID to associate with the alerts |
{- "alert_ids": [
- 101,
- 102
], - "case_id": "case_777"
}[- {
- "id": 123,
- "status": "new",
- "crime_indicator": "fraud",
- "created_at": "2019-08-24T14:15:22Z",
- "entity_id": "ent_999",
- "case_id": "case_abc",
- "description": "string",
- "evidence": {
- "watchlist": "interpol_red",
- "confidence": 0.95,
- "watchlist_data": { },
- "search_parameters": { },
- "match_criteria": { },
- "description": "string"
}
}
]Case management is the basis for effective Enterprise Risk Management because it represents one key way to achieve a complete view of customer activity and to detect cross-channel fraud and money laundering. While point solutions can prove very effective in managing certain fraud and money laundering types, no combination of point solutions can bring all the data together in one place to afford a view of activity across the entire range of customer activity.
Create Case with given request in CaseCreate schema. Return 201
| verify_entity | boolean (Verify Entity) Default: true |
| x-auth-token required | string (X-Auth-Token) |
| name required | string (Name) |
| priority | integer (Priority) |
| customer_internal_id required | string (Customer Internal Id) |
required | Type (integer) or Type (string) (Type) |
| risk | integer (Risk) |
| entity_id | string (Entity Id) |
| comment | string (Comment) |
| originator required | string (Originator) |
| requested_date | string <date-time> (Requested Date) |
| due_date | string <date-time> (Due Date) |
| entity_url | string (Entity Url) |
| jurisdiction_code required | string (Jurisdiction Code) |
| country | string (Country) |
| region_uplift | integer (Region Uplift) |
| products | Array of integers (Products) |
| entity_info | string (Entity Info) |
| address | string (Address) |
| type_of_relation required | integer (Type Of Relation) |
| entity_name required | string (Entity Name) |
| entity_type required | any (src__case__enums__EntityType) Enum: "organization" "personnel" Enum representing the entity type. |
| alert_type | string (Alert Type) |
| alert_id | integer (Alert Id) |
| tenant | string (Tenant) |
| is_synthetic_entity_id | boolean (Is Synthetic Entity Id) |
| primaryEntityId | string (Primaryentityid) |
| primaryEntityName | string (Primaryentityname) |
| primaryEntityType | any (src__case__enums__EntityType) Enum: "organization" "personnel" Enum representing the entity type. |
| primaryEntityRelationshipType | string (Primaryentityrelationshiptype) |
| primaryEntityUrl | string (Primaryentityurl) |
| mainEntityUrl | string (Mainentityurl) |
| creation_reason_code | string (Creation Reason Code) |
| creation_reason_text | string (Creation Reason Text) |
| status | string (Status) |
{- "name": "string",
- "priority": 0,
- "customer_internal_id": "string",
- "type": 0,
- "risk": 0,
- "entity_id": "string",
- "comment": "string",
- "originator": "string",
- "requested_date": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "entity_url": "string",
- "jurisdiction_code": "string",
- "country": "string",
- "region_uplift": 0,
- "products": [
- 0
], - "entity_info": "string",
- "address": "string",
- "type_of_relation": 0,
- "entity_name": "string",
- "entity_type": "organization",
- "alert_type": "string",
- "alert_id": 0,
- "tenant": "string",
- "is_synthetic_entity_id": true,
- "primaryEntityId": "string",
- "primaryEntityName": "string",
- "primaryEntityType": "organization",
- "primaryEntityRelationshipType": "string",
- "primaryEntityUrl": "string",
- "mainEntityUrl": "string",
- "creation_reason_code": "string",
- "creation_reason_text": "string",
- "status": "string"
}nullUpdate Entity Info for a giving case
| x-auth-token required | string (X-Auth-Token) |
| name required | string (Name) |
| entity_type required | string (Entity Type) |
| case_id required | integer (Case Id) |
| jurisdiction | string (Jurisdiction) |
{- "name": "string",
- "entity_type": "string",
- "case_id": 0,
- "jurisdiction": "string"
}nullReturn Entity Info for a given case id
| x-auth-token required | string (X-Auth-Token) |
| name required | string (Name) |
| case_id required | integer (Case Id) |
{- "name": "string",
- "case_id": 0
}nullUpdate Case with given request in CaseUpdate schema. Return 200
| is_automated_task | boolean (Is Automated Task) Default: false |
| x-auth-token required | string (X-Auth-Token) |
| id required | integer (Id) |
| name | string (Name) |
| type | integer (Type) |
| risk_score | integer (Risk Score) |
| products | Array of integers (Products) |
| due_date | string <date-time> (Due Date) |
| region_uplift | integer (Region Uplift) |
| assignee | integer (Assignee) |
| status | string (Status) |
| reason | Array of integers (Reason) |
| priority | integer (Priority) |
| remediation_date | string <date-time> (Remediation Date) |
| customer_internal_id | string (Customer Internal Id) |
| created_date | string <date-time> (Created Date) |
| business_priority | integer (Business Priority) |
| group_id | integer (Group Id) |
| status_key | string (Status Key) |
| risk | integer (Risk) |
| override_selection | string (Override Selection) |
| entity_id | string (Entity Id) |
| entity_url | string (Entity Url) |
| address | string (Address) |
| entity_info | string (Entity Info) |
| tenant | integer (Tenant) |
| select_entity_url | string (Select Entity Url) |
{- "id": 0,
- "name": "string",
- "type": 0,
- "risk_score": 0,
- "products": [
- 0
], - "due_date": "2019-08-24T14:15:22Z",
- "region_uplift": 0,
- "assignee": 0,
- "status": "string",
- "reason": [
- 0
], - "priority": 0,
- "remediation_date": "2019-08-24T14:15:22Z",
- "customer_internal_id": "string",
- "created_date": "2019-08-24T14:15:22Z",
- "business_priority": 0,
- "group_id": 0,
- "status_key": "string",
- "risk": 0,
- "override_selection": "string",
- "entity_id": "string",
- "entity_url": "string",
- "address": "string",
- "entity_info": "string",
- "tenant": 0,
- "select_entity_url": "string"
}nullUpdate Case with given request in CaseUpdate schema. Return 200
| x-auth-token required | string (X-Auth-Token) |
| case_id | integer (Case Id) |
| entity_id | string (Entity Id) |
| risk_score | number (Risk Score) |
| risk_flags | string (Risk Flags) |
| risk_factors | string (Risk Factors) |
| risk_level | string (Risk Level) |
{- "case_id": 0,
- "entity_id": "string",
- "risk_score": 0,
- "risk_flags": "string",
- "risk_factors": "string",
- "risk_level": "string"
}nullUpdate Case with given request in CaseUpdate schema. Return 200
| x-auth-token required | string (X-Auth-Token) |
| case_id | integer (Case Id) |
| entity_id | string (Entity Id) |
| risk_score | number (Risk Score) |
| risk_flags | string (Risk Flags) |
| risk_factors | string (Risk Factors) |
| risk_level | string (Risk Level) |
{- "case_id": 0,
- "entity_id": "string",
- "risk_score": 0,
- "risk_flags": "string",
- "risk_factors": "string",
- "risk_level": "string"
}nullUpdate Cases with given Assignee. Return 200
| x-auth-token required | string (X-Auth-Token) |
| cases_id_list required | Array of integers (Cases Id List) |
| assignee required | integer (Assignee) |
{- "cases_id_list": [
- 0
], - "assignee": 0
}nullGet cases list with filtration, you can find schemas in separate file case_list
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
| is_open | boolean (Is Open) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "is_open": true
}{- "results": [
- {
- "id": 0,
- "type": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "originator": "string",
- "assignee": {
- "assigned_to": 0,
- "screen_name": "string",
- "group_id": 0,
- "group_code": "string"
}, - "status": {
- "key": "string",
- "value": "string"
}, - "risk_indicator": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override_reason": "string",
- "comment_count": 0,
- "remediation_date": "2019-08-24T14:15:22Z",
- "name": "string",
- "priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "created_on": "2019-08-24T14:15:22Z",
- "jurisdiction_code": "string",
- "modified_on": "2019-08-24T14:15:22Z",
- "modified_by": 0,
- "modified_person": "string",
- "products": [
- {
- "id": 0,
- "code": "string",
- "display_name": "string"
}
], - "region_uplift": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "status_reasons": [
- 0
], - "entity": {
- "entity_id": "string",
- "entity_url": "string",
- "entity_info": "string",
- "entity_type": "organization",
- "select_entity": "string",
- "select_entity_url": "string",
- "entity_name": "string"
}, - "requested_date": "2019-08-24T14:15:22Z",
- "customer_internal_id": "string",
- "status_reason_history": [
- {
- "date": "2019-08-24T14:15:22Z",
- "user": "string",
- "reason_name": "string"
}
], - "previous_status_reasons": [
- "string"
], - "business_priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "due_date": "2019-08-24T14:15:22Z",
- "tenant": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_factors": { },
- "risk_score": 0,
- "risk_flags": null,
- "last_status_update": "2019-08-24T14:15:22Z",
- "creation_reason": "string",
- "aggregate_alert_count": null,
- "overdue_days": 0,
- "entity_id": "string"
}
], - "pagination_information": {
- "page": 0,
- "page_size": 0,
- "total_result": 0
}, - "filter": { }
}Get case list with filtration without external services data. mainly for orchestration
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
| is_open | boolean (Is Open) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "is_open": true
}{- "results": [
- {
- "id": 0,
- "type": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "originator": "string",
- "assignee": {
- "assigned_to": 0,
- "screen_name": "string",
- "group_id": 0,
- "group_code": "string"
}, - "status": {
- "key": "string",
- "value": "string"
}, - "risk_indicator": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override_reason": "string",
- "comment_count": 0,
- "remediation_date": "2019-08-24T14:15:22Z",
- "name": "string",
- "priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "created_on": "2019-08-24T14:15:22Z",
- "jurisdiction_code": "string",
- "modified_on": "2019-08-24T14:15:22Z",
- "modified_by": 0,
- "modified_person": "string",
- "products": [
- {
- "id": 0,
- "code": "string",
- "display_name": "string"
}
], - "region_uplift": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "status_reasons": [
- 0
], - "entity": {
- "entity_id": "string",
- "entity_url": "string",
- "entity_info": "string",
- "entity_type": "organization",
- "select_entity": "string",
- "select_entity_url": "string",
- "entity_name": "string"
}, - "requested_date": "2019-08-24T14:15:22Z",
- "customer_internal_id": "string",
- "status_reason_history": [
- {
- "date": "2019-08-24T14:15:22Z",
- "user": "string",
- "reason_name": "string"
}
], - "previous_status_reasons": [
- "string"
], - "business_priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "due_date": "2019-08-24T14:15:22Z",
- "tenant": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_factors": { },
- "risk_score": 0,
- "risk_flags": null,
- "last_status_update": "2019-08-24T14:15:22Z",
- "creation_reason": "string",
- "aggregate_alert_count": null,
- "overdue_days": 0,
- "entity_id": "string"
}
], - "pagination_information": {
- "page": 0,
- "page_size": 0,
- "total_result": 0
}, - "filter": { }
}Get one case by id
| id_ required | integer (Case id) |
| x-auth-token required | string (X-Auth-Token) |
{- "id": 0,
- "type": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "originator": "string",
- "assignee": {
- "assigned_to": 0,
- "screen_name": "string",
- "group_id": 0,
- "group_code": "string"
}, - "status": {
- "key": "string",
- "value": "string"
}, - "risk_indicator": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override_reason": "string",
- "comment_count": 0,
- "remediation_date": "2019-08-24T14:15:22Z",
- "name": "string",
- "priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "created_on": "2019-08-24T14:15:22Z",
- "jurisdiction_code": "string",
- "modified_on": "2019-08-24T14:15:22Z",
- "modified_by": 0,
- "modified_person": "string",
- "products": [
- {
- "id": 0,
- "code": "string",
- "display_name": "string"
}
], - "region_uplift": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "status_reasons": [
- 0
], - "entity": {
- "entity_id": "string",
- "entity_url": "string",
- "entity_info": "string",
- "entity_type": "organization",
- "select_entity": "string",
- "select_entity_url": "string",
- "entity_name": "string"
}, - "requested_date": "2019-08-24T14:15:22Z",
- "customer_internal_id": "string",
- "status_reason_history": [
- {
- "date": "2019-08-24T14:15:22Z",
- "user": "string",
- "reason_name": "string"
}
], - "previous_status_reasons": [
- "string"
], - "business_priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "due_date": "2019-08-24T14:15:22Z",
- "tenant": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_factors": { },
- "risk_score": 0,
- "risk_flags": null,
- "last_status_update": "2019-08-24T14:15:22Z",
- "creation_reason": "string",
- "aggregate_alert_count": null,
- "overdue_days": 0,
- "entity_id": "string",
- "alerts": [
- { }
]
}Export cases using the same logic as caseList but include extra fields for export.
| type | string (Type) Default: "csv" |
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
| language | string (Language) |
| file_name | string (File Name) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "language": "string",
- "file_name": "string"
}nullValidate file's extension and data inside
| x-auth-token required | string (X-Auth-Token) |
| content-length | string (Content-Length) |
| file required | string <binary> (File) |
nullGet all related cases by case id, name and internal ID
| case_id required | integer (Case Id) |
| search_text required | string (Search Text) |
| x-auth-token required | string (X-Auth-Token) |
{- "results": [
- null
], - "pagination_information": {
- "page": 0,
- "page_size": 0,
- "total_result": 0
}, - "filter": { }
}Save related cases
| x-auth-token required | string (X-Auth-Token) |
| case_id required | integer (Case Id) |
| related_case_id required | Array of integers (Related Case Id) |
{- "case_id": 0,
- "related_case_id": [
- 0
]
}null| x-auth-token required | string (X-Auth-Token) |
| ids required | Array of integers (Ids) |
{- "ids": [
- 0
]
}{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string"
}
]
}get aggregated case status based on dates
| date_from | string <date> (Date From) |
| date_to | string <date> (Date To) |
| x-auth-token required | string (X-Auth-Token) |
[- {
- "date": "2019-08-24",
- "status_count": [
- {
- "count": 0,
- "status": "string"
}
], - "total_count": 0
}
]Get aggregated case counts including open cases, high risk cases, open onboarding cases, and open transaction monitoring cases.
| toggle_mode required | string (ToggleModeEnum) Enum: "all_cases" "my_cases" Toggle mode: 'my_cases' for user's cases, 'all_cases' for all cases |
| x-auth-token required | string (X-Auth-Token) |
{- "open_cases": 0,
- "high_risk_cases": 0,
- "open_onboarding_cases": 0,
- "open_transaction_monitoring_cases": 0
}Returns the list of contacts of the main entity of the case
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
| case_id required | integer (Case Id) |
| is_export | boolean (Is Export) |
| language | string (Language) |
| file_name | string (File Name) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "case_id": 0,
- "is_export": true,
- "language": "string",
- "file_name": "string"
}nullMake contacts relevant/irrelevant for given case
| x-auth-token required | string (X-Auth-Token) |
| case_id required | integer (Case Id) |
| contacts required | Array of strings (Contacts) |
| relevant required | boolean (Relevant) |
{- "case_id": 0,
- "contacts": [
- "string"
], - "relevant": true
}nullReturns the list of case ids whose case status is in particular status for x number of days
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
| case_status | Array of strings (Case Status) |
| days | integer (Days) |
| case_status_tobe_update required | string (Case Status Tobe Update) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "case_status": [
- "string"
], - "days": 0,
- "case_status_tobe_update": "string"
}nullGet all open cases sorted by updated_on
| page | integer (Page) >= 1 Default: 1 |
| page_size | integer (Page Size) [ 1 .. 100 ] Default: 10 |
| x-auth-token required | string (X-Auth-Token) |
{- "results": [
- null
], - "pagination_information": {
- "page": 0,
- "page_size": 0,
- "total_result": 0
}, - "filter": { }
}Update the case status
| x-auth-token required | string (X-Auth-Token) |
| cases_id_list required | Array of integers (Cases Id List) |
| case_status required | string (Case Status) |
{- "cases_id_list": [
- 0
], - "case_status": "string"
}nullGet events lookup
| cursor_id | string (Cursor Id) |
| max_page_size | integer (Max Page Size) |
| x-auth-token required | string (X-Auth-Token) |
required | object (Date) |
| id | string (Id) |
object (FilterModel) | |
object (FilterModel) | |
object (FilterModel) | |
| transaction_ip_address | string (Transaction Ip Address) |
object (TransactionDescription) | |
object (FilterModel) | |
object (ValueModel) | |
object (FilterModel) | |
object (FilterModel) | |
object (FilterModel) | |
object (ValueModel) | |
object (TransactionDescription) | |
| customer_id | string (Customer Id) |
| account_type | string (Account Type) |
object (FilterModel) | |
| counterparty_account_number | string (Counterparty Account Number) |
{- "transaction_date": {
- "from": "string",
- "to": "string"
}, - "id": "string",
- "transaction_type": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "debit_credit_indicator": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "transaction_country": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "transaction_ip_address": "string",
- "counterparty_name": {
- "filter_type": "contains",
- "value": "string"
}, - "counterparty_country": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "origination_transaction_amount": {
- "from": 0,
- "to": 0
}, - "transfer_method": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "transaction_channel": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "from_transaction_currency": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "volume": {
- "from": 0,
- "to": 0
}, - "transaction_description": {
- "filter_type": "contains",
- "value": "string"
}, - "customer_id": "string",
- "account_type": "string",
- "product_reference": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "counterparty_account_number": "string"
}nullGet events lookup csv
| x-auth-token required | string (X-Auth-Token) |
required | object (Date) |
| id | string (Id) |
object (FilterModel) | |
object (FilterModel) | |
object (FilterModel) | |
| transaction_ip_address | string (Transaction Ip Address) |
object (TransactionDescription) | |
object (FilterModel) | |
object (ValueModel) | |
object (FilterModel) | |
object (FilterModel) | |
object (FilterModel) | |
object (ValueModel) | |
object (TransactionDescription) | |
| customer_id | string (Customer Id) |
| account_type | string (Account Type) |
object (FilterModel) | |
| counterparty_account_number | string (Counterparty Account Number) |
{- "transaction_date": {
- "from": "string",
- "to": "string"
}, - "id": "string",
- "transaction_type": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "debit_credit_indicator": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "transaction_country": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "transaction_ip_address": "string",
- "counterparty_name": {
- "filter_type": "contains",
- "value": "string"
}, - "counterparty_country": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "origination_transaction_amount": {
- "from": 0,
- "to": 0
}, - "transfer_method": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "transaction_channel": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "from_transaction_currency": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "volume": {
- "from": 0,
- "to": 0
}, - "transaction_description": {
- "filter_type": "contains",
- "value": "string"
}, - "customer_id": "string",
- "account_type": "string",
- "product_reference": {
- "filter_type": "at_least",
- "value": [
- "string"
]
}, - "counterparty_account_number": "string"
}nullRetrieve timeline data for open vs closed cases for a specific time period.
Query Parameters: period: Time period - 'last_7_days', 'last_30_days' (default), 'last_6_months', or 'last_year' toggle_mode: Toggle mode - 'my_cases' for user's cases, 'all_cases' for all cases
Returns aggregated counts of open and closed cases for the requested period:
Response includes timeline data and accumulated totals for visualization.
| period | string (PeriodEnum) Default: "last_30_days" Enum: "last_7_days" "last_30_days" "last_6_months" "last_year" Time period to retrieve |
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "all_cases" "my_cases" Toggle mode: 'my_cases' for user's cases, 'all_cases' for all cases |
| x-auth-token required | string (X-Auth-Token) |
{- "timeline": [
- {
- "period": "string",
- "start_date": "string",
- "end_date": "string",
- "open": 0,
- "closed": 0
}
], - "total": {
- "open": 0,
- "closed": 0
}
}Retrieve risk trend data (average risk) for cases for a specific time period.
Query Parameters: period: Time period - 'last_7_days', 'last_30_days' (default), 'last_6_months', or 'last_year' toggle_mode: Toggle mode - 'my_cases' for user's cases, 'all_cases' for all cases
Returns average risk values for cases created in the requested period:
Risk values are mapped as: Low=30, Medium=40, High=50 Response includes timeline data with average risk per period and total average risk.
| period | string (PeriodEnum) Default: "last_30_days" Enum: "last_7_days" "last_30_days" "last_6_months" "last_year" Time period to retrieve |
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "all_cases" "my_cases" Toggle mode: 'my_cases' for user's cases, 'all_cases' for all cases |
| x-auth-token required | string (X-Auth-Token) |
{- "timeline": [
- {
- "period": "string",
- "start_date": "string",
- "end_date": "string",
- "average_risk": 0
}
], - "total_average_risk": 0
}Get latest 10 case status update events. Returns events with old_value (previous case status) and new_value (current case status).
Returns: TopEventsResponseSchema: List of top event schemas for case status updates
| x-auth-token required | string (X-Auth-Token) |
{- "events": [
- {
- "event_id": "string",
- "event_type": "Case",
- "entity_type": "string",
- "entity_name": "string",
- "event_date": "2019-08-24T14:15:22Z",
- "event_description": "string",
- "old_value": "string",
- "new_value": "string"
}
]
}Update entity URL for a given case. Return 200
| x-auth-token required | string (X-Auth-Token) |
| case_id required | integer (Case Id) |
| entity_url required | string (Entity Url) |
{- "case_id": 0,
- "entity_url": "string"
}nullRetrieve open cases risk distribution (overall + by alert type) for a specific time period.
Query Parameters: period: Time period - 'last_7_days', 'last_30_days' (default), 'last_6_months', or 'last_year' toggle_mode: Toggle mode - 'my_cases' for user's cases, 'all_cases' for all cases
Returns percentage per risk for all open cases and for each alert type returns risk percentages (LOW/MEDIUM/HIGH) for the requested period:
Response includes percentage per risk and risk percentage per alert type.
| period | string (PeriodEnum) Default: "last_30_days" Enum: "last_7_days" "last_30_days" "last_6_months" "last_year" Time period to retrieve |
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "all_cases" "my_cases" Toggle mode: 'my_cases' for user's cases, 'all_cases' for all open cases |
| x-auth-token required | string (X-Auth-Token) |
{- "cases_per_risk": {
- "low": "string",
- "medium": "string",
- "high": "string"
}, - "cases_per_alerts_and_risk": {
- "property1": {
- "low": "string",
- "medium": "string",
- "high": "string"
}, - "property2": {
- "low": "string",
- "medium": "string",
- "high": "string"
}
}
}Return a list of cases by case type and average lifetime of case by days from case creation to closed status
| toggle_mode required | string (ToggleModeEnum) Enum: "all_cases" "my_cases" Toggle mode: 'my_cases' for user's cases, 'all_cases' for all cases |
| x-auth-token required | string (X-Auth-Token) |
[- {
- "case_type": "string",
- "average_lifetime_days": 0
}
]Get status cases by pending widget data with metrics per open status.
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "all_cases" "my_cases" Toggle mode: 'my_cases' for user's cases, 'all_cases' for all cases |
| x-auth-token required | string (X-Auth-Token) |
[- {
- "status_name": "string",
- "all_open_cases": 0,
- "average_lifetime": 0,
- "above_average": 0
}
]| x-auth-token required | string (X-Auth-Token) |
| name required | string (Name) |
| priority | string (Priority) |
| type required | string (Type) |
| risk | string (Risk) |
| comment | string (Comment) |
| originator_type required | string (Originator Type) |
| originator_id required | string (Originator Id) |
| region_uplift | string (Region Uplift) |
| products | Array of strings (Products) |
| case_reference_identifier required | string (Case Reference Identifier) |
| requested_date | string <date-time> (Requested Date) |
| tenant | string (Tenant) |
| creation_reason_code | string (Creation Reason Code) |
| creation_reason_text | string (Creation Reason Text) |
| entity_name | string (Entity Name) |
| entity_type | string (Entity Type) |
| entity_url | string (Entity Url) |
| entity_id | string (Entity Id) |
| jurisdiction_code | string (Jurisdiction Code) |
| related_case_ids | Array of strings (Related Case Ids) |
| entity_relation_type_code | string (Entity Relation Type Code) |
| due_date | string <date-time> (Due Date) |
{- "name": "string",
- "priority": "string",
- "type": "string",
- "risk": "string",
- "comment": "string",
- "originator_type": "string",
- "originator_id": "string",
- "region_uplift": "string",
- "products": [
- "string"
], - "case_reference_identifier": "string",
- "requested_date": "2019-08-24T14:15:22Z",
- "tenant": "string",
- "creation_reason_code": "string",
- "creation_reason_text": "string",
- "entity_name": "string",
- "entity_type": "string",
- "entity_url": "string",
- "entity_id": "string",
- "jurisdiction_code": "string",
- "related_case_ids": [
- "string"
], - "entity_relation_type_code": "string",
- "due_date": "2019-08-24T14:15:22Z"
}{- "id": 0,
- "uuid": "string"
}| case_uuid required | string (Case Uuid) |
| x-auth-token required | string (X-Auth-Token) |
| name | string (Name) |
| type | string (Type) |
| assignee | string (Assignee) |
| business_priority | string (Business Priority) |
| case_reference_identifier | string (Case Reference Identifier) |
| due_date | string (Due Date) |
| priority | string (Priority) |
| products | Array of strings (Products) |
| region_uplift | string (Region Uplift) |
| remediation_date | string (Remediation Date) |
| status | string (Status) |
| status_reason | Array of strings (Status Reason) |
| user_group | string (User Group) |
{- "name": "string",
- "type": "string",
- "assignee": "string",
- "business_priority": "string",
- "case_reference_identifier": "string",
- "due_date": "string",
- "priority": "string",
- "products": [
- "string"
], - "region_uplift": "string",
- "remediation_date": "string",
- "status": "string",
- "status_reason": [
- "string"
], - "user_group": "string"
}{- "message": "string",
- "status": 0
}| alert_id required | integer (The ID of alert instance) |
| x-auth-token required | string (X-Auth-Token) |
[- {
- "id": 0,
- "type": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "originator": "string",
- "assignee": {
- "assigned_to": 0,
- "screen_name": "string",
- "group_id": 0,
- "group_code": "string"
}, - "status": {
- "key": "string",
- "value": "string"
}, - "risk_indicator": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_override_reason": "string",
- "comment_count": 0,
- "remediation_date": "2019-08-24T14:15:22Z",
- "name": "string",
- "priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "created_on": "2019-08-24T14:15:22Z",
- "jurisdiction_code": "string",
- "modified_on": "2019-08-24T14:15:22Z",
- "modified_by": 0,
- "modified_person": "string",
- "products": [
- {
- "id": 0,
- "code": "string",
- "display_name": "string"
}
], - "region_uplift": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "status_reasons": [
- 0
], - "entity": {
- "entity_id": "string",
- "entity_url": "string",
- "entity_info": "string",
- "entity_type": "organization",
- "select_entity": "string",
- "select_entity_url": "string",
- "entity_name": "string"
}, - "requested_date": "2019-08-24T14:15:22Z",
- "customer_internal_id": "string",
- "status_reason_history": [
- {
- "date": "2019-08-24T14:15:22Z",
- "user": "string",
- "reason_name": "string"
}
], - "previous_status_reasons": [
- "string"
], - "business_priority": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "due_date": "2019-08-24T14:15:22Z",
- "tenant": {
- "id": 0,
- "code": "string",
- "display_name": "string"
}, - "risk_factors": { },
- "risk_score": 0,
- "risk_flags": null,
- "last_status_update": "2019-08-24T14:15:22Z",
- "creation_reason": "string",
- "aggregate_alert_count": null,
- "overdue_days": 0,
- "entity_id": "string"
}
]Get case status information for multiple entities. Returns the count of open and closed cases for each entity.
| x-auth-token required | string (X-Auth-Token) |
| entity_ids required | Array of strings (Entity Ids) |
{- "entity_ids": [
- "string"
]
}[- {
- "entity_id": "string",
- "open": 0,
- "closed": 0
}
]Create one CaseRisk instance by case_id
| x-auth-token required | string (X-Auth-Token) |
| case_id required | integer (Case Id) |
| reason required | string (Reason) |
| new_risk required | integer (New Risk) |
| old_risk required | integer (Old Risk) |
| override_risk required | string (Override Risk) |
{- "case_id": 0,
- "reason": "string",
- "new_risk": 0,
- "old_risk": 0,
- "override_risk": "string"
}nullUpdate field reason in CaseRisk
| x-auth-token required | string (X-Auth-Token) |
| case_risk_id required | integer (Case Risk Id) |
| reason required | string (Reason) |
{- "case_risk_id": 0,
- "reason": "string"
}nullGet list of case screening alerts by case id
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
Array of objects (Alert) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "alert": [
- {
- "alert_type": "string",
- "alert_id": 0,
- "entity_id": "string",
- "entity_name": "string",
- "entity_url": "string"
}
]
}nullGet list of case screening alerts by case id
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
Array of objects (Alert) | |
| language | string (Language) |
| file_name | string (File Name) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "alert": [
- {
- "alert_type": "string",
- "alert_id": 0,
- "entity_id": "string",
- "entity_name": "string",
- "entity_url": "string"
}
], - "language": "string",
- "file_name": "string"
}null| x-auth-token required | string (X-Auth-Token) |
| alert_ids required | Array of integers (Alert Ids) |
{- "alert_ids": [
- 0
]
}nullGet list of case screening alerts by case id
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
Array of objects (Alert) | |
| language | string (Language) |
| file_name | string (File Name) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "alert": [
- {
- "alert_type": "string",
- "alert_id": 0,
- "entity_id": "string",
- "entity_name": "string",
- "entity_url": "string"
}
], - "language": "string",
- "file_name": "string"
}nullGet list of case screening alerts by case id
| id_ required | integer (Case id) |
| x-auth-token required | string (X-Auth-Token) |
| filter_model | string (Filter Model) |
| order_by | string (Order By) |
object (PaginationRequest) | |
| order_in | string (Order In) |
| columns | Array of strings (Columns) |
Array of objects (Alert) |
{- "filter_model": "string",
- "order_by": "string",
- "pagination_information": {
- "page": 0,
- "page_size": 0
}, - "order_in": "string",
- "columns": [
- "string"
], - "alert": [
- {
- "alert_type": "string",
- "alert_id": 0,
- "entity_id": "string",
- "entity_name": "string",
- "entity_url": "string"
}
]
}nullCreate Case Comment with given request. Return 201
| x-auth-token required | string (X-Auth-Token) |
| case_id required | integer (Case Id) |
| comment required | string (Comment) |
| created_date required | string <date-time> (Created Date) |
{- "case_id": 0,
- "comment": "string",
- "created_date": "2019-08-24T14:15:22Z"
}nullUpdate Case Comment with given request.
| x-auth-token required | string (X-Auth-Token) |
| comment_id required | integer (Comment Id) |
| comment required | string (Comment) |
| updated_date required | string <date-time> (Updated Date) |
{- "comment_id": 0,
- "comment": "string",
- "updated_date": "2019-08-24T14:15:22Z"
}nullGet the status-change timeline for a case.
Returns a list of status periods in descending order, each with the status name, reason, start/end dates, who set it, and the IDs of comments created during that period.
| case_id required | integer (Case id) |
| x-auth-token required | string (X-Auth-Token) |
[- {
- "id": 0,
- "status": "string",
- "status_reason": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "set_by": {
- "email_address": "string",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "screen_name": "string",
- "icon": "string"
}, - "comment_ids": [ ]
}
]{- "series": {
- "entity": [
- {
- "entity_type": {
- "key": "case",
- "value": "case"
}, - "status": [ ]
}
], - "widget_type": [ ]
}, - "widget_entities": [
- {
- "entity_type": {
- "key": "case",
- "value": "case"
}, - "x_axis": [ ],
- "y_axis": [ ]
}
], - "titles": {
- "show_xaxis_sub_title": false,
- "show_yaxis_sub_title": false,
- "show_data_labels": false,
- "x_axis_sub_title": "X Axis Title",
- "y_axis_sub_title": "Y Axis Title",
- "widget_name": "Widget Name"
}
}create or update widget instance
| x-auth-token required | string (X-Auth-Token) |
| widget_id | integer (Widget Id) |
| user_settings_json required | string (User Settings Json) |
| dashboard_id | integer (Dashboard Id) |
{- "widget_id": 0,
- "user_settings_json": "string",
- "dashboard_id": 0
}{- "widget_id": 0,
- "user_settings_json": "string",
- "comment": "string",
- "data": { }
}Get Speed vs Quality Quadrant data for analysts.
Returns analyst performance metrics categorized into 4 quadrants:
Each analyst entry includes:
| time_window | string (TimeWindowEnum) Default: "monthly" Enum: "weekly" "monthly" "quarterly" "all_time" Time filter: weekly, monthly, quarterly, or all_time |
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "my_cases" "all_cases" Filter: 'my_cases' for user's data only, 'all_cases' for all analysts |
| x-auth-token required | string (X-Auth-Token) |
{- "entries": [ ],
- "benchmark": {
- "global_avg_speed_days": 0,
- "speed_threshold_fast": 0,
- "speed_threshold_slow": 0,
- "fp_threshold_accurate": 33,
- "fp_threshold_risky": 67,
- "total_analysts": 0,
- "total_cases_analyzed": 0
}, - "quadrant_counts": {
- "fast_accurate": 0,
- "slow_accurate": 0,
- "fast_risky": 0,
- "slow_risky": 0
}
}Get Decision Quality Breakdown per case type (KYC, TM, Screening). For each analyst:
| time_window | string (TimeWindowEnum) Default: "monthly" Enum: "weekly" "monthly" "quarterly" "all_time" Time filter: weekly, monthly, quarterly, or all_time |
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "my_cases" "all_cases" Filter: 'my_cases' for user's data only, 'all_cases' for all analysts |
| x-auth-token required | string (X-Auth-Token) |
{- "screening_by_case_type": [ ]
}Get Analysis Score Overview for analysts.
Returns per-user metrics including:
Supports time_window filtering and toggle_mode (my_cases vs all_cases).
| time_window | string (TimeWindowEnum) Default: "monthly" Enum: "weekly" "monthly" "quarterly" "all_time" Time filter: weekly, monthly, quarterly, or all_time |
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "my_cases" "all_cases" Filter: 'my_cases' for user's data only, 'all_cases' for all analysts |
| x-auth-token required | string (X-Auth-Token) |
{- "users": [ ]
}Get Decision Quality Metrics for analysts.
Detects over-aggressive or under-reporting behaviour by measuring:
| time_window | string (TimeWindowEnum) Default: "monthly" Enum: "weekly" "monthly" "quarterly" "all_time" Time filter: weekly, monthly, quarterly, or all_time |
| toggle_mode | string (ToggleModeEnum) Default: "all_cases" Enum: "my_cases" "all_cases" Filter: 'my_cases' for user's data only, 'all_cases' for all analysts |
| x-auth-token required | string (X-Auth-Token) |
{- "entries": [ ],
- "team_benchmark": {
- "team_fp_rate": 0,
- "team_tp_rate": 0,
- "total_cases": 0
}
}