Introduction
This guide is intended as a migration reference for integrators migrating from the (legacy) Onfido Smart Capture SDKs to the new Entrust IDV SDKs, released in early 2026.
| Onfido Smart Capture SDK | Entrust IDV SDK |
|---|---|
| Android v23.2.0 | Android v100 |
| iOS v32.6.2 | iOS v100 |
| React Native v15.2.0 | React Native v100 |
Notes:
- Migration information for the Flutter SDK will be added in H1 2026 when the new Entrust IDV SDK for Flutter is released
- The Web SDK is not yet in scope for this migration, with more information to be provided in H1 2026
It is highly recommended for all integrators to adopt Workflow Studio as part of their SDK migration, if orchestration is still based on manual step definitions. This will ensure a futureproof integration experience.
For the complete context and specifications of the Entrust IDV SDKs, please refer to its dedicated integration guide.
Summary of changes
New features:
-
API:
- All mobile SDKs now share the same API and configurability, closing any gaps that existed between previous versions. The new Flutter SDK (when released in early 2026) will follow the new, shared API
- Error codes returned by the SDK are streamlined across all SDKs and are now grouped and labeled by 'category' to simplify integration effort
- While the Exit button (X) is now visible by default, the abililty to hide the component (along the entire navigation bar) is available as part of the API
-
Bundles: SDK bundle sizes have been dramatically reduced to under 3MB by default. At its minimum sizes, SDKs are fully functional with integrators given the option to add project dependencies for modules that need to be executed locally (instead of the default Web/JS version)
-
Languages:
- All SDKs now support the ability to predefine a language for use during a given flow
- All SDKs now support localization based on the i18n pattern, already used by the Web SDK
- (new) Integrators can reduce the languages available to end users by specifying a subset of the 44 supported languages during initialization
-
UI:
- The screen layouts have been updated to match the redesign introduced by the Web SDK 14.44.0. All SDKs are now visually aligned
- All SDKs now have the same customization scope with common UI customization tokens and behaviors
- Customizatition of the brand footer at the bottom of all screens no longer requires activation and is available by default
Deprecation:
- The iOS SDK is now solely distributed via Swift Package Manager as Cocoapods is nearing end-of-life
- The iOS SDK API is now only available in Swift, with no interface provided for Objective-C
- The ability to refresh SDK tokens is no longer supported as the validity of the new Studio SDK tokens is linked to the validation of the underlying workflow (typically 14 days)
- The UI no longer includes the 'Powered by Onfido' brand footer. The functionality to apply a custom brand remains available (and no longer requires activation)
Not yet released:
- SSL Certificate pinning
- Text overrides available via local bundle files (currently provided as delta during initialization of SDK)
- Ability to override the border radius of buttons in the UI
- Ability to modify typography (font size, weight etc.)
Breaking Changes
Minimum library versions
| Entrust IDV SDK for Android | Onfido Smart Capture SDK | |
|---|---|---|
| Sonatype/Maven Central | com.entrust.identity.verification.sdk | com.onfido.sdk.capture |
| Target Version | Android 15 (API level 35) Kotlin 2.1.10 Compose 2025.02.00 | Android 14 (API level 34) Kotlin 1.9.22 |
| Minimum Version | Android 5 (API level 21) | Android 5 (API level 21) |
| Additional info | SDK supports 16KB page file size |
| Entrust IDV SDK for iOS | Onfido Smart Capture SDK | |
|---|---|---|
| Swift Package Manager (SPM) | entrustCorporation/Idv-SDK-iOS | onfido/onfido-ios-sdk |
| Target Version | iOS 15 | iOS 13 |
Note: Distribution via cocoapods is no longer provided
| Entrust IDV SDK for React Native | Onfido Smart Capture SDK | |
|---|---|---|
| Node Package Manager (NPM) | @entrust.corporation/IdvSdk-ReactNative | @onfido/react-native-sdk |
| Library Version | 0.79 | 0.72 |
| Minimum Android Version | Android API level 24 | Android API level 21 |
| Minimum iOS Version | iOS 15 | iOS 13 |
| Additional info | SDK is now built using the React Native 'New Architecture' |
SDK initialization
The overall SDK initialization process remains the same with regard to the applicant, workflow run and SDK token generation.
It is highly recommended for all integrators to adopt Workflow Studio as part of their SDK migration if orchestration is still based on manual step definitions. This will ensure a futureproof integration experience.
| Entrust IDV SDK for Android | Onfido Smart Capture SDK |
|---|---|
kotlin
Note: The | kotlin
|
| Entrust IDV SDK for iOS | Onfido Smart Capture SDK |
|---|---|
swift
Note: The | swift
|
| Entrust IDV SDK for React Native | Onfido Smart Capture SDK |
|---|---|
javascript
Note: The | javascript
|
Mandatory callbacks
Callback functionality remains unchanged with the new versions. The main difference is the alignment of callback payloads across all SDK platforms.
For details about the optional callbacks, refer to the dedicated section of the integration guide.
| Entrust IDV SDK for Android | Onfido Smart Capture SDK |
|---|---|
kotlin
| kotlin
|
| Entrust IDV SDK for iOS | Onfido Smart Capture SDK |
|---|---|
swift
| swift
|
| Entrust IDV SDK for React Native | Onfido Smart Capture SDK |
|---|---|
javascript
| javascript
Note: No equivalent to |
By default and as per previous versions, the result payload returned by the completion callback, is an empty object for workflow-based sessions:
- The uploaded media are automatically processed by the workflow to generate reports
- If required, the media can be retrieved via the dedicated Document, Face Photo and Face Video API endpoints
The following tables provide the schema of the result payload for sessions that are yet to migrate to Workflow Studio.
| Entrust IDV SDK | Onfido Smart Capture SDK |
|---|---|
json
| json
|
The error payload returned by the error callback is defined as:
| Entrust IDV SDK for Android | Onfido Smart Capture SDK |
|---|---|
json
The list of | Error codes for: React Native returns the callback payload of the respective underlying Android and iOS SDKs (links above). |
The userAction payload returned by the callback is defined as:
| Entrust IDV SDK | Onfido Smart Capture SDK |
|---|---|
One of the following values:
Full description available in the integration guide. Values are the same across all SDKs | Android:
iOS:
Callback not available on the legacy React Native SDK |
UI Customization
The process for customizing the UI has been streamlined and aligned across all SDKs. The main differences include:
- Token names have been changed and streamlined across all SDKs
- Colors are now customized globally instead of per-component to reduce the amount of duplication
The complete description is available in the UI customization section of the integration guide.
Pre-selection of theme
| Entrust IDV SDK for Android | Onfido Smart Capture SDK |
|---|---|
kotlin
Note that if | kotlin
|
| Entrust IDV SDK for iOS | Onfido Smart Capture SDK |
|---|---|
swift
Note that if | swift
|
| Entrust IDV SDK for React Native | Onfido Smart Capture SDK |
|---|---|
javascript
| Pre-select the theme is implemented directly in the embedding iOS and Android configuration as described in the respective tabs of this section. |
Color customization
A key simplification introduced by the new SDK is that colors are modified centrally during initialization so that they can be applied uniformly across all UI assets.
The detailed mapping and mechanics of color customization is provided in the dedicated SDK UI Customization Guide.
The full mapping of legacy UI tokens to new is provided in the Appendix - UI token mapping.
| Entrust IDV SDK for Android | Onfido Smart Capture SDK |
|---|---|
kotlin
Colors that need to be overridden must be defined in both the | xml
Color overrides are defined in the app bundle's |
| Entrust IDV SDK for iOS | Onfido Smart Capture SDK |
|---|---|
swift
Colors that need to be overridden must be defined in both the | swift
The full list of available tokens is defined in the legacy UI Customization guide. |
| Entrust IDV SDK for React Native | Onfido Smart Capture SDK |
|---|---|
javascript
Colors that need to be overridden must be defined in both the | Customizing colors is achived directly in the embedding iOS and Android configuration as described in the respective tabs of this section. |
Brand footer customization
| Entrust IDV SDK for Android | Onfido Smart Capture SDK |
|---|---|
kotlin
Notes:
| kotlin
|
| Entrust IDV SDK for iOS | Onfido Smart Capture SDK |
|---|---|
swift
Notes:
| swift
|
| Entrust IDV SDK for React Native | Onfido Smart Capture SDK |
|---|---|
javascript
| The process to customize the brand footer is achieved in two steps:
javascript
|
Text and Locale Customization
The Entrust IDV SDK continues to support all languages/locales previously supported. The API now aligns all text customization options and follows the i18n pattern.
| Entrust IDV SDK for Android | Onfido Smart Capture SDK |
|---|---|
kotlin
| kotlin
With each localization file stored locally requiring all keys to be defined in dedicated |
| Entrust IDV SDK for iOS | Onfido Smart Capture SDK |
|---|---|
swift
| swift
With each localization file stored locally in dedicated |
| Entrust IDV SDK for React Native | Onfido Smart Capture SDK |
|---|---|
javascript
| The process to customize text is achieved in two steps:
javascript
Note: The ability to pre-select a language is not available in the legacy React Native SDK |
The full list of new capabilities and how to identify text strings is available in the SDK integration guide.
Module Configuration
The configuration of sessions orchestrated with Workflow Studio remain unchanged. It is highly recommended for all integrators to adopt Workflow Studio as part of their SDK migration.
For integrations that are yet to migrate to workflow-based orchestration, the API for each of Document, Face (for all variants) and ProofOfAddress has been simplified to be common across all SDKs.
Details are available in the SDK integration guide.
Appendix - UI token mapping
This section only highlights the mapping of the legacy UI customization tokens used by the Onfido Smart Capture iOS, Android and React Native SDKs to their Entrust IDV SDK equivalent. The full list of UI customization tokens provided by the Entrust IDV SDKs is avaialble in the dedicated SDK UI Customization guide.
The ability to customize typography and border radii will be documented in an upcoming release.
| Onfido Smart Capture for Android | Onfido Smart Capture SDK for iOS | Entrust IDV SDK | |
|---|---|---|---|
| General | onfidoColorBackground | backgroundColor | backgroundColorMain |
| General | colorAccent | primaryColor | backgroundColorBrandActive backgroundColorBrandDefault backgroundColorBrandHover borderColorBrandActive borderColorBrandDefault borderColorBrandHover contentColorBrandActive contentColorBrandDefault contentColorBrandHover contentColorBrandOnBrand |
| General | onfidoColorContentMain onfidoColorContentMainDark | contentColorBase | |
| General | onfidoColorContentSecondary | contentColorSubtle | |
| General | onfidoColorContentNegative | contentColorNegativeBaseDefault | |
| Buttons | onfidoColorActionMain | primaryTitleColor | backgroundColorBrandDefault |
| Buttons | onfidoColorActionMainPressed | primaryBackgroundPressedColor | backgroundColorBrandActive |
| Buttons | onfidoColorActionMainDisabled | backgroundColorDisabledDefault | |
| Buttons | onfidoColorContentOnAction | contentColorBrandOnBrand | |
| Buttons | onfidoColorContentOnActionDisabled | contentColorDisabledDefault | |
| Buttons | onfidoColorActionSecondary | N/A (transparent) | |
| Buttons | onfidoColorActionSecondaryPressed | secondaryBackgroundPressedColor | N/A (transparent) |
| Buttons | onfidoColorActionSecondaryDisabled | backgroundColorDisabledDefault | |
| Buttons | onfidoColorContentOnActionSecondary | secondaryTitleColor | contentColorBase |
| Buttons | onfidoColorContentOnActionSecondaryDisabled | contentColorDisabledDefault | |
| Buttons | onfidoColorActionSecondaryBorder | borderColorInputDefault borderColorInputActive borderColorInputHover | |
| Buttons | onfidoColorActionSecondaryBorderDisabled | borderColorDisabledDefault | |
| Banners | onfidoColorDisclaimerBackground | backgroundColorInfoSubtleDefault backgroundColorNegativeSubtleDefault backgroundColorNeutralSubtleDefault backgroundColorPositiveSubtleDefault backgroundColorWarningSubtleDefault | |
| Banners | onfidoColorContentDisclaimer | contentColorBase | |
| Banners | onfidoColorIconDisclaimer | contentColorInfoBaseDefault contentColorNegativeBaseDefault contentColorSubtle contentColorPositiveBaseDefault contentColorWarningBaseDefault | |
| Navigation Bar | onfidoColorToolbarBackground | backgroundColorSurfacePrimaryDefault | |
| Navigation Bar | onfidoColorContentToolbarTitle | primaryColor | contentColorBase |
| Icons | onfidoColorIconStroke | (auto-capture) captureSuccessColors \ tickViewImageTintColor | contentColorInfoBaseDefault contentColorNegativeBaseDefault contentColorSubtle contentColorPositiveBaseDefault contentColorWarningBaseDefault |
| Icons | onfidoColorIconStrokeNegative | (as above) | |
| Icons | onfidoColorIconFill | (as above) | |
| Icons | onfidoColorIconAccent | (as above) | |
| Icons | onfidoColorIconBackground | (auto-capture) captureSuccessColors \ tickViewBackgroundColor | backgroundColorInfoSubtleDefault backgroundColorNegativeSubtleDefault backgroundColorNeutralSubtleDefault backgroundColorPositiveSubtleDefault backgroundColorWarningSubtleDefault |
| Icons | onfidoColorWatermark onfidoColorWatermarkDark | contentColorSubtle | |
| Spinner | onfidoColorProgressTrack | backgroundColorNeutralSubtleDefault | |
| Spinner | onfidoColorProgressIndicator | backgroundColorBrandDefault |


