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
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:
Request Body schema: application/jsonrequired
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
- Payload
{- "account_actors": [
- {
- "account_id": "568975e1-d16b-4e5a-9ecd-16cb105a6976",
- "actor_id": "568975e1-d16b-4e5a-9ecd-16cb105a6976",
- "actor_role": "OWNER",
- "as_of_date": "2024-01-01"
}
], - "account_balances": [
- {
- "account_id": "ACC0001",
- "currency": "USD",
- "current": 5000,
- "as_of_date": "2019-08-24",
- "available": 4000
}
], - "accounts": [
- {
- "account_type": "CREDIT_CARD",
- "id": "568975e1-d16b-4e5a-9ecd-16cb105a6976",
- "account_number": "string",
- "as_of_date": "2019-08-24",
- "bank_code": "10-00",
- "custom_data": {
- "someProperty": "some value",
- "otherProperty": "other value"
}, - "iban": "GB43BARC20031828986436",
- "metadata": {
- "some_property": "some_value"
}, - "name": "Mez's account",
- "opened_date": "2019-08-24",
- "references": [
- {
- "id": "7777771-555-4e5a-9ecd-16cb105a6976",
- "system_name": "SystemName"
}
], - "data_source": "EXTERNAL_DATA_SOURCE",
- "status": "ACTIVE"
}
], - "actors": [
- {
- "id": "ACT0001",
- "type": "INDIVIDUAL",
- "addresses": [
- {
- "city": "Beverly Hills",
- "country": "USA",
- "postal_code": "90210",
- "state": "CA",
- "street": [
- "123 Maple Street",
- "Apt 4B"
], - "type": "BUSINESS_ADDRESS_INDIVIDUAL"
}
], - "as_of_date": "2019-08-24",
- "custom_data": {
- "someProperty": "some value",
- "otherProperty": "other value"
}, - "customer_since": "2019-08-24",
- "data_source": "EXTERNAL_DATA_SOURCE",
- "date_of_birth": "2019-08-24",
- "domicile": "USA",
- "gender": "FEMALE",
- "government_ids": [
- {
- "expiration_date": "2019-08-24",
- "id": "123-45-6789",
- "issuing_authority": "US Government",
- "type": "SSN"
}
], - "metadata": {
- "some_property": "some_value"
}, - "name": "string",
- "nationality": "USA",
- "phones": [
- {
- "number": "123-456-7890",
- "type": "HOME",
- "custom_data": {
- "someProperty": "some value",
- "otherProperty": "other value"
}
}
], - "references": [
- {
- "id": "7777771-555-4e5a-9ecd-16cb105a6976",
- "system_name": "SystemName"
}
], - "status": "ACTIVE",
- "subtypes": [
- "CLIENT"
]
}
], - "actor_segmentation_groups": [
- {
- "actor_id": "2d5cbe51-3df5-4c1b-a9f9-9def502f4765",
- "group_id": "e96e67b6-6479-4217-b6ef-43c1811ef217"
}
], - "cases": [
- {
- "resolution": "Not Suspicious",
- "c__custom_string_property": "custom_value",
- "c__custom_number_property": 12345,
- "c__custom_object_property": {
- "key": "value"
}
}
], - "communications": [
- {
- "id": "6f83db65-50e0-4f7c-b42a-61115110a928",
- "type": "email",
- "content": "Please update your account information.",
- "custom_data": {
- "someProperty": "some value",
- "otherProperty": "other value"
}, - "metadata": {
- "some_property": "some_value"
}, - "subject": "Urgent: Update Required"
}
], - "observations": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transaction_ids": [
- "string"
], - "type": "ALERT_AML_V2",
- "actor_ids": [
- "string"
], - "behavior_description": "string",
- "behavior_id": "string",
- "title": "string",
- "custom_data": {
- "someProperty": "some value",
- "otherProperty": "other value"
}, - "data_source": "EXTERNAL_DATA_SOURCE",
- "features": [
- {
- "group": "string",
- "items": [
- {
- "name": "string",
- "value": 0
}
]
}
], - "metadata": {
- "some_property": "some_value"
}, - "references": [
- {
- "id": "7777771-555-4e5a-9ecd-16cb105a6976",
- "system_name": "SystemName"
}
], - "rules": [
- {
- "id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "custom_data": {
- "someProperty": "some value",
- "otherProperty": "other value"
}, - "name": "string",
- "score": "string",
- "status": "string",
- "conditions": [
- {
- "id": "string",
- "matched": true
}
]
}
], - "score": "string",
- "version": "string"
}
], - "transactions": [
- {
- "account_id": "string",
- "account_owner_id": "string",
- "amount": {
- "currency": "USD",
- "value": 0
}, - "counterparty": {
- "name": "string",
- "account_info": {
- "account_number": "string",
- "bank_code": "string",
- "bank_name": "string",
- "bic": "string",
- "country": "USA",
- "iban": "string",
- "id": "string"
}, - "date_of_registration": "2019-08-24",
- "id": "string",
- "industry": {
- "type": "ISAT",
- "code": "010"
}, - "metadata": {
- "some_property": "some_value"
}, - "type": "LEGAL_ENTITY",
- "postal_addresses": [
- {
- "city": "Beverly Hills",
- "country": "USA",
- "postal_code": "90210",
- "state": "CA",
- "street": [
- "123 Maple Street",
- "Apt 4B"
], - "type": "BUSINESS_ADDRESS_INDIVIDUAL"
}
]
}, - "created_at": "2019-08-24T14:15:22Z",
- "direction": "INBOUND",
- "id": "string",
- "standardized_amount": 0,
- "status": "CANCELLED",
- "account_balance": 0,
- "channel": "ATM",
- "channel_location_id": "string",
- "custom_data": {
- "someProperty": "some value",
- "otherProperty": "other value"
}, - "description": "string",
- "device": {
- "id": "string",
- "ip_address": "string"
}, - "metadata": {
- "some_property": "some_value"
}, - "method": "CARD",
- "purpose": "BILL_PAYMENT",
- "user_id": "string",
- "user_name": "string"
}
]
}Response samples
- 200
- 400
- 500
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:
path Parameters
| id required | string The ID of the case to fetch the ingestion status for. |
Responses
Response samples
- 200
- 404
{- "status": "COMPLETED",
- "missing_relations": {
- "actors": [
- "string"
], - "analysis_case": "string",
- "communications": [
- "string"
], - "observations": [
- "string"
], - "workflow": "string"
}, - "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:
query Parameters
| filter | string Filtering enables narrowing down API responses based on specific criteria. Range Filter:
Examples:
Single-Value Filter:
Examples:
|
| 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.
|
Responses
Response samples
- 200
[- {
- "id": "9e214a2f-0147-4e44-ab0e-eeaef9699edb",
- "case_id": "CLC2025010100000001",
- "created_at": "2019-12-24T18:02:16Z",
- "processed_at": "2019-12-24T18:02:16Z",
- "case": "{ ... }"
}
]