One SDK for Android, iOS and web
Behavioural biometrics Know when the owner isn’t the one acting.
How the owner types, taps and moves through the app, against this session. Read from the first login to the payment.
Why it matters.
The right password and the right phone can still be in the wrong hands. How they are used gives it away.
The owner’s own rhythm
How they type, tap and swipe, learned on the bound phone from their first sessions.
Pressure, in the session
Hesitation, dictation pauses and repeated cancels: someone typing what a caller reads out.
Bots and agents, told apart
Scripted input from an emulator, a device farm or an undeclared agent breaks the human rhythm.
Never read alone
Behaviour joins the call, the device and the payee in one decision. Alone, a pause is worth a look and nothing more.
Four layers of behaviour, one SDK.
Read on the phone in every session, and turned into the rules your policy runs.
How the owner types the MPIN, taps and swipes, compared with this session. Someone else with the right credentials breaks it.
Payee details typed a few characters at a time, with pauses and repeated cancels: the shape of someone typing what a caller reads out.
Scam signalsInput timed by a script, from an emulator or a device farm, or an AI agent acting without being declared, is read at sign-up and login.
A session that moves through the app unlike the owner’s: straight to a new payee and the limit, at an unusual pace, read with the payment.
Behaviour adapts to every risk, wherever your customers are.
Account takeover
Tell the owner from someone with the owner’s password.
login.attemptYour console
- Signal
- Rhythm not the owner’s
- Decision
- Step up
- Reasons
BEHAVIOUR_DRIFT STEP_UP_FACE
The right MPIN, the wrong hands: the customer sees “Confirm it’s you. Confirm it’s you with a quick face check.” Your console records Step up, for Rhythm not the owner’s, with BEHAVIOUR_DRIFT and STEP_UP_FACE.
login.attemptYour console
- Signal
- Details pasted
- Decision
- Step up
- Reasons
DETAILS_PASTED
Credentials pasted in: the customer sees “Confirm it’s you. Confirm it’s you with a quick face check.” Your console records Step up, for Details pasted, with DETAILS_PASTED.
device.changeYour console
- Signal
- New device, unusual rhythm
- Decision
- Cool off
- Reasons
NEW_DEVICE COOL_OFF
A new phone, a new rhythm: the customer sees “Limit for now. You can send up to ₹10,000 from this phone now. You get the full limit in 12 hours.” Your console records Cool off, for New device, unusual rhythm, with NEW_DEVICE and COOL_OFF.
Coached payments
See the pressure while money moves, before it leaves.
payee.addYour console
- Signal
- Dictation pauses, call active
- Decision
- Hold
- Reasons
DICTATION_PAUSES ACTIVE_CALL
Details dictated on a call: the customer sees “Payment paused. Payee not added yet. We’ll call you on +91 •••• 3210 before anything changes.” Your console records Hold, for Dictation pauses, call active, with DICTATION_PAUSES and ACTIVE_CALL.
payment.initiateYour console
- Signal
- Repeated cancels
- Decision
- Warn
- Reasons
URGENCY_SIGNS
Hesitation and cancels: the customer sees “Check before you send. If someone on a call asked you to make this payment, stop. Banks, police and courts never ask you to move money to keep it safe.” Your console records Warn, for Repeated cancels, with URGENCY_SIGNS.
payment.initiateYour console
- Signal
- Unusual path and amount
- Decision
- Hold
- Reasons
BEHAVIOUR_DRIFT AMOUNT_UNUSUAL
Straight to the limit: the customer sees “Payment paused. Payment paused. Your money hasn’t left your account. We’ll call you on +91 •••• 3210.” Your console records Hold, for Unusual path and amount, with BEHAVIOUR_DRIFT and AMOUNT_UNUSUAL.
Bots and agents
Tell a person from a script, and a declared agent from one that isn’t.
signup.startYour console
- Signal
- Scripted timing
- Decision
- Block
- Reasons
SCRIPTED_TIMING EMULATOR
Scripted sign-ups: the customer sees “Can’t continue. We couldn’t verify this session. Your money is safe.” Your console records Block, for Scripted timing, with SCRIPTED_TIMING and EMULATOR.
login.attemptYour console
- Signal
- Undeclared automation
- Decision
- Step up
- Reasons
AUTOMATION_UNDECLARED
An undeclared agent: the customer sees “Confirm it’s you. Confirm it’s you with a quick face check.” Your console records Step up, for Undeclared automation, with AUTOMATION_UNDECLARED.
signup.startYour console
- Signal
- Scripted timing, shared device
- Decision
- Block
- Reasons
SCRIPTED_TIMING SHARED_DEVICE
Device farms: the customer sees “Can’t continue. We couldn’t verify this session. Your money is safe.” Your console records Block, for Scripted timing, shared device, with SCRIPTED_TIMING and SHARED_DEVICE.
One SDK, every module.
Behaviour is weighed with everything else DeepID reads.
Device intelligence
A fingerprint that survives resets, and tampering read every session.
Scam signals
The call and the shared screen, while money moves.
Payee and mule graph
Where the money is going, before it goes.
Liveness and face match
A live person, a real camera, the right face.
SIM and device binding
The account bound to the customer’s own phone and SIM.
One decision, with reasons
Allow to block, sent to the app and the FRM.
Read next.
Scam interventions
What to do when the customer is the one being played.
Injection attacks
How a fake camera feed reaches a selfie check, and how the device gives it away.
SIM and device binding
What each one ties down, and why banks use both.
Questions banks ask.
How long before behaviour signals are useful?
It depends on how often your customers use the app, so it is measured on your own traffic during the shadow proof rather than promised up front.
Can malware imitate a human?
Some Android malware pauses between keystrokes to pass as human. That is why behaviour is never read alone: the device check sees the hooking or the overlay, and the decision weighs both.
Does this replace a face check or the device check?
No. It adds what they cannot see: whether the person with the right face and the right phone is behaving like the owner, and whether they are being coached.
Is behavioural data personal data?
In most markets it is. What is collected, why, and for how long are agreed with your security team before a pilot.
Try one-tap login on your own number.
See the network confirm your number with nothing to type, and the next check take over when it can’t. Then plan a shadow proof on one journey, measured on your own traffic.