📘 Public beta · Endpoints are stable; OpenAPI specs and SDKs ship monthly. See changelog →
Products
AML Platform
Overview
AML Platform

AML Platform

PPATK-aligned AML monitoring. Sanctions/PEP/adverse-media screening, real-time transaction monitoring, case management, and goAML XML SAR filing.

What it does

CapabilityAPI
Onboarding screeningPOST /api/screenings — single subject or batch of up to 100
Transaction monitoringPOST /api/transactions/evaluate — sub-100ms decision
WatchlistsOFAC · UN · EU · UK · ANC · PEP lists + your own private lists
AlertsAuto-created from screening/transaction hits; manual creation supported
CasesGroup alerts, four-eyes maker/checker workflow
SAR filing (goAML)Auto-generates goAML XML envelope, ready to file with PPATK
Rules engineConfigurable risk rules: thresholds, structuring, velocity, geography
Decision policyPer-org thresholds (confirmed-hit, review, escalate-score, sar-score)

Core concepts

ConceptWhat it is
CustomerSubject of monitoring. Persistent.
ScreeningSingle run of a subject against the watchlists. Produces matches with scores.
AlertSomething looked off — a transaction over threshold, a screening hit, a pattern.
CaseAn investigation: 1+ alerts + analyst notes + documents + a disposition.
SAR filingA Suspicious Activity Report destined for PPATK. Maker drafts, MLRO submits (four-eyes).
RuleA condition that, when satisfied by a screening or transaction, produces an alert.
WatchlistA list of sanctioned/PEP/adverse-media subjects. Refreshed on a schedule.
Decision policyPer-org thresholds that turn raw scores into actions (alert · escalate · file SAR).

Lanes

AML monitoring runs in three lanes:

LaneWhen it firesTypical action
onboardingNew customer creation, KYC tier changeScreen against watchlists
ongoingPeriodic re-screen of existing customer baseRe-screen at watchlist refresh
transactionEach inbound/outbound transactionScore risk, alert on hit

Common integration shape

Onboarding

  1. 1
    POST/api/customers
    Register the customer record.
  2. 2
    POST/api/screenings
    Screen against PEP / sanctions watchlists.
    Auto-creates an alert on confirmed hit.
  3. 3
    GET/api/alerts?customerId=…
    Poll for alerts — or subscribe to the alert.created webhook.
    Optional.
  4. 4
    PATCH/api/cases/{id}Analyst
    Work the case (notes, disposition).
  5. 5
    POST/api/sar-filings/{id}/submitMLRO
    File SAR — returns the goAML XML envelope.

Transaction monitoring (per-transaction, sub-100ms)

  1. 1
    POST/api/transactions/evaluate
    Inline decision + alertId.
  2. 2
    Use decision to allow / block / hold the transaction in your core banking system.

RBAC

Roles map to the standard maker/checker pattern Indonesian banks already use:

RoleReadWriteApproveSign-off SARNotes
adminManage rules, members, billing
mlroMoney Laundering Reporting Officer
analystMaker: drafts, edits, dismisses
checkerApproves what makers create
viewerRead-only

Four-eyes: rule changes and SAR submissions must be drafted and submitted by different users. The API enforces this regardless of dashboard or programmatic access.

Indonesia-specific behaviour

  • goAML XML format — SAR submissions are emitted in the PPATK-required XML envelope. We do not transmit to PPATK on your behalf in production yet (the connector exists in sandbox-mock form); you forward the XML using your existing PPATK channel.
  • NIK-aware matching — when a subject has a NIK, we de-duplicate matches that point to the same person across multiple watchlists.
  • IDR-native thresholds — cash deposit threshold defaults to IDR 500,000,000 (per PPATK Reg. PER-11/1.02/PPATK/06/2013). Configurable.
  • Bahasa Indonesia-aware — name fuzzy matching handles Indonesian naming conventions (single-name customers, patronymics, BIN/BINTI).

AML is regulator-facing — accuracy matters

Sandbox watchlists are synthetic test data. Live access requires that your organization has signed our MSA and provided your PPATK reporting entity ID. Email sales@quantumelixir.tech.

Production considerations

ConcernAnswer
Data residencyCustomer records, watchlist data, screening rows, alerts, cases, and SAR filings live in id-jkt-1. Never replicated cross-border.
WatchlistsUN-SC + OFAC sourced upstream in us-iad-1, proxied + cached in id-jkt-1 daily. PPATK PEP lists sourced directly in-region.
RetentionScreening rows + alerts + cases + SAR filings retained 7 years (PPATK regulatory minimum). Transaction monitoring rows retained 5 years.
Rate limitsScreening: 60/min/org. Transaction evaluate: 600/min/org (production tier higher on request). Bulk screening: 5 batches/min.
IdempotencyTransaction evaluate accepts an externalId field — repeated calls with the same externalId within 24h return the original decision.
Four-eyesRule changes + SAR submission enforce drafter ≠ submitter at the API layer. Non-configurable for SAR; configurable per-org for rule approvals.
PPATK rentity IDRequired before first SAR submission. Set via Dashboard → Settings → Compliance, or PATCH /api/organization with ppatkRentityId.
AuditEvery customer create, screening, alert action, rule change, SAR draft / submit / ack is audit-logged. Immutable, 7-year retention (regulatory).
Webhook signingHMAC-SHA256 over the raw body, header X-Aml-Signature: sha256=<hex>. Suite-wide migration to X-Quantum-Signature on the 2026 roadmap.
Machine accountabilityAPI keys can carry actAsUserId to bind a machine caller to a human user — required for four-eyes enforcement on bot-driven SAR submission. See Authentication →.

Read next