Biometric Opt Out
📘 Overview
The Biometric Opt-Out feature enables a logged-in user to revoke previously given consent for biometric template storage. Upon successful opt-out, the user's biometric template is deleted from the REL-ID server.
🧭 When to Use
Use this flow in post-login user sessions to allow users to:
- Delete their stored biometric (selfie) data.
- Opt out of biometric authentication for future logins.
🖥️ Suggested UI Screen
A settings or privacy screen should conditionally show the option:
"Delete My Biometric Data" or "Opt Out of Biometric Login"
🔎 Important: This option must be shown only if a biometric template exists on the server.
🔁 Flow Steps
-
Check Biometric Template Status:
- Call
checkIDVUserBiometricTemplateStatus()
API. - If the user does not have a biometric template stored, do not show the opt-out option.
- If a template exists, display the “Opt Out of Biometrics” option on the UI.
- Call
-
User Action: User taps the “Opt Out” option in the app.
-
API Call: Application invokes
initiateIDVBiometricOptOut()
. -
Authentication Prompt:
- If user logged in via device auth (PIN/Pattern/Biometric) → device-native prompt shown.
- If logged in via password →
getPassword
event is triggered.
-
On Success:
- SDK deletes biometric template from server.
- Triggers
onIDVBiometricOptOutStatus
event.
-
On Failure:
onIDVBiometricOptOutStatus
returns error payload.
flowchart TD userLogsIn[User Logs In] onUserLoggedIn[SDK triggers onUserLoggedIn] checkIDVUserBiometricTemplateStatus[App calls checkIDVUserBiometricTemplateStatus] onIDVCheckUserBiometricTemplateStatus[SDK triggers onIDVCheckUserBiometricTemplateStatus] showOptOut[App shows Biometric Opt Out option] initiateIDVBiometricOptOut[App calls initiateIDVBiometricOptOut] ldaOrPassword[SDK triggers LDA Prompt of getPassword] provideLdaOrPassword[Provide LDA or setPassword] deleteTemplate[Users biometric template on server deleted] onIDVBiometricOptOutStatus[SDK triggers onIDVBiometricOptOutStatus] userLogsIn --> onUserLoggedIn onUserLoggedIn --User goes to settings --> checkIDVUserBiometricTemplateStatus checkIDVUserBiometricTemplateStatus --> onIDVCheckUserBiometricTemplateStatus onIDVCheckUserBiometricTemplateStatus -- template present --> showOptOut showOptOut -- User chooses to Opt Out --> initiateIDVBiometricOptOut initiateIDVBiometricOptOut --> ldaOrPassword ldaOrPassword --> provideLdaOrPassword provideLdaOrPassword --> deleteTemplate provideLdaOrPassword -- Failure --> onIDVBiometricOptOutStatus deleteTemplate --> onIDVBiometricOptOutStatus %% Success Callback Styling style onUserLoggedIn fill:#d4fdd4,stroke:#228b22,stroke-width:2px style onIDVCheckUserBiometricTemplateStatus fill:#d4fdd4,stroke:#228b22,stroke-width:2px style onIDVBiometricOptOutStatus fill:#d4fdd4,stroke:#228b22,stroke-width:2px %% App-Initiated Call Styling style checkIDVUserBiometricTemplateStatus fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px style initiateIDVBiometricOptOut fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
🟩 Green - Callbacks issued by REL-ID SDK
🟧 Orange - APIs invoked by the Client App
API: initiateIDVBiometricOptOut
initiateIDVBiometricOptOut
📝 Description
Initiates the biometric opt-out flow for the logged-in user. This will prompt the user for authentication and, upon success, delete the stored biometric template from the server.
📥 Invocation
React Native
RdnaClient.initiateIDVBiometricOptOut((response) => {});
Flutter
rdna.initiateIDVBiometricOptOut();
Cordova
com.uniken.rdnaplugin.RdnaClient.initiateIDVBiometricOptOut(successCallback, errorCallback);
Native iOS
(RDNAError *)initiateIDVBiometricOptOut;
Native Android
RDNA.RDNAError initiateIDVBiometricOptOut();
📤 Parameters
None
🔁 Returns
RDNAError
JSON structure indicating success or failure.
2. 📡 Event: onIDVBiometricOptOutStatus
onIDVBiometricOptOutStatus
📝 Description
This event is triggered in response to the initiateIDVBiometricOptOut()
API. It informs the app whether the opt-out action succeeded or failed.
📩 Sample Payload
{
"status": "success",
"message": "Biometric template deleted successfully",
"shortErrorCode": 0,
"errorMessage": null
}
📥 Parameters in Payload
Field | Type | Description |
---|---|---|
status | string | "success" or "failure" indicating the result |
message | string | Human-readable message describing result |
shortErrorCode | int | Error code (0 if success, non-zero if failure) |
errorMessage | string | Error description if any |
✅ On Success
- Show: "Your biometric data has been removed successfully."
- Update app state/UI to reflect opt-out.
❌ On Failure
- Display error from
errorMessage
- Optionally retry or suggest alternate recovery
🔒 Auth Notes
- If user logged in with device auth (Biometric/PIN/Pattern), OS-native auth prompt is shown.
- If logged in with password, SDK invokes
getPassword
event to capture user password.
Updated about 2 months ago