Fraud & Risk

Stop fraud in milliseconds — without adding checkout friction

Every transaction is scored in real time from device, velocity and network signals. Step-up only when the risk justifies it, with an explainable reason on every decision.

Real-time decisions, explained

Every payment gets allow, review, 3-D Secure or block in milliseconds — always with a plain reason code your team can read.

Device & behavior signals

VPN use, missing fingerprints, copy-paste bursts and typing patterns raise the score before authorization ever happens.

Adaptive 3-D Secure

Step-up triggers only when risk justifies it — trusted customers stay frictionless.

Velocity guards

Race-proof counters per card, IP, device or customer. Sudden bursts are caught the moment they start.

Block & allow lists

Global and per-merchant lists across 8 data types — from card BIN and e-mail to IBAN and wallet address.

Human-approved ML

Three gradient-boosted models score fraud, betting and merchant risk. Every new version ships shadow → canary → approved.

Standalone API

Integrate without using our payment infrastructure

A merchant with its own gateway or POS and a payment institution scoring its own sub-merchants connect to the same engine. One call returns the decision; a second endpoint feeds the history that counting rules read.

fraud-decision.ts
const decision = await lunixi.fraud.evaluate({
  subjectType: "card_payment",
  channel: "standalone_api",
  payment:  { amount: 250000, currency: "TRY" },
  customer: { id: "cus_88", isNew: true },
  device:   { ipAddress: ip, fingerprintId: fp },
  merchant: { merchantRef: "sub_88", mcc: "7995" },
})
// → { decision: "force_3d", score: 0.72,
//     reasonCodes: ["TCMB_3.1.2_6"], traceId: "..." }

await lunixi.fraud.events.record({
  eventId: "evt_8812",
  eventType: "transfer_completed",
  subjectType: "transaction",
  occurredAt: new Date().toISOString(),
})
SDKNode.jsPHPPostman

A decision in one call

You send the transaction and the context you have; allow, review, 3-D Secure or block comes back with its reason codes. You apply the verdict in your own authorisation step.

Event feed

Rules that count over time — velocity, distinct counts, sector comparison — need history. You feed transaction events singly or in batches; ingest writes synchronously, so the next decision sees the event immediately.

Sub-merchant context

As a payment institution you send your own merchant, its sector code and its trading history with the request; rules read that context and reports break down by sub-merchant.

Decision logs for reconciliation

Every decision is recorded permanently: which rules matched, which flow decided and the explainability summary can all be read afterwards.

Asymmetric authentication

Access is opened by requests signed against the public key you registered. Your private key stays with you; no shared secret sits with us.

Developer documentation

Ready to replace your payment stack?

Talk to our team and get a live demo tailored to your integration complexity.

Enterprise inquiry → [email protected]

Real-Time Fraud Detection & Risk Scoring — Lunixi