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

Anti-Fraud Platform

Real-time fraud risk decisions on every onboarding and every transaction. Backed by a curated Indonesian rule library, a device intelligence SDK for mobile, and an ML scoring layer that learns from your dispositions.

Scope: fraud, not AML

Anti-Fraud Platform handles application fraud, account-takeover, transaction fraud, and device-level risk. It is explicitly not an AML / sanctions / PEP / SAR product — that's AML Platform →. The two services share customers but maintain separate alert tables and decision policies.

What it does

CapabilityAPI
Real-time risk evaluationPOST /api/evaluate — sub-100ms decision
Mobile device intelligencePOST /api/device-session + React Native SDK
Jailbreak / root detectionNative iOS + Android probes inside the SDK
Native attestationAppAttest (iOS) + Play Integrity (Android)
Allow / block listsNIK, email, phone, IP, beneficiary, country
Configurable rules + ML scoresCombine deterministic rules with ML risk
Cases & workflowsGroup alerts, route to investigators
Custom workflows / automationsAuto-decline · notify · escalate · hold based on triggers

Core concepts

ConceptWhat it is
CustomerThe user being scored. Anti-fraud reads (never writes) Customer.kycLevel from Identity Platform.
Laneonboarding or transaction. Most rules and thresholds are lane-specific.
EvaluationA single POST /api/evaluate. Produces a decision, a fraudScore, and a list of rule hits.
Device sessionAn SDK-collected device payload with signals + attestation, token-referenced from the evaluate call.
AlertThe fraud-side equivalent of an AML alert. Same lifecycle pattern.
RuleDeterministic logic that can fire allow / review / flag / block (and bypass ML when needed).
ML scoreA per-org learned model that can downgrade rule actions when ML confidence is low.
ListAllow / block list keyed by NIK, email, phone, IP, beneficiary, or country.
WorkflowReactive automation triggered by alert creation: auto-decline, notify, escalate, or hold.

Decisions

POST /api/evaluate returns one of four decisions:

DecisionWhat it means
allowProceed.
flagProceed but record an alert for analyst review (post-hoc).
reviewHold the transaction/application; analyst must clear before completion.
blockReject immediately.

Common integration shape

Onboarding (mobile app)

  1. 1
    SDK
    SDK collects device payload.
    `@quantum-elixir/device-sdk-rn`.
  2. 2
    POST/api/device-session
    Returns `sessionToken` (30-min TTL).
  3. 3
    POST/api/evaluate
    Pass `sessionToken` + customer / application data.
  4. 4
    Use the decision to gate completion.

Transaction monitoring

  1. 1
    POST/api/evaluate
    `lane=transaction`, amount, channel, counterparty.
  2. 2
    Use the decision to gate the transaction.
  3. 3
    Subscribe to the `alert.created` webhook for backoffice review.
    Async — runs in parallel with the decision path.

Endpoints at a glance

GroupEndpoints
EvaluatePOST /api/evaluate · POST /api/test-evaluate
ChannelsGET/POST /api/channels · GET/PATCH/DELETE /api/channels/{id} — see Channels →
Device SDKPOST /api/device-session · GET /api/device-session/{token} · GET /api/sdk-config
CustomersGET /api/customers · GET /api/customers/{id}
AlertsGET /api/alerts · GET /api/alerts/{id} · POST /api/alerts/{id}/{assign,escalate,resolve}
RulesGET/POST /api/rules · GET/PUT /api/rules/{id} · POST /api/rules/{id}/{approve,backtest}
CasesGET /api/cases · GET /api/cases/{id} · POST /api/cases/{id}/{notes,reject-customer}
WorkflowsGET/POST /api/workflows · GET /api/workflows/{id}/runs
ListsGET/POST /api/lists · POST /api/lists/{id}/entries · POST /api/lists/{id}/import
AnalyticsGET /api/analytics · POST /api/reports · GET /api/metrics
WebhooksGET/POST /api/webhooks · POST /api/webhooks/{id}/test
API keysGET/POST /api/api-keys
HealthGET /api/healthz

Production considerations

ConcernAnswer
Data residencyAll evaluations, device sessions, alerts, and ML training data live in id-jkt-1. Never replicated cross-border.
Latency tiersStandard p95 80ms · Premium p95 40ms · Enterprise p95 20ms (co-located inside your VPC). See Risk evaluation → Latency.
Rate limitsPer-org default: 100 /api/evaluate calls/min on sandbox; per-tier limits up to 20,000/min on production. List imports: 5/min. See Rate limits →.
IdempotencyPOST /api/evaluate accepts a requestId field — same requestId within 24h returns the original decision row. Use the upstream transaction ID.
Device session TTL30 minutes from POST /api/device-session. Re-issue rather than extend.
ML modelPer-org learned model (anti-fraud:v3). Re-trained nightly on your dispositions. Branded as Quantum AI; internal stack not exposed.
AuditEvery evaluate, alert action, rule change, list change, channel change, workflow trigger is audit-logged. Immutable, 7 years.
Webhook signingHMAC-SHA256 over the raw body, header X-AntiFraud-Signature: sha256=<hex>. Suite-wide migration to X-Quantum-Signature on the 2026 roadmap.
Customer.kycLevelAnti-fraud reads kycLevel as a feature; never writes it. KYC tier is owned by Identity Platform.

Anti-Fraud + Identity together

The most powerful pattern is to pair anti-fraud signals with KYC tier. Customer.kycLevel is owned by Identity Platform; anti-fraud reads it as a feature:

KYC tierAnti-fraud default treatment
noneHigher base risk; almost always review on first transaction
basicStandard scrutiny
standardStandard scrutiny
premiumLower base risk on legitimate-looking transactions; faster auto-allow

If you want an end-to-end onboarding example that wires Identity + Anti-Fraud together, see Guides → End-to-end KYC onboarding.

Read next