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

StepSDK EventApp ResponsibilityAPI to Call
1ļøāƒ£ User ConsentonGetUserConsentForSimBindingShow consent, explain permissionssetUserConsentForSIMBinding
2ļøāƒ£ SIM Details CollectiononGetUserDetailsForSimBindingCollect SIM slot + mobile numbersetUserDetailsForSimBinding
3ļøāƒ£ Account SelectiononGetUserAccountConfirmationForSimBindingDisplay user list & capture selectionsetUserAccountConfirmationForSimBinding

šŸŽÆ 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.