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.

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
[
  • {
    }
]