SIM Binding Challenges

SIM Binding allows users to bind their device's SIM card to their REL-ID account for enhanced security and authentication. This process involves multiple phases:

PRE_SMS Sim Binding Flow

User Consent
SIM Details Collection
Auto Read SMS OTP verification
Account Confirmation/ User Selection
Auto Check User and Subsequent challenge will be triggered.

This diagram illustrates the SIM Binding flow with PRE_SMS, showing the interaction between USER, APP, and SDK.

sequenceDiagram
    participant USER
    participant APP
    participant SDK

    %% Step 1: SDK triggers user consent
    SDK->>APP: onGetUserConsentForSimBinding(challengeOpMode, response, error)
    APP->>USER: Show consent dialog/Screen
    USER->>APP: Provide consent
    APP->>SDK: setUserConsentForSimBinding(true, challengeOpMode)

    %% Step 2: SDK requests for the required permissions internally
    note left of SDK: User needs to allow the permissions to continue the sim binding flow.

    %% Step 3: SDK requests user details
    SDK->>APP: onGetUserDetailsForSimBinding(challengeOpMode, simDetails, response, error)
    APP->>USER: Show SIM details input
    USER->>APP: Provide SIM Slot and associated mobile number
    APP->>SDK: setUserDetailsForSimBinding(simData, challengeOpMode)

    %% Step 4: SDK auto-reads SMS OTP
    SDK->>APP: getSMSOTP(String response)
    APP->>SDK: Auto read and process OTP / trigger verification

    %% Step 5: SDK requests user account confirmation
    SDK->>APP: onGetUserAccountConfirmationForSimBinding(challengeOpMode, userIDList, response, error)
    APP->>USER: Show account selection
    USER->>APP: Select userID
    APP->>SDK: setUserAccountConfirmationForSimBinding(selectedUserID, challengeOpMode)

    %% Step 6: SIM Binding completed
    SDK->>APP: SIM Binding completed
    note left of SDK: Subsequent challenges (if any) will be triggered to App

POST_SMS Sim Binding Flow

User Consent
SIM Details Collection
Account Confirmation/ User Selection
Auto Read SMS OTP verification
Auto Check User and Subsequent challenge will be triggered.

SIM Binding Flow - POST_SMS

This diagram illustrates the SIM Binding flow with POST_SMS, showing the interaction between USER, APP, and SDK.

sequenceDiagram
    participant USER
    participant APP
    participant SDK

    %% Step 1: SDK triggers user consent
    SDK->>APP: onGetUserConsentForSimBinding(challengeOpMode, response, error)
    APP->>USER: Show consent dialog/Screen
    USER->>APP: Provide consent
    APP->>SDK: setUserConsentForSimBinding(true, challengeOpMode)

    %% Step 2: SDK requests for the required permissions internally
    note left of SDK: User needs to allow the permissions to continue the sim binding flow.

    %% Step 3: SDK requests user details
    SDK->>APP: onGetUserDetailsForSimBinding(challengeOpMode, simDetails, response, error)
    APP->>USER: Show SIM details input
    USER->>APP: Provide SIM Slot for the associated mobile (Applicable for Android)
    APP->>SDK: setUserDetailsForSimBinding(simData, challengeOpMode)

    %% Step 4: SDK requests user account confirmation
    SDK->>APP: onGetUserAccountConfirmationForSimBinding(challengeOpMode, userIDList, response, error)
    APP->>USER: Show account selection
    USER->>APP: Select userID
    APP->>SDK: setUserAccountConfirmationForSimBinding(selectedUserID, challengeOpMode)

    %% Step 5: SDK auto-reads SMS OTP
    SDK->>APP: getSMSOTP(String response)
    APP->>SDK: Auto read and process OTP / trigger verification

    %% Step 6: SIM Binding completed
    SDK->>APP: SIM Binding completed
    note left of SDK: Subsequent challenges (if any) will be triggered to App