Skip to main content
Version: 1.12.4

Changelog

1.12.4 - 22.10.2026​

minBackendVersion

Changed
  • In the Front, Back, Passport, Hologram, Liveness, Selfie, VideoRecord, KPS and RuPassportAddressValidation steps, a backend request that ends with a network or service error no longer fails the flow immediately. The user is shown "A temporary error occurred. Please try again." with Retry and Cancel options. Retry restarts the step; Cancel ends the flow as if the user closed it. The StepRequestFailed event is still emitted, but onProcessFinished is no longer called with a failed result in this case.

1.12.3 - 16.10.2026​

minBackendVersion

Changed
  • With graphicOverlayEnable(true), the document steps now leave a clear document-sized window in place of the template and dim the area around it using the hue of overlayColor. The window corners use shapes.cameraOverlayCornerRadius; ID card, TR and RU passports keep their own proportions.

1.12.2 - 15.10.2026​

minBackendVersion

Added
  • Added the blinkDetectionEnabled and lipSyncEnabled parameters to the VideoRecord step (default false). The blink count and lip-sync score are only reported via a KYCEvent.InfoLog event; they do not affect the flow.
Changed
  • Upgraded the Havelsan id_verification SDK to 2.0.5.
  • With graphicOverlayEnable(true), the document template image is hidden so the MRZ drawing no longer overlaps it.
  • Client logs sent by the SDK to the backend now carry structured (JSON) content, and device/system info is reported once per flow. The field layout of the log request is unchanged.
Fixed
  • Fixed a crash that could occur when the NFC adapter was released and resumed in the NFC step; if the adapter cannot be initialized, the flow goes to the error screen.

1.12.0 - 10.10.2026​

minBackendVersion

Added
  • Added the graphicOverlayEnable parameter to the Front, Back and Passport steps (default false). When enabled, the recognized MRZ text is drawn over the camera preview (yellow while reading, green once the MRZ is parsed).
Changed
  • Upgraded the Havelsan id_verification SDK to 2.0.4.
  • The device security check enabled by securityCheckEnabled(true) is now aligned with the iOS SDK: debugger detection was added, and hook detection (Frida/Xposed/LSPosed/Zygisk etc.) now inspects the process memory map and thread names. In non-debug builds the transaction is also cancelled when the device is blocked. The detail text of the SecurityWarning event now uses the format shared with iOS (compromised:… debugger:… emulator:… hooked:…).
  • A <queries> block was added to the SDK manifest to detect root management apps; it is merged into the host app's manifest.
  • Dependencies used only by the video call (Socket.IO, ConstraintLayout) were removed from the non-video-call builds and an image was converted to WebP, reducing the SDK size.

1.11.1 - 02.10.2026​

minBackendVersion

Changed
  • The Passport step now sends the template type of the scanned passport (new / old / unknown) to the backend in the passport_type field. Front and Back step requests are unchanged.

1.11.0 - 29.09.2026​

minBackendVersion

Changed
  • The Front, Back and Passport steps now extend a shared DocumentStep class. identifyTimeout, documentResolution, isGlareDetectionEnable and the glare text parameters (glareDetectedText, tooBrightText, tooDarkText, multipleDocumentsDetectedText) are shared by all three steps; defaults are unchanged (glare detection on for ID cards, off for passports). The change is source compatible, but binary signatures changed, so the host app must be recompiled against this version.
  • The document capture screens of the Front, Back and Passport steps were merged into a single shared screen; step behavior and appearance are unchanged.

1.10.0 - 29.09.2026​

minBackendVersion

Added
  • Added the documentResolution(DocumentResolution.LOW | MEDIUM | HIGH | ULTRA) parameter to the Front, Back and Passport steps. It sets the capture resolution of the document photo; defaults to HIGH.
  • Added the recordingDurationMs (recording length, default 10000 ms) and torchEnabled (camera light during recording, default false) parameters to the Hologram step.
Changed
  • Upgraded the Havelsan id_verification SDK from rc72 to 2.0.1. The legacy Camera1 camera stack was removed; all camera steps run on CameraX.
  • Moved the Hologram step to Havelsan's new hologram video API. Recording uses the rear camera without audio, so the step now only requests camera permission, not microphone permission.
  • The enableHighestResolution parameter is deprecated and no longer has any effect; use documentResolution instead (DocumentResolution.ULTRA for the highest resolution).
  • When capture completes in the document steps and the Liveness step, the camera preview now freezes on the last frame instead of overlaying a photo.
Fixed
  • The Liveness and VideoRecord steps now process face photos, the screen recording and video/audio recordings through files instead of memory, fixing out-of-memory (OOM) crashes on large recordings.
  • Late callbacks from a previous attempt can no longer corrupt the state of the current attempt in the Liveness and VideoRecord steps.
  • Fixed an empty screen-recording result in the Liveness step causing the real recording to be treated as failed.
  • Fixed the Liveness flow restarting when the app was sent to the background and brought back while the error or retry sheet was open.
  • Fixed the host app's onError callback possibly being called twice for the same error.
  • Fixed the VideoRecord step failing to build the preview video, and discarding the whole capture, when the audio track was missing.

1.6.18 - 23.09.2026​

minBackendVersion

Changed
  • The NFC feature is no longer required in the SDK manifest (android.hardware.nfc required="false"), so devices without NFC hardware no longer filter the host app on Google Play. On such devices the NFC step routes the flow to the fail screen with NFCError.DEVICE_NOT_HAVE_NFC.
  • Added a Cancel button to the NFC-disabled prompt; its text can be customized with the NFC step's cancelButtonText parameter.

1.6.17 - 18.09.2026​

minBackendVersion

Changed
  • The device screen is kept on for the whole KYC flow.
Fixed
  • Fixed the screen going dark during long-running steps.

1.6.16 - 16.09.2026​

minBackendVersion

Fixed
  • Fixed the screen going dark during video calls.

1.6.15 - 15.09.2026​

minBackendVersion

Added
  • Added -no-record artifact variants that ship without screen recording. Integrations whose backend never enables the save_face_match_video flag can use these packages, which contain none of the Havelsan screen recording permissions or service. The variants carry the same SDK version number; the choice is made at build time.
  • Added the ScreenRecordingError.SCREEN_RECORDING_NOT_AVAILABLE error. When the backend requires screen recording while a -no-record artifact is in use, the Liveness step fails with this error before any camera or permission requests; the requirement is not silently skipped.
  • Place of birth is now read in the NFC step.
Changed
  • Updated the image compression behavior.
  • Added information about the artifact variants (the video call and screen recording dimensions) to the installation section; the dependency example was updated to v1.6.15.
  • Documented the following previously undocumented APIs: the ttsConfig parameter and TTSConfig, updateUIConfig, the NFC step's text parameters (scanTitle, scanDescription, cancelButtonText, retryTitle, retryDescription, disabledTitle, disabledDescription, disabledButtonText), the Passport step's nationality parameter, the enableHighestResolution parameter of the Front and Back steps, and the RuPassportAddressValidation step.
Fixed
  • Fixed the missing Liveness snapshot and the black-bar (letterboxing) issue.
  • The Liveness snapshot is now shown without decode delay.

1.6.11 - 03.09.2026​

minBackendVersion

Added
  • Added dark mode support to UIConfig: an isDarkTheme flag and an optional darkColors block. When the host app reports its dark-mode state, the SDK uses the host's darkColors palette if supplied, otherwise its own built-in dark palette.
  • Added a new KPS (Identity Sharing System) step. Automatically verifies the user's identity information; it has no properties of its own.
  • Added video call provider selection: the videoCallProvider and roomName parameters.
  • Added the securityCheckEnabled parameter. When enabled, the SDK performs root/emulator/hook detection on the device; detection always emits a SecurityWarning event and stops the flow with a fail screen in non-debug builds. Disabled by default.
  • Added new error enum families for network, server, timeout, rejection, identity-read, document auto-detection, video recording, location permission, and video call errors (NetworkError, ServerError, TimeOutError, RejectedError, IdentityReadFailedError, DocumentAutoDetectError, VideoRecordError, PermissionError, VideoCallError). Also documented the previously undocumented screen-recording errors (ScreenRecordingError).
Changed
  • [Breaking] Error types were renamed with no backward-compatibility shim: KYCError (enum) → SDKError, KYCCameraError → CameraSourceError, KYCNFCError → NFCError. Some error cases were also renamed or merged (e.g. PERMISSION_NOT_GRANTED + CAMERA_PERMISSION_REQUIRED → CAMERA_PERMISSION_DENIED, FLASH_MODE → FLASH_TOGGLE_FAILED, NOT_ENABLE → NFC_NOT_ENABLED). See the Error Handling section for details.
  • Upgraded the Havelsan id_verification SDK to rc71 (jmrtd 0.7.42 / BC 1.78.1).
Fixed
  • Fixed the KPS step failing with a connection reset when fired immediately after NFC.
  • Fixed retry after a camera error in the Front, Back and Passport steps not re-starting document auto-detection; previously the camera preview appeared live but detection never fired again.
  • Removed the SDK's unused launcher icon resources from the AAR; the host app's own launcher icon is no longer overridden by the SDK's on some Android 8+ devices.
  • Fixed the flow silently breaking instead of routing to a proper fail screen (APP_IDENTIFIER_STEPS_IS_NOT_SAME_API) when the host's defined step list doesn't match what the backend expects.
  • Added a separate, localized error message shown to the user when NFC verification fails for a generic reason.

1.6.0 - 08.07.2026​

minBackendVersion

Added
  • Two new steps were added: Selfie and VideoRecord (spoken video verification). The text the user reads aloud in the VideoRecord step (prompt_text) is provided by the backend.
  • The completedScreenTexts parameter was added. The title, description and button text of the success screen can now be customized.
  • The language parameter was added. The SDK language can be set to tr, en or ru; English and Russian localizations were added.
  • The full UIConfig color and shape setter surface is now exposed: 16 colors (primaryColor, surfaceColor, backgroundColor, errorColor, successColor, overlayColor, titleColor, descriptionColor, etc.) and 5 shapes (cardCornerRadius, imageFrameCornerRadius, bottomSheetCornerRadius, cameraOverlayCornerRadius) are now available to host apps.
Changed
  • ID verification version was updated. (r1.0.0-rc68)
Fixed
  • Fixed the loss of appointment_id and the flow getting stuck when the video-call-start request returns an empty response.
  • Fixed text-to-speech continuing to play from the previous step during fast step transitions.
  • Handled the liveness session interruption when the app moves to the background.
  • Fixed cases where control was not returned to the host app when the flow finished.
  • Added a reason field to the KYCProcessResult.Failed and Cancelled results returned via onProcessFinished, carrying the actual reason the flow failed or was cancelled.