Release notes, Releases Rn SDK

React Native SDK Release Notes

9.18.0

7 October 2026

approve, getUserScore, faceMatch, and startWorkflow now return the same payloads and error codes on Android and iOS, and the Phone, Email, and FullName modules now follow the shared native contract. Several of these changes are breaking; see the migration guide for the steps to update your app.

approve

  • approve now resolves { success, uuid, customerToken, error } instead of { status, id, customerToken }. The status string is replaced by the success boolean, id is renamed to uuid, and the new error field reports an iOS-only approval error (always null on Android). uuid, customerToken, and error are null when the SDK has no value for them, instead of an empty string.
  • approve now rejects on every failure with the native error code and message. It previously resolved { status: 'userCancelled' } on Android when the user cancelled, and never settled at all on iOS on a non-success path.
  • The Approve module step event now carries the same { success, uuid, customerToken, error } payload as approve on both platforms.
  • Standalone approve now emits an ONBOARDING_STEP_COMPLETED event for the Approve module on iOS, matching Android.
  • The forceApproval argument of approve is now optional and defaults to false.

getUserScore and the UserScore module

  • Added optional interviewId parameter to the getUserScore method.
  • Added userScoreFailed and userCancelled error codes, reported by the getUserScore method.
  • Renamed the getUserScore method's mode parameter to fetchMode. The old name is no longer read, so a call still passing mode silently falls back to the accurate default.
  • Changed the result shape of the getUserScore. It now contains the same payload on both Android and iOS. And it has the full score surface as UserScoreResult — overall, idValidation (with the photoSecurityAndQuality and idSpecific check lists), liveness (with livenessScore and photoQuality), faceRecognition (with existingUser), governmentValidation (with recognitionConfidence, validationStatus and ocrValidation), plus extendedUserScoreJsonData.
  • Changed the UserScore module's step-complete event, it now delivers that same UserScoreResult shape, replacing { extendedUserScoreJsonData, data: { overallScore, status, facialRecognitionScore, existingUser, idVerificationScore, livenessOverallScore } }. The UserScore type is removed.
  • Changed user score values to no longer include the /100 suffix on Android, in both getUserScore results and the onUserScoreFetched callback.
  • Changed getUserScore on Android to report userScoreFailed when a session produced no score, instead of completing with an empty result.
  • Changed the SDK to report warn where it previously reported warning status on iOS, and absent values are null instead of "".
  • Changed the SDK on iOS to reject the promise when the score cannot be fetched, instead of resolving with an empty result.
  • Changed the SDK to no longer emit a { debug: … } payload on iOS when the score is empty, the result is always well-formed.

faceMatch

  • Added optional interviewId, matchType, and idCategory parameters to faceMatch.
  • Added idCategory, isFaceMatched, isNameMatched, nfcVsIdConfidence, nfcVsSelfieConfidence, and secondIdConfidence to faceMatch's result on Android. These already existed on iOS.
  • Renamed faceMatch's result field existingUser to isExistingUser on Android. iOS already used isExistingUser.
  • Changed faceMatch's rejection code to faceMatchError with the native error message, from IncdSDK:faceMatch / "Error" on iOS and EUNSPECIFIED on Android.
  • Changed faceMatch's user-cancellation code to userCancelled, from Incd::FaceMatch::UserCancelled. Other methods keep their own Incd::…::UserCancelled codes.
  • Changed faceMatch's result fields on iOS to be omitted when the native SDK has no value, instead of defaulted to false/0.
  • Changed faceMatch's confidence, nfcVsIdConfidence and nfcVsSelfieConfidence on Android to be omitted when there was nothing to compare, instead of returned as -1. Check whether the key is present instead of comparing to -1.
  • Changed faceMatch to resolve, with those fields omitted, instead of rejecting when no confidence score can be produced.
  • Removed status from faceMatch's result. Derive it from isFaceMatched.
  • Fixed faceMatch's promise never settling when the installed native SDK has no handler for the method. It now rejects with methodNotSupportedByBridge.
  • Split the faceMatch TypeScript types: FaceMatchResult is the standalone result; FaceMatchCompleteEvent keeps its own shape for the module event.

startWorkflow

  • Added the configError flow error code. startWorkflow now rejects with it when sessionConfig has neither a configurationId nor a token. Previously this failed with unknown on Android, and on iOS only after failed network requests. IncodeSdkFlowErrorCode gains 'configError', so exhaustive switch statements over it need a new case.
  • Changed startWorkflow's rejection code for a missing presenting screen to unknown on both platforms, from Incd::StartWorkflowException on Android and IncdSDK:startWorkflow on iOS.

Phone, Email, and FullName modules

  • Breaking change Name module renamed to FullName — in flow configuration, in the completion event, and in the exported FullNameCompleteEvent type (was NameCompleteEvent). Listeners must be updated.
  • Omitting otpVerification on the Phone and Email modules now leaves the native SDK setting in place instead of forcing false.
  • Added defaultRegionPrefix to the Phone module — a dialing-code override in the range 1–9999. Out-of-range values are ignored.
  • Phone, Email, and FullName results now share one shape: status (success / fail) plus resultCode, both populated on both platforms. resultCode is the finer detail — both platforms report success and error, and Android additionally reports userCancelled and emulatorDetected, since on iOS a cancellation is reported at the session level rather than through a module callback. Phone gains status; Email and FullName gain resultCode.
  • Breaking change On Android, a failed FullName reported the native SDK's error message as status, so the value was an arbitrary sentence. It is now fail, like every other module.
  • Breaking change On iOS, a failed Phone arrived as a step error while Android delivered a completed event. It is now a completed event carrying status: "fail" on both platforms, matching Email and FullName.
  • Breaking change The captured value (phone, email, name) is now omitted when the SDK has none, instead of arriving as null or "". Check whether the key is present.
  • Breaking change (types): resultCode on Phone was declared as 'success' | 'error' | 'userCancelled' | 'emulatorDetected' but the runtime delivered the SDK's upper-snake names (SUCCESS, USER_CANCELLED). The runtime now matches the declared type. FullNameCompleteEvent also gains the name field, which it emitted but never declared.

iOS installation

  • The plugin now depends on IncodeBridgeCommon.

Working with Android SDK 5.54.0 and iOS SDK 5.50.0

9.17.0

15 September 2026

9.17.0
  • Added optional logo parameter to the SelfieScan module.
  • Added optional logo parameter to the VideoSelfie module.
  • Added storageUnavailable to IncodeSdkFlowErrorCode. Android only. It is reported when the device cannot provide a writable images directory at flow start.
  • Breaking change On Android, every event name delivered through onEvents now uses the SDK's camelCase value form (for example, userCanceled, moduleOpened) instead of the SDK enum constant name (for example, USER_CANCELLED, MODULE_OPENED). The { status: 'userCancelled' } value resolved by the flow promises is unchanged.
  • On Android, the Video Selfie V2 camera steps hide the close (X) button, so showCloseButton(true) no longer applies to them.
  • On Android, Signature V2 reads the title and description from the new onboard_sdk_signature_capture_title and onboard_sdk_signature_capture_description string resources. V1 keeps using onboard_sdk_signature_title and onboard_sdk_signature_description.
  • Added an optional documentSources parameter to the DocumentScan module (camera, photoUpload, fileUpload). It supersedes the now-deprecated showDocumentProviderScreen flag, which is still honored when documentSources is omitted.
  • Added combinedConsentsNotReceived to IncodeSdkFlowErrorCode. The flow rejects with this code when a mandatory Combined Consent cannot be shown because it has no readable text or checkbox ID. iOS only.
  • Fixed onStepCompleted not firing for the VideoSelfie module on Android. The event was previously only emitted on iOS. It now emits { module: 'VideoSelfie', result: { status: boolean } } on both platforms.

Working with Android SDK 5.53.0 and iOS SDK 5.49.0

9.16.0

28 August 2026

9.16.0
  • Added optional sslPinningConfig.forceSSLPinning to initialize (defaults to false when omitted).
  • Added sendDiagnosticsData (iOS only) parameter to initialize. Set to false to prevent the Incode SDK from sending diagnostics data. Defaults to true.
  • Removed waitForTutorials parameter from initialize method.
  • Fixed Android build failure on React Native 0.80+ caused by a Kotlin nullability mismatch in BaseActivityEventListener overrides.
  • Fixed Android build failure on React Native 0.81+ (Unresolved reference 'currentActivity').
  • setTheme now takes { theme } instead of { jsonTheme }. setFaceAuthenticationHint now takes { identityId } instead of a string or { faceAuthenticationHint }. The TypeScript parameter for showCloseButton is now allowUserToCancel (was shouldShowCloseButton); call sites stay showCloseButton(true).
  • setTheme and setUXConfig now reject with appearanceError on failure instead of resolving { success: false }.
  • On iOS showCloseButton, setLocalizationLanguage, and setString now settle their promises. They previously returned immediately without waiting for the native call.
  • Appearance methods setSdkMode, setTheme, setUXConfig, and setLocalizationLanguage now type as Promise<void>. setLocalizationLanguage was previously typed as Promise<string>.
  • Added new required parameters locale and quantityStrings to the setQuantityStrings method.
  • Removed strings parameter from the setQuantityStrings method.
  • Modified the setQuantityStrings method to, when erroring out, return a code specific to the cause of the error alongside a message and native stack trace, instead of returning a SET_QUANTITY_STRINGS_ERROR code.

Working with Android SDK 5.51.0 and iOS SDK 5.47.0

9.15.0

28 July 2026

9.15.0
  • Added integrityCompromised and removed jailbreakDetected from IncodeSdkFlowErrorCode.
  • Removed disableJailbreakDetection parameter from initialize method.

Working with Android SDK 5.50.0 and iOS SDK 5.46.0

9.14.0

26 June 2026

9.14.0
  • Added setSdkMode method to change the SDK mode (standard, captureOnly, or submitOnly) after initialization.
  • Added optional voiceConsentLanguage parameter to OnboardingSessionConfig to set the voice consent language in the VideoSelfie module. Supported values: 'en', 'es', 'pt', and 'he'. Default is English.
  • Updated IncodeSdkFlowError. Removed badEnvDetected from IncodeSdkFlowErrorCode.
  • Deprecated showTutorial parameter in DocumentScan module for Android.
  • Fixed setString on Android always applying string overrides for the en locale regardless of the language set via setLocalizationLanguage.

Working with Android SDK 5.49.0 and iOS SDK 5.44.0

9.13.0

26 May 2026

9.13.0
  • Added isInitialized method to provide a hint on whether the native SDK has been initialized or not.
  • Updated onStepUpdated to fire per-attempt events for IdScanFront, IdScanBack, and SelfieScan modules, in addition to the existing Conference updates.
  • Updated onStepUpdated signature to take a { module, listener } object (matching onStepCompleted/onStepError), replacing the previous bare-listener form.
  • Updated the default values of the lensesCheck and faceMaskCheck parameters to true in the SelfieScan module.

Working with Android SDK 5.48.0 and iOS SDK 5.44.0

9.12.0

13 May 2026

9.12.0
  • Added isSkippable flag to the Geolocation module. It allows the geolocation step to be skipped. When set to true, skipping or denying location permission advances the flow instead of ending the session with a permission error.
  • Added allAttemptsExhausted flag to IdScanResult and SelfieScanResult indicating when capture or upload retries are no longer available.

Working with Android SDK 5.47.0 and iOS SDK 5.43.0

9.11.0

28 April 2026

9.11.0
  • Added new internal Android dependency com.incode.sdk.hybrid-bridge that is required to have to a successful build. In case you're experiencing issues fetching it during gradle sync phase please contact your Incode representative, as your account access might have to be updated.

Working with Android SDK 5.46.0 and iOS SDK 5.42.0

9.10.0

26 March 2026

9.10.0
  • Added support for Android SDK initialization without api key with e2ee url.
  • Added new parameter showIdTypeChooser to IDScan module.
  • Added new parameter e2eeEncryptionEnabled for startFaceLogin method that enables End-to-End Encryption (E2EE) on Android.
  • Deprecated autocaptureUxMode parameter from the IdScan module.
  • Deprecated enableIdSummaryScreen parameter from the ProcessId module.
  • Removed parameters disableHookCheck, disableEmulatorDetection, disableRootDetection, disableVirtualEnvironmentDetection from initialize method.
  • Removed simulatorDetected, rootDetected, hookDetected, virtualEnvDetected from IncodeSdkFlowError.

Working with Android SDK 5.45.0 and iOS SDK 5.40.0

9.9.0

27 February 2026

9.9.0
  • Removed the enableRotationOnRetakeScreen parameter from the IdScan module. Captured documents are now always displayed in a vertical orientation on the Review Screen.
  • Renamed the showRetakeScreen parameter to showRetakeScreenForManualCapture in the IdScan module.
  • Renamed the showAutoCaptureRetakeScreen parameter to showRetakeScreenForAutoCapture in the IdScan module.
  • Fixed issue preventing custom V2 theme from applying when configured via JSON.

Working with Android SDK 5.44.0 and iOS SDK 5.40.0

9.8.0

09 January 2026

9.8.0
  • Fixed 'TypeError' appearing for API methods finishOnboardingFlow, approve, deleteLocalUserData and 'faceMatch' for React Native versions 0.8+.
  • Added CombinedConsent module.

Working with Android SDK 5.43.0 and iOS SDK 5.39.1

9.7.0

24 November 2025

9.7.0
  • Fixed error handling on Android.

Working with Android SDK 5.41.1 and iOS SDK 5.38.0

9.6.1

23 October 2025

9.6.1
  • Fixed compatibility issue for new React Native architectures.

Working with Android SDK 5.40.1 and iOS SDK 5.37.0

Was this page helpful?