# Web SDK Release Notes

## 1.91.0 -  2026-07-17

### Fixed

- Fixed executeWorkflow infinite loading animation displayed after workflow is finished when showFinishScreen: false
- Fixed typo in ID capture V2 attempts remaining
- Fixed Electronic Signature - Signature canvas had incorrect sizing and spacing on mobile and tablet
- Editable and non-editable OCR were wrongly connected to dashboard settings
- Gov validation | Wrong success message for successful scraping
- Device specific | Flows | Workflows | Selfie oval is cut off on smaller screens
- eKYC | Module skipped when country configured as "global"
- The ID capture zoomed in specific devices
- Face capture cannot be loaded and is eventually skipped if it isn’t the first module
- Samsung A14 | Camera stream is lagging significantly
- Camera was zoomed on some devices with two or more cameras
- Document Capture - The camera was zoomed
- Retry attempt was not getting launch | iOS devices
- ID Capture UXv1 | ID preview was horizontal
- Video Selfie - White screen when only “speech” module and useOpenVidu was enabled
- Openvidu is now default and only provider for video recording
- Overall security and injections attacks fixed

[Download 1.91.0](https://sdk.incode.com/sdk/onBoarding-1.91.0.js)

## 1.90.0 -  2026-06-12

### Minor Changes

- EKYB desktop improvements
- US_CREDIT_TELCO support
- Center face capture error modal title under icon
- New countries ekyb country grid
- Fix signature canvas
- Hk support for ekyb
- EKYC displayMode support
- EKYB Address autocomplete
- Address is mandatory for EKYB china
- Electronic Signature Layout fix

### Patch Changes

- Fix V2 ID capture bottom UI overlap on wide, short desktop viewports.
- Center the eKYC information verification loader; refine Permissions layout on large screens; fix the permissions modal close action and primary/secondary button order.
- Fix V2 ID capture layout
- Localize `USER_CANCELLED` messages when closing ID or face capture (`errors.userCancelledIdFlow`, `errors.userCancelledFaceFlow`)
- Reset default browser margins on `dl` and `dd` in UserInfo
- Fix `executeWorkflow` firing `/omni/workflow/info` and `/omni/workflow/current/node` twice when called without a `token`.
- Use Stable Version always on i18n fallback
- Add CDN fallback for translation loading
  When the primary i18nexus translations endpoint fails (network error or non-2xx response), the SDK now retries the same `{lng}/{ns}` resource against `https://cdn.incodesmile.com/translations/{version}/{lng}/{ns}.json`.&#x20;
- Update custom watchlist UI to match V2 design: replace modal loader with a shared StatusPage component using design-system Page, LoadingIcon, and SuccessIcon, with updated translation keys and accessibility focus on success.
- DocumentCapture: hide the upload option when `onlyAllowCapture: true` is passed. Removed the no-op `onlyCapture` and `nativeCamera` props from `DocumentCaptureProps`.
- Allow DOUBLE custom field type to accept decimal values
- Add guards to VideoSelfie buttons
- Fix `EncryptionLabel` overlapping the attempts text and primary CTA on desktop ID processing screens (`IdAnalyzing`, `IdSuccess`, `IdError`). The label is now rendered once inside `IdProcessingLayout`'s full-size `FrameContainer` (matching `CaptureOverlay`'s structure) so its absolute positioning math lines up with the camera frame, instead of being placed inside the `maxH: 900` content Flex where the math drifted on tall viewports.
- In V2 capture flows, when the user loses or revokes camera access mid-session, the camera overlay now shows the Denied instructions component so guidance matches the rest of the V2 permission experience.
- Disable "Tap when done" in the Video Selfie voice consent step until the recorder has captured at least the minimum required duration of audio. Prevents fast-tap races where the session finished without a voice consent recording attached.

[Download 1.90.0](https://sdk.incode.com/sdk/onBoarding-1.90.0.js)

## 1.89.1 - 2026-05-12

### Fixed

- Fixed rate of False Negatives

[Download 1.89.1](https://sdk.incode.com/sdk/onBoarding-1.89.1.js)

## 1.89.0 - 2026-05-04

### Added

- Document Capture design changed to V2, please refer to Figma for more info.
  - `nativeCamera` options removed, instead, use `onlyCapture` or `onlyUpload`.
    - `onlyCapture`: Will provide regular Incode camera overlay and capture with UI
    - `onlyUpload`: Will show system's file upload and camera
- Added support for multiple pages documents on Document Capture V2
- OTP for CURP improved, now is just one field and detects SMS auto complete.
- V2 flows can be activated via Dashboard configuration, please check your provisioning to support this on your flows.

<br />

### Fixed

- Fixed vulnerabilities on lodash library
- Do not upload or make unnecessary call for recording on CaptureOnly
- Biometric consent now shows correctly on certain ID that need it
- A11Y fixes for Face Capture
- Fixed transitions and smooth animations for CURP
- EKYC fields focus in correctly
- On Workflows, clicking "Refresh Page" button skips ID/Selfie capture

### Removed

- Third ID support is removed

[Download 1.89.0](https://sdk.incode.com/sdk/onBoarding-1.89.0.js)

## 1.88.0 - 2026-03-16

### Added

- Adds help button config into ui config

- Add onLog callback support to renderCaptureId and renderCaptureFace

  - `onLog` callback is now available as an optional parameter in both `renderCaptureId` and `renderCaptureFace` methods
  - Callback receives `{ type: string; payload: { [key: string]: unknown } }` - same structure as `renderCamera`'s `onLog`
  - Enables clients to maintain their tracking logic when migrating from `renderCamera` to the newer SDK methods
  - V1 and V2 capture flows both support the callback; key events (e.g. `captureAttemptFinished`) are forwarded to `onLog`

- Adds `throwOnCameraPermissionDenied`

  Added a new optional `throwOnCameraPermissionDenied` boolean prop to `renderCaptureId`, `renderCaptureFace`, and `renderAuthFace`. When enabled, the SDK immediately calls `onError` with a `PERMISSION_DENIED` error code instead of showing the built-in denied/learn-more permission screens.

  This gives integrators full control over the camera permission denied UX, allowing them to handle the error in their own application layer.

  #### Affected render functions

  - `renderCaptureId`
  - `renderCaptureFace`
  - `renderAuthFace`

  #### Usage

  ```ts
  incode.renderCaptureId(container, {
    session,
    captureConfig,
    onSuccess: handleSuccess,
    onError: handleError,
    throwOnCameraPermissionDenied: true,
  });

  incode.renderCaptureFace(container, {
    session,
    captureConfig,
    onSuccess: handleSuccess,
    onError: handleError,
    throwOnCameraPermissionDenied: true,
  });

  incode.renderAuthFace(container, {
    session,
    authHint,
    onSuccess: handleSuccess,
    onError: handleError,
    throwOnCameraPermissionDenied: true,
  });
  ```

  #### Error shape

  When camera permission is denied and `throwOnCameraPermissionDenied` is set, the `onError` callback receives:

  ```ts
  {
    code: 'PERMISSION_DENIED',
    message: 'Error in permissions',
    error: Error('PERMISSION_DENIED')
  }
  ```

  #### Default behavior

  When `throwOnCameraPermissionDenied` is not set (default `false`), the SDK continues to show the built-in permission denied and learn-more screens as before. No breaking changes.

- Improved document capture logging consistency and expanded support for passport document detection

### Fixed

- Update `swiper` dependency and remove unused `jspdf` dependency
- Move Sardine updateConfig to fire on screen change instead of module change

## 1.87.0 - 2026-02-11

### Added

- Sentry Analytics (might require activation, please request to CS/SE)

### Fixed

- Unable to retry selfie capture after failed attempt on V1 when deepsight enabled
- Low quality conditions shown instead of remove hat/lens/mask
- Move resources to vanity CDN -> cdn.incodesmlite.com

[Download 1.87.0](https://sdk.incode.com/sdk/onBoarding-1.87.0.js)

## 1.86.1 - 2026-01-16

### Fixed

- Fixed types

[Download 1.86.1](https://sdk.incode.com/sdk/onBoarding-1.86.1.js)

## 1.86.0 - 2025-12-24

### Added

- When E2EE is enabled in Deepsight, videos are correctly encrypted
- Added face occlusion error for Selfie on both V1 and V2

### Fixed

- Issue where sometime ID module failed when BackID was enabled
- Sometimes fail screen is visible before the onError function is called
- Fixed layout for data entry on forms
- Remaining attempts showing correctly when capturing ID
- Execute face checks correctly on VS
- Fixed time for capturing on selfie
- CaptureID sometimes incorrectly detected borders of IDs
- Sardine Risk now updates on each module
- Fixed high risk vulnerabilities on SDK

[Download 1.86.0](https://sdk.incode.com/sdk/onBoarding-1.86.0.js)

## 1.85.0 - 2025-11-21

### Added

- Recordings added to CaptureOnly when `enableIdRecording` enabled
- Tutorial can be skipped on document capture with `showTutorial:false`
- Phone and Email hint support
- Added `processFinanceSettlement` to `renderCamera("document")` method
- Close button can be hidden with `hideHeaderBranding` on `uiConfig`

### Fixed

- Autocapture timeout resets when module is closed
- RenderAuthFace crashing on second attempt
- Attempts counter on Selfie Capture v2
- Preview showing correctly on autocapture for ID v2
- Close buttons working on tutorial
- Moving to landscape/portrait on iPad no longer breaks layout
- `sendFingerprint` correctly sends cached information even when called multiple times

[Download 1.85.0](https://sdk.incode.com/sdk/onBoarding-1.85.0.js)

## 1.84.0 - 2025-10-10

### Added

- New renderAuthFace module for identity verification, this uses v2
- New executeFlow module to provide a flow ID and execute from start to end without extra configuration
- Added captureOnly mode for v2, supporting deepsight
  **NOTE: Deepsight must be enabled and access to deepsight blobs might need to be requested.**
- Implement DMV scan and support to scan back -> front
- Improved loading times for camera

### Fixed

- Selfie checks are performed on renderLogin
- Better rendering for tablets
- Fixed small issues on Signature Screen
- Blank screens when switching apps
- Support for horizontal mode on Ipad

[Download 1.84.0](https://sdk.incode.com/sdk/onBoarding-1.84.0.js)

## 1.83.1 - 2025-10-30

### Fixed

- OTP screen cleans correctly after failed attempt and doesn't flash anymore

[Download 1.83.1](https://sdk.incode.com/sdk/onBoarding-1.83.1.js)

## 1.83.0 - 2025-09-02

### Added

- New tokenization system to adapt UI on V2 modules ([Check theming here](https://developer.incode.com/docs/theming#/))
- New permissions screen
- Detect webviews in our Fingerprint
- Added missing screen for no internet connection on V2
- Added configuration customization for hiding the "Verified by Incode" footer

### Fixed

- Translations on success and uploading screens
- Implemented document alignment on capture
- Fix UI overlapping issues
- Selfie is not captured more than once without user interaction
- Better detection for browsers
- Autocapture sensibility
- Handle permissions after user consent and then removes them

### Changed

- Now renderCaptureFace doesn't automatically runs [processFace](https://developer.incode.com/docs/web-sdk-reference#processface), you need to run it manually.

### 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.

Download [1.83.0](https://sdk.incode.com/sdk/onBoarding-1.83.0.js)

<br />
