Handling Journey Auto-Blocking in Standard SDK
Overview
Journey Auto-Blocking is a security feature in IDWise that stops the onboarding process when one or more high-risk conditions are detected. This helps prevent suspicious or non-compliant sessions from proceeding further.
For example, when Device Intelligence is enabled, the SDK evaluates smart signals such as rooted devices, emulators, or VPN usage. If any configured condition is not met, the journey is automatically blocked, and the user is shown a clear error message.
Info
Minimum SDK Version that supports this feature is 5.4.0
Implementation
If you're using the Standard SDK, IDWise automatically:
- Evaluates all preconditions on start of the journey.
- Notifies the user if the device is blocked.
- Displays an in-app error screen explaining the issue.
Example: Rooted Device Error Screen
Optional Callback for Journey Blocked
In addition to the built-in error screen, you can listen for the onJourneyBlocked
callback to take additional action in your app logic.
Callback Behavior
onJourneyBlocked
will be Triggered when a journey is blocked.onJourneyCancelled
will not be triggered in this case- Useful for analytics, user notifications, or custom UX
Platform-Specific Examples
override fun onJourneyBlocked(journeyBlockedInfo: JourneyBlockedInfo) {
Log.d("IDWiseSDKCallback", "onJourneyBlocked $journeyBlockedInfo")
}
func onJourneyBlocked(journeyBlockedInfo: JourneyBlockedInfo) {
print("IDWiseSDKCallback", "onJourneyBlocked \(journeyBlockedInfo)")
}
onJourneyBlocked(data) {
console.log(`Journey Blocked with ${data}`);
}
onJourneyBlocked: (dynamic journeyInfo) {
print("onJourneyBlocked: $journeyInfo");
}
onJourneyBlocked(journeyBlockedInfo) {
console.log(`onJourneyBlocked ${journeyBlockedInfo.journeyId}`);
}
Data Structures
JourneyBlockedInfo
Field | Type | Description |
---|---|---|
journeyId | String | The ID of the blocked journey |
blockedTransaction | BlockedTransaction | Contains the reason and conditions of the block |
BlockedTransaction
Field | Type | Description |
---|---|---|
canRetry | Boolean | Only applicable in Dynamic SDK mode |
blockReasonMessage | String | Message shown to the user, already handled by the SDK |
allBlockReasons | List<BlockReason> | List of all unmet conditions; the first is the highest priority |
BlockReason
Field | Type | Description |
---|---|---|
blockReasonCode | String | Unique code identifying the cause of the block |
Block Reason Codes
Code | Description |
---|---|
block_reason_vpn | VPN or proxy detected |
block_reason_rooted_device | Rooted or jailbroken device |
block_reason_browser_tampering | Suspicious browser environment |
block_reason_browser_incognito | Incognito/private browsing detected |
block_reason_developer_tools | Developer/debugging tools are active |
block_reason_emulator | Emulator environment detected |
block_reason_high_device_usage | Device has excessive journey attempts |
block_reason_ip_restriction | IP address outside allowed range |
block_reason_location_not_supported | Unsupported geolocation |
block_reason_ip_block_list | IP address on blocklist |
block_reason_cloned_app | Application clone detected |
block_reason_location_spoofing | Fake GPS or geolocation masking tools |
block_reason_privacy_settings | Device privacy settings prevent evaluation |
block_reason_remote_control_tools | Remote control or remote access tools found |
block_reason_cross_device_usage | Suspicious cross-device journey behavior |
block_reason_frida | Frida (dynamic instrumentation) detected |
block_reason_virtual_machine | Virtual machine detected |
block_reason_assistance_required | User/device flagged for manual assistance |
Note
Only the checks enabled in your Device Intelligence block are evaluated. Disabled checks are skipped.
Updated 28 days ago