Kavaach
Native 3DS SDK
Keeps the authentication step inside your merchants' app, working with the certified 3DS Server you already operate.
Explore KavaachShastra · Device intelligence
Shastra combines device recognition, integrity, network context, permissioned behavioral signals, and optional merchant context into an on-device risk score — before authentication begins. Your policy decides what to do with the result.
Same device, same patterns, nothing new about this transaction.
Returning device with established history and a familiar network context.
Illustrative values. The answer is produced on the device and returned to your own code.
The cost of getting it wrong
Most merchants optimize for catching fraud. The larger loss is the legitimate customers they block — $443 billion a year, exposed by the tools meant to protect them.
lost to false declines annually
Aite-Novarica / Javelin
of declined orders are legitimate
Signifyd
of loyal customers never return after one false decline
Signifyd
of orders declined on average — 65% are false positives
Aite-Novarica
Device context before the decision is made is how you stop blocking the customers you want to keep.
How it decides
Recognition is the first question. Integrity, environment, and network context are what stop recognition from being naive — a device you know can still be a device in the wrong hands.
Consistent history and a familiar network contribute to a low-risk sample score of 18 / 100. Recognition does not establish who is holding the device.
Consistent history and a familiar network.
Recognition and current device conditions are evaluated together.
Risk score: 0–100. Higher means higher risk. Scores and bands shown are illustrative; merchant-configured thresholds may differ.
Inputs and outputs
A compact neural network runs on the device and weighs four groups of signals together. One flag on its own is noise; the combination is what the score represents, and the reason codes tell you which part of it mattered.
Recognition state and supported device history, so your policy can tell a returning device apart from a new one.
Root and tamper indicators, emulation, hooking and instrumentation, debugger attachment, and runtime manipulation observed from inside the app.
Connection characteristics and whether they changed mid-session, plus permissioned behavioral context such as interaction timing and motion patterns, where enabled and disclosed.
Optional and merchant-supplied. Amount and currency first; account age and billing or shipping relationships where the merchant can share them.
Risk score: 0–100. Higher means higher risk. Example bands: 0–30 low risk, 31–70 medium risk, 71–100 high risk. Merchant-configured thresholds may differ.
Recognition and history
Shastra returns a pseudonymous device binding and recognition context so your policy can distinguish an established device from a new one. Recognition is context — not proof of cardholder identity.
Use prior recognition and supported device history to add context to the current transaction.
For platforms with the appropriate contractual rights and disclosures, recognition scope can extend across participating merchant apps. Scope and retention are configured for the deployment.
The device binding is a technical reference, not a customer profile. Data fields, retention, and access boundaries are documented for the deployment.
Native SDK context can expose mobile integrity and in-app signals that a browser-only integration does not provide in the same way.
Integration and control
Shastra returns a device binding, recognition state, risk score, and reason codes to your application. Optional transaction context can be supplied by the merchant. The result stays in merchant policy and is not inserted into 3DS protocol messages.
The device binding and the score never enter AReq, CReq, or CRes. They are returned to the merchant's own code to act on.
Your policy owns the decision. Shastra evaluates risk; your thresholds and rules determine the action. Configuring and applying merchant-owned policy through Mitra, without an app release, is in development.
Signed model artifacts are versioned and delivered at initialization, staged across traffic, with automatic revert to last known good.
Score live traffic alongside your existing decisions and compare the two before a single transaction depends on it.
// Optional — context the merchant already has
val context = RiskContext.builder()
.amountMinor(50000)
.currency("USD")
.build()
// Resolved locally during initialize()
val device = service.deviceDecision(context)
device.bindingId // "bnd_8f2a…b2a1"
device.recognized // true
device.priorAuths // 47
device.boundSince // 2025-07-14
device.score // Sample: 18 / 100; higher means higher risk
device.reasonCodes // [RECOGNIZED_DEVICE, …]
// Your policy, your call
if (device.recognized && device.score < policy.frictionlessCeiling) {
checkout.requestFrictionless()
}
Illustrative API shape, for orientation.
Shastra is licensed on its own and metered per scored transaction, independently of the 3DS SDK.
Licensed independently of Kavaach and metered per scored transaction. Early customers can run Shastra in shadow mode against live traffic before using the score in policy.
Android is available for evaluation today; iOS is in development. Shastra operates independently of the 3DS flow, so evaluation runs alongside your existing policy.
Routing stays in your policy engine. Signals are permissioned, and data rights are set in the contract before anything is enabled.
Questions
No. Merchant policy decides whether to invoke 3DS, subject to applicable authentication requirements. If 3DS is invoked, the issuer controls the authentication outcome and challenge decision. Shastra's result is returned to your code, not inserted into 3DS messages.
Shastra returns a risk score from 0 to 100. Higher means higher risk. Reason codes explain the risk context. The illustrated bands are 0–30 low risk, 31–70 medium risk, and 71–100 high risk; merchant-configured thresholds may differ.
Shastra derives a pseudonymous device binding from signals available to the native SDK. The derivation method is proprietary. The binding is not a PAN, CVV, authentication secret, advertising ID, or cookie. Exact signal use, retention, and disclosure requirements are documented for the deployment.
It is reported as unrecognized, with a new device binding created and a score that reflects having no history. An unknown device is not treated as a bad one — it is treated as a device worth authenticating properly.
Where contractually enabled, recognition scope can include participating apps in a platform or portfolio. This requires the appropriate data rights, disclosures, retention policy, and tenant isolation. It is not assumed or silently enabled.
Collection starts at initialize() and the answer is produced locally against a sub-megabyte model. There is no blocking network call in the checkout path, so the result is ready before the authentication request is assembled.
Shastra
Start in shadow mode, keep the comparison, and switch it on when the numbers are yours rather than ours.