SIM Binding
š SIM Binding Overview
SIM Binding is a core REL-ID security feature that links a userās identity to the physical SIM card present in their device. This enhances trust by ensuring that authentication is tied to:
š± A verified mobile number
š The actual SIM used during registration
The REL-ID SDK drives the SIM Binding flow through a series of event callbacks, and the application is responsible for collecting user input and invoking the correct APIs to proceed.
The SIM Binding flow has three main stages, each clearly signaled by the SDK:
1ļøā£ User Consent Stage
Event: onGetUserConsentForSimBinding
This is the entry point for SIM Binding.
The SDK notifies the application that the user must review and provide consent before the SIM Binding process can continue.
š What your app must do
- Show consent UI
- Inform the user about upcoming permissions:
- š” Read Phone State
- āļø SMS read/send
- š OTP auto-read permissions
- Explain what will happen next based on the
challengeOpMode
āļø API to call
setUserConsentForSIMBinding
š§ Used to submit true/false consent + challengeOpMode
2ļøā£ SIM Details Collection Stage
Event: onGetUserDetailsForSimBinding
After consent, the SDK requires SIM-related details.
š± Platform-specific requirements
š¤ Android
- User must pick which SIM slot contains the number to bind
- SDK provides SIM list (carrier, state, type)
- App collects:
- š Mobile number
- š SIM slot index
š iOS
- Only the mobile number is needed
- iOS manages SIM operations internally
āļø API to call
setUserDetailsForSimBinding
š§ Sends SIM slot + mobile number (Android) or just mobile number (iOS)
3ļøā£ Account Selection & Confirmation Stage
Event: onGetUserAccountConfirmationForSimBinding
If multiple accounts exist for the provided mobile number, the SDK requires the user to select which one should be bound to the SIM.
š What your app must do
- Present a list of associated user IDs
- Capture the user's account choice
- Confirm back to the SDK
āļø API to call
setUserAccountConfirmationForSimBinding
š§ Finalizes the selected account ā completes SIM Binding
š SIM Binding Workflow Summary
| Step | SDK Event | App Responsibility | API to Call |
|---|---|---|---|
| 1ļøā£ User Consent | onGetUserConsentForSimBinding | Show consent, explain permissions | setUserConsentForSIMBinding |
| 2ļøā£ SIM Details Collection | onGetUserDetailsForSimBinding | Collect SIM slot + mobile number | setUserDetailsForSimBinding |
| 3ļøā£ Account Selection | onGetUserAccountConfirmationForSimBinding | Display user list & capture selection | setUserAccountConfirmationForSimBinding |
šÆ Developer Notes
- š” Every stage is triggered by a
challengeOpModeā this defines what your app should do next. - š§© Your UI drives the flow ā SDK only signals, your app responds.
- š React Native apps must attach event listeners using the provided NativeEventEmitter flow.
- āļø Android requires SIM slot handling; iOS does not.
Updated about 2 months ago
