Platform · Module catalog
KYC, KYB, AML and KYT are not products you buy separately here, they are groups of named modules that run inside one journey, in the order you set, with the evidence from each one attached to the same case.
How composition works
Each module runs independently, returns its own signals, and either passes them to the next step or halts the journey, so a compliance change is a configuration change, not an integration project.
Steps run in sequence with conditions: adverse media only on medium and high risk bands, source-of-funds questionnaire only on high, enhanced due diligence branch on a sanctions hit.
Thresholds, required flags, retry limits, and fallback modules are set per step per journey, retail onboarding and institutional onboarding share modules but not policy.
Every journey change creates a new version, and each decision records the version that produced it, so a case reopened years later still shows the policy of the day. Retention is set to the period your license requires.
Approval is a state, not an end: ongoing AML monitoring, wallet monitoring, and transaction rules keep running against the same customer record.
POST /v1/journeys
Every module
Grouped by pillar. Each entry names what the check does, what you send, and what comes back on the decision object.
Prove the person is who they claim to be, that the document is genuine, and that the data on it is usable downstream.
document_verification
Authenticates an identity document: MRZ parsing and checksums, font and layout comparison against the issuer template, security features, tamper and digital-edit detection, expiry.
Input
Front and back image, or a hosted capture session
Returns
authenticity verdict, per-signal breakdown, extracted fields, image quality score
nfc_chip_read
Reads the contactless chip in an e-passport or Emirates ID and validates the issuer's digital signature, so identity data comes from the issuing authority rather than from an image.
Input
NFC session from the mobile SDK
Returns
chip data group contents, signature validation result, chip-vs-print consistency
data_extraction
Extracts name, date of birth, nationality, document number, issue and expiry dates, then normalizes transliteration (including Arabic name handling) so records match across systems.
Input
Verified document
Returns
structured identity fields plus per-field confidence
database_validation
Confirms the extracted identity against authoritative and bureau data sources rather than trusting the document alone.
Input
Extracted identity fields
Returns
match / partial / no-match per source, with the source named on the case
proof_of_address
Accepts a utility bill, bank statement, tenancy contract, or Ejari document, extracts the address, checks document age, and compares it against the declared address.
Input
Address document image or PDF
Returns
extracted address, document date, declared-vs-extracted match verdict
phone_email_verification
One-time passcode ownership check plus reputation signals on the number and mailbox (disposable domains, recently created, carrier and line type).
Input
Phone number and/or email address
Returns
ownership verdict, reputation flags, delivery metadata
questionnaire
Collects the declarations your regulator expects, source of funds, source of wealth, purpose of relationship, expected volumes, tax residency, inside the same session as the identity checks.
Input
Questionnaire definition and user answers
Returns
structured answers attached to the case, with rule-triggering fields exposed to the risk engine
Prove the person is physically present and not a replay, a mask, a deepfake, or an account already rejected under another name.
passive_liveness
Confirms a live human is in front of the camera from a single capture, with no instructions to follow, defeats printed photos, screen replays, and video injection.
Input
Selfie capture
Returns
liveness verdict, presentation-attack signal breakdown
active_liveness
Challenge-response capture (movement or on-screen prompts) for high-risk journeys or where a regulator expects an explicit challenge.
Input
Guided capture session
Returns
challenge result, per-frame evidence retained on the case
face_match
Compares the selfie against the document portrait and returns a similarity score, not a yes/no, so your policy sets the accept, review, and reject thresholds.
Input
Selfie and document portrait
Returns
similarity score, threshold applied, decision reason
face_search
Searches the new face against your own verified population and your blocklist to catch one person opening several accounts under different identities.
Input
Selfie plus the tenant gallery
Returns
candidate matches with scores and the linked case IDs
biometric_auth
Re-proves an existing customer at a sensitive moment, large withdrawal, device change, payout address change, by matching against the biometric captured at onboarding.
Input
Selfie plus stored enrolment reference
Returns
match verdict, elapsed time since enrolment
age_estimation
Estimates age from a face capture where a full document check is disproportionate, with document fallback when the estimate lands near the threshold.
Input
Selfie capture and the age threshold
Returns
estimated range, above/below-threshold verdict, fallback trigger
device_ip
Fingerprints the device and inspects the network path: emulator, rooted device, automation, VPN, proxy, hosting ASN, geo mismatch against the claimed residency.
Input
SDK signals collected during the session
Returns
device fingerprint, network flags, geo-consistency verdict
duplicate_blocklist
Blocks identities, faces, documents, devices, and wallets you have already rejected, and flags duplicate applications inside the same tenant.
Input
Session artefacts
Returns
blocklist hit with the reason and date it was added, duplicate case links
Sanctions, PEP, and adverse-media screening at onboarding, then continuous re-screening for the life of the relationship.
sanctions_screening
Screens the verified identity against sanctions and terrorist-designation lists, with fuzzy matching tuned for Arabic transliteration variants and name ordering.
Input
Verified identity or a raw name and date of birth
Returns
hits with list name, listing date, match score, and the matched fields
pep_screening
Identifies politically exposed persons, their relatives, and close associates, with the exposure category and role recorded so enhanced due diligence can be justified.
Input
Verified identity
Returns
PEP classification, role, jurisdiction, RCA relationship path
adverse_media
Searches negative news mapped to predicate offence categories, so a hit arrives as a reason code your analyst can act on rather than a wall of articles.
Input
Verified identity
Returns
articles grouped by offence category, source, publication date, relevance score
ongoing_monitoring
Re-screens every monitored customer on a schedule for the life of the relationship, and fires a webhook the day a new listing, PEP designation, or adverse-media hit appears.
Input
Customer ID and a monitoring flag
Returns
new-hit events, change history, alert case in the review queue
match_resolution
Structured false-positive handling: an analyst discounts a match with a documented reason, and the same match will not resurface unresolved on the next screen.
Input
Analyst decision and rationale
Returns
resolution record with reviewer identity, timestamp, and rationale in the audit trail
Registry truth, ownership structure, controlling persons, and the same screening applied to every human behind the entity.
registry_lookup
Pulls the entity record from its registry: legal name, license number, status, incorporation date, registered address, activity.
Input
License or registration number and jurisdiction
Returns
registry record, status, retrieval timestamp, source registry named
ownership_graph
Walks the shareholding chain through intermediate holding entities, calculates effective ownership percentages, and identifies beneficial owners against your threshold.
Input
Verified entity
Returns
ownership tree, effective percentages, UBO list, unresolved branches flagged rather than hidden
controlling_persons
Extracts directors, authorized signatories, and persons exercising control, then queues each of them for individual KYC and screening.
Input
Verified entity
Returns
person list with roles, plus a linked KYC case per person
entity_screening
Screens the company itself, and every owner and controller found, against sanctions, PEP, and adverse media, including ownership-based sanctions exposure.
Input
Entity and its resolved person list
Returns
entity hits, per-person hits, aggregate exposure through the ownership chain
kyb_documents
Requests, receives, and classifies trade license, memorandum, board resolution, register of members, and proof of registered address, with expiry tracking and renewal reminders.
Input
Document requests to the entity contact
Returns
classified documents, extracted fields, expiry dates, outstanding-item list
Post-onboarding risk: rule-based transaction monitoring, on-chain wallet exposure, and Travel Rule counterparty data.
transaction_monitoring
Runs your rule set over each transaction in real time or in batch: velocity, structuring, threshold avoidance, unusual corridors, dormancy reactivation, peer-group deviation.
Input
Transaction event, or a batch file
Returns
risk score, triggered rules, alert case where thresholds are breached
wallet_screening
Scores a Virtual Asset address before you pay out or credit a deposit: sanctioned address exposure, darknet, mixer, scam, and high-risk exchange exposure, direct and indirect.
Input
Address and chain
Returns
risk score, exposure categories with hop distance, recommended action
transaction_tracing
Traces funds back through hops to the originating cluster and forward to the destination, giving the analyst the picture rather than a lone score.
Input
Transaction hash or address
Returns
hop graph with cluster attribution and exposure per hop
travel_rule
Exchanges originator and beneficiary information with counterparty institutions on qualifying transfers, and records what was sent, received, or refused.
Input
Transfer details and counterparty VASP
Returns
message record, counterparty response, unhosted-wallet declaration where applicable
counterparty_vasp_discovery
Attributes a destination address to an institution and resolves whether a Travel Rule message can be delivered to it, or whether the destination is an unhosted wallet.
Input
Destination address and chain
Returns
counterparty type, resolved institution, reachable protocol, sunrise flag
travel_rule_scope
Decides whether a transfer is in scope before any personal data leaves your tenant, using the threshold and transfer rules of the applicable regime.
Input
Transfer amount, asset, direction, jurisdiction
Returns
in_scope flag with the threshold and rule version applied
unhosted_wallet_proof
Collects proof that a self-custody destination belongs to your customer: signed message, declaration, or in-session verification, retained as an artefact.
Input
Address, customer ID, chosen proof method
Returns
proof artefact, method used, verification result
ongoing_wallet_monitoring
Watches previously cleared addresses and raises an alert when a wallet becomes sanctioned or gains exposure after you approved it.
Input
Address list under monitoring
Returns
change alerts with the new exposure category and the affected customers
The surfaces around the checks: journey builder, case management, reporting, evidence export, and the audit trail.
journey_builder
Composes modules into an ordered journey with branching: run this check only if that one flags, escalate to enhanced due diligence on a risk band, skip a step for a low-risk segment.
Input
Journey definition, versioned
Returns
an executable journey ID your API calls reference by name
risk_engine
Weighted, explainable scoring across every signal produced in the journey. Each score shows the contributing factors and the policy version that produced it.
Input
Journey signals and your weights
Returns
score, risk band, contribution breakdown, policy version
case_management
Alert queues, assignment, four-eyes approval, escalation paths, notes, and a full decision history for every customer and every alert.
Input
Cases created by journeys and monitoring
Returns
case state machine, reviewer actions, SLA timers
reporting
Assembles the case narrative, evidence, and decision history into the workpaper an analyst files with the relevant financial intelligence unit.
Input
Escalated case
Returns
report pack, filing record, retained submission evidence
audit_trail
Append-only record of every check, decision, override, policy change, and export, who, what, when, and under which policy version.
Input
All platform activity
Returns
queryable event log and a signed evidence export
evidence_export
Produces a decision PDF or evidence bundle per case, and bulk exports to your warehouse or object storage for inspection and retention.
Input
Case or date range
Returns
PDF, JSON, or archive with a manifest and checksums
A 30-minute walkthrough with a compliance engineer, or a free 30-day trial.