Introduction
Entrust Identity Services (formerly Onfido) are streamlining their platform offering in 2025, bringing closer together:
- Identity Verification products
- Studio, their bespoke orchestration platform
- Mobile and Web SDK APIs
This guide is intended to offer instructions for the integration of, and migration to, the following major version of our SDKs:
- Android SDK (beta version released in June 2025)
- iOS SDK version (version to be released in July 2025)
- React Native SDK (version to be confirmed in Q3 2025)
- Flutter SDK version (version to be confirmed in Q3 2025)
Please note: the Web SDK is also in scope of this guide and will align with the new configuration API with an upcoming minor release of version 14.
Foreward on beta scope
Over the second half of 2025, the next major version of the Entrust Identity Verification SDKs (formerly Onfido Smart Capture SDKs) will introduce a fundamental redesign of the customer integration experience and configuration capabilities.
Starting with a beta program in June 2025 for the Android SDK, additional features and platforms will be released in the coming months with the aim of replacing the existing SDK architecture by the end of 2025. Until the beta program is closed, the SDKs in scope of this document will be labelled as next
in their respective distribution platforms.
The first release of the beta SDKs for Android and iOS (due in June and July 2025 respectively) will have the following limitations:
- No support for NFC (will be introduced in September/October 2025)
- Limited supported for UI customisation (will be gradually introduced over July/August 2025)
- Some visual discrepencies between native and web modules (brand footer, fonts)
- Limited configuration options for the Document Capture module
In the first phase of the beta program (June to early August), the integration API and this guide are subject to change.
Once the full feature set is released on the Android and iOS SDKs, the React Native and Flutter SDKs will be released.
Minimum dependencies and SDK distribution
The SDKs are available from the main distribution channel for their respective platforms:
Distribution | Maven Central |
Target Version | Android 15 (API level 35) Compatible with Android 16 (API level 36) Kotlin 2.1.10 Compose 2025.02.00 Java 11 |
Minimum Version | Android 5 (API level 21) |
Note: SDK supports 16kB page file size
Distribution | Swift Package Manager |
Target Version | iOS 15 Xcode 16 |
Minimum Version | iOS 15 |
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
The new SDKs will initially be released (first beta) under the Onfido umbrella
but will migrate to the Entrust domain before the end of the beta program. The
current Android beta release is available on Maven Central as com.onfido.sdk
but will migrate to com.entrust.identity.idv.sdk
.
Environments and testing with the SDK
Two environments exist to support the SDK integrations:
sandbox
- to be used for testing with sample documentslive
- to be used only with real documents and in production apps
The environment being used is determined by the API token that is used to generate the necessary SDK token.
Sample apps
Each SDK repository contains a set of sample apps that provide the minimum integration code required to initialise the SDK in supported frameworks.
Promotion to production
Once you are satisfied with your integration and are ready to go live, please contact Customer Support to obtain a live API token.
Check that you have entered correct billing details inside your Dashboard, before starting to send requests in the 'live' environment.
Staying up-to-date
We recommend you update your SDK to the latest version release as frequently as possible. Customers on newer versions of the SDK consistently see better performance across completion rates and fraud mitigation, so we strongly advise keeping your SDK integration up-to-date.
You can review our full SDK versioning policy.
Support
Should you encounter any technical issues during integration, please contact Customer Support.
Alternatively, you can search the support documentation available via the Customer Experience Portal.
SDK Bundle and Product Availability
The new SDKs will support the full Entrust Identity Verification Suite.
💡 A key innovation of this new generation of SDKs is the ability for the SDK integrator to select whether a given verification product should be included in the local bundle (and therefore contribute to the overall SDK bundle size) or be retrieved dynamically from the Entrust Content Delivery Network (CDN) as a Javascript component.
Availability of native and Web modules
The table below lists all verification modules available via the SDKs and whether they are available natively within the SDK bundles or only as Web variants. There is currently no plan to introduce new native modules.
Native module | Web module | ||
---|---|---|---|
Document Verification | Document Capture | Release in Q3 2025 | ✅ |
NFC Capture | Release in Q3 2025 | - | |
Proof of Address | Discontinued | ✅ | |
Facial Similarity | Selfie (Photo) | ✅ | ✅ |
Liveness (Video) | Discontinued | ✅ | |
Motion | ✅ | ✅ | |
Authentication | Release in late 2025 | ✅ | |
eID Verification | eID | - | ✅ |
Compliance Suite | One-Time Password (OTP) | - | ✅ |
Qualified Electronic Signature (QES) | - | ✅ | |
Advanced Electronic Signature (AES) | - | ✅ | |
Miscellaneous | Profile Data Capture | - | Release in late 2025 for mobile SDKs |
Please note: all modules will have the same configuration and customisation interface across their native and Web variants and across platforms.
The current version of the SDK no longer supports native variants of the Face Video and Proof of Address modules. Web variants can still however be used in workflow and non-workflow-based sessions
CDN module versioning and pinning
When a Web module or Web module variant is loaded dynamically at runtime, the version corresponding to the underlying SDK will be used. Note that: the ability to target different compatible versions will not be provided to integrators directly.
The ability to remotely override the use of native modules by selecting specific web module versions will be introduced in an upcoming release
SDK Bundle Release
With every release, a default version and a 'core' version of the mobile SDK bundles will be made available, each providing distinct advantages.
Default bundle
Similar to previous versions of the SDK, the default SDK bundle (not labelled with a particular suffix) will include all available SDK assets:
- All native modules available at the time of the release
- All language files supported by the SDK UI (currently 44)
- All videos and other assets
Please note: particular effort has been put into reducing both the individual module size and the overall default bundle:
- More efficient alternatives have been introduced to support NFC and on-device document and face recognition
- The logic to override text has been simplified to only require 'deltas' instead of full custom files
- The iOS bundle in particular has benefited from core improvements (static build, no debug symbols etc.)
The default bundle is available as:
Platform | Package |
---|---|
Android | com.onfido.sdk:full |
iOS | TBD |
React Native | TBD |
Flutter | TBD |
The new SDKs will initially be released (first beta) under the Onfido umbrella
but will migrate to the Entrust domain before the end of the beta program. The
current Android beta release is available on Maven Central as com.onfido.sdk
but will migrate to com.entrust.identity.idv.sdk
.
'Core' bundle
A key innovation of the new generation of mobile SDKs is the introduction of a secondary SDK bundle, labelled with the suffix -core
.
While the out-of-the-box core
SDKs can function using only remote assets, integrators are able to explicitly select which native modules and assets are available locally in the app.
This SDK variant is intended to provide full flexibility to integrators and control of the SDK size and the use of local or remote modules and assets.
Module | Description | Android package |
---|---|---|
Welcome | Optional welcome screen shown to the user with preliminary instructions | :welcome |
Document | Set of screens that control the capture of the user's identity document (not for address verification) | TBD |
NFC | Set of screens that control the scanning of the user's NFC-capable document. Requires the Document module | TBD |
Face Photo | Set of screens that control the capture of a selfie of the user | :face.photo |
Face Motion | Set of screens that controls the motion capture of the user's face | :face.motion |
Module | Description | iOS package |
---|---|---|
Welcome | Optional welcome screen shown to the user with preliminary instructions | TBD |
Document | Set of screens that control the capture of the user's identity document (not for address verification) | TBD |
NFC | Set of screens that control the scanning of the user's NFC-capable document. Requires the Document module | TBD |
Face Photo | Set of screens that control the capture of a selfie of the user | TBD |
Face Motion | Set of screens that controls the motion capture of the user's face | TBD |
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Whether included as a native module or not, all modules are available at runtime as Web modules.
Additionally, the core
bundle will not include any local language files. Unless explicitly imported, localisation files will be retrieved at runtime from the Entrust CDN.
Adding modules to the 'core' bundle
Native modules can be added manually to the embedding app's build.gradle.kts
file by including the required dependencies as shown below:
1dependencies {2 ...3 // SDK core libraries4 implementation("com.onfido.sdk:api:<<version>>") // Always required5 implementation("com.onfido.sdk:core:<<version>>") // Always required67 // Native modules8 implementation("com.onfido.sdk:core:<<version>>")9 implementation("com.onfido.sdk:document:<<version>>") // Available in Q3 202510 implementation("com.onfido.sdk:nfc:<<version>>") // Available in Q3 202511 implementation("com.onfido.sdk:face.photo:<<version>>")12 implementation("com.onfido.sdk:face.motion:<<version>>")13 ...14}
The exact name of the module and language package names will be updated soon after the first release and be migrated under com.entrust.identity.idv
.
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
SDK Initialisation and Orchestration
The SDK is initialised in three steps:
- Applicant generation
- Workflow run and credential generation
- SDK runtime initialisation
The process is optimised for SDK sessions based on workflows predefined in Studio. Workflow-based SDK sessions may contain the full IDV product suite and benefit from a simplified API integration.
Applicant generation
'Applicant IDs' are used to track an IDV session across the capture and report verification stages. An applicant_id
is required to generate the SDK token.
This step applies to both Studio workflow and non-Studio-workflow-based verification flows.
Please refer to the Create applicant section of our API documentation for more details. ⚠️ As this request is authenticated with an API token, it is imperative to perform it from a secure backend.
Applicant reuse
When defining workflows and creating identity verifications, we highly recommend saving the applicant_id
against a specific user for potential reuse. This helps to keep track of users should you wish to run multiple identity verifications on the same individual, or in scenarios where a user returns to and resumes a verification flow.
An applicant_id
however must not be reused for different users.
Workflow run and authentication token generation
The integration of the latest SDK versions has been simplified by only requiring a Studio SDK token for authentication and orchestration. This token is available from the successful response to the workflow run creation API request. This request combines the instantiation of a Studio workflow predefined in the Workflow Builder with the linking to a unique applicant.
Please note: Studio SDK tokens are bound in time and scope to the validity of the underlying workflow run. Please refer to the Create worfklow run section of our API documentation for more details.
For integrations that are yet to migrate to workflow-based orchestration in Studio, a manual SDK token must be generated as defined in the Generate SDK token section of our API documentation. Generic SDK tokens are limited to a 90-minute expiry. It is highly recommended for integrators to adopt Studio workflows for a simpler, more secure and future-proof integration.
⚠️ As both the Create workflow run and Generate SDK token API requests are authenticated with an API token, it is imperative to perform them from a secure backend.
Handling expired tokens
The ability to automatically refresh expired tokens has been discontinued from the new SDKs.
It is highly recommended to adopt workflow-based flows and tokens to ensure that tokens remain valid for the same duration as the underlying workflow and thus reduce the impact to end users.
SDK runtime initialisation
This new generation of SDKs provide a common API for initialisation and customisation of SDK sessions across all platforms.
While the overall bootstrapping code is platform-specific, its contents are consistent in their structure and typing. The minimum integration code for the SDK to function requires an SDK token for authentication and the implementation of the three key callbacks that notify the embedding app when the SDK has completed its flow or has encountered errors:
1class MainActivity : AppCompatActivity() {2...3 override fun onCreate(savedInstanceState: Bundle?) {4 super.onCreate(savedInstanceState)5 EntrustIdv.start(6 StudioParameters(7 sdkToken = studioToken8 )9 /* For clients that are yet to migrate to workflow-based verification flows, ClassicParameters would need to be provided instead of StudioParameters10 ClassicParameters(11 sdkToken = sdkToken,12 steps = listOf<Step<*>>(13 WelcomeStep(),14 MotionStep(),15 DocumentStep(),16 )17 )18 */19 )20 }2122 private val entrustIdv = EntrustIdv(23 activity = this,24 callbacks = Callbacks(25 onComplete = { result ->26 // Note that the `result` payload will be an empty Map object for workflow-based sessions as the data is provided by dedicated webhooks to your integration27 Log.d("MainActivity", "The verification flow was completed successfully with result $result")28 finish()29 },30 onError = { error ->31 Log.e("MainActivity", "Error category:${error.type.category} / error type ${error.type.name}/${error.type.message} / metadata: ${error.message}")32 finish()33 },34 onUserExit = { userAction ->35 Log.d("MainActivity", "The user exited the verification flow. Reason: $exitReason")36 finish()37 },38 ),39 )4041...42}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
onComplete(result)
callback
The onComplete
callback is triggered as soon as the last possible capture step defined in the underlying verification workflow has been completed without error.
The result
payload is an empty Map object (or equivalent) as information about the files uploaded by the end user during the session should be retrieved via the dedicated Document, Face Photo and Face Video API endpoints.
Please note: for integrations that are yet to migrate to workflow-based sessions in Studio, the onComplete
callback will return a payload that details the identifiers of the media resulting from this flow.
In this legacy construct, the result
is a Map (or equivalent) object, mapping the module identifier (key) to an object containing the unique id
of the uploaded media. These identifiers can then be used to retrieve the full document or face capture using the corresponding document
, live_photos
(for 'standard' selfies) or live_videos
(for 'video' or 'motion' captures) endpoints defined in the API reference.
The json
example below gives a serialised representation of the result
payload returned at the end of non-workflow-based flows.
Note:
- The Map's keys are the same as the corresponding step's name
- At runtime, this payload will be typed for ease of integration
1{2 "document": {3 "type": "driving_licence",4 "sides": {5 "front": {6 "id": "<DOCUMENT_ID_FRONT>"7 },8 "back": {9 "id": "<DOCUMENT_ID_BACK>"10 },11 "front_video": {12 "id": "<DOCUMENT_ID_FRONT_VIDEO>"13 },14 "back_video": {15 "id": "<DOCUMENT_ID_BACK_VIDEO>"16 }17 }18 },19 "facePhoto": {20 "id": "<MEDIA_ID>"21 },22 "faceVideo": {23 "id": "<MEDIA_ID>"24 },25 "faceMotion": {26 "id": "<MEDIA_ID>"27 },28 "poa": {29 "type": "utility_bill",30 "sides": {31 "front": {32 "id": "<POA_DOCUMENT_ID_FRONT>"33 },34 "back": {35 "id": "<POA_DOCUMENT_ID_BACK>"36 },37 "front_video": {38 "id": "<POA_DOCUMENT_ID_FRONT_VIDEO>"39 },40 "back_video": {41 "id": "<POA_DOCUMENT_ID_BACK_VIDEO>"42 }43 }44 }45}
onError(error)
callback
The onError
callback is triggered when the SDK flow can no longer proceed due to an underlying operating system, browser or library issue.
The error
payload contains an error category
property, paired with a more granular error type
. This is intended to help integrators with handling errors over time as new codes are introduced under the existing category
values.
The message
field is optional and may contain additional debug information.
The json
example below gives a serialised representation of the error
payload returned at the end of non-workflow-based flows. At runtime, this payload will be typed for ease of integration.
1"error": {2 "errorType":{3 "category": <<Error category>>,4 "type": <<Error Type>>5 },6 "message": string7}
Category | Type | Description |
---|---|---|
Initialisation | InitialisationInvalid | Generic flow initialisation error |
Initialisation | SdkVersionInsufficient | Flow cannot be initialised due to invalid SDK version |
Initialisation | UnsupportedError | Flow cannot be initialised due to a selected module not being supported (environment or client) |
Initialisation | UnsupportedFeatureError | Flow cannot be initialised due to a selected feature not being supported (environment or client) |
Initialisation | InvalidSdkParameter | Flow cannot be initialised due to invalid initialisation parameters |
Initialisation | FeaturesNotAuthorized | The flow cannot be initialised as selected feature is not authorised for this account. Please talk to Customer Support to get this feature enabled |
Initialisation | MissingSteps | Flow cannot be initialised due to missing 'steps' declaration or lack of workflow-run-id |
Initialisation | DuplicateStep | Flow cannot be initialised due to duplicate declaration in 'steps' |
Initialisation | WelcomeMustBeFirstStep | Flow cannot be initialised if 'Welcome' step is present but not first in the list of steps |
Initialisation | WorkflowVersionMismatch | Flow cannot be initialised due to target workflow requiring a higher version of the SDK |
Initialisation | WorkflowInputError | Flow error due to invalid or missing inputs provided as part of the workflow initialisation |
Initialisation | MissingLogoCobrandingParameter | Flow cannot be initialised as logo cobranding requires both a light and dark mode logo image |
Initialisation | InvalidCustomTranslations | Flow cannot be initialised due to an invalid translation key being provided |
Initialisation | InvalidCountryCode | Flow cannot be initialised due to an invalid country code provided in the document step configuration |
Initialisation | InvalidDocumentFormatAndCountryCombination | Flow cannot be initialised due to an invalid country code / document type combination being provided in the document step configuration |
Initialisation | InvalidDocumentTypeException | DocumentType.UNKNOWN should not be used |
Initialisation | InvalidDocumentTitle | Flow cannot be initialised due to an invalid generic document title provided in the document step configuration |
Initialisation | DuplicateGenericDocument | Flow cannot be initialised due to a duplicate generic document definition provided in the document step configuration |
Authentication | InvalidToken | Flow cannot be initiated due to invalid authentication token |
Authentication | ExpiredToken | Flow cannot be initiated due to expired authentication token |
Authentication | ExpiredTrial | Flow error due to expired account (or exceeded trial attempts) |
DeviceCapabilities | CameraNotDetected | Flow error due to camera not found |
DeviceCapabilities | CameraException | Flow error due to generic camera-related issue |
Processing | FailedToWriteToDisk | (Mobile-only) Flow error due to inability to write to device |
Processing | InvalidImageData | Flow error due to error in image compression or on-device processing |
Processing | WorkflowTaskAbandoned | Flow error due to workflow already been completed or expired |
Processing | WorkflowTaskError | Flow error due to generic workflow error |
Processing | BiometricTokenRetrievalException | Flow error due to inability to retrieve local face authentication token |
Processing | WorkflowBiometricTokenStorageException | Flow error due to inability to store local face authentication token |
Network | NetworkException | Generic flow error due to network issue |
Network | UploadError | Flow error due to failed media upload |
General | AppTerminated | Flow error due to app containing SDK being externally terminated |
General | GeoBlocked | Flow error due to request coming from geo-blocked country |
General | GenericException | Generic flow error due to unknown error type |
onExit(userAction)
callback
The onExit
callback is triggered when the end user manually exits the verification flow.
It is intended to provide the integrator with the opportunity to re-engage with the end user and potentially offer alternative verification flows.
The userAction
payload can be one of the following:
userAction | Description |
---|---|
UserExit | The end user exited the flow by pressing the UI's 'close' (X) button |
ConsentDenied | For US-based end users, the applicant declined to proceed when presented with the BIPA consent statement |
RequiredNfcNotCompleted | The end user decided not to proceed with NFC verification in flows that require it |
Optional callbacks
Biometric token handlers
When using Studio authentication tasks with on-device storage, the SDK stores encrypted biometric tokens on the end user's device or browser local storage. The SDK also allows clients to take control of the token lifecycle and exposes a callback to override the default implementation to read and write the token, so it can be stored on device, in cloud, in a keystore or in your infrastructure.
Please note:
- Defining the callback will prevent the SDK from storing the encrypted biometric token.
- To store the encrypted biometric token in your infrastructure, it is recommended to rely on webhooks instead.
1class CustomBiometricCallback: BiometricTokenCallback {2 override fun onTokenGenerated(customerUserHash: String, biometricToken: String) {3 // Called when a new biometric token is generated during enrollment4 // Please ensure that customerUserHash to biometricToken relationship is 1:15 }67 override fun onTokenRequested(customerUserHash: String, provideToken: (String) -> Unit) {8 // Called when the biometric token is requested during re-authentication9 }10}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
onAnalyticsEvent(event)
callback
The onAnalyticsEvent
callback will be introduced in a later beta version.
The onAnalyticsEvent
callback is an optional integration feature that requires activation from the Customer Support team.
It is triggered whenever the end user reaches a new screen and is intended to provide integrators with a high-level view of the flow's progress and allow for some targeted progress and drop-off analysis.
This mechanic is not recommended for most integrations.
onMedia
callback
The onMedia
callback is an optional integration feature that requires activation from the Customer Support team.
The callback is triggered at the end of every applicable module execution.
Please note: Only the Document, Face Photo and Face Video modules return a payload.
This mechanic is not recommended for most integrations for security and performance reasons. The recommendation is to retrieve the media payloads from the corresponding Studio webhooks and API requests.
SDK permissions
In order to launch successfully and for individual capture modules to function, the SDK requires specific App or browser permissions.
If the embedding app has correctly declared the required permissions, the end user will be prompted at runtime to grant them:
- If the user declines any of the operating system or browser prompts, the SDK will attempt to recover the required permissions by providing instructions to the user
- If the user continues to permanently block the required permissions, the SDK will not be able to proceed and terminate in error
Module | Permissions required |
---|---|
Document | Camera (back) NFC Storage |
Proof of Address | Camera (back) Storage |
Face Photo | Camera (front) |
Face Video | Camera (front) Audio |
Face Motion | Camera (front) Audio (unless capture option is disabled) |
Modules not listed above do not require dedicated permissions.
For Android apps, permissions don't need to be explicitly declared since they are handled by the SDK.
For iOS apps, permissions must be declared in the application's Info.plist
file.
Permissions | OS instruction |
---|---|
Camera (combined front/back) |
|
Audio |
|
NFC |
|
Storage |
|
Please note:
- The iOS SDK requires
CoreNFC
to run (regardless of whether you use NFC or not). Since Xcode 12, there is a bug wherelibnfshared.dylib
is missing from simulators. Refer to Stack Overflow for a solution to this problem - In the event that you disable the NFC feature, Apple might ask you to provide a video to demonstrate NFC usage because NFC-related code is part of the SDK binary, regardless of your configuration. You can find a video demonstrating our NFC feature that you can submit to Apple here
Apple entitlements for NFC
In addition to the app permissions defined in the app's Info.plist
file, NFC requires the Near Field Communication Tag Reading
capability in your app target. If you haven't added it before, please follow the steps in Apple's documentation.
Additionally, to support NFC PACE documents (such as NFC-capable national identity cards), additional app entitlements must be specified:
- Add a new entry nested under the
Near Field Communication Tag Reader Session Formats
key - Select
Password Authenticated Connection Establishment (PACE)
from the dropdown list - Alternatively you can also edit your entitlements, with the following entries:
1<key>com.apple.developer.nfc.readersession.formats</key>2<array>3 <string>PACE</string>4 <string>TAG</string>5</array>
When the Web SDK is executing directly in a browser, permissions are requested directly by the browser without prior declaration.
It is critical however to declare permissions when the Web SDK is loaded within an app webview. Please refer to the Using the Web SDK in a webview guide.
It is highly recommended to use the -core
variant of any of native SDKs over the use of the Web SDK within a webview due to the complex permission dependencies and reduced OS webview capabilities
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
SDK configuration
This section details the optional SDK configurations that can be set for a given capture flow. Please note: some features will be introduced as Studio configuration options later in 2025.
User Interface (UI) customisation
This customisation option will be introduced in a later beta version. The functionality described in the following section might differ from the current (typed) API. It does provide however the target design for the functionality.
Studio's Theming Dashboard is due for beta testing in Q3/Q4 2025. Please contact your Customer Success Manager for more information.
As an alternative to the Studio Theming Dashboard, the following options can be set at runtime as part of the SDK initialisation script under the property theme
.
By default, the SDK uses the operating system or browser theme (i.e. Dark or Light) when rendering screens. The theme
optional object allows integrators to preselect the overall theme and override specific UI properties.
Pre-selecting Light or Dark mode
name {ThemeName}
- optional
The optional name
property is used to pre-select the base theme used by the SDK. It accepts either Light
or Dark
as values.
Customising the brand footer
branding {Object}
- optional
The optional branding
object allows integrators to customise the screen's footer to provide brand continuity when the SDK flow is embedded in a 3rd party application. Note that by default, no brand footer is displayed.
The following options are available:
Property | Purpose | Example |
---|---|---|
displayEntrustBrand: Boolean | Whether the Entrust logo should be displayed. By default, the value is false | |
text: String | Simple text label that can be provided in conjunction with a logo. When combined, the text will be displayed before the logo | |
logo: URL | URL to a local or publicly accessible image. More information about the file restrictions to be provided soon |
Please note:
- The integrator needs to consider the theme (Light/Dark) currently applied to the screen when custom text and logo are provided
- The colour of the text and logo provided in the
branding
object can be overridden as defined in the subsequent section of this guide - ⚠️ As a change from previous versions of the SDK, by default, no brand name or logo is shown
Customising screen component style
overrides {Map<String, String>}
- optional
The style of all screens provided by the SDK can be customised to match the integrators brand and styling requirements. This is achieved by specifying the list of UI tokens that should be overridden for a particular flow. Remote UI customisation and overrides will be introduced via Studio in late 2025.
The list of UI tokens that can be overridden is provided in SDK language and UI customization guide and apply to all SDK platforms.
Please note:
- The integrator needs to consider the theme (Light/Dark) currently applied to the screen when customising tokens.
- While UI tokens available in previous SDK versions will still be accepted by the upcoming SDK releases, it is highly recommended that integrators migrate to the new token hierarchy and naming conventions to ensure that new screens and layouts are rendered correctly.
Localisation and text customisation
The ability to affect the text displayed in the SDK screens via the Studio Dashboard will be released in late 2025 to beta users. Please contact your Customer Success Manager for more information.
The SDK supports more than 40 languages and regional variants and, by default, uses the end user's device or browser locale to determine the language to be rendered on screen. By default, all screens are rendered in en-US
English.
The list of available languages is available in the SDK language and UI customization guide.
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 EntrustIdv.start(4 ...5 configuration = Configuration(6 ...7 localisation = Localisation(8 language = "en"9 allowedLanguages = listOf("en", "el")10 overrides = mapOf(11 "en" to mapOf(12 "welcome.title" to "Custom welcome title",13 ),14 ),15 )16 )17 )18}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Explicit language selection
language {locale}
- optional (defaulten-US
)
For integrators that want to preserve their own app session's language across the verification flow, the language
property can be set to any of the supported locales.
Additionally, the integrator may define a custom language and use its identifier as the value for the language
property. Refer to Custom Languages section below for more information on custom languages.
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(4 ...5 configuration = Configuration(6 ...7 localisation = Localisation(8 language = "en"9 )10 )11 )12}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Please note: if the end user's language is not one of the supported languages or if the locale provided under language
is invalid, en-US
will be selected as the fallback.
Restricting possible languages
availableLanguages [locale]
- optional
If the integrator wants to limit the possible languages that could be rendered at runtime, a list of locales (including custom identifiers) can be passed to the optional property availableLanguages
.
This feature is intended for integrators that want to ensure that all languages shown to end users are limited to those supported by their own business and support teams.
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(4 ...5 configuration = Configuration(6 ...7 localisation = Localisation(8 allowedLanguages = listOf("en", "el")9 )10 )11 )12}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Custom text overrides
overrides {Map<String, String>}
- optional
Custom text can be added by overriding individual text strings for all languages required or allowed by your implementation.
override fun onCreate(savedInstanceState: Bundle?) {
...
entrustIdv.start(
...
configuration = Configuration(
...
localisation = Localisation(
overrides = mapOf(
"en" to mapOf(
"welcome.title" to "Custom welcome title",
),
),
)
)
)
}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
The full list of keys that can be customised, and their hierarchy, is available on the Entrust Content Delivery Network (CDN) and is split by module and language.
Please note: the same keys are available across all supported languages and are accessible by specifying the appropriate language name in the URL (en_US.json
in the example above).
Custom languages
The SDK allows the use of custom languages alongside all officially supported languages. This functionality is achieved by:
- defining a unique language identifier
- using the unique language identifier within the
localisation
object, mapping any required strings to the existing language file structure
override fun onCreate(savedInstanceState: Bundle?) {
...
entrustIdv.start(
...
configuration = Configuration(
...
localisation = Localisation(
language = "fr_CUSTOM"
overrides = mapOf(
"fr_CUSTOM" to mapOf(
"welcome.title" to "Custom welcome title in fr_CUSTOM",
),
),
)
)
)
}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Please note: custom languages, in a similar way to regular text overrides, work as 'deltas' to the base language file they relate to. For example, a custom language defined as fr_Custom
would be based off of fr
for missing keys.
Additional SDK configuration
The following section details additional configuration options that can be applied to the overall SDK flow.
For implementations that are yet to migrate to workflow-based orchestration in Studio, the options can be added to the object configuration
at the root of the EntrustIdv
initialisation object.
All applicable features will be made available in Studio over the coming months
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(4 ...5 configuration = Configuration(6 ...7 disableAnalytics = false,8 showExitButton = true9 )10 )11}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Privacy and analytics
The SDK collects, by default, telemetry used to monitor the performance of the SDK, defend against fraud and help improve the accessibility of screens.
While core analytics are essential to the functioning of the overall service and are always sent to the Entrust services, behavioural analytics can be disabled during the initialisation of the SDK.
disableAnalytics {Boolean}
- optional (defaultfalse
)
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(4 ...5 configuration = Configuration(6 ...7 disableAnalytics = false8 )9 )10}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Please note:
- Disabling analytics will also disable browser cookies (when set for the Web SDK)
- Disabling analytics will also prevent any analytics returned via the
onAnalytics
callback
For more information about the scope of the SDK analytics and privacy implications, please refer to the our SDK Data Collection Overview guide.
Back navigation
A back button is present on all SDK module screens to allow end users to navigate back within any module. It is not however possible to navigate between SDK modules as the state of the previously completed task cannot be modified.
Please note:
- ⚠️ The back navigation behaviour is now applicable to both workflow-based and non-workflow-based flows (back navigation was previously possible between modules in non-workflow-based flows)
- When the back button is not displayed, the operating system, hardware or browser 'back' navigation is also disabled
- Forward navigation is disabled throughout the user flow
Exiting the flow
The ability to enable the exit button in Studio, as a workflow-level configuration option, will be introduced in an upcoming beta version of the SDK
By default, the exit button is not present on any SDK screens for both workflow-based and non-workflow-based flows. It can be enabled using the following option
showExitButton {Boolean}
- optional (defaultfalse
)
Note that when the end user taps or clicks the button, the flow will terminate with the onUserExit
callback with the action UserExit
.
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(4 ...5 configuration = Configuration(6 ...7 showExitButton = true8 )9 )10}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
SSL certificate pinning
This configuration option will be introduced in a later beta version.
SDK module configuration
This section details, per module, the configuration options that can be applied at runtime for a given flow. While certain options are currently only applicable to implementations that are yet to migrate to workflow-based orchestration, they will be gradually introduced in Studio over the rest of 2025.
Welcome
This module enables the display of the introduction screen shown at the beginning of a flow. It introduces the process and prepares the user for the steps that they will need to complete.
While this screen is optional, we only recommend its removal if you already have your own identity verification introduction screen in place.
Workflow-based sessions currently do not have the option to display the Welcome screen at the start of a workflow. The option to display the screen will be introduced in Q3 2025 as a workflow-level configuration option.
For non-workflow-based flows, the display of the screen is controlled by the inclusion (or omission) of the Welcome
step from the initialisation code.
Document and NFC capture
Until the Document module is released as a native module in Q3 2025, the SDK will only be loading its Web variant which currently does not include NFC capture.
The Document module allows the image and NFC capture of the end user's identity document. The module combines both live capture and NFC scanning.
The execution of this module is controlled by the presence of a "Document Capture" task in your Studio workflow. The task has the following configuration options:
- Restricting the document type and country of issuance that can be selected by the end user
- Whether NFC is available. When enabled the option to force NFC can be selected
Document filtering
As part of the flow, the end user is prompted to select the issuing country and document type before proceeding to the document's capture. This information is used to optimise the capture experience, as well as inform the end user about which documents they are allowed to use.
Please note:
- The selection screen is dynamic and will be automatically hidden when the document filtering configuration doesn't require the end user to indicate which document will be captured
- In a very limited number of cases, the end user may also be asked if they have a card or paper version of their document via an additional prompt
As part of the workflow configuration, it is possible to restrict the documents that can be selected in two ways:
- Within a Document Capture task, documented in the Studio Product guide.
- Otherwise, the recommended approach is to apply this configuration globally in your Dashboard under Accounts \ Supported Documents, as this configuration is also applied to your Document Reports. Any document that has been uploaded by an end user against your guidance will result in a Document Report sub-result of "rejected" and be flagged as
Image Integrity
>Supported Document
.
Document filtering for non-workflow based sessions
For integrations that are yet to migrate to workflow-based flows in Studio, the Document
step defined in SDK initialisation configuration may optionally include:
documentFiltering: {Filters}
- default all documents allowed
The documentFiltering
parameter accepts two optional lists of DocumentSelection
objects: one to exclude
particular document types or countries and one to onlyinclude
certain document types or countries. The two can be used together to provide the appropriate selection to the user.
The DocumentSelection
object is defined as below:
1DocumentSelection(2 documentType: <<Passport, DrivingLicense, NationalIdentityCard, PassportCard, ResidencePermit, Generic>>, // "Generic" is defined in the following section3 issuingCountry: String, // Issuing country of the document in 3-letter ISO 3166-1 alpha-3 format. Must not be used in conjuction with "allCountries" option4 allCountries: Boolean, // Whether the documentType selected should be applied to all possible countries5 id: String, // Used to uniquely identify a "Generic" documentType6)
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
In the example below, the user will only be able to select a passport or driving license from any country (as a result of the include
definition), but for France only passports will be accepted (exclude
removes the option of a driving license for that country):
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(ClassicParameters(4 ...5 steps = listOf<Step<*>>(6 ...7 Document(options = Options(8 documentFiltering = DocumentFiltering(9 include = listOf(10 DocumentSelection(11 documentType = DocumentType.Passport,12 allCountries = true13 ),14 DocumentSelection(15 documentType = DocumentType.DrivingLicence,16 allCountries = true17 )),18 exclude = listOf(19 DocumentSelection(20 documentType = DocumentType.DrivingLicence,21 issuingCountry = "FRA"22 )),23 )24 )),25 )26 ))27}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
An additional option to extend
the DocumentFiltering
list can be used to add custom document types to the existing list of documents. This is explained in the following section.
Please note the following SDK behaviour:
- Hard-coding any document type and issuing country configuration in your SDK integration will fully override the Dashboard-based settings.
- Passports have the same format worldwide, so the SDK will not show the country selection screen if
include
only contains passports and they are not restricted by country (e.g.allCountries = true
). - Currently only the following document types are supported by the SDK. If you select other document types in your Dashboard (visa, for example), these will not be displayed in the SDK selection screen. If you need to add other document types to the document selection screen, you can mitigate this limitation in the short-term, using the Generic Document feature.
- Driving Licence
- National Identity Card
- Passport
- Passport Card
- Residence Permit
- Generic - more information in the next section
Inclusion of generic document types
This feature is currently only available for non-workflow-based flows. It allows for an arbitrary document type to be shown to the end user for selection. To use this feature:
-
Generic documents must be defined in the
genericDocuments
property -
Using their unique identifiers, the newly defined generic document types can be added either to the
extend
property of theDocumentFiltering
property (to add it to the default selection list) or theinclude
property (to add it to a specific filtered list) -
genericDocuments: {List<GenericDocument>}
- defaults to no generic documents
The GenericDocument
object is defined as below:
1GenericDocumentType(2 id: String, // Unique identifier of the document type. Used in the "DocumentFiltering" object3 country: String, // Issuing country of the document in 3-letter ISO 3166-1 alpha-3 format4 pages: Int, // Number of pages that should be captured for this document. Can either be 1 or 25 title: String, // Name of the document as it will appear on the screen6 subTitle: String, // Short description of the document that will appear on the document selection screen7)
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
In the example below, a custom, one-sided, document type is added to the default document selection list. It will only be available for French documents (as per its definition):
1...2 entrustIdv.start(ClassicParameters(3 ...4 steps = listOf<Step<*>>(5 ...6 Document(options = Options(7 genericDocuments = listOf(8 GenericDocumentType(9 id = "custom_lunch_card_FR",10 country = "FRA",11 pages = 1,12 title = "Lunch Card",13 subTitle = "Front picture of your lunch card"14 )15 ),16 documentFiltering = DocumentFiltering(17 extend = listOf(18 DocumentSelection(19 documentType = DocumentType.GenericDocument,20 id = "custom_lunch_card_FR"21 ),22 )23 )24 ))25 )26 ))
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
NFC
NFC capture will be introduced in the new mobile SDKs later in 2025. The following section is intended to provide an overview of the expected capabilities.
Recent passports, national identity cards and residence permits contain a chip that can be accessed using Near Field Communication (NFC). The SDK provides a set of screens and functionalities to extract this information, verify its authenticity and provide the results as part of a Document report.
The behaviour of NFC capture is controlled within the Document Capture Studio task by one of the following options:
- Disabled: NFC reading will not be asked of end users
- Optional (Default): NFC reading will be attempted, if possible
- Required: NFC reading will be enforced, preventing end users from completing the flow without a successful reading
For more information on how to configure NFC and the list of supported documents, please refer to the NFC for Document Report guide.
For non-workflow-based flows, the Document
step may optionally include the following options:
nfcPolicy: { Disabled | Optional | Required }
- default:Optional
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(ClassicParameters(4 ...5 steps = listOf<Step<*>>(6 ...7 Document(options = Options(8 nfcPolicy = NFCPolicy.Required9 )),10 )11 )12 )13}
This section will be documented when the iOS SDK beta release is made available publicly.
Section not applicable to the Web SDK
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Proof of Address capture
The current version of the SDK no longer contains a native variant of the Proof of Address module. A Web variant can still be used in workflow and non-workflow-based sessions.
The Proof of Address capture module allows for the verification of an end user's address document. Users will be asked to select the issuing country of their document, the document type, and to provide images of their selected document. They will also have a chance to check the quality of the images before confirming.
There are no customisation options for this step.
Face Photo
The Face Photo module enables the capture of the end user's face in the form of a photo. For performance and compliance purposes, the Face Motion module is recommended instead.
The execution of this module is controlled by the presence of a "Face Capture: Photo" task in your Studio workflow. The task has the following configuration options: - Show introduction screen (default true ). When disabled, the end user would be taken directly to the capture screen. | ![]() |
⚠️ As the Intro screen provides valuable information on how to successfully get verified, it is recommended to display it unless the integrator decides to provide their own instruction screen.
For non-workflow-based flows, the FacePhoto
step may optionally include the showIntro: Boolean
property (default true
) in its Options
.
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(ClassicParameters(4 ...5 steps = listOf<Step<*>>(6 ...7 FacePhoto(options = Options(showIntro = true)),8 )9 )10 )11}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Face Video
The current version of the SDK no longer contains a native variant of the Face Video module. A Web variant can still be used in workflow and non-workflow-based sessions.
The Face Video module enables the capture of the end user's face in the form of a video. For performance and compliance purposes, the Face Motion module is recommended instead.
The execution of this module is controlled by the presence of a "Face Capture: Video" task in your Studio workflow. The task has the following configuration options: - Show introduction screen (default true ). When disabled, the end user would be taken directly to the capture screen.- Show confirmation video preview (default true ). When disabled, the video file is automatically submitted after the capture finishes.- (coming soon to Studio) Record Audio (default false ). When enabled, the video capture will include sound capture. | ![]() |
⚠️ As the Intro screen provides valuable information on how to successfully get verified, it is recommended to display it unless the integrator decides to provide their own instruction screen.
For non-workflow-based flows, the FaceVideo
step may optionally include the following options:
showIntro: Boolean
(defaulttrue
)showConfirmation: Boolean
(defaulttrue
)recordAudio: Boolean
(default:false
)
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(ClassicParameters(4 ...5 steps = listOf<Step<*>>(6 ...7 FaceVideo(options = Options(8 showIntro = true,9 showConfirmation = true,10 recordAudio = false11 )),12 )13 )14 )15}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
Face Motion
The Face Motion module enables the capture of the end user's face in the form of motion capture.
The execution of this module is controlled by the presence of a "Face Capture: Motion" task in your Studio workflow. The task has the following configuration options: - Show introduction screen (default true ). When disabled, the end user would be taken directly to the capture screen.- Record Audio (default false ). When enabled, the video capture will include sound capture. | ![]() |
⚠️ As the Intro screen provides valuable information on how to successfully get verified, it is recommended to display it unless the integrator decides to provide their own instruction screen.
For non-workflow-based flows, the FaceMotion
step may optionally include the following options:
showIntro: Boolean
(defaulttrue
)recordAudio: Boolean
(default:false
)
1override fun onCreate(savedInstanceState: Bundle?) {2 ...3 entrustIdv.start(ClassicParameters(4 ...5 steps = listOf<Step<*>>(6 ...7 FaceMotion(options = Options(8 showIntro = true,9 recordAudio = false10 )),11 )12 )13 )14}
This section will be documented when the iOS SDK beta release is made available publicly.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
More information will be added in the coming months with regard to the React Native and Flutter platform requirements as well as any enhancements to the Web SDK.
One-time Password (OTP)
The One-time Password task allows the verification of a mobile phone number when used in conjuction with the Qualified Electronic Signature task.
This task has no SDK configuration options and is available only via Studio.
Qualified Electronic Signature (QES)
The Qualified Elentronic Signature task embeds the process provided by a Qualified Trust Service Provider to digitally sign a document.
This task has no SDK configuration options and is available only via Studio.
Retry task
The Studio Retry task allows orchestration between workflow tasks based on logical checks. When the task's condition fails, the SDK will diplay a dedicated screen to the user, prompting them to proceed to the next logical task (or repeat a previous one).
This task has no additional configuration option beyond selecting a "Retry Reason". It is only available via Studio. Please note: when a custom reason is provided in the task definition, it cannot be automatically translated by the SDK.
More Information
Accessibility
All SDKs have been optimised to provide the following accessibility support by default:
- Screen reader support: accessible labels for textual and non-textual elements available to aid TalkBack navigation, including dynamic alerts
- Dynamic font size support: all elements scale automatically according to the device's font size setting
- Sufficient color contrast: default colors have been tested to meet the recommended level of contrast
- Sufficient touch target size: all interactive elements have been designed to meet the recommended touch target size
Refer to our accessibility statement for more details.
Licensing
Due to API design constraints, and to avoid possible conflicts during the integration, we bundle some of our 3rd party dependencies as repackaged versions of the original libraries.
Please refer to the SDK license acknowledgements guide for more information.