AML screening (advanced) (v1)
Identify financial crime risks and support real-time, risk-based AML compliance across the customer lifecycle
The AML Screening step evaluates a BasicIdentity data block against global sanctions, PEP, and watchlist data through a configured screening process and returns a normalised result.
If any result is a match, the case is routed to match; if no match is found but any result is inconclusive, the case routes to inconclusive; only when all results return no hits is the case routed to no_match. On match, the matches[] array is populated with normalised match details and riskLabels[] reflects the services that produced hits (e.g. Sanction, PEP). On no_match and inconclusive, both arrays are empty.
The transactionReference returned in the AmlScreeningResults data block corresponds to the case ID created in nCino's AML screening dashboard. The flow execution ID is used as the client reference for traceability in the vendor API. UserReference is required for validation purposes only.
Key features
- Configurable screening bundles: The
configuration_identifiermaps to a pre-configured nCino bundle, allowing different combinations of screening services (PEP checks, sanctions lists, watchlists) to be selected per use case during onboarding. - Three-way routing: Routes to
match,inconclusive, orno_matchbased on the aggregate result across all services in the configured bundle —matchtakes precedence overinconclusive, which takes precedence overno_match. - Normalised match data: On
match, theAmlScreeningResultsdata block contains a populatedmatches[]array with individual match details andriskLabels[]identifying which services produced hits (e.g.Sanction,PEP). - Vendor traceability: The
transactionReferencefield links the result to the corresponding case in nCino's AML dashboard for manual review or audit.
Configuration
| Option | Type | Required | Description |
|---|---|---|---|
provider | "NCINO" | No | AML screening provider. Currently only NCINO is supported. |
inputSources | Object | No | Specifies the workflow step IDs to use for sourcing data. If omitted, the step will use the latest available data blocks from the workflow. See Input mapping. |
inputSources.basicIdentity | String | No | The ID of the step providing the BasicIdentity data block. |
inputSources.userReference | String | No | The ID of the step providing the UserReference data block. |
configuration_identifier | String | Yes | Allows configuration of a single screening identifier, which is mapped to the underlying vendor. For nCino, this identifier maps to a bundle. Bundles are configured by the provider during onboarding and can include one or more screening services (e.g. PEP or sanctions). |
Example configuration
{
"configuration_identifier": "KYC_BUNDLE_DEFAULT",
"inputSources": {
"basicIdentity": "collect-identity",
"userReference": "start"
}
}
Input data blocks
| Data block | Required | Description |
|---|---|---|
UserReference | Yes | Auto-populated from session metadata set during session creation. Required for validation purposes only; the flow execution ID is used as the client reference for traceability in the vendor API. No configuration required. |
BasicIdentity | Yes | Identity data used for screening. familyName and givenName are mandatory. name is optional and used as a fallback when structured name fields are unavailable. |
If BasicIdentity or UserReference are not available, the flow fails validation.
Routes
| Route | Description |
|---|---|
match | One or more matches were found during screening. The AmlScreeningResults data block contains populated matches[] and riskLabels[] arrays. |
no_match | No matches were found. The AmlScreeningResults data block is produced with empty matches[] and riskLabels[]. |
inconclusive | The screening result was inconclusive. The AmlScreeningResults data block is produced with empty matches[] and riskLabels[]. |
As matches may include false positives, manual review of individual matches is strongly recommended before any decision is made. All three routes produce the same AmlScreeningResults data block and potentially follow an identical flow route, as manual review is required.
Output data blocks
| Route | Data blocks produced | Notes |
|---|---|---|
| match | AmlScreeningResults | Contains populated matches[] and riskLabels[] |
| no_match | AmlScreeningResults | matches[] and riskLabels[] are empty |
| inconclusive | AmlScreeningResults | matches[] and riskLabels[] are empty |
Example payloads
AmlScreeningResults — match
{
"dataBlockId": "44c566ff-587b-4280-8832-78c937898140",
"type": "AmlScreeningResults",
"verdict": "match",
"vendor": "Ncino",
"transactionReference": "cd35f8a0-f30c-4cfc-9bcb-12bf58d44876",
"configurationIdentifier": "KYC_BUNDLE_DEFAULT",
"createdAt": "2026-03-31T10:22:00.000Z",
"inputSources": {
"userReference": "start",
"basicIdentity": "document-check-1"
},
"riskLabels": ["Sanction", "PEP"],
"matches": [
{
"matchId": "profile-00123",
"name": "Jean Dupont",
"sources": [
{
"type": "SISPlusCheck",
"name": null,
"iD": null
}
]
},
{
"matchId": "profile-00456",
"name": "Jean Dupont",
"sources": [
{
"type": "PEPDeskCheck",
"name": null,
"iD": null
}
]
}
]
}
AmlScreeningResults — no_match
{
"dataBlockId": "9f4351d1-665d-4174-8da1-5d823c1aeb14",
"type": "AmlScreeningResults",
"verdict": "no_match",
"vendor": "Ncino",
"transactionReference": "e7a12c3d-84b1-4f2e-a901-3c56d78ef012",
"configurationIdentifier": "KYC_BUNDLE_DEFAULT",
"createdAt": "2026-03-31T10:22:00.000Z",
"inputSources": {
"userReference": "start",
"basicIdentity": "document-check-1"
},
"riskLabels": [],
"matches": []
}