Release notes, Releases Cordova SDK

Cordova SDK Release Notes

4.10.0

7 October 2026

  • Breaking change If a flow configuration includes a module name the SDK doesn't recognize, the call now fails with an unknownModule error. Previously, the SDK skipped the module, wrote a log message, and still reported the flow as successful even though the step never ran. Before you upgrade, check your flow configurations for outdated or misspelled module names.
  • Added an optional documentSources parameter to the addDocumentScan module. Pass an array of "camera", "photoUpload", and "fileUpload" to restrict the submission methods offered on the source chooser. The parameter defaults to every source the documentType supports.
  • Added the approve method, which allows you to start user approval from your code instead of relying on the flow configuration.
  • Changed the approveData result of the in-flow approve module to the same shape the new approve method returns:
    • status and id are now success and uuid.
    • A new error key was added. See the Migration Guide.
  • Added an integrityCompromised error case on iOS.
  • Added an optional interviewId parameter to the getUserScore method.
  • The getUserScore method can now return two new error codes:
    • userScoreFailed: No score could be retrieved for the session, for example in submit-only mode or after a network error.
    • userCancelled: The user canceled before the score was returned. Android only. On iOS, getUserScore shows no UI, so the user can't cancel it.
  • Breaking change If an Android session produces no score, getUserScore now fails with userScoreFailed. Previously, it succeeded with an empty result. If your app treated an empty result as a valid outcome, move that handling to your error callback.
  • Changed the result shape of the getUserScore method; it is now an object. It contains the same payload on both Android and iOS. It adds governmentValidation, the per-check lists, livenessScore, photoQuality and existingUser.
  • Changed the user score values on Android to no longer include the /100 suffix, in both getUserScore results and the onUserScoreFetched callback.
  • Changed the SDK to report warn where it previously reported warning status on iOS. Absent values are null instead of "".
  • On Android, getUserScore now uses fast mode when you pass fetchMode: 'fast'. Previously, it always used accurate.
  • The plugin now depends on IncodeBridgeCommon.
  • The plugin now adds the URL schemes that the iOS SDK checks for jailbreak detection to LSApplicationQueriesSchemes in your app's Info.plist. Entries your app already has are kept. See the Installation guide.
  • Breaking change The addPhone module has been renamed to Phone. See the Migration Guide.
  • Breaking change The addEmail module has been renamed to Email. See the Migration Guide.
  • Added the FullName module, which collects the user's first and last name.
  • Added otpVerification and defaultRegionPrefix parameters to the Phone module. Neither was previously available in Cordova.
  • Breaking change The Email module's otpVerificationEnabled parameter has been renamed to otpVerification, matching the name used on the other platforms. See the Migration Guide.
  • otpVerification accepts a real boolean (true) in addition to the legacy string form ("true"). Omitting it leaves the native SDK setting in place.
  • phoneData, emailData, and fullNameData now share one shape: the captured value, status (success / fail), and resultCode, with both outcome fields populated on both platforms. resultCode is the finer detail; both platforms report success and error, and Android additionally reports userCancelled and emulatorDetected. On iOS, a cancellation is reported at the session level, not through a module callback. phoneData gains status; all three gain resultCode.
  • Breaking change The captured value (phone, email, name) is now omitted when the SDK has none, instead of arriving as "". Check whether the key is present.
  • Breaking change On Android, the setTheme() color positive800 has been renamed to positive750, matching its name on iOS. It is the same color. The old key is ignored. See the Migration Guide.

Changes to standalone faceMatch()

  • Added optional matchType, interviewId, and idCategory parameters.
  • Added secondIdConfidence to the result.
  • Renamed the existingUser result field to isExistingUser.
  • Removed status from the result. Derive it from isFaceMatched.
  • Changed the error callback to receive { code, message, cause } instead of a bare string. Codes are faceMatchError and userCancelled, replacing "FaceMatchFailed" and "onUserCancelled".
  • Changed the result on iOS to be returned flat, matching Android. It was nested under faceMatchData.
  • When the native SDK has no value for one of these fields, the plugin now leaves the field out of the result. Previously, it filled in a default of 0, false, or "".
    • Android and iOS: nfcVsIdConfidence, nfcVsSelfieConfidence
    • iOS only:isFaceMatched, isNameMatched, and existingInterviewId
  • When there's no value for one of these fields—for example, because there was nothing to compare—the plugin now leaves the field out of the result. Previously, it filled in a default.
    To check whether a field has no value, test for undefined instead of comparing to the old default. For the fields listed above, a 0 or false is now always a real result.
Expand to view old defaults per field
Field Platform Old Default
confidence Android -1
nfcVsIdConfidence Android -1
iOS 0
nfcVsSelfieConfidence Android -1
iOS 0
isFaceMatched iOS false
isNameMatched iOS false
existingInterviewId iOS ""
  • Fixed the error callback never firing on iOS: failures arrived at the success callback as faceMatchData: { debug: "..." }.

Changes to startWorkflow()

  • Changed the error callback to receive { code, message, cause } instead of a bare string. It previously read "Failed to start workflow: <message>" on Android and "No presenting view controller available." on iOS. See the Migration Guide.
  • Added the configError error code. startWorkflow() now reports it when sessionConfig has neither a configurationId nor a token, instead of failing with unknown on Android or after failed network requests on iOS.
  • Changed sessionConfig to be optional, matching React Native. A missing value now falls back to SDK defaults instead of rejecting the call.

Working with Android SDK 5.54.0 and iOS SDK 5.50.0

4.9.0

16 September 2026

  • Added an appleWalletMerchantID parameter to initializeSDK(), for iOS only.
  • Added the combinedConsentsNotReceived error case on iOS. A mandatory combined consent that has no readable text or checkbox ID now stops the flow instead of being accepted silently.
  • Added the storageUnavailable error code, for Android only. The error callback of startOnboarding() and startOnboardingSection() receives it when the device cannot provide a writable images directory, so the flow now fails at start instead of losing captures later on.
  • Changed MLConsentData.status on iOS to report the choice the user made: true when the consent was accepted and false when it was declined. It previously reported true whenever the submission succeeded. See the Migration Guide.
  • On Android, the Video Selfie V2 camera steps hide the close (X) button, so cordova.exec(resolve, reject, "Cplugin", "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.

Working with Android SDK 5.53.0 and iOS SDK 5.49.0

4.8.0

28 August 2026

  • Added the setQuantityStrings method, which is used to localize plural texts on Android.
  • Added optional initializeSDK() parameters: sdkMode, externalAnalyticsEnabled, and externalScreenshotsEnabled.
  • Added a sendDiagnosticsData parameter to initializeSDK(), for iOS only. Set it to false to prevent the Incode SDK from sending diagnostic data. Defaults to true.
  • Removed the isExternalTokenEnabled parameter from the initializeSDK() method.
  • Added the setSdkMode, setLocalizationLanguage, and setString methods.
  • Renamed the setFaceAuthenticationHint parameter from faceAuthenticationHint to identityId.
  • Renamed the setUXConfig parameter from config to jsonConfig.
  • Fixed a bug on iOS where a denied or unavailable location permission during the addGeolocation module ended the startOnboardingSection call immediately, before the section itself had finished.
  • Updated the Android build requirements: compileSdk 36, Kotlin Gradle plugin 2.2.21, Android Gradle Plugin 8.9.1, Gradle 8.14.5, kotlinx-coroutines 1.9.0 and JDK 17 are now the minimums. See the Migration Guide.

Working with Android SDK 5.51.0 and iOS SDK 5.47.0

4.7.0

30 July 2026

  • Removed parameter disableJailbreakDetection from initializeSDK() method.
  • Added integrityCompromised error case on iOS.
  • Removed the deprecated setCommonConfig() method. Use showCloseButton() instead.

Working with Android SDK 5.50.0 and iOS SDK 5.46.0

4.6.1

3 July 2026

  • Fixed the problem where initialize method was freezing UI on Android. It now runs on a background thread.

Working with Android SDK 5.49.0 and iOS SDK 5.44.0

4.6.0

23 June 2026

  • Added showCloseButton method to show or hide the close button during onboarding. Deprecated setCommonConfig in favour of showCloseButton. setCommonConfig now internally calls showCloseButton and logs a deprecation warning; it will be removed in a future major release.
  • Added setSdkMode method to switch between standard, captureOnly, and submitOnly modes at runtime without reinitializing the SDK.
  • Added setLocalizationLanguage method to change the UI language at runtime (e.g. en, es, pt, he).
  • Added setString method to override individual UI strings with custom copy, keyed by the current locale.
  • Added isInitialized method that returns a boolean indicating whether the SDK has been fully initialized.
  • Added optional voiceConsentLanguage parameter to sessionConfig to set the voice consent language in the VideoSelfie module. Supported values: 'en', 'es', 'pt', and 'he'. Default is English.
  • Increased minimum Java version to 11.

Working with Android SDK 5.49.0 and iOS SDK 5.44.0

4.5.0

2 June 2026

  • Added eyesClosedCheckEnabled parameter to addSelfieScan module.
  • Fixed eyesClosedCheckEnabled, headCoverCheckEnabled, lensesCheckEnabled, and maskCheckEnabled on iOS not properly disabling checks when set to "false" (was passing false instead of nil to the native SDK).
  • Changed default values for maskCheckEnabled in addSelfieScan module from false to true.
  • Changed default values for faceMaskCheck, headCoverCheck, lensesCheck, and eyesClosedCheck in addFaceAuthentication module from false to true.
  • Removed the hardcoded Android compileSdkVersion from the Cordova plugin so it inherits the SDK configuration from the host Cordova application.

Working with Android SDK 5.48.0 and iOS SDK 5.44.0

4.4.0

12 May 2026

  • Added optional sslPinningConfig to the initialize method.
  • Added isSkippable flag to the addGeolocation 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 addId and addSelfieScan results indicating when capture or upload retries are no longer available.
  • Fixed bug preventing session recording on iOS unless forcePermissions was explicitly provided.

Working with Android SDK 5.47.0 and iOS SDK 5.43.0

4.3.0

30 April 2026

  • Added new internal Android dependency com.incode.sdk.hybrid-bridgethat 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

4.2.0

16 April 2026

  • Added support for Android SDK initialization without api key with e2ee url.
  • Added optional showIdTypeChooser parameter to the addId module.
  • Added ability to pass SessionConfig to startFaceLogin() method. This allows enabling of end-to-end encryption (E2EE) in Face Login mode on Android. The SessionConfig will have no effect on iOS.
  • Added startOnboarding method.
  • Added CURPValidation module to the startOnboardingSection method.
  • Updated startOnboardingSection method to support recordSessionConfig and sectionTag parameters, both of which are mandatory.
  • Changed setupOnboardingSession, startWorkflow, and startFlow to accept a JSON session config object instead of a plain string configurationId.
  • Removed autocaptureUXMode parameter from addId on iOS and Android.
  • Removed enableIdSummaryScreen parameter from addId on Android.
  • Removed optional parameters disableHookCheck, disableEmulatorDetection, disableRootDetection and disableVirtualEnvironmentDetection from initializeSDK method.

Working with Android SDK 5.45.1 and iOS SDK 5.41.0

4.1.0

5 March 2026

  • Fixed issue preventing custom V2 theme from applying when configured via JSON.
  • Introduced startFlow method.
  • Added addEmail module to the startOnboardingSection method.

Working with Android SDK 5.44.0 and iOS SDK 5.40.0

4.0.0

28 January 2026

  • Introduced setCommonConfig method to enable setting of a shared runtime configuration outside of SDK initialization.
  • Added setShowCloseButton parameter in setCommonConfig that shows a close button when set to true. Defaults to false.
  • Fixed issue in addId module on iOS preventing enableFrontShownAsBackCheck and enableBackShownAsFrontCheck from being configurable.
  • Fixed issue in addVideoSelfie module on iOS and Android preventing enableFrontShownAsBackCheck and enableBackShownAsFrontCheck from being configurable.
  • Added support for End-to-End Encryption (E2EE).
  • Aligned module results on Android and iOS.

Working with Android SDK 5.43.0 and iOS SDK 5.39.1

3.0.0

19 November 2025

  • Introduced startWorkflow method.
  • Removed hardcoded Artifactory credentials from Cordova SDK build.gradle on Android.
  • Deprecated enableIdSummaryScreen parameter from addId on iOS. Screen will not appear when using v2 UI. IdSummaryScreen will be removed in future update.
  • Updated setTheme method to also configure theme on Android platform for V2 UX.
  • Fixed error handling for IncodeException errors on Android.

Working with Android SDK 5.41.1 and iOS SDK 5.38.0

Was this page helpful?