---
title: "iOS SDK Release Notes"
url: "https://developer.incode.com/release-notes/releases-ios-sdk/"
section: "release-notes"
group: "Releases iOS SDK"
version: "v1.1"
status: "live"
---
# iOS SDK Release Notes

### 5.48.0 (August 19th 2026)

#### Features & Enhancements

* Added an `errorTriggered` analytics event for the ID Capture and Face Capture modules.
* Finalized the Namirial QES "Review and sign" screen: consent checkboxes render exactly as returned by Namirial, and a new **Certificate application form** link opens the personalized application form.

#### Fixes
* Preserved the passport tutorial when Passport is selected with US Smart Capture.
* Fixed US Smart Capture barcode uploads in Workflows so ID validation follows the server-defined workflow graph.
* Fixed valid Brazilian CPF numbers being rejected by Dynamic Forms and eKYC validation.
* Fixed ID Capture real-time feedback colors inverting with the device appearance; both Standard and Minimal feedback now keep a dark background with readable text in light and dark modes, matching the latest design.
* Fixed Document Scan (V2) returning to the camera screen instead of the source-selection screen when tapping **Recapture document** after an upload error, when multiple document sources are configured.
* Fixed crashes in NFC when reading passports with malformed or truncated chip data; the scan now reports a read error instead of crashing.
* Fixed NFC secure-messaging response verification on AES sessions (PACE/chip authentication): the response MAC was compared against a copy of itself and never actually verified. Tampered responses are now rejected with a checksum error.
* Fixed NFC passport scan always failing chip authentication for users whose date of birth or document expiry falls in the last days of December, caused by a week-numbering year in MRZ key derivation.
* Fixed missing analytics events on permission alerts in the Face Authentication, ID Capture, and Selfie modules.
* Fixed Deepsight video being lost from Selfie and Face Authentication sessions when the app was backgrounded while the camera was active. iOS invalidates the hardware video encoder in the background, which made the recording fail silently at finalization. The recorder now discards the pre-background footage and records a fresh clip once the app returns to the foreground. If the video still cannot be recorded or finalized, the failure is reported through the non-fatal `videoRecordingError` field on `SelfieScanResult` or `FaceAuthenticationResult` (new case `videoRecordingFailed`); the face capture itself completes normally and the `error` field remains reserved for terminal failures.
* Fixed rapid double-taps on the Signature module's **Continue** and **Done** buttons starting duplicate uploads, which could skip a document in multi-document signing flows and report it as signed.

### 5.47.0 (August 11th 2026)

#### Features & Enhancements

- Added UX V2 version of the Advanced Electronic Signature (AES) module.
- Added UX V2 version of the Qualified Electronic Signature (QES) module.
- **Breaking Change:** `addAes` no longer takes `showCertificateOnSuccess`. The AES success screen confirms the signature and offers **Download document** when the module is configured with `downloadDocument`; see the [Migration Guide](/release-notes/migration_guide/) for the call-site change.
- QES now loads the Namirial (`providerCode` `QES_3`) consent checkboxes from the backend, with the Terms & Conditions and Privacy Policy as links, and shows the signer's name and signing date after signing. The separate Terms & Conditions screen is removed.
- Improved debugger detection in Deepsight. From now on, sessions are flagged if a debugger is detected. To avoid this during development, use `testMode: true` in `initIncdOnboarding`.
- Setting `testMode` to `true` in `initIncdOnboarding` now allows running the app on real devices. Previously, it was reserved for simulators only. The SDK prints a console warning when test mode is enabled to remind developers to disable it before distribution.
- SDK console logs now default to off. Set `loggingEnabled` to `true` to enable them.
- Capture-only Sections API integrations can now call `finishFlow` after the final section completes successfully to clear local session state and receive diagnostics through `onDiagnosticsDataReceived`. Calling it is recommended but remains optional.
- Reworked camera readiness. Models are warmed before the camera starts. The capture UX was improved across Face Capture, Face Authentication and ID Capture.
- Added an `IDFrameAnalysisError.preparingCamera` feedback case, reported while the ID camera is getting ready.
- The Dynamic Forms module can now prefill answers from the user's captured ID. Questions marked as prefillable in Dashboard are populated automatically before the form is shown. A brief loader appears while values are fetched. Answers configured as non-editable render as read-only fields. If the values can't be fetched, the form opens blank and fully editable.
- Failed QES signing attempts now show "Signature failed" instead of a generic error. Whether a "Try again" button appears depends on the reason the back end reports. Expired signing certificates can be retried. Identity data mismatches, missing identity data, and signing-provider problems close the module instead, since retrying won't help.
- Fixed Portuguese translations.
- Added additional horizontal padding to the selfie preparation screen so the text wraps to a second line sooner.

#### Fixes

- Fixed the "Get ready" step being skipped when Face Capture, Face Authentication, or Face Login retried after a failed attempt.
- Face Capture and Face Authentication now check that the device has at least 15 MB of free storage before starting Deepsight video recording. If storage is insufficient, the capture continues without video and the skip is reported through the new non-fatal `videoRecordingError` field on `SelfieScanResult` or `FaceAuthenticationResult` (case `insufficientStorageForVideoRecording`). The `error` field remains reserved for terminal failures.
- Fixed the `-[IDDetection findMaxBin:binNum:]` crash (`EXC_BAD_ACCESS` or `KERN_INVALID_ADDRESS`) reported on iOS SDK 5.41.0-d. All model handlers now return a recoverable error when Core ML inference fails or returns partial results, instead of crashing or producing a wrong result.

### 5.46.0 (July 20th 2026)

#### Features & Enhancements

- Added a Video Selfie hand-gesture step. Enable with `VideoSelfieConfiguration.handGesture(enabled:)`. The user is asked to wave their hand across their face; the gesture is reviewed manually and is not verified on device.
- Added a Video Selfie head-turn liveness challenge. Enable with `VideoSelfieConfiguration.selfieScan(performHeadMovementCheck:)`. After the selfie is captured the user is asked to turn their head in a random 2 of 4 directions (up/down/left/right), verified on device. On iOS 13 and 14 the challenge is limited to left/right only, because Apple Vision provides the pitch angle needed for up/down detection on iOS 15 and later.



- Unified camera permission screens across ID Capture, Face Capture, and Document Scan into a shared module. Face Capture and Document Scan now show the same pre-permission screen that ID Capture V2 uses.
- Updated analytics names for screens from FaceCapture and ID Capture Modules and added new ones for V2 experience.
- Added elementClicked analytics event for ID Capture and Face Capture modules in V2.
- Redesigned Data Entry & Forms Module to UX V2 while removing v1 experience.
- Redesigned Electronic Signature module


- Migrated the OCR / data-confirmation screen to UX V2 (SwiftUI). The legacy V1 OCR view controller and storyboard were removed, and both OCR entry points now route through the V2 screen.

#### Fixes

- Fixed ID Capture V2 success screen subtitle showing "Now let's continue" instead of "Let's continue" across all locales
- Fixed an issue in ID Capture that caused `No internet connection` to be presented when the server reports request errors, instead of `Processing failed`.


- Fixed a class of crashes on ID capture, face enrollment, and face login tutorial screens caused by completion handlers firing more than once.
- Fixed manual capture not appearing immediately when `IncdOnboardingManager.shared.selfieTimeout = 0`
- Fixed camera injection test errors being silently swallowed; failed checks now report `.notSupported` instead of leaving the result as `nil`.
- Fixed phone module v1 with SNA activated failing if phone number was formatted with parentheses.
- Fixed Deepsight video missing from Face Capture and Face Authentication sessions when the app was backgrounded during manual capture; video recording now resumes when the app returns to the foreground.

### 5.45.0 (Jul 2nd 2026)

#### Features & Enhancements

- Added SDK Diagnostics collection. Enabled by default; opt out with `IncdOnboardingManager.shared.sendDiagnosticsData = false`.
- Redesigned the Combined Consent / Data Sharing Consent module for UX V2, aligning it with the latest design while preserving the existing V1 experience.
- Added UX V2 version of Document Scan module


- Extended methods for loading models (`IncdOnboardingManager.shared.loadModels` / `IncdOnboardingManager.shared.loadModelsSynchronously`) with the ability to select which models should be preloaded (all (default), ID-Capture, or Face-Capture) and to enable (default) or disable automatic unloading when onboarding is finished or cancelled. This frees \~80–100 MB that local ML models previously retained in memory between sessions. See [Migration Guide](MIGRATION_GUIDE) for details.
- Added a method for explicit unloading of models (`IncdOnboardingManager.shared.unloadModels`) when the customer wants to control unloading manually.
- Redesigned `NFC Scan` module to use the Incode Design System V2. Public `addNfcScan(...)` API and `NFCScanResult` are unchanged. See [Migration Guide](/release-notes/migration_guide/) for the user-visible flow changes and [Localization Guide](/sdk-reference/ios-customization/#localize-display-text) for updated string keys.
- Added accessiblity voiceOver to Phone Module v2.
- Added a Digital ID file-too-large error screen when the selected PDF exceeds the upload size limit of 5MB.
- Aligned the Deepsight public API with the Dashboard flow/workflow model: new `DeepsightConfiguration` (`enabled`, `modality`, `motion`) and `DeepsightModality` (`singleFrame` / `singleFrameWithDepth` / `singleFrameWithDepthAndVideo`), a new `addSelfieScan(deepsight:)` overload, and `DeepsightConfiguration` support on `FaceAuthenticationConfiguration`. The previous `addSelfieScan(requireDepthData:videoLivenessRecording:)` overload is deprecated (not removed). See [Migration Guide](MIGRATION_GUIDE) for details.
- Added a `motion` parameter to `addIdScan(...)` to enable motion-based checks during ID capture. Default `false`.




- Updated device-identifier mapping with latest iPhones and iPads.


- Added `documentSources` parameter to `addDocumentScan` function

#### Fixes

- Fixed Done button in Dynamic Forms not enabling once all fields were populated.
- Fixed Video Selfie incorrectly reporting an internal recording error after the max video length was reached.
- Fixed ID Capture showing `No internet connection` when uploading a PDF larger than 5MB; it now shows the file-too-large error and supports retrying with another file.
- Fixed false "No Internet Connection" snackbar shown during ID capture for non-network errors.


- Fixed dashboard config overriding code-set geolocation `isSkippable` in `startOnboarding`/`startOnboardingSection`.

- Fixed error handling in Phone Module v1 and v2.

- Fixed V1 ID upload now returns the user to the camera when they tap Retry on the no-network snackbar, instead of re-uploading the cached image (avoids the case when backend processed the original request despite a dropped connection).

- Improved internal method swizzling for better third-party SDK compatibility.

- Fixed a Swift task continuation misuse crash in face capture tutorial screens.

### 5.44.0 (May 22nd 2026)

#### Features & Enhancements

- Added Hebrew (`he`) localization. The SDK now ships Hebrew translations for all UI strings, and `IncdLocalization.localizationLanguage` accepts full locale identifiers such as `he-IL` (resolved to `he.lproj` when no exact `lproj` match is found).
- `IncdTheme.logo` now applies to V2 screens in addition to V1. The logo is resolved in the following order: custom `UIImage` set via `IncdTheme.logo`, then the `incdOnboardingLogo` asset from the host app's main bundle, then the SDK bundle's default.
- Added SNA (Silent Network Authentication) to `Phone Module` (Only available via Flows integration and on new variant `-sna`).

#### Fixes

- Fixed issue with cancel event being lost when canceling onboarding.
- Fixed ID side validation so wrong-side ID scans show feedback instead of being auto-captured.
- Fixed image buffer processing continuing in the background after cancelling the ID capture screen on V2.
- Fixed Face Capture continuing incorrectly when microphone permission is denied for audio streaming; it now ends with `streamAudioPermissionsDenied`.
- Fixed an issue where the selfie image was missing in Face Match when using Face Authentication.
- Fixed VoiceOver accessibility issues on Face Capture error and ID Capture result screens.
- Fixed button label on ID capture confirmation screen (UX V2).
- Fixed incorrect default config values for Face Capture.
- Fixed issue with user-uploaded document (like for ID Capture or Electronic Signature) not being removed, when local data is cleared.
- Fixed inverted `OcclusionCheck.Severity` thresholds where `.low` and `.high` were swapped, causing occlusion checks to behave with the opposite strictness.
- Fixed camera permission denied alert not appearing in V1 ID Capture and Face Capture, leaving the user stuck with no way to exit onboarding.


### 5.43.0 (May 5th 2026)

#### Features & Enhancements

- Improved the `Geolocation` module UX by adding a retryable Location Unavailable screen when permission is granted but coordinates or backend confirmation fail, and by surfacing No Internet screen when the backend call fails due to connectivity.
- Updated Subtitle Text on Review Document Scan Screen
- Redesigned `Phone` module
- Added SNA (Silent Network Authentication) to `Phone` module. Activate via Dashboard in supported countries and phone carriers. If SNA is not supported OTP will be used.
- Added Accessibility support for ID-Capture and Face-Capture
- Face occlusion detection threshold is now configurable from the Incode dashboard for Face Capture and Face Auth.
- Added on-device age verification support (available only in -l variant with e2ee configuration).
- Added `allAttemptsExhausted` to `SelfieScanResult` and `IdScanResult`, indicating when capture or upload retries are no longer available.
- Added per-attempt callbacks `onIdFrontAttemptCompleted`, `onIdBackAttemptCompleted`, and `onSelfieAttemptCompleted` to `IncdOnboardingDelegate`, fired after each individual capture attempt with its specific result and status.
- Added skip support to the `Geolocation` module. The new `isSkippable` parameter on `addGeolocation(isSkippable:)` allows the geolocation step to be skipped, and the same behavior is read automatically from the dashboard workflow configuration via `allowUserToSkipGeolocation`. When enabled, skipping or denying location permission advances the flow instead of ending the session with a permission error.
- Reworked the `Geolocation` module's no-permission and location-unavailable screens to honor `isSkippable` parameter:
  - **UI**: When the module is not skippable, the no-permission screen's secondary button changes from `Skip this step` to `Quit process`, and on the location-unavailable screen `Try Again` is replaced with `Quit process` once retries are exhausted. When the module is skippable, the location-unavailable screen falls back to `Skip this step` once retries are exhausted.
  - **Callbacks**: Added `IncdFlowError.locationUnavailable`, fired via `onError` when a non-skippable module exhausts retries on the location-unavailable screen and the user taps `Quit process`. Non-skippable location-permission denials fire `IncdFlowError.permissionsDenied`. For skippable modules, both Skip paths complete the step via `onGeolocationCompleted` with `GeolocationResult.error = .locationUnavailable`.
  - **Analytics**: Added new screen event `GEOLOCATION_UNABLE_TO_VERIFY`, fired when the location-unavailable screen is shown.
  - The location-unavailable screen now caps user-driven retries at 2; the third consecutive failure swaps `Try Again` for `Skip this step` / `Quit process`.


#### Fixes

- Fixed Title Overlap with Close Button on Document Scan Flow
- Fixed duplicate screenClosed event being fired for the last screen in a flow.
- Fixed manual capture in Face Authentication not recording deepsight video on subsequent attempts.
- Fixed `deleteLocalUserData` leaving certain session files on the device after being called.


### 5.42.0 (Apr 24th 2026)

#### Features & Enhancements

- Added UX V2 Dashboard Configuration for Flows & Workflows
- Redesigned `UserNameInfo` module
- Redesigned `Email` module
- Redesigned `CreditCardCCV` module
- Enabled high resolution ID and Face capture via `clientExperimentId`. Pass `high_res_capture` (optionally combined with other experiments using `|`) to opt in.
- Redesigned `EKYC` module
- Lottie animations are now automatically tinted with the `brand500` color from the color palette, including tutorials, document chooser icons, capture feedback, and loading spinners.
- Improved accepted documents list display on id process screen.

#### Fixes

- Fixed an issue where CURP validation could fail in workflows due to the session completing prematurely.
- Added optional `mimeType` to the `DocumentScanResult` model, indicating the MIME type of the content in the `data` field.
- Fixed nudge color on the ID Capture V2 fake permission bottom sheet to `surfaceNeutral200`.
- Fixed a crash in the Video Selfie module when progressing to the next step.
- Fixed an intermittent crash during Face Login.





### 5.41.0 (Apr 7th 2026)

#### Features & Enhancements

UI MODERNIZATION

- Redesigned the CURP Validation module to use the Incode Design System V2. Form fields, layout, and typography now align with the V2 theme. See [Migration Guide](MIGRATION_GUIDE) for renamed localization keys.
- Updated design on ID Scan module to display multiline text.
- Updated V2 theme color tokens for positive and negative semantic states. Palette keys `negative500` → `negative400`, `negative600` → `negative500`, `positive600` → `positive500`, `positive800` → `positive950`. If you customize `IncdTheme`'s color palette, see [Migration Guide](MIGRATION_GUIDE).










ID DOCUMENT CHOOSER

- ID Document Chooser now uses a compact card layout only. The screen title has been updated to "Select how to verify" and an **Upload Digital ID** option has been added.
- 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`). See [Migration Guide](MIGRATION_GUIDE) for details.
- Added Dashboard Configuration of the ID Document Chooser Screen.

CAPTURE & PROCESSING FLOW

- Introduced a "Processing" status in the Selfie module. After capture succeeds, users now see a brief indicator before the upload begins, providing clearer feedback between capture and upload.
- Improved the Capture-only flow to use the Analyze screen, with Processing (Security Check) only.
- Processing (Security Check) on Analyze screen, before Uploading.

CONFIGURATION & CUSTOMIZATION

- Selfie image quality threshold is now configurable from the Incode Dashboard.
- Added `.yesno` question input type to the Dynamic Forms module. Questions configured with this type render as a **Yes / No** radio group. Localization keys `incdOnboarding.dynamicform.yes` and `incdOnboarding.dynamicform.no` are available for customization.
- Added support for replacing the default tutorial Lottie animations in ID Scan and Face Scan modules. Place your own `.json` or `.lottie` files in the app's main bundle using the following names: `id_scan_tutorial`, `id_back_scan_tutorial`, `passport_scan_tutorial`, `tutorial_selfie_v2`. Refer to `USER_GUIDE_CUSTOMIZATION_v2` for details.

#### Fixes

UI/THEMING

- Fixed incorrect color tokens applied to the Face capture spinner. During active capture, the spinner now uses `.borderFocus`; during uploading it uses `.borderPositiveStatic`. Previously, swapped palette entries caused wrong colors in certain themes.
- Face capture spinner now reflects color from `borderFocus` during capture over the system theme in respect to the `IncdTheme.displayMode`.
- Fixed the Close (X) button on the ID Scan screen displaying different colors depending on the device theme. The button is now always white, consistent with the dark camera overlay background.
- Fixed the Close (X) button on the Face Capture processing screen not following the active theme's text color token.

FACE CAPTURE & AUTHENTICATION

- Fixed the camera freezing for several seconds when opening Face Capture for the first time in a session.
- Fixed missing depth data in face capture sessions.
- Fixed local Face Login (1:1 and 1:N modes) not animating the camera view away before showing the result screen. Behavior now matches the server-side login flow.
- Fixed Face Authentication missing some events and security checks.
- Fixed the Close (X) button in Face Authentication not showing a confirmation dialog when tapped.

ID SCAN

- Fixed missing **Try Again** button on the error state screen in the IDScan module.


- Fixed crash by removing option to cancel flip ID animation.

STABILITY / FREEZES & CRASHES

- Fixed an app freeze triggered by a "Face not found" error on the Front ID scan.
- Fixed an app freeze that occurred when uploading the Secondary ID Scan.
- Fixed an app freeze triggered by completing a usSmartCapture barcode scan.
- Improved Lottie animation loading to be fully asynchronous, preventing potential UI blocking when loading large animation files on the main thread.
- Fixed Selfie, Face Authentication, and Face Login modules incorrectly resuming camera autocapture and video recordings after the app returned from background during the processing or uploading stage.

NETWORKING & SESSION

- Fixed issue where upload request times out when networking is routed through VPN.
- Fixed `onError` delegate not being called when SSL pinning fails during session creation.

ACCESSIBILITY & LOCALIZATION

- Fixed incorrect Spanish and Portuguese translations for the manual capture prompt. The ES/PT strings for "Take the photo manually" now match the English source.
- Fixed missing `accessibilityLabel` on the **Take Photo** button in Selfie Scan, improving VoiceOver support.

### 5.40.0 (Feb 20th 2026)

### Features & Enhancements

- Added **Quit process** button to the screen when user denies camera permissions.
- Fake permission 'Learn more' screen now shows a confirmation dialog when **Quit process** button is tapped.
- Added camera permission event tracking for Face Enroll, Face Login, Video Selfie, Document Scan, and ID Capture modules.
- Limited feedback message title and subtitle to 2 lines on ID Capture v2 screen.
- Turned off swipe gestures to go back between module screens in all iOS versions since they caused crashes.
- Added Geolocation UX V2 module.
- Adjusted UI layout for Manual capture button on ID v2 experience.
- Updated Loading, Error, and Success States for Face Authentication and Face Login V2 experience.
- Adjusted Header text layout on ID Capture v2 to prevent it from overlaying with the **Cancel** button.
- Added backend checks for Lenses, Headwear, Face Mask, and Closed Eyes to Video Selfie.
- Supporting async_resolution node types in Workflows.
- Added Optional Fields to Dynamic Forms.
- Added `presignedVideoFileURL` to `SelfieScanResult`.
- Increased the customer logo height to 35pt on V2 experience.
- ID Capture V2 UI color updates:
  - Capture frame during processing now uses focus500 in light and focus400 in dark mode.
  - Capture countdown background now uses gray900 in both light and dark modes.
  - Capture countdown border gradient removed and now uses gray100 in both light and dark modes.
  - Realtime feedback background now uses gray1000 in both light and dark modes.

### Fixes

- Fixed a crash when user came back from settings after declining camera permissions.
- Fixed PoA document scan showing connection error for unrecognized documents. Increased the document upload timeout.
- Fixed content alignment on Learn More About Camera Permissions screen to be vertically centered.
- Fixed a bug where Video Selfie Module asks to scan back side of an ID document when a passport document is previously scanned.
- Fixed a bug where Video Selfie Module ignored OnlyBack/OnlyFront ID module configurations.
- Fixed camera preview glitch when streaming is enabled during ID capture.
- Fixed Selfie module not transitioning to the next module on Simulators.
- Fixed button padding on ID Capture Help Screen.
- Fixed wrong icon order and overlapping between tooltips and title on Face Match screen.
- Fixed issues with camera injection test in Face Enroll in captureOnly mode.
- Fixed ID Upload screen layout issues on smaller screens.
- Fixed logo size mismatch for V2 experience.
- Fixed button spacing on the camera permission denial screen.
- Fixed minimal realtime feedback overlap on ID Capture screen.
- Fixed ID capture realtime feedback and header subtitle color. It is using now `textBodyTertiaryStatic` color.
- Fixed missing depth data in some cases on manual capture for Face Enroll module.
- Fixed bad exposure on captured face images and ID images.
- Fixed a rare issue where the ID upload screen could be presented twice, causing the capture flow to become unresponsive.
- Fixed an issue where the Face Capture feedback label appeared on the Upload screen after capture.
- Fixed missing No Network screen on ID Capture Upload Screen for V2 experience; network errors now present the no-network screen and retry without consuming the user's upload attempts.
- Fixed customization of realtime feedback text color on Selfie V2.







### 5.39.1 (Jan 09th 2026)

Fixed

- Running onboarding section upon module cancelation is again possible.

### 5.39.0 (Dec 31st 2025)

- Introducing the Non-UI mode for the ID Capture module. Refer to `USER_GUIDE_NON_UI.md` for more.


- Update phone number formatting and validation.
- Postal Code field in EKYB Module now accepts alphabetical characters.
- Fixed a crash that occurred when the user repeatedly tapped the CTA button on Video Tips tutorial screens.
- Added Face Match screens for the v2 experience with `showLivenessStatus` parameter to display liveness status UI (defaults to false in V2, true in V1).
- Added support for `CustomModule` in Workflows. Implement `onCustomModuleStarted` delegate method to pause a flow, execute custom logic, and resume at the module's next node.


- Added a way to skip Document Scan step.
- Added Review screen for the ID Capture V2 experience; In `addIdScan` method, renamed `showRetakeScreen` into `showRetakeScreenForManualCapture`, renamed `showAutoCaptureRetakeScreen` into `showRetakeScreenForAutoCapture`, and removed `enableRotationOnRetakeScreen` parameter; Removed `IncdOnboardingManager.shared.enableRotationOnRetakeScreen` flag.
- Refined UI for Face Capture v2 experience; Added `incdOnboarding.FaceCapture.CaptureButton.cameraIcon` customizable asset for manual capture button icon.


- Added separate error message in Selfie Scan and Face Auth modules when the capturing face is occluded or partially covered.
- Updated Selfie tutorial subtitle text.
- Fixed captureAttemptFinished event module name for ID Capture
- Add additional event data to `onEvents(_:)` delegate method
- Updated Loading and Success Face Capture State for v2 experience
- Updated No Internet Connection Error Screen for v2 experience


- Added parallel barcode scanning to the ID scan module when usSmartCapture is enabled.

### 5.38.0 (Nov 9 2025)

- V2 user experience now possible when using SDK without api key.
- Fix `setupOnboardingSession`, `startFaceLogin` methods and `onError` delegate callback returning `notInitialized` instead of a `jailbreakDetected` error when being run on jailbroken devices
- Renamed param `showTutorial` to `showTutorials` when configuring Face Authentication module
- Added local authentication statistic data store and manual server sync feature. This feature is used when device is offline while using the local login feature and we need to log authentication attempts to the server at a later time. Setting new `storeLocalAuthenticationEnabled`  flag as true will store the authentication attempts data. Then new API function  `syncFaceLoginAttempts` can be called when device is back online to log all stored attempts. Progress can be tracked using new `IncdLoginDelegate` function `onSyncProgressUpdate(completionPercentage: Float)`.
- Fixed a bug that prevented deepsight from executing when using the sections API.
- Fixed the appearance of the ID Capture 'Common issues' screen on iOS 13.
- Fixed setting mark for manual review when user denies camera permission or cancels selfie capture
- Updated UI of ID Capture Help screen for the V2 experience.
- Added Age assurance tutorial screen for Selfie v2 experience.
- Added Age assurance tutorial screen for ID v2 experience.
- Added support for the V2 UI for Login and Authentication
- Updated processing screen UI for the ID v2 experience.
- Deprecated `enableIdSummaryScreen` parameter from addIdProcess. Now function signature remains `addIdProcess(idCategory: IDCategory)`
- Fixed 3-2-1 counter on V2 ID scan
- Added support for US Smart capture feature in Id capture module. Activate via dashboard. Contact your Incode representative for participating states driver's licence.
- Added metadata field in IdScanResult. It represents proprietary capture metadata, required by the Incode Omni SDK, that is associated with this ID Scan capture session.
- Added frameWithDepth field in SelfieScanResult. It contains a base64-encoded selfie image captured during the Selfie Scan step, enriched with AVDepthData.
- Added new Digital ID flow to ID Scan module

Known Issues:

- ID Scan module: White/black screen may appear briefly upon camera open/closure.

### 5.37.0 (Sep 9 2025)

- Resolved multiple UI discrepancies for ID Capture v2
- Fixed a bug where user can enter multiple characters in PhoneVerification OTP Fields
- Removed `-e2ee` variant; E2EE functionality is now built in the basic SDK; Deprecated `e2eEncryptionAlgorithm` parameter
- Fixed an issue in NFC Scan where the birth date and expiration date were incorrectly read.
- Updated the Selfie v2 error upload screen to align with the v2 design style.
- Added UX config customization for positioning of the ‘X’ button.
- Added UX config customization for hiding the "Verified by Incode" footer.
- Added `incdOnboardingLogoFooter` image asset that is now used by "Verified by Incode" footer"
- Added logging for video streaming events. This will help to identify sessions where the video streaming failed to start or an error occurred during the streaming process.
- Selfie scan in V1 UI no longer shows incode logo on top during the capture.



- Fixing feedback messages on manual Face Capture.
- Fixed autogenerated document names in QES. They are now named Contract followed by their respective ordinal numbers.


- Fixed ODR feature initialization
- Fixed VideoSelfie Document Scan crash
- Adjusted NFC processing messages


- Expanded NFC PACE protocol support to all supported iOS versions (iOS 13+). Previously limited to iOS 15+. Applicable only for the '-nfc' variant.
- Added "All photos are encrypted" label to ID Capture V2 experience.
- Added capability to move the help button in IDCaptureV2 via UXConfiguration class to bottom Left, top right and top left of the screen.
- Added minimal variant UX for feedback in IDCapture V2.
- Added support for the `Face Authentication` module that performs a selfie scan to authenticate the user.
- Send hashed session id to StatSig
- Added `gray0` color to the customizable palette for the V2 experience
- Added UX config customization for adjusting headers alignment for certain screens.
- Updated camera permission request flow in the ID Capture V2 experience.
- Added ability to fine-tune CTA button UI properties for the V2 experience, independently of Palette colors.

#### Design Changes

**Highlights**

- Added corner cases screens (for ID Capture V2 and Face Capture V2).
- Updated permission dialog (web + bottom sheet native).

**ID Capture V2**

- Added Age verification screen.
- Added vertical and passport capture screens.
- Added “All photos are encrypted” message on all capturing/result screens.
- Updated Permission dialog screen design for Web.
- Updated Permission dialog screen design to a bottom sheet for native iOS and Android.
- Added Photo review screen.
- Removed “We protect your data, and it is only used for verification” from Learn more permission screen for native iOS and Android.
- Added No Internet connection screen.
- Added Document not accepted errors screens.
- Added Verification processing screen.
- Added “No attempts remaining” disclaimer to the error screens with exhausted attempts.
- Added Dark mode screens on Happy path.

**Face Capture V2**

- Removed the “Face is blurry” feedback screen.
- Added “Eyes closed” feedback screen.
- Added No Internet connection screen.
- Changed the icon on error screens that had attempts left for the orange warn one.
- Added a Continue button and “No attempts remaining” disclaimer to the error screens with exhausted attempts.
- Visibilized “Face not aligned” error screen.
- Added Dark mode screens on Happy path.

### 5.36.0 (July 29 2025)

- Fix Video Selfie Questions Stuck on First Install
- Replaced NFC tutorial animations from mp4 files to dot lottie animations.
- Added showSelfieStepFirst(\_:) method to `VideoSelfieConfiguration` to change the order of VideoSelfie steps. When set to true, the Selfie scan step is shown before the ID scan step. Default behavior shows the ID step first.
- Add Select from Predefined Options Input in Dynamic Forms
- Remove Excessive Logging of Sensitive Data
- Fix Passport Capture Preview is not Fully Blurred
- Fix manual ID capture when user taps on Help button while streaming is on
- Added parameter `returnResultImmediately` to `addNfcScan(...)` which allows client app to handle errors and retries.
- Fixed preview orientation when uploading captured ID in the v2 capture experience.
- Added support for .lottie format files for animations in all tutorial screens.
- Fixed alignment issue for the "No ID Detected" animation when capturing horizontal ID (for new ID capture experience)
- Prevent automatic face capture from being triggered while the Face Capture Error screen is displayed.
- Updated animation and added support for light/dark appearance for the "flip ID side" screen (for new ID capture experience).
- Improved error handling for authentication failures in the NFC tag reader.
- Use the v2 Incode logo for Selfie v2
- Added `displayMode` property to `IncdTheme` to setup light/dark UI appearance for v2 experience. Default is 'light'.
- Added analytics with SDK integration statuses at the start of onboarding flows
- Fixed eKYC module using incorrect watchlist event names by adding dedicated `EKYC_PROGRESS` event
- Remove Kiosk storyboard files from non-Kiosk variants
- Removed unnecessary external screen tracking events when picker views are displayed in dynamic form modules
- Added face detection feedback message in selfie scan module when face is not properly aligned within the capture frame
- Added frames streaming feature for Server Login
- Added support for onlyBack option in IDCapture Module set by dashboard flows/workflows
- Add More Information to `switchToManualCaptureFrontId` & `switchToManualCaptureBackId` events
- Add missing custom label in face capture view
- Fixed UI freeze in ID capture experience when recording is enabled.
- Fixed Selfie capture module dismissal behavior.





###

<br />