Skip to content

Device Registration for Banking & Agent Networks

Honeypot provides built-in device registration — you don't need to build a device registry. Every request answers two questions:

  1. Do we know this device? — Is it registered to a user?
  2. Do we trust this device? — Is it registered AND free of risk signals?

The Core Flow

1. Device Gets a Persistent ID

When your app launches, Honeypot generates a unique device ID that:

  • Persists across app reinstalls (stored in Android Keystore)
  • Cannot be spoofed or transferred to another device
  • Identifies the physical device, not the app installation
kotlin
val deviceId = Honeypot.deviceId
// "834d2f18-853b-4e60-92b3-4e1226306d70"

2. Device Gets Registered to a User

During onboarding, you register the device to a specific user (agent, customer, staff):

kotlin
Honeypot.registerDevice(userId = "agent-12345") {
    set("role", "bank_agent")
    set("branch", "lagos-central")
}

Honeypot now knows: this device belongs to agent-12345.

3. Every Request Returns Registration + Trust Status

When the user performs any action, Honeypot tells you:

kotlin
val result = Honeypot.track("P2P Transfer") { ... }

result.onSuccess { response ->
    response.device.isRegistered    // true - we know this device
    response.device.registeredTo    // "agent-12345" - who it belongs to
    response.device.isTrusted       // true - registered AND no risk flags

    response.riskScore              // 0.1 - low risk
    response.tags                   // [] - no risk signals
}

4. You Make Authorization Decisions

Your app decides what to allow based on device status + risk signals:

Device StatusRisk SignalsAction
Not registeredBlock, require registration
Registered, trustedNoneAllow
Registered, trustednew_deviceAllow with limits
Registered, trustedvpnChallenge (disable VPN)
Registered, not trustedmulti_userBlock, security alert
Registered, not trustedrootedBlock

Architecture

Device Registration Architecture

What Each Layer Does

LayerResponsibility
Android SDKGenerates persistent device ID, sends events
Device RegistryMaps device_id → user_id, tracks active/deactivated status
Risk EngineDetects emulators, root, VPN, behavioral anomalies
Your BackendMakes authorization decisions based on device + risk signals

Integration Flow

Device Registration Flow


Use Cases

ScenarioWhat You Check
Agent onboardingRisk signals before registering device
Customer onboardingPhone/email validation + device registration
Agent starts shiftDevice registered to this agent?
Customer transactionDevice registered? Trusted? Velocity limits?
Phone lost/stolenDeactivate device immediately
Agent gets new phoneRegister new device, deactivate old

Next Steps