Skip to main content

Lucinity API (3.3)

Download OpenAPI specification:Download

Welcome to the Lucinity API!

Lucinity is an API-first SaaS solution for AML: our platform ingests your data to make integration and data publishing simple and seamless. Our modular approach separates the functionality of the user interface centered around customer use cases, but the backend APIs are unified so the system can scale with your needs.

Ingestion

Bulk Ingestion

Bulk Ingestion

This endpoint allows you to submit 1000 entities or 32MB, whichever is reached first, of data in bulk to be ingested into the system asynchronously. It is designed to handle high-throughput data processing, ensuring that large datasets are efficiently processed and stored.

Initial Schema Validation:

Upon submission, the system performs an initial validation of the payload’s schema to ensure that the data is correctly formatted and adheres to the expected structure. If the payload fails this schema validation, the system will respond immediately with an error message detailing the issues found, and the request will be rejected.

Downstream Data Validation:

If the payload passes the initial schema validation, the system responds with a 200 OK status code, indicating successful ingestion of the request. The data then enters the processing pipeline for in-depth validation, which includes verifying required relationships and ensuring consistency with existing data in the system.

Errors that occur during this downstream processing—such as data relation validation errors—are not reflected in the initial API response. The status of the downstream processing will either be exposed via an API or a webhook, this implementation is yet to be determined.

Scalability and Data Integrity:

The endpoint is designed to be scalable and optimized for handling high-load scenarios while ensuring data integrity throughout the ingestion pipeline.

Note: This endpoint is still a work in progress and is subject to change.

Authorizations:
BearerToken
Request Body schema: application/json
required
Array of objects (AccountActor) <= 1000 items

List of account actors relationships to ingest.

Array of objects (Balance) <= 1000 items

List of account balances.

Array of objects (Account) <= 1000 items

List of accounts to ingest.

Array of objects (ActorSegmentationGroup) <= 1000 items

List of actor to segmentation group assignments.

Array of Individual (object) or LegalEntity (object) (Actor) <= 1000 items

List of actors to ingest.

Array of AnalysisCase (object) or FilingCase (object) (Case) <= 1000 items

List of cases to ingest.

Array of objects (Communication) <= 1000 items

List of communications to ingest.

Array of AmlV2Observation (object) or FraudObservation (object) or SanctionsObservation (object) or RuleObservation (object) or GenericObservation (object) (Observation) <= 1000 items

List of observations to ingest.

Array of objects (Transaction) <= 1000 items

List of transactions to ingest.

Responses

Request samples

Content type
application/json
{
  • "account_actors": [
    ],
  • "account_balances": [
    ],
  • "accounts": [
    ],
  • "actors": [
    ],
  • "actor_segmentation_groups": [
    ],
  • "cases": [
    ],
  • "communications": [
    ],
  • "observations": [
    ],
  • "transactions": [
    ]
}

Response samples

Content type
text/plain
OK

Get Bulk Case Ingestion Status

Returns the latest ingestion status for a case. This endpoint is designed for use with the asynchronous ingestion via the Bulk API. Due to its asynchronous nature, not all entities may be processed when a case is being processed.

A case will only be fully processed after all referenced entities have been successfully ingested. The status field, along with the missing_relations field, can be used to determine whether the case has been successfully processed. If there are missing relations, additional ingestion may be required before the case is fully processed.

Lucinity guarantees that this data will be retained for 30 days, after which it will be subject to removal.

Authorizations:
BearerToken
path Parameters
id
required
string

The ID of the case to fetch the ingestion status for.

Responses

Response samples

Content type
application/json
{
  • "status": "COMPLETED",
  • "missing_relations": {
    },
  • "created_at": "2019-08-24T14:15:22Z",
  • "processed_at": "2019-08-24T14:15:22Z",
  • "deferred_until": "2019-08-24T14:15:22Z",
  • "attempts": 0
}

Get Cases in Dead Letter Queue

Returns a list of cases that failed to be properly ingested through the bulk ingestion.

Authorizations:
BearerToken
query Parameters
filter
string

Filtering enables narrowing down API responses based on specific criteria.

Range Filter:

  • Syntax: filter.<field_name>.from=X&filter.<field_name>.to=Y
    • Either from, to, or both can be specified.
    • Inclusive of boundary values.

Examples:

  • Filter transaction.created_at between 2024-11-24 and 2024-11-25:
    • filter.created_at.from=2024-11-24&filter.created_at.to=2024-11-25
  • Filter transaction.amount greater than or equal to 0:
    • filter.amount.value.from=0

Single-Value Filter:

  • Syntax: filter.<field_name>=X.
    • Matches data exactly to the specified value.

Examples:

  • Filter transaction.method for CARD:
    • filter.method=CARD.
limit
number
Example: limit=5

Sets the max number of items returned in the result set for this query

offset
number
Example: offset=35

Sets the offset on the index into the list of items in the result set

sorting
string

Sorting allows API responses to be ordered by one or more fields in a specified direction.

  • Syntax: sort.by=<field>:<direction>[,<field>:<direction>]
    • <field>: Field name in the object, following schema conventions.
    • <direction>: Sorting order, asc (ascending, default) or desc (descending).
  • Multi-column Sorting: Specify multiple fields, separated by commas, to sort by priority.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Accounts

Actors

Cases

Get Cases

Retrieves a list of cases.

Authorizations:
BearerToken
query Parameters
filter.assigned
boolean

Filters the results based on the case assignment status.

Examples:

  • filter.assigned=true
  • filter.assigned=false
filter.created_at.from
string <date-time>

Filters the results based on the creation date of the case.

Examples:

  • filter.created_at.from=2024-11-24T00:00:00Z
filter.created_at.to
string <date-time>

Filters the results based on the creation date of the case.

Examples:

  • filter.created_at.to=2024-11-25T23:59:59Z
filter.tags.id.all[]
string

Filters the results based on cases with all of the given flags.

Examples:

  • filter.tags.id.all[]=d5fe3bde-cc2b-448d-a7ef-31b0021af3ad
  • filter.tags.id.all[]=d5fe3bde-cc2b-448d-a7ef-31b0021af3ad&filter.tags.id.all[]=1eac5ee8-1566-4122-94d0-725a1f87df9f
filter.tags.id.in[]
string

Filters the results based on cases with any of the given flags.

Examples:

  • filter.tags.id.in[]=d5fe3bde-cc2b-448d-a7ef-31b0021af3ad
  • filter.tags.id.in[]=d5fe3bde-cc2b-448d-a7ef-31b0021af3ad&filter.tags.id.in[]=1eac5ee8-1566-4122-94d0-725a1f87df9f
filter.type.in[]
string

Filters the results based on the case type.

Examples:

  • filter.type.in[]=ANALYSIS
  • filter.type.in[]=ANALYSIS&filter.type.in[]=FILING
filter.updated_at.from
string <date-time>

Filters the results based on the update date of the case.

Examples:

  • filter.updated_at.from=2024-11-24T00:00:00Z
filter.updated_at.to
string <date-time>

Filters the results based on the update date of the case.

Examples:

  • filter.updated_at.to=2024-11-25T23:59:59Z
filter.workflow.id.in[]
string

Filters the results based on the workflow id.

Examples:

  • filter.workflow.id.in[]=1
  • filter.workflow.id.in[]=1&filter.workflow.id.in[]=2
filter.workflow.state.in[]
string

Filters the results based on the workflow state.

Examples:

  • filter.workflow.state.in[]=1
  • filter.workflow.state.in[]=1&filter.workflow.state.in[]=2
filter.workflow.status.in[]
string

Filters the results based on the workflow status.

Examples:

  • filter.workflow.status.in[]=1
  • filter.workflow.status.in[]=1&filter.workflow.status.in[]=2
filter.workflow.step_id.in[]
string

Filters the results based on the workflow step_id.

Examples:

  • filter.workflow.step_id.in[]=1
  • filter.workflow.step_id.in[]=1&filter.workflow.step_id.in[]=2
limit
number
Example: limit=10

Sets the max number of items returned in the result set for this query. Defaults to 200.

offset
number
Example: offset=30

Sets the offset on the index into the list of items in the result set. Defaults to 0.

sort.by
string

Sorts the results based on specified fields and directions.

Example:

  • sort.by=<field>:<direction>
    • <field>: created_at or updated_at (default).
    • <direction>: Sorting order, asc (ascending) or desc (descending, default).

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get case

Retrieves a single case by identifier.

Authorizations:
BearerToken
path Parameters
id
required
string

The Case ID.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2025-01-06T13:39:659123Z",
  • "updated_at": "2025-01-07T14:44:359729Z",
  • "assignee": {},
  • "workflow": {
    },
  • "actors": [
    ],
  • "observations": [
    ],
  • "tags": [
    ],
  • "metadata": {
    },
  • "resolution": "string",
  • "source": "string",
  • "jurisdiction": "AUS",
  • "type": "ANALYSIS",
  • "narrative": "The case involves a potentially suspicious financial transaction in Australia,\nexhibiting characteristics commonly associated with rapid movement of funds.",
  • "property1": "string",
  • "property2": "string"
}

Update case

Updates the fields in the case that has the provided ID. Notes:

  • Updating an array is an additive insert operation, meaning that the new values are appended to the existing array.
  • This endpoint is still a work in progress and is subject to change.
Authorizations:
BearerToken
path Parameters
id
required
string

The Case ID.

Request Body schema: application/json
required
Resolution (string) or Resolution (number) or Resolution (integer) or Resolution (boolean) or Resolution (object) or Array of Resolution (arrays) (Resolution)

Describes the reason behind a case closure. The content and structure of this field are flexible and can vary depending on the context. It is defined through the Custom Properties, which allows for dynamic extension and customization based on specific business needs.

additional property
string or number or integer or boolean or object or Array of arrays

Custom properties whose keys must start with the prefix c__.

Responses

Request samples

Content type
application/json
{
  • "resolution": "Not Suspicious",
  • "c__custom_string_property": "custom_value",
  • "c__custom_number_property": 12345,
  • "c__custom_object_property": {
    }
}

Response samples

Content type
text/plain
OK

Add an actor to a case

Creates a new actor entity and assigns it to the specified case.

Authorizations:
BearerToken
path Parameters
id
required
string

The ID of the case to add the actor to.

header Parameters
lucinity-rfd-id
string <uuid>

The rfd_id used to retrieve information about the request. Include it to complete an rfd item.

Request Body schema: application/json
required
required
Individual (object) or LegalEntity (object) (Actor)
object (CustomData)

The custom data property can be used to add data in a key, value format to the object. This can e.g. be used for display purposes. Maximum length of this property is 10000 characters.

type
string (CaseActorType)
Enum: "CONNECTION" "FOCAL"

The role that the actor has in the case.

Defaults to FOCAL.

Responses

Request samples

Content type
application/json
{
  • "type": "CONNECTION",
  • "custom_data": {
    },
  • "actor": {
    }
}

Update multiple case actors

Updates multple case actor relationships in a case. Maximum 1000 actors in each request.

Authorizations:
BearerToken
path Parameters
id
required
string

The ID of the case the actors belong to.

Request Body schema: application/json
required
Array
actor_id
string

The ID of the actor.

object

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Update a case actor

Updates the fields in the case actor that has the provided ID.

Authorizations:
BearerToken
path Parameters
actor_id
required
string

The ID of the actor

case_id
required
string

The ID of the case

Request Body schema: application/json
required
additional property
string or number or integer or boolean or object or Array of arrays or null (CustomProperties)

Custom properties whose keys must start with the prefix c__.

One of
string

Custom properties whose keys must start with the prefix c__.

Responses

Request samples

Content type
application/json
{
  • "c__custom_string_property": "custom_value",
  • "c__custom_number_property": 12345,
  • "c__custom_object_property": {
    }
}

Add a communication to a case

Creates a new communication entity and assigns it to the case.

Authorizations:
BearerToken
path Parameters
id
required
string

The case_id.

header Parameters
lucinity-rfd-id
string <uuid>

The rfd_id used to retrieve information about the request. Include it to complete the rfd item.

Request Body schema: application/json
required
id
required
string <uuid>

The unique identifier for the communication.

receiver_id
required
string

Identifies the receiver uniquely in the system where the communications originates. For example if this is an email it could be the email address, if it is from a messaging system it could be the user handle in that system. Alternatively can be provided as Actor/Entity id, as provided in the Actor endpoint, If so then metadata should be used. metadata.receiver_identifiable_as_actor=true.

sender_id
required
string

Identifies the sender uniquely in the system where the communications originates. For example if this is an email it could be the email address. If it is from a messaging system it could be the user handle in that system. Alternatively can be provided as Actor/Entity id, as provided in the Actor endpoint. If so then metadata should be used. metadata.sender_identifiable_as_actor=true.

subject
required
string

The subject title of the message in the communication.

type
required
string

The type of communication (e.g., email, SMS).

content
string

The content of the communication.

object (CustomData)

The custom data property can be used to add data in a key, value format to the object. This can e.g. be used for display purposes. Maximum length of this property is 10000 characters.

object (Metadata)

Metadata describing the communication. This field is not intended to add additional information to the communication, rather add information about the communication's attributes.

Responses

Request samples

Content type
application/json
{
  • "id": "6f83db65-50e0-4f7c-b42a-61115110a928",
  • "type": "email",
  • "content": "Please update your account information.",
  • "custom_data": {
    },
  • "metadata": {
    },
  • "receiver_id": "[email protected]",
  • "sender_id": "[email protected]",
  • "subject": "Urgent: Update Required"
}

Upload a file to a case

Uploads a file related to a specific case.

File size may not exceed 50MB.

Valid file formats are:

  • Images (JPG, PNG, GIF)
  • Docs (PDF, DOC, DOCX, EXCEL, JSON, TXT, CSV)
Authorizations:
BearerToken
path Parameters
id
required
string

The case_id

header Parameters
lucinity-rfd-id
string <uuid>

The rfd_id used to retrieve information about the request. Include it to complete the rfd item.

Request Body schema: multipart/form-data
required
file
string <binary>

Responses

Observations

Transactions

Workflows

Get Workflows

Retrieves a list of workflows.

Authorizations:
BearerToken
query Parameters
limit
number
Example: limit=10

Sets the max number of items returned in the result set for this query. Defaults to 200.

offset
number
Example: offset=10

Sets the offset on the index into the list of items in the result set. Defaults to 0.

sort.by
string

Sorts the results based on specified fields and directions.

Example:

  • sort.by=<field>:<direction>
    • <field>: id or version.
    • <direction>: Sorting order, asc (ascending) or desc (descending).

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Webhooks

Webhook

List registered webhooks

List registered webhooks.

Authorizations:
BearerToken

Responses

Response samples

Content type
application/json
{
  • "name": "My Webhook for handling claimed cases",
  • "events": [
    ],
  • "id": "5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74",
  • "status": "ACTIVE",
  • "secret": "%D^u~k:pc<y9Hv",
  • "created": 1692294086682,
  • "tenant": "lucinity"
}

Create and register a new Webhook

Authorizations:
BearerToken
Request Body schema: application/json
required
events
required
Array of strings

List of events to subscribe to. If '*' all events will be delivered. If empty, the Webhook will be disabled.

name
required
string

The name of the Webhook given by the Webhook creator

url
required
string <uri>

The target URL for the Webhooks. Typically an endpoint in the customer API that can accept the Lucinity events

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "name": "My Webhook for handling claimed cases",
  • "events": [
    ],
  • "id": "5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74",
  • "status": "ACTIVE",
  • "secret": "%D^u~k:pc<y9Hv",
  • "created": 1692294086682,
  • "tenant": "lucinity"
}

Retrieve a Webhook by Id

Authorizations:
BearerToken
path Parameters
id
required
string

Unique Webhook Id

Responses

Response samples

Content type
application/json
{
  • "name": "My Webhook for handling claimed cases",
  • "events": [
    ],
  • "id": "5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74",
  • "status": "ACTIVE",
  • "created": 1692294086682,
  • "tenant": "lucinity"
}

Remove a Webhook by Id

Authorizations:
BearerToken
path Parameters
id
required
string <uuid>

Unique Webhook Id

Responses

Response samples

Content type
application/json
{
  • "name": "My Webhook for handling claimed cases",
  • "events": [
    ],
  • "id": "5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74",
  • "status": "ACTIVE",
  • "created": 1692294086682,
  • "tenant": "lucinity"
}

Update Webhook

Authorizations:
BearerToken
path Parameters
id
required
string <uuid>

Unique Webhook Id

Request Body schema: application/json

The status update object. If omitted it will attempt to toggle the status.

events
Array of strings

List of events to subscribe to. If '*' all events will be delivered. If empty, the Webhook will be disabled.

name
string

The name of the Webhook given by the Webhook creator

status
string (WebhookStatus)
Enum: "ACTIVE" "INACTIVE"
url
string <uri>

The target URL for the Webhooks. Typically an endpoint in the customer API that can accept the Lucinity events

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "name": "My Webhook for handling claimed cases",
  • "events": [
    ],
  • "id": "5fa9e93b-3a93-4e6a-82cd-6d9dad7b0d74",
  • "status": "ACTIVE",
  • "secret": "%D^u~k:pc<y9Hv",
  • "created": 1692294086682,
  • "tenant": "lucinity"
}

Test a Webhook

Authorizations:
BearerToken
path Parameters
id
required
string <uuid>

Unique Webhook Id

Responses

Case Events

Case Assigned Webhook

Request Body schema: application/json

Information about an event in the systems

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detail event data for case claimed

id
string

The id for the event created by Lucinity.

name
string
Value: "case.assigned"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.assigned",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Case Closed Webhook

Request Body schema: application/json

Information about an event in the systems

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detail event data for case case closed

id
string

The id for the event created by Lucinity.

name
string
Value: "case.closed"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.closed",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Case Created Webhook

Request Body schema: application/json

Information about an event in the systems

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detail event data for case case created.

id
string

The id for the event created by Lucinity.

name
string
Value: "case.created"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.created",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Case Updated event Webhook

Request Body schema: application/json

Information about an event in the systems.

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Event data for case update.

id
string

The id for the event created by Lucinity.

name
string
Value: "case.updated"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.updated",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Case Creation Failed Webhook

Request Body schema: application/json

Information about an event in the systems.

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Event data for case creation failure.

id
string

The id for the event created by Lucinity.

name
string
Value: "case.creation_failed"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.creation_failed",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Case Workflow Action Performed Webhook

Request Body schema: application/json

Information about an event in the systems

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detailed event data for when an action on a workflow is performed in a case.

id
string

The id for the event created by Lucinity.

name
string
Value: "case.workflow.actioned"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.workflow.actioned",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Case Workflow Step Transitioned Webhook

Request Body schema: application/json

Information about a workflow transition of case in the system

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detail event data for when a workflow transition occurs in a case

id
string

The id for the event created by Lucinity.

name
string
Value: "case.workflow.transitioned"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.workflow.transitioned",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Commented on a case event Webhook

Request Body schema: application/json

Information about a comment event in the systems

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detailed event data for when a comment is added to a case

id
string

The id for the event created by Lucinity.

name
string
Value: "case.commented"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.commented",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Transaction Decision Update Event Webhook

Request Body schema: application/json

Information about an event in the systems

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detail event data for transaction decision update

id
string

The id for the event created by Lucinity.

name
string
Value: "case.transaction.decision.updated"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.transaction.decision.updated",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Case Observation Feedback Updated Webhook

Request Body schema: application/json

Information about an event in the system

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detail event data for observation added

id
string

The id for the event created by Lucinity.

name
string
Value: "case.observations.feedback.updated"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.observations.feedback.updated",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Observation Actioned Event Webhook

Request Body schema: application/json

Information that a event has been actioned, typically a case observation. This event is triggered when an observation is actioned. Currently only supports "WHITELIST" action.

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object

Detail event data for observation actioned.

id
string

The id for the event created by Lucinity.

name
string
Value: "case.observations.actioned"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "case.observations.actioned",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

RFD Events

Request for Data Created Event Webhook

Request Body schema: application/json

Information about an event in the systems

createdAt
integer <int64>

The Unix timestamp (in milliseconds) indicating when this event was created.

object
id
string

The id for the event created by Lucinity.

name
string
Value: "request_for_data.created"

The type of the event

Responses

Request samples

Content type
application/json
{
  • "id": "1",
  • "name": "request_for_data.created",
  • "createdAt": 1711360775327,
  • "data": {
    }
}

Reporting

Audit Logs

Get Audit Logs

Get audit logs within certain criteria.

Authorizations:
ApiKeyAuth
query Parameters
caseId
string

Get audit logs for a single case

endDate
required
string <date-time>
Example: endDate=2023-11-21T23:59:59

Is in ISO 8601 datetime format and must be after startDate.

limit
number

Maximum number of retrived entries. Must be a positive number not greater than 1000. If not provided the default is 200

logType
string (AuditLogType)
Enum: "ALL" "READ" "UPDATE"

The audit log type. If not provided the default is ALL

offset
number

Number of rows to skip before returning results. Must be a positive number. If not provided the default is 0

startDate
required
string <date-time>
Example: startDate=2023-11-21T00:00:00

Is in ISO 8601 datetime format and must proceed endDate.

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "limit": 200,
  • "number_of_values": 10,
  • "values": [
    ]
}

Custom Properties

Retrieves a list of custom properties

This endpoint will fetch the custom properties that have been defined. The custom properties are used to store additional information about the entity.

Currently supported entities are:

  • case
  • case.actor
Authorizations:
BearerToken
query Parameters
filter.entity
string
Example: filter.entity=case

The entity containing the custom property.

filter.name
string
Example: filter.name=c__actor_decision

The custom property name.

limit
number
Example: limit=5

Sets the max number of items returned in the result set for this query

offset
number
Example: offset=35

Sets the offset on the index into the list of items in the result set

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Request for Data

The Request for Data (RFD) feature enables analysts to request additional information from internal systems to support case investigations. This capability streamlines the process of gathering supplementary data, ensuring analysts have what they need to carry out effective reviews and meet regulatory compliance requirements.

RFD flows are highly flexible and can be customized to match your organization’s internal workflows.

Example RFD Flow

  1. An analyst working on a case identifies the need for additional information from an internal system.
  2. The analyst uses the RFD feature to request the necessary data through a form created and designed in collaboration with Lucinity.
  3. Lucinity creates the RFD request and sends a notification a webhook notification (request_for_data.created).
  4. Your internal system receives the RFD request via webhook and processes it according to the defined schema.
  5. Your internal system sends the requested data back to Lucinity, and completes the RFD request by providing the lucinity-rfd-id header with the request that completeded the RFD.
    • If completeing the RFD is not possible, the internal system can send a request to the /request_for_data/{id}/reject and provide a reason for the rejection.
  6. The case has been updated with the received data, allowing the analyst to continue their investigation with the additional information.

Additional Notes

  • Each RFD is linked to a single entity (e.g., a document, actor, or other case items).
  • If a request needs to be made for multiple entities, a separate RFD request should be created for each.

Get RFD by Id

Retrieves an RFD object using its unique Id.

Authorizations:
BearerToken
path Parameters
id
required
string <uuid>

The unique identifier for the RFD.

Responses

Response samples

Content type
application/json
{
  • "type": "string",
  • "case_id": "c74269e5-1f97-4e20-9164-ffbe3494d8d6",
  • "status": "COMPLETED",
  • "request": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Reject an RFD request.

Cancels the RFD flow and marks the RFD request as rejected. After calling this endpoint, the SLA will be disabled and the case will eventually revert to its previous state before the RFD process was initiated. Note that if you try to reject a RFD that has already been comlpleted you will get a 400 error.

Authorizations:
BearerToken
path Parameters
id
required
string <uuid>

The unique identifier of the RFD.

Request Body schema: application/json
required
reason
string

Reason for rejection.

Responses

Request samples

Content type
application/json
{
  • "reason": "Actor not found."
}

RFD Schema

Create or update an RFD schema.

Defines or updates the schema used for RFD validation.

Since RFDs have a dynamic schema, this endpoint allows submitting a JSON Schema-compliant format. The schema is used by the RFD endpoints to validate incoming payloads as they pass through the system.

To update an existing schema, the entire payload must be resubmitted, including both unchanged values and any modifications.

Authorizations:
BearerToken
Request Body schema: application/json
required
required
object

The schema settings used to validate the request payloads in the RFD service. Must be in JSON schema format.

type
required
string <^[a-zA-Z0-9_-]+$>

A predefined identifier specifying the type of schema to be used in different flows in the RFD service. This type should match the type in the /request_for_data endpoints. Must be only alpabetical symbols, numbers, underscore and hyphen.

created_at
string <date-time>

The time and date when the schema was created in ISO 8601.

Responses

Request samples

Content type
application/json
{
  • "type": "ACTOR",
  • "schema": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Retrieve a list of RFD schems

Fetches a list of all RFD schemas.

Authorizations:
BearerToken
query Parameters
limit
number
Example: limit=5

Sets the max number of items returned in the result set for this query

offset
number
Example: offset=35

Sets the offset on the index into the list of items in the result set

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve RFD schema by type

Fetches a specific request for data schema by type.

Authorizations:
BearerToken
path Parameters
type
required
string

Responses

Response samples

Content type
application/json
{
  • "type": "ACTOR",
  • "schema": {
    },
  • "created_at": "2019-08-24T14:15:22Z"
}

Identity and Access Management

Users

Get Users

Get multiple users.

Authorizations:
BearerToken
query Parameters
limit
number

Maximum number of retrived entries. Must be a positive number. If not provided the default is 100

offset
number

Number of rows to skip before returning results. Must be a positive number. If not provided the default is 0

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get User by ID

Get a single platform user by their unique identifier.

Authorizations:
BearerToken
path Parameters
id
required
string <uuid>

The user's unique identifier.

Responses

Response samples

Content type
application/json
{
  • "user_id": "33ff36c2-91ea-4dd7-b239-31bb97875cce",
  • "username": "user",
  • "email": "[email protected]",
  • "first_name": "User",
  • "last_name": "Platform",
  • "enabled": true,
  • "created_at": 1754046259851,
  • "groups": [ ]
}