# Flutter SDK Release Notes

# 4.19.0 (Jul 14th, 2026)

* Added optional `voiceConsentLanguage` parameter to `OnboardingSessionConfiguration` to set the voice consent language in the `VideoSelfie` module. Supported values: 'en', 'es', 'pt', and 'he'. Default is English.

Working with Android SDK 5.49.0 and iOS SDK 5.44.0

# 4.18.0 (Jun 23rd, 2026)

* Added `isInitialized` method that returns a boolean indicating whether the SDK has been fully initialized.
* Deprecated `FaceAuthMode.server` in `startFaceLogin`. Migrate to the `FaceAuthentication` module instead. `FaceAuthMode.local` and `startFaceLogin()` with local mode remain fully supported.
* Deprecated `IncodeSdkFlowError.badEnvDetected`. It is no longer reported: the native SDK now terminates the process when a compromised device environment is detected, so the error can never be delivered via `onError`. It will be removed in a future release.
* Fixed an Android ANR ("Input dispatching timed out" / `FocusEvent`) that could occur at startup. SDK setup calls (`initialize`, `setSdkMode`, `setTheme`, `setUXConfig`, etc.) now run off the platform main thread, with results marshaled back to it.

Working with Android SDK 5.49.0 and iOS SDK 5.44.0

# 4.17.0 (May 28th, 2026)

* Updated the default values of the `faceMaskCheck`, `eyesClosedCheck`, `headCoverCheck` and `lensesCheck` parameters to `true` in the `FaceAuthentication` module.
* Updated the default values of the `faceMaskCheck` and `lensesCheck` parameters to `true` in the `SelfieScan` module.
* Fixed a bug on iOS where the `MLConsent` module screen was not shown when `type` was not provided. The `type` parameter of `MLConsent` module is now required.
* Fixed: `showCloseButton(allowUserToCancel: false)` now correctly hides the close button on Android. Previously the button was always shown regardless of the parameter value.

Working with Android SDK 5.48.0 and iOS SDK 5.44.0

# 4.16.0 (May 12th, 2026)

* 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.
* Added per-attempt `IdScan` callbacks `onIdFrontAttemptCompleted` / `onIdBackAttemptCompleted`. They fire after every individual capture attempt, including intermediate failures. The terminal attempt is signaled when `IdScanResult.allAttemptsExhausted` is `true` or when the attempt succeeds.
* Added per-attempt `SelfieScan` callback `onSelfieScanAttemptCompleted`. It fires after every individual selfie capture attempt, including intermediate failures. The terminal attempt is signaled when `SelfieScanResult.allAttemptsExhausted` is `true` or when the attempt succeeds.

Working with Android SDK 5.47.0 and iOS SDK 5.43.0

# 4.15.0 (Apr 29th, 2026)

* Added `deleteLocalUserData` method.
* 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.
* Fixed UIScene lifecycle crash on iOS.

Working with Android SDK 5.46.0 and iOS SDK 5.42.0

# 4.14.0 (Apr 7th, 2026)

* Added support for Android SDK initialization without api key and with e2ee url.
* Added parameter `showIdTypeChooser` to `IDScan` module. ID Document Chooser visibility is now controlled solely by the `showIdTypeChooser` parameter in `addIdScan`. Previously, setting `idType` implicitly hid the chooser. The configured `idType` is now only used as a pre-selection when the chooser is disabled `(showIdTypeChooser == false)`
* Added new parameter `e2eeEncryptionEnabled` for `startFaceLogin` method that enables End-to-End Encryption (E2EE) on Android.
* Introduced `startFaceMatch` method to perform a face match without showing UI.
* Fixed a bug caused by `flowTag` having been an optional parameter of `startNewOnboardingSection`. It is now required to provide a `flowTag` to use `startNewOnboardingSection`.
* Removed parameters `disableHookDetection`, `disableEmulatorDetection`, `disableRootDetection`, `disableVirtualEnvironmentDetection` from `init` method.
* Removed `simulatorDetected`, `rootDetected`, `hookDetected`, `virtualEnvDetected` from `IncodeSdkFlowError`.

Working with Android SDK 5.45.1 and iOS SDK 5.41.0

# 4.13.0 (Feb 26th, 2026)

* Added `enableFrontShownAsBackCheck` and `enableBackShownAsFrontCheck` optional parameters to the `VideoSelfie` module.
* Deprecated `autocaptureUxMode` parameter from the `IdScan` module.
* Deprecated `enableIdSummaryScreen` parameter from the `ProcessId` 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

# 4.12.0 (Feb 6th 2026)

* Added new Flutter SDK variant '-l', so now Flutter SDK is delivered in multiple variants:
  4.12.0: Standard variant
  4.12.0-vc: Includes streaming
  4.12.0-nfc: Includes NFC
  4.12.0-l: Includes local face recognition models
* 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.

Working with Android SDK 5.43.0 and iOS SDK 5.39.1

# 4.11.0 (Dec 2nd 2025)

* Added optional `sslPinningEnabled` and `forceSSLPinning` parameters to the `init` method to support SSL pinning configuration.
* Added `title` and `description` params to the `Signature` module.
* Fixed error handling on Android.

Working with Android SDK 5.41.1 and iOS SDK 5.38.0

# 4.10.0 (Sep 25th 2025)

* Added support for the Face Authentication module that performs a selfie scan to authenticate the user as part of the flow or a workflow.
* Introduced `setFaceAuthenticationHint` method to provide a face authentication hint.
* Introduced `setUXConfig` method for UX customizations in V2 IdScan and SelfieScan modules.

Working with Android SDK 5.40.1 and iOS SDK 5.37.0

# 4.9.0 (Aug 5th 2025)

* Added `otpVerificationEnabled` optional parameter to the `addPhone` method, which enables or disables OTP verification for phone module.

Working with Android SDK 5.39.0 and iOS SDK 5.36.0

# 4.8.0 (Jul 2nd 2025)

* Added `otpVerificationEnabled` optional parameter to the `addEmail` method, which enables or disables OTP verification for email module.

Working with Android SDK 5.38.0 and iOS SDK 5.35.0

# 4.7.0 (May 30th 2025)

* Added the `errorUnacceptableID` status to the `IdScanResult.scanStatus` enum to signal documents that fail ID-type validation.
* Fixed crash happening on iOS when app gets closed during runtime.

Working with Android SDK 5.37.0 and iOS SDK 5.34.1

# 4.6.0 (Apr 25th 2025)

* Flutter SDK Android `minSdkVersion` bumped from 21 to 23
* `brightnessThreshold` parameter is now deprecated in `SelfieScan` module and `startFaceLogin` method.
* Added `clientExperimentId` optional parameter to the `initialize` method. Used to enroll customer to experimental features like ID V2.

Working with Android SDK 5.36.1 and iOS SDK 5.34.1

# 4.5.0 (Apr 2nd 2025)

* Added Theme Customization via setTheme method for Android that accepts JSON in order to change theme on both platforms. On Android, this method currently supports customization exclusively for the ID Scan V2 feature.
* Added option to hide "User already exists" feedback in FaceMatch screen using `showUserExists` parameter in addFaceMatch() method.
* Added support for End-to-End Encryption (E2EE). For full integration guide please check [here](./flutter-e2ee)
* Added new Flutter SDK variant e2ee, so now Flutter SDK is delivered in multiple variants:\
  4.5.0: Standard variant
  4.5.0-vc: Includes streaming
  4.5.0-nfc: Includes NFC
  4.5.0-e2ee: Includes end-to-end encryption
* Fixed JSON parsing issues which prevented onFaceMatchCompleted being called on iOS. Bug was introduced in version 4.4.0.

Working with Android SDK 5.34.1 and iOS SDK 5.33.0

# 4.4.0 (Feb 20th 2025)

* Added `disableVirtualEnvironmentDetection` optional parameter to the `initialize` method. Used to disable virtual environment detection on Android.
* Introduced jailbreak detection error handling on iOS. Added `IncodeSdkFlowError.jailbreakDetected` error type.
* Fixed the issue of Android returning error `unknown` when camera permission is denied by the user. Error code `permissionsDenied` is now returned.
* Added `addNFCScan` module, available exclusively in the NFC version of the plugin (`4.4.0-nfc`).
* Added new optional parameter `matchType` to `addFaceMatch` module. Possible values are: `FaceMatchType.idSelfie`, `FaceMatchType.nfcSelfie`, `FaceMatchType.nfc3Way`.
* Added new Flutter SDK variant nfc, so now Flutter SDK is delivered in multiple variants:\
  4.4.0: Standard variant
  4.4.0-vc: Includes streaming
  4.4.0-nfc: Includes NFC
* Added new ID capture experience designed to reduce drop-offs, increase completion rates, and enhance the quality of captured photos. This feature is currently available in opt-in mode, controlled via a feature flag. To opt in, please contact the Customer Support team. It requires an additional `com.incode.sdk:​camera:​1.1.0` Android dependency added to the `app/build.gradle` file
* Added new `externalCustomerId` parameter to the OnboardingSessionConfiguration. This identifier links the onboarding session to an entity in an external system not part of the Incode Omni Platform. It could represent a prospect Id or a customer Id from the client's database, providing a bridge between the Incode session and the client's internal user management systems.
* Added Theme Customization via `setTheme` method for Android that accepts JSON in order to change theme on both platforms. On Android, this method currently supports customization exclusively for the ID Scan V2 feature.

Working with Android SDK 5.33.0 and iOS SDK 5.32.0

# 4.3.0 (Dec 18th 2024)

* Flutter SDK is now delivered in multiple versions:
* `4.3.0`: Standard version
* `4.3.0-vc`: Includes streaming\
  To use these versions, update your Podfile as outlined in the [guide](./flutter-migration-guide#migration-to-430) and ensure SSH Github access is configured on your machine.
* Added support for video streaming of the camera feed in IDScan and SelfieScan modules. Added a new parameter, streamFrames, to both modules, allowing users to enable or disable streaming. By default, streaming is disabled.
* Added new method `idProcess` to support non-UI id processing.
* Added `CombinedConsent` module

Working with Android SDK 5.32.1 and iOS SDK 5.31.0

# 4.2.0 (Oct 18th 2024)

* Added new parameters `showRandomQuestions`,`randomQuestionsCount` to the VideoSelfie module.
* Deprecated parameter `voiceConsentQuestionsCount` in the VideoSelfie module.
* Fixed `UserConsent` module not shown on iOS if no title and content are provided.
* Fixed Android crash`java.lang.IllegalArgumentException: No enum constant`.
* Fixed Android crash when setting `brightnessThreshold` for `SelfieScan` module.

Using iOS 5.30.1-s-l and Android 5.31.1

# 4.1.0 (Aug 13th 2024)

* Added `namespace` to Android's `build.gradle` in order to support apps that use Gradle version 8.x.
* Added `CustomWatchlist` module.
* Added `Aes` module.
* Added `OCREdit` module.
* Added `eKYB` module.
* Added `eKYC` module.
* Added new parameters: `faceMaskCheck`,`lensesCheck`,`brightnessThreshold`,`cameraFacing` to the `SelfieScan` module.

Using iOS 5.29.0-s-l and Android 5.29.0

# 4.0.0 (June 5th 2024)

* Added `onEvents` callback for `startNewOnboardingSection` that is called when a new event occurs inside the onboarding flow.
* Added `enableFrontShownAsBackCheck`, `enableBackShownAsFrontCheck`, `showRetakeScreen`, `showAutoCaptureRetakeScreen` , `enableRotationOnRetakeScreen` ,\
  `autocaptureUxMode` ,`showIDOverlay`, `autoCaptureBestFrameTimeout` and `autoCaptureNoIdTimeout`  parameters to `IDScan` module.
* Added `failReason`, `issueName`, `issueYear` and `countryCode` to the `IdScanResult`.
* Moved `IncodeSdkInitError.rootDetected`, and `IncodeSdkInitError.hookDetected` to `IncodeSdkFlowError`
* Added `IncodeSdkFlowError` enum that contains possible errors sent via `onError()` callback

Using iOS 5.28.0-s-l and Android 5.27.0

# 3.1.0 (May 15th 2024)

* Added new API method `startFlow` to support start or resume an onboarding session based on the provided session configuration and starting module.
* Added new API method `startFlowFromDeepLink` to support resume an onboarding session based on the provided deep link URL.
* Added new optional parameter `enableIdSummaryScreen` to the `ProcessId` module
* Added new optional parameters to the `initialize` method
* `initialize` method when rejected now returns a typed error `IncodeSdkInitError` (as a string value).
* Fixed Android crash when adding Video Selfie and User Consent configurations without params

Using iOS 5.27.1-s-l and Android 5.26.0

# 3.0.0 (Mar 18th 2024)

* Android `core-light` dependency is now part of the Flutter SDK. Breaking change, so please follow the guide in the migration [guide](./flutter-migration-guide#migration-to-300) how to remove `core-light` from the list of your app's dependencies in the `build.gradle`.
* Added `setLocalizationLanguage` method used for runtime localization. Please check [here](./flutter-customization#setlocalizationlanguage) for more details.
* Added dynamic localization and updating strings in runtime with new API method `setString`. Please check [here](./flutter-customization#setstring) for more details.
* Added `Antifraud` module.
* Added `UserConsentModule` module.
* Added new API method `startWorkflow` to support workflows
* Added `isBackgroundExecuted` param to the `GovernmentValidation` module

Using iOS 5.26.0-s-l and Android 5.24.0

# 2.8.0 (Nov 19th)

* Added `GlobalWatchlist` module
* Added new parameter `idScanCameraFacing` for `VideoSelfie` module, which can be used to select front or back camera for ID scan

Using iOS 5.22.0-s-l and Android 5.21.0

# 2.7.0 (Nov 7th)

* Added `QRScan` module
* Fixed configuration issue for `VideoSelfie` module when `voiceConsentQuestionsCount` was not respected correctly on Android platform
* Added optional `defaultRegionPrefix` parameter to phone input module
* iOS requirements changed to Xcode 14.1 and iOS 13.0 target as minimum supported versions

Using iOS 5.20.1-s-l and Android 5.20.0

# 2.6.0 (Sep 18th)

* Added `recordSessionConfig` parameter to the `startOnboarding` and `startNewOnboardingSection`, which can be used to record ID and Selfie capture sessions.
* Added `MLConsent` module
* Breaking change, please update Android Gradle settings and Incode's Android core dependency as specified in the migration [guide](./flutter-migration-guide#migration-to-260)

Using iOS 5.17.0-s-l and Android 5.17.2

# 2.4.0 (May 19th 2023)

* Breaking change, please update Android Gradle settings and Incode's Android core dependency as specified in the migration [guide](./flutter-migration-guide#migration-to-240)
* Added `addFace`, `removeFace`, `setFaces` and `getFaces` methods to the `IncdOnboardingSdk`
* Added `faceAuthModeFallback`, `lensesCheck`, `spoofThreshold`, `recognitionThreshold` to the `FaceLogin` object provided to the `startFaceLogin` method
* Added `hasLenses` to the `FaceLoginResult` object.
* Android `minSdkVersion` is now 21

Using iOS 5.16.0-s-l and 5.16.0 Android SDKs

# 2.3.0 (Jan 6 2023)

* Added `getUserOCRData` method that fetches OCR data for a specific onboarding session.

Using 5.11.0 iOS-s-l, Android 5.13.0

# 2.2.0 (Dec 9 2022)

* Android core dependency has been updated. Please refer [here](./flutter-migration-guide#migration-to-220) for more details.
* Added Name module, add it by calling `addFullName` method in the `OnboardingFlowConfiguration`
* Added `addNOM151Archive` method
* Added FaceLogin.FaceAuthMode `kiosk` option that triggers Kiosk login on Android platform. Kiosk dependency is mandatory, please add `com.incode.sdk:kiosk-login:1.0.0` to your app's `build.gradle`.
* Added `logAuthenticationEnabled` to the `FaceLogin` params. Specify `false` if you want to disable logging and statistics updates for authentications to get faster performance when calling `startFaceLogin`. Currently supported on Android only.

Using 5.10.0 iOS-s-l, Android 5.13.0

# 2.1.0 (Oct 19 2022)

* Android core dependency has been updated. Please refer here\[MIGRATION\_GUIDE.md]\[MIGRATION\_GUIDE.md] for more details.
* Added Email module
* Added `getUserScore` method
* Added `showCloseButton` method
* Added `nameMatched` field to the `FaceMatchResult` as part of the `onFaceMatchCompleted` callback
* Fixed `onUserCancelled` callback method not getting triggered on iOS
* Fixed issue of flow configuration not being used when `OnboardingSessionConfiguration` object is provided with a `token`
* Fixed issue of bad flow configuration for ID scan when it is split in front and back modules.

Using 5.8.1 iOS-s-l, Android 5.10.0

# 2.0.1 (Aug 26 2022)

* Bugfix ProcessId module not being added to IdScan automatically on Android devices
* Fixed crash on `setupOnboardingSession` when specifying `token` if SDK is initialized without API key.
* Fixed bad Swift Import path for iOS frameworks after running `pod install`

# 2.0.0 (Aug 16 2022)

* Added `setupOnboardingSession` that replaces `creatingNewOnboardingSession` and `setOnboardingSession`. Please check [here](./flutter-migration-guide#migration-to-2x) for more details.
* Add `interviewId` and `token` to `OnboardingSessionConfig`
* Added `startFaceLogin` method
* Added `extendedUserScoreJsonData` to UserScoreResult that contains raw JSON for the score.
* Bugfix `configurationId` not set when using startOnboarding
* Bugfix UserScore not parsed properly on Android devices

Using iOS 5.4.0-s-l, Android 5.4.0

# 1.2.0 (Feb 23 2022)

* Added option to separate `IdScan` module into three segments - Front capture, Back capture and newly introduced `ProcessId` module. `onIdValidationCompleted` callback now split into `onIdFrontCompleted`, `onIdBackCompleted` and `onIdProcessed`. Added more data in the ID capture results, such as `cropeedFace`, `chosenIdType` and `classifiedIdType`.
* `DocumentScan` module now supports `addressStatement`, `medicalDoc`, `paymentProof`, `otherDocument1`, `otherDocument2`.
* `DocumentScanResult` now contains `image`, `documentType` that was selected, `address` that contains parsed OCR data in case of `addressStatement`, and `ocrData` that contains full OCR data.

Using iOS 4.1.1-d, Android 4.3.1

# 1.1.0 (Jan 18 2022)

* Added switching between `Capture only` and `Standard` SDK mode via `setSdkMode` method.
* Added Sections API that allows more flexibile onboarding flow that can be split in multiple sections
* Added Modules - `Signature`, `Document Scan`, `Captcha`, `CURP`
* Added Theme Customization via `setTheme` method that accepts JSON in order to change theme on iOS platform. For Android please use this guide:\
  [https://github.com/Incode-Technologies-Example-Repos/Incode-Welcome-Android-example/blob/master/docs/markdown/USER\_GUIDE\_CUSTOMIZATION.md](https://github.com/Incode-Technologies-Example-Repos/Incode-Welcome-Android-example/blob/master/docs/markdown/USER_GUIDE_CUSTOMIZATION.md)

# 1.0.0

* Initial Flutter IncodeOnboarding SDK release

<br />
