Changelog - Special Versions

❗️

Do not use these versions unless otherwise stated

These versions contain variants, beta features and configurations specific for certain use cases. If you have any questions, please contact your CSM.

Version 6.0.0 - 2026-Jan-12

Version 6.0.0 is a major release that begins the process of introducing significant architectural improvements, consolidating key features, and removing deprecated components. This release unifies previously separate libraries into the welcome module, streamlines configuration, and enhances performance and maintainability. The 6.0.0 release only supports the most common subset of features of the Android SDK, providing for a leaner integration experience. The 5.x.x line of releases will continue to be the feature-complete version of the Android SDK until the 6.x.x release line incorporates all SDK features. Once the 6.x.x line is feature-complete, the 5.x.x line will end.

🚧

The 6.0.0 release of the Android SDK only supports the following modules and their UX v2 variants:

  • IdScan
  • ProcessId
  • SelfieScan
  • FaceAuthentication
  • FaceMatch

Furthermore, this release only supports the following optional library dependencies

  • com.incode.sdk:video-streaming
  • com.incode.sdk:model-face-recognition
  • com.incode.sdk:model-id-face-detection
  • com.incode.sdk:model-liveness-detection

If your integration uses any modules or library dependencies outside of this list, continue to use the 5.x.x line until the 6.x.x line includes all the modules needed for your integration.

Lastly, the UX v1 variants of modules will not be migrated to the 6.x.x line. This includes the ability to customize the v1 variants via Theme Configuration.

For a detailed list of breaking changes and migration steps, please see the Migration Guide for further details.

Removals

  • Removed the com.incode.sdk:core-light library. This library provided the core camera and image processing functionality. It has now been merged into the main library, com.incode.sdk:welcome.
  • Removed the com.incode.sdk:extensions library. This library was used to support Theme Configuration, Dynamic Localization, and Runtime Localization. The functionality that persists in the 6.x.x line has now been merged into the main library, com.incode.sdk:welcome.

Added (ALL modes)

  • Added missing Javadocs for the following SDK APIs:
    • Introduced with Dynamic Localization in 5.3.0:
      • IncodeWelcome.setStrings()
      • IncodeWelcome.setStringArray()
      • IncodeWelcome.setQuantityStrings()
    • Introduced with the FaceAuthentication module in 5.40.0:
      • FaceAuthenticationListener
      • FaceAuthenticationResult
      • IncodeWelcome.setFaceAuthenticationHint()
  • Security improvements.
  • New Transition screen layout. This screen is now customizable using the new V2 theming system. Check the Migration Guide for more details.
  • Updated the FaceMatch module to UxV2. This update also introduces a new SDK API: FaceMatch.Builder.setShowLivenessResult().
  • Performance improvements
  • Updated UI for Need Help screen in the IdScan module.
  • Added setHeaderAlignment() method to IncodeUXConfig.Builder to configure alignment of the Header on the applicable screens. Available options are HeaderAlignment.START, HeaderAlignment.CENTER (default), and HeaderAlignment.END.
  • Added support for customizing button styles through IncodeComponents. Buttons used in V2 modules can now be configured with custom colors for different states (default, hover, pressed, disabled), borders width, color and radius. See SDK Customization Guide for details on component configuration.

Added (STANDARD mode only)

  • Refactored SelfieScan and Face authentication V2 modules to use Compose UI. These modules are now customizable using the V2 theming system. Check the Migration Guide for more details.

Fixed (ALL modes)

  • Fixed an issue where the Behavioral Trust check in Deepsight could get an unknown result on lower-end devices
  • Fixed an issue where the Behavioral Trust check in Deepsight would always get an unknown result if SelfieScan v2 was used in the session
  • Fixed a compatibility issue that caused crashes on Android 14 and earlier due to conflicts between Kotlin extension methods and Java methods introduced in Android 15. This ensures compatibility across all Android versions.
  • Fixed an IllegalStateException that could occur in the IdScan v2, SelfieScan v1, and SelfieScan v2 modules when the camera was determining what features it supports
  • UI improvements in the SelfieScan module when capture attempts are exhausted.
  • Fixed an issue in the FaceAuthentication modules where the "Access Denied" screen was incorrectly shown for face authentication errors instead of displaying the specific error message (e.g., "Face Covered").
  • Fixed an issue where phantom analytics events were being logged in the IdScan module when the Passport is selected.

Fixed (Capture-Only mode)

  • Fixed an issue where the Behavioral Trust check in Deepsight would always display an unknown result if SelfieScan v1 was used in the session due to relevant data missing when invoking SelfieScanResult.metadata.
  • Fixed an issue where the Device Trust check in Deepsight would always display a potentially false "PASSED" result if SelfieScan v1 was used in the session due to relevant data missing when invoking SelfieScanResult.metadata.

Version 5.44.0-hardened - 2026-Feb-25

This release includes all compatible changes from 5.43.0-hardened and 5.44.0. Refer to the 5.44.0 Changelog entry for more information.

Version 5.43.0-hardened - 2026-Jan-30

Breaking changes

This release introduces major breaking changes in the name of security. These breaking changes are being contained to a new SDK variant "hardened" and will be integrated into the regular SDK flavor in the future. See the Migration Guide for details.

Added (ALL modes)

  • Strengthen device environment checks.
  • Added a new encryption layer to data the SDK stores in SharedPreferences.

Added dependencies

  • androidx.security:security-crypto-ktx:1.1.0

Updated dependencies

  • com.guardsquare:dexguard-gradle-plugin:9.12.6 -> com.guardsquare:dexguard-gradle-plugin:9.13.1
  • com.guardsquare:dexguard-runtime:9.12.6 -> com.guardsquare:dexguard-runtime:9.13.1

Version 5.40.2-rev - 2026-Jan-29

Added (ALL modes)

  • This release requires compileSdk 35. See the Migration Guide for details.
  • Updated core-light module to version 3.0.6-rev: incorporating libRecogKitAndroid.so v3.6.6.
    • This release introduces an optimized library variant that excludes modules outside the IDV scope, reducing the overall SDK size.

Fixed (ALL modes)

  • Fixed an issue where the camera hardware cannot be found when the host application is built with ProGuard/R8 enabled.

Updated dependencies

  • com.android.tools.build:8.1.4 -> com.android.tools.build:8.6.0
  • gradle-8.0-bin.zip -> gradle-8.7-bin.zip
  • androidx.camera:camera-camera2:1.4.2 -> androidx.camera:camera-camera2:1.5.1
  • androidx.camera:camera-extensions:1.4.2 -> androidx.camera:camera-extensions:1.5.1
  • androidx.camera:camera-lifecycle:1.4.2 -> androidx.camera:camera-lifecycle:1.5.1
  • androidx.camera:camera-video:1.4.2 -> androidx.camera:camera-video:1.5.1
  • androidx.camera:camera-view:1.4.2 -> androidx.camera:camera-view:1.5.1

Version 5.40.1-rev - 2025-Sep-26

Added (ALL modes)

  • Updated core-light module to v3.0.5-rev: incorporating libRecogKitAndroid.so v3.6.3dev.
    • This release introduces standard and optimized library variants, with an impact on the overall SDK size.

Removals

  • To reduce the overall SDK size, most modules along with their related public APIs have been removed.
    The following modules remain available:
    • MachineLearningConsent
    • IdScan
    • ProcessId
    • SelfieScan
    • FaceMatch
    • VideoSelfie
    • Approval

Removed dependencies

  • com.google.accompanist:accompanist-permissions:0.32.0
  • com.airbnb.android:lottie-compose:6.6.3
  • io.michaelrocks:libphonenumber-android:8.12.28
  • androidx.compose.ui:ui-tooling-preview:1.7.8
  • androidx.compose.ui:ui-tooling:1.7.8
  • androidx.compose.ui:ui-test-manifest:1.7.8
  • androidx.compose.ui:ui-test-junit4:1.7.8

Version 5.33.5-nu - 2025-Aug-09

Fixed (ALL modes)

  • Fixed an issue that may occur when calling IncodeWelcome.Builder().build() after system restarts the app. Reported exception message starts with: lateinit property has not been initialized.
  • Fixed a compile-time issue when using Dynamic Feature Modules with minSdk set to 23 or lower. Reported exception message was: Default interface methods are only supported starting with Android N (--min-api 24): Lx/CameraInfo;getLensFacing()I.
  • Fixed an issue where some data in the SelfieScanResult was assigned to the wrong fields due to an internal ordering mistake. The data now maps correctly to the expected fields. This issue was introduced in 5.33.4-nu.

Version 5.33.4-nu; camera 1.2.1-nu - 2025-June-17

This version introduced an issue where some data in the SelfieScanResult was assigned to the wrong fields. This issue has been fixed in 5.33.5-nu.

  • fullFrameSelfieBase64 actually contained the value intended for selfieBase64
  • selfieBase64 actually contained the value intended for fullFrameSelfieEncryptedBase64
  • fullFrameSelfieEncryptedBase64 actually contained the value intended for fullFrameSelfieBase64

If you applied any workarounds for this issue, please revert them after updating to 5.33.5-nu.

Added (ALL modes)

  • Re-enabled Assisted Onboarding functionality for the Face Capture/SelfieScan module that was temporarily disabled in 5.33.1-nu. Please refer to the Migration Guide for further details.
  • Security improvements.
  • Improved camera preview quality for the SelfieScan module.
  • Improved quality of "Video Liveness" videos captured in the SelfieScan module.

Added (Capture-Only mode)

  • Added metadata field to IdScanResult and SelfieScanResult classes. See the Migration Guide for details on how this field affects Incode API calls later on.

Fixed (ALL modes)

  • Resolved an issue where users were incorrectly prompted to "Move Away" or "Move Closer" despite being properly positioned, resulting in more reliable auto capture behavior.
  • Fixed a potential issue where on-device cameras may incorrectly report their capabilities.
  • Fixed a crash when opening the camera. This crash was found on the emulator, but it could potentially affect some real-world devices with specific camera configurations.
  • Fixed a crash that could occur when the SelfieScan module starts the camera. The NPE was caused by accessing a camera property before it was fully initialized.
  • Fixed a crash when starting the DocumentScan module without the tutorial or document provider options screens if the DocumentType to be scanned could not be determined.

Fixed (STANDARD mode only)

  • Fixed an issue where users could get stuck between modules if they switched away from the app during the Selfie upload.

Fixed (Capture-Only mode)

  • Fixed an issue that caused a frozen screen on the last step of the VideoSelfie module.

Deprecations (ALL modes)

  • Using the DocumentScan(DocumentType) constructor to create a DocumentScan module is now deprecated. Please refer to the Migration Guide for further details.

Restored dependencies

  • org.jetbrains.kotlin:kotlin-serialization:1.5.0
  • org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0

Upgraded dependencies

  • androidx.camera:camera-camera2:1.4.1 -> androidx.camera:camera-camera2:1.4.2
  • androidx.camera:camera-extensions:1.4.1 -> androidx.camera:camera-extensions:1.4.2
  • androidx.camera:camera-lifecycle:1.4.1 -> androidx.camera:camera-lifecycle:1.4.2
  • androidx.camera:camera-video:1.4.1 -> androidx.camera:camera-video:1.4.2
  • androidx.camera:camera-view:1.4.1 -> androidx.camera:camera-view:1.4.2

Version 5.33.3-nu - 2025-Mar-12

Downgraded dependencies (for compatibility)

Ensuring the range of compatibility with RxJava 2.1.x versions, with preference for 2.1.3.

  • io.reactivex.rxjava2:rxjava:2.2.13 -> io.reactivex.rxjava2:rxjava:"[2.1.0, 2.2.0[", prefer = "2.1.3"
  • io.reactivex.rxjava2:rxandroid:2.1.0 -> io.reactivex.rxjava2:rxandroid:2.0.2
  • com.squareup.retrofit2:retrofit:2.11.0 -> com.squareup.retrofit2:retrofit:2.9.0
  • com.squareup.retrofit2:adapter-rxjava2:2.11.0 -> com.squareup.retrofit2:adapter-rxjava2:2.9.0

Version 5.33.1-nu; camera 1.2.0-nu - 2025-Feb-05

  • This release adds some new features, fixes some bugs, and builds upon the line of compat releases.
  • However, the following changelog items unique to previous compat releases do NOT carry over.
    • Dependencies downgraded to versions that support Kotlin 1.6.21 from 5.26.2-compat.
    • RxJava downgrade from 2.2.19 to 2.1.3 from 5.26.3-compat.

Removals

  • To optimize SDK size for more common uses-cases, the following modules/variants have been removed. See the Migration Guide for details:
    • ID Capture V2
    • CombinedConsents
    • DynamicForms

Breaking changes

  • This release has a few breaking changes to existing SDK APIs. See the Migration Guide for details.

Added (ALL modes)

  • Added security enhancements for the SelfieScan capture using the camera dependency. As such, the camera is now a mandatory dependency when using the SelfieScan module. See the Migration Guide for more details.
  • Added deviceStats field to the IdScanResult and SelfieScanResult objects to provide additional security based on the motionStatus of the device.
  • Improved error handling for lower-end devices that cannot use all the features of the camera module in parallel.
  • Added Javadoc description for all properties of BaseResult.
  • Security improvements.

Added (Capture-Only mode)

  • Added setVideoLivenessRecordingEnabled() method to SelfieScan.Builder. This method enables a video recording to be taken of the camera feed from the SelfieScan session, which can be used for Deepsight. The path to this video file is is returned in SelfieScanResult.videoFilePath. See the JavaDoc for more details. Default value is false.

Fixed (ALL modes)

  • Fixed an issue where an occasional ConcurrentModificationException would occur in IdScan and SelfieScan modules.
  • Fixed a crash in the DocumentScan module caused by the absence of a compatible app for selecting documents or images.
  • Fixed an issue in the IdScan module during manual capture mode where multiple taps on Capture button could cause unexpected behavior.
  • Fixed an issue where printing the result of SelfieScanResult.toString() could cause future logcat logs to be dropped.
  • Fixed issues with camera hanging in the IdScan module when the tutorials are disabled.
  • Fixed a NullPointerException that could occasionally occur in the VideoSelfie module on lower-end devices due to image processing starting before the UI is fully initialized.
  • Fixed an issue in the DocumentScan module where a generic document would always be shown instead of the concrete one selected (medical, payment proof, etc).

Deprecations (ALL modes)

  • Assisted Onboarding functionality for the Face Capture/SelfieScan module has been disabled. This feature will be re-enabled in a future release. Please refer to the Migration Guide for further details.

Added dependencies

  • androidx.camera:camera-video:1.4.1

Upgraded dependencies

  • androidx.camera:camera-camera2:1.3.3 -> androidx.camera:camera-camera2:1.4.1
  • androidx.camera:camera-extensions:1.3.3 -> androidx.camera:camera-extensions:1.4.1
  • androidx.camera:camera-lifecycle:1.3.3 -> androidx.camera:camera-lifecycle:1.4.1
  • androidx.camera:camera-view:1.3.3 -> androidx.camera:camera-view:1.4.1

Downgraded dependencies (for "compat" ibility)

  • io.reactivex.rxjava2:rxjava:2.2.19 -> io.reactivex.rxjava2:rxjava:2.1.13

Removed dependencies

  • androidx.activity:activity-compose
  • androidx.compose.ui:ui-graphics
  • androidx.lifecycle:lifecycle-runtime-compose
  • com.airbnb.android:lottie-compose
  • com.google.accompanist:accompanist-permissions
  • io.insert-koin:koin-android
  • io.insert-koin:koin-androidx-compose
  • org.jetbrains.kotlin:kotlin-serialization
  • org.jetbrains.kotlinx:kotlinx-coroutines-rx2
  • org.jetbrains.kotlinx:kotlinx-serialization-json

Version 5.26.4-compat - 2024-Dec-19

Added (ALL modes)

  • Security improvements.

Version 5.26.3-compat; kiosk-login 1.3.4.1-compat; nfc 1.3.4.1-compat; qr-face-login 1.2.2.1-compat - 2024-Nov-22

  • This release is intended for projects that are unable to use RxJava version 2.2.19, which the Incode Welcome SDK moved to in version 5.0.0. See the Migration Guide for more details.
  • As such, this release downgrades RxJava. It should work with any 2.1.x version of rxjava, but if you encounter any issues, try forcing the preferred version, 2.1.3.
    • io.reactivex.rxjava2:rxjava:2.2.19 -> io.reactivex.rxjava2:rxjava:2.1.3
  • Select bugfixes from 5.27.0 and above have been backported and listed as follows.

Fixed (ALL modes)

  • Fixed an issue in SelfieScanResult where the encrypted fields selfieEncryptedBase64 and fullFrameSelfieEncryptedBase64 were not being populated with the correct values.

Added (Capture-Only mode)

  • Added deviceStats field to IdScan and Selfie results to provide additional security based on the motionStatus of the device.
  • Added IncodeWelcome.getDeviceFingerprint() method.

Version 5.26.2-compat; kiosk-login 1.3.4-compat; nfc 1.3.4-compat; qr-face-login 1.2.2-compat - 2024-May-14

  • Introduced new compat versions of various Incode dependencies. These compat versions are intended for projects that are unable to use Kotlin 1.8.10, which the Incode Welcome SDK moved to in version 5.22.0. See the Migration Guide for more details.
  • Per the introduction of compat dependencies, the following internal dependencies have been downgraded to versions that support Kotlin 1.6.21:
    • androidx.appcompat:appcompat:1.6.1 -> androidx.appcompat:appcompat:1.4.1
    • androidx.compose.material:material:1.4.3 -> androidx.compose.material:material:1.2.0-rc02
    • androidx.compose.ui:ui:1.4.3 -> androidx.compose.ui:ui:1.2.0-rc02
    • androidx.lifecycle:lifecycle-process:2.6.0 -> androidx.lifecycle:lifecycle-process:2.5.1
    • androidx.lifecycle:lifecycle-runtime-ktx:2.6.0 -> androidx.lifecycle:lifecycle-runtime-ktx:2.5.1
    • androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0 -> androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1
    • androidx.paging:paging-runtime:3.2.1 -> androidx.paging:paging-runtime:3.1.1
    • androidx.paging:paging-rxjava2:3.2.1 -> androidx.paging:paging-rxjava2:3.1.1
    • androidx.recyclerview:recyclerview:1.3.2 -> androidx.recyclerview:recyclerview:1.2.1
    • com.airbnb.android:lottie:6.3.0 -> com.airbnb.android:lottie:5.2.0
    • com.airbnb.android:paris:2.0.2 -> com.airbnb.android:paris:2.0.0
    • com.google.android.gms:play-services-base:18.3.0 -> com.google.android.gms:play-services-base:18.0.1
    • com.google.android.gms:play-services-location:21.1.0 -> com.google.android.gms:play-services-location:21.0.1
    • com.google.android.material:material:1.8.0 -> com.google.android.material:material:1.5.0
    • com.squareup.retrofit2:retrofit:2.11.0 -> com.squareup.retrofit2:retrofit:2.9.0
    • com.squareup.retrofit2:adapter-rxjava2:2.11.0 -> com.squareup.retrofit2:adapter-rxjava2:2.9.0
    • io.michaelrocks:libphonenumber-android:8.12.28 -> io.michaelrocks:libphonenumber-android:8.12.23
    • org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10 -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21
    • org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10 -> org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21

Added (ALL modes)

  • Security improvements.