Kubernetes on-prem
Inside your data centre, under your controls. Nothing leaves the bank.
- Lists, cases and audit trail stay in your network
- Runs on your own Kubernetes cluster
- You decide when to upgrade
The same platform runs a start-up’s onboarding flow and a Tier-1 bank’s payment rails. Run it on your Kubernetes, in our cloud, or across both — and grow by adding pods, not by re-platforming.
Every decision carries a 7-part version vector, so any outcome can be replayed for auditors and examiners.
Load64%
Throughput
2,029
req/s
p99 latency
175 ms
CoreModular monolith
Screening engineStateless · no database
6/10Pinned list version2026.10.13-02
Batch workersQueue-driven
1/60 records
Illustrative — invented names and figures.
Three ways to run WICS. The same images, the same audit trail and the same APIs in each.
Inside your data centre, under your controls. Nothing leaves the bank.
Operated by us, sized to your volumes, upgraded without disruption.
Governance on-prem, elastic engine capacity in the cloud — or the other way round.
The same in all three
Every decision records the exact artifacts that produced it. Replay any historical outcome for auditors, examiners and model-risk reviews — and get the same answer.
Decision record
D-20261013-004182
Stamping the version vector…
Original
Output hash
sha256:41be…07d9
Replay
Every channel runs through the same flow. A name screened in a payment, a batch file or an analyst search is resolved, scored and recorded the same way.
01
A SWIFT MT or MX message, XML payload, onboarding call or batch record arrives and is parsed through its configured mapping.
02
Parties and fields are extracted into one canonical model, then normalised, script-detected and transliterated.
03
The engine narrows millions of list entities to a small candidate set drawn from the pinned list version.
04
Candidates pass progressively more precise stages, ending in Damerau-Levenshtein scoring and rule evaluation.
05
The decision returns with its TreeSHAP explanation and the full version vector, written to the immutable audit trail.
Stage five returns more than a verdict. The record binds the outcome to its explanation and to the exact version of everything involved.
{
"decision": "HOLD_FOR_REVIEW",
"latency_ms": 184,
"top_match": { "list": "SANCTIONS", "score": 0.87 },
"explanation": [
{ "feature": "name_similarity", "shap": 0.31 },
{ "feature": "translit_variant", "shap": 0.12 },
{ "feature": "dob_absent", "shap": -0.05 }
],
"version_vector": {
"input_hash": "sha256:9f3a…c41e",
"list_version": "2026.10.13-02",
"engine_version": "4.2.1",
"profile_version": "rt-payments@7",
"config_version": "cfg-118",
"rule_version": "rules-62",
"model_version": "[email protected]"
}
}
REST, SOAP, IBM MQ, Kafka, SFTP and watched folders — in both directions. Each message gets an acknowledgement at once and a final answer when it is decided.
A request and its answer can travel on different channels: in by IBM MQ, answered by a REST callback.
An ACK on receipt, a final answer after the decision. Failed callbacks are retried automatically, then parked as NACK for an operator. GetStatus tells you where any message is.
API keys per channel with scopes, an IP allow-list and optional HMAC-SHA256 signatures. SFTP pins the host key. Secrets are stored encrypted.
Formats
Payments
Files & payloads
Headers
Payments are screened before funds move. Overnight batches screen whole portfolios against every list. Engine pods and batch workers scale on their own, so one never slows the other.
WICS ships as versioned container images with an install package. Each service reports its version and its health.
ServicesHealth checks
All healthy7/7