SDK reference · Android SDK

Customization

The Incode Android SDK is highly customizable. You can match onboarding flows to your brand and product. This page covers everything you can change, including:

  • Theme colors and fonts
  • Buttons and other UI elements
  • The V2 header logo
  • Runtime theme configuration
  • Every customizable string, including dynamic and runtime localization
  • Custom logos, supplemental text, and videos
  • V2 theme, UX, and themed vector configuration, built with Jetpack Compose

Get Started

Most integrations only need colors, fonts, and a logo. Consult other sections when you have a specific need.

Most sections cover the classic, View-based screens and shared elements across the SDK. The new V2 modules use Jetpack Compose and a separate JSON or object-based configuration system. See Configure V2 Theme and UX for those. Some settings, like fonts and the header logo, exist in both systems. This page documents both.

Task Section
Recolor the SDK and apply your fonts Customize Theme Colors and Fonts
Display your logo Add a Custom Logo
Display your header logo (V2 only) Customize the V2 Header Logo
Change button shape, size, color, and style Customize Buttons
Restyle dialogs, progress bars, camera outlines, and other UI elements Customize Other UI Elements
Swap styles at runtime based on user preference Configure Runtime Styles
Change any on-screen text, particularly for translation Localize Display Text
Add supplemental copy on selfie screens Add Custom Supplemental Text
Replace tutorial and feedback animations Replace Videos with Custom Videos
Enable the V2 UI Enable V2 UI
Theme the V2 Compose modules Configure V2 Theme and UX
Override V2 vector drawables with your own icons or graphics Customize V2 Vector Drawables

Customize Theme Colors and Fonts

You can customize the main theme, background, and text colors. You can also change the fonts.

Main Theme Colors

Add the following colors to your colors.xml:

<color name="onboard_sdk_colorPrimary">@color/onboard_sdk_brand_accentPrimary</color>
<color name="onboard_sdk_colorPrimaryDark">@color/onboard_sdk_brand_accentSecondary</color>
<color name="onboard_sdk_colorAccent">@color/onboard_sdk_brand_accentPrimary</color>

onboard_sdk_colorPrimaryDark is currently not used.

These colors signify success, warning, and failure throughout the SDK. By default, they are shades of green, orange, and red. You can customize them by adding the following colors to your colors.xml:

<color name="onboard_sdk_state_destructive">#FF5C6F</color>
<color name="onboard_sdk_state_warn">#F3AB3C</color>
<color name="onboard_sdk_state_success">#0CD5A2</color>

The following near-grayscale colors are predefined in the SDK:

<color name="onboard_sdk_darkest">#000000</color>
<color name="onboard_sdk_darkIndigo">#20263D</color>
<color name="onboard_sdk_indigo">#2F2D51</color>
<color name="onboard_sdk_dark">#636670</color>
<color name="onboard_sdk_darkGray">#979797</color>
<color name="onboard_sdk_gray">#BCBCBC</color>
<color name="onboard_sdk_lightGray">#E9E9EB</color>
<color name="onboard_sdk_offWhite">#F9FAFF</color>
<color name="onboard_sdk_white">#FFFFFF</color>

Background Colors

To change background colors in the SDK, add the following items to your styles.xml:

<item name="onboard_sdk_BackgroundLight" type="color">@color/onboard_sdk_lightGray</item>
<item name="onboard_sdk_BackgroundDark" type="color">@color/onboard_sdk_darkIndigo</item>
<item name="onboard_sdk_BackgroundWindow" type="color">@color/onboard_sdk_white</item>
<item name="onboard_sdk_BackgroundWindow_Selfie" type="color">@color/onboard_sdk_white</item>

The window background is white by default on the Selfie Scan screen. This helps when taking a selfie in low-light conditions.

Text Colors

The SDK has five text colors. To change them, add the following items to your styles.xml:

<item name="onboard_sdk_TextColorDefault" type="color">@color/onboard_sdk_darkIndigo</item>
<item name="onboard_sdk_TextColorLabel" type="color">@color/onboard_sdk_dark</item>
<item name="onboard_sdk_TextColorPlaceholder" type="color">@color/onboard_sdk_gray</item>
<item name="onboard_sdk_TextColorDisabled" type="color">@color/onboard_sdk_lightGray</item>
<item name="onboard_sdk_TextColorInverted" type="color">@color/onboard_sdk_white</item>

Fonts

To change the fonts in the SDK, add the following items to your styles.xml:

<item name="onboard_sdk_FontFamilyBold" type="font">@font/your_custom_font_bold</item>
<item name="onboard_sdk_FontFamilyRegular" type="font">@font/your_custom_font_regular</item>

<item name="onboard_sdk_FontFamilyBold_v2" type="font">@font/your_custom_font_bold</item>
<item name="onboard_sdk_FontFamilyMedium_v2" type="font">@font/your_custom_font_medium</item>
<item name="onboard_sdk_FontFamilyRegular_v2" type="font">@font/your_custom_font_regular</item>

You can show a custom logo at the top of supported screens. The default logo resource is a 1x1 px transparent image. To use a custom logo, override the default image by adding an image resource to your res/drawable-??? folders. For best results, use an image about 100 x 25px.

The image resource needs to have the following name:

onboard_sdk_logo_top

To change this logo programmatically, update the ThemeConfiguration:

ThemeConfiguration.Builder.setLogo(@DrawableRes Int)
ThemeConfiguration.Builder.setLogo(@DrawableRes int);

The Selfie Scan and Video Selfie modules let you show a custom logo just for their own screens.

To add a custom logo at build time, override the following image resources:

Selfie: onboard_sdk_selfie_logo_top
VideoSelfie: onboard_sdk_video_selfie_logo_top

To add a custom logo at runtime, use the following Builder methods:

SelfieScan.Builder.setLogo(@DrawableRes Int)
VideoSelfie.Builder.setLogo(@DrawableRes Int)
SelfieScan.Builder.setLogo(@DrawableRes int);
VideoSelfie.Builder.setLogo(@DrawableRes int);

Info

Logo Precedence

If you inject a custom logo in more than one way, the SDK applies this precedence for supported screens:

  • A module-specific custom logo resource provided at runtime through one of the setLogo() methods.
  • A module-specific custom logo resource provided at build time.
  • An override of the generic logo resource, onboard_sdk_logo_top, provided at runtime.
  • An override of the generic logo resource, onboard_sdk_logo_top, provided at build time.

To customize the header logo, override the following drawable file in your drawable folder:

  • onboard_sdk_logo_header.xml

Dark Mode Support

To provide a different logo for dark mode, place a night-qualified variant in your drawable-night folder:

  • drawable/onboard_sdk_logo_header.xml: used in light mode
  • drawable-night/onboard_sdk_logo_header.xml: used in dark mode

The SDK automatically resolves the correct variant based on the active display mode. If you don't provide a drawable-night variant, the SDK uses the light mode drawable for both modes.

Logo Size Guidelines

  • Maximum height is 36dp, in Android density-independent pixels. Width is flexible.
  • Logos taller than 36dp are automatically resized to a height of 36dp, keeping their aspect ratio.
  • Logos shorter than 36dp display at their original size.

Customize Buttons

You can customize buttons at three levels:

Basic Button Customization

Customize individual attributes of the default buttons.

To customize the corner radius of the buttons in the SDK, override the following dimension in your dimens.xml:

<dimen name="onboard_sdk_btn_rounded_radius">32dp</dimen>

To change the size of the buttons, override the following dimension in your dimens.xml. The suggested value for full-width buttons is 20dp.

<dimen name="onboard_sdk_btn_margins">80dp</dimen>

To change the colors of the buttons, override the following colors in your colors.xml:

<!-- Button Primary -->
<color name="onboard_sdk_btn_primary_background_color">@color/onboard_sdk_colorPrimary</color>
<color name="onboard_sdk_btn_primary_border_color">@color/onboard_sdk_colorPrimary</color>

<!-- Button Primary Pressed -->
<color name="onboard_sdk_btn_primary_background_color_pressed">@color/onboard_sdk_darkIndigo</color>
<color name="onboard_sdk_btn_primary_border_color_pressed">@color/onboard_sdk_darkIndigo</color>

<!-- Button Primary Disabled -->
<color name="onboard_sdk_btn_primary_background_color_disabled">@color/onboard_sdk_IconColorDisabled</color>
<color name="onboard_sdk_btn_primary_border_color_disabled">@color/onboard_sdk_IconColorDisabled</color>

<!-- Button Secondary -->
<color name="onboard_sdk_btn_secondary_background_color">@color/onboard_sdk_white</color>
<color name="onboard_sdk_btn_secondary_border_color">@color/onboard_sdk_darkIndigo</color>

<!-- Button Secondary Pressed -->
<color name="onboard_sdk_btn_secondary_background_color_pressed">@color/onboard_sdk_darkIndigo</color>
<color name="onboard_sdk_btn_secondary_border_color_pressed">@color/onboard_sdk_darkIndigo</color>

<!-- Button Secondary Disabled -->
<color name="onboard_sdk_btn_secondary_background_color_disabled">@color/onboard_sdk_white</color>
<color name="onboard_sdk_btn_secondary_border_color_disabled">@color/onboard_sdk_IconColorDisabled</color>

<!-- Id Validation capture feedback background -->
<color name="onboard_sdk_id_capture_feedback_background_color">@color/onboard_sdk_black</color>

To customize the appearance of the checkboxes, override the following drawable files in your drawable folder:

  • onboard_sdk_checkbox_empty.xml
  • onboard_sdk_checkbox_selected.xml
  • onboard_sdk_checkbox2_empty.xml
  • onboard_sdk_checkbox2_selected.xml

You can also customize other properties. Add these to your styles.xml to override them:

<item name="onboard_sdk_ButtonPrimary_FontFamily" type="font">@font/onboard_sdk_FontFamilyBold</item>
<item name="onboard_sdk_ButtonPrimary_TextColor" type="color">@color/onboard_sdk_text_colors_button_primary</item>
<item name="onboard_sdk_ButtonPrimary_Background" type="drawable">@drawable/onboard_sdk_btn_primary</item>
<item name="onboard_sdk_ButtonPrimary_MaxLines" type="integer">1</item>
<item name="onboard_sdk_ButtonPrimary_BorderWidth" type="dimen">1dp</item>

<item name="onboard_sdk_ButtonSecondary_FontFamily" type="font">@font/onboard_sdk_FontFamilyBold</item>
<item name="onboard_sdk_ButtonSecondary_TextColor" type="color">@color/onboard_sdk_text_colors_button_secondary</item>
<item name="onboard_sdk_ButtonSecondary_Background" type="drawable">@drawable/onboard_sdk_btn_secondary</item>
<item name="onboard_sdk_ButtonSecondary_MaxLines" type="integer">1</item>
<item name="onboard_sdk_ButtonSecondary_BorderWidth" type="dimen">1dp</item>

<item name="onboard_sdk_ButtonText_FontFamily" type="font">@font/onboard_sdk_FontFamilyBold</item>
<item name="onboard_sdk_ButtonText_TextColor" type="color">@color/onboard_sdk_text_colors_button_text</item>
<item name="onboard_sdk_ButtonText_Background" type="drawable">@android:color/transparent</item>
<item name="onboard_sdk_ButtonText_MaxLines" type="integer">1</item>

<item name="onboard_sdk_ButtonBig_TextSize" type="dimen">20sp</item>
<item name="onboard_sdk_ButtonBig_PaddingStart" type="dimen">80sp</item>
<item name="onboard_sdk_ButtonBig_PaddingEnd" type="dimen">80sp</item>
<item name="onboard_sdk_ButtonBig_PaddingTop" type="dimen">20sp</item>
<item name="onboard_sdk_ButtonBig_PaddingBottom" type="dimen">20sp</item>
<item name="onboard_sdk_ButtonBig_TextAllCaps" type="bool">false</item>

<item name="onboard_sdk_ButtonMedium_TextSize" type="dimen">16sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingStart" type="dimen">48sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingEnd" type="dimen">48sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingTop" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingBottom" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonMedium_TextAllCaps" type="bool">true</item>

<item name="onboard_sdk_ButtonSmall_TextSize" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingStart" type="dimen">14sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingEnd" type="dimen">14sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingTop" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingBottom" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonSmall_TextAllCaps" type="bool">true</item>

<item name="onboard_sdk_IncodeSnackbar_Background_Color" type="color">@color/onboard_sdk_state_destructive</item>
<item name="onboard_sdk_IncodeSnackbar_Content_TextColor" type="color">@color/onboard_sdk_white</item>
<item name="onboard_sdk_IncodeSnackbar_Content_TextSize" type="dimen">14sp</item>
<item name="onboard_sdk_IncodeSnackbar_Content_FontFamily" type="font">@font/onboard_sdk_FontFamilyRegular</item>
<item name="onboard_sdk_IncodeSnackbar_Content_FontWeight" type="integer">700</item>
<item name="onboard_sdk_IncodeSnackbar_Action_TextColor" type="color">@color/onboard_sdk_white</item>
<item name="onboard_sdk_IncodeSnackbar_Action_TextSize" type="dimen">20sp</item>
<item name="onboard_sdk_IncodeSnackbar_Action_FontFamily" type="font">@font/onboard_sdk_FontFamilyRegular</item>
<item name="onboard_sdk_IncodeSnackbar_Action_FontWeight" type="integer">700</item>

Advanced Button Customization

To fully customize buttons, specify your own styles in styles.xml. There are three button types: Primary, Secondary, and Text. Each type has three variants: Big, Medium, and Small. You can customize common styles, such as onboard_sdk_ButtonPrimary, onboard_sdk_ButtonSecondary, and onboard_sdk_ButtonText. You can also customize individual variants, such as onboard_sdk_ButtonPrimaryBig. By default, medium and small variants use textAllCaps = true.

<style name="onboard_sdk_ButtonPrimary" parent="onboard_sdk_BaseButtonPrimary">
    <item name="android:background">@drawable/my_custom_background_drawable</item>
    ...
</style>

<style name="onboard_sdk_ButtonPrimaryBig" parent="onboard_sdk_BaseButtonPrimaryBig">
    <item name="layout_constraintWidth_min">200dp</item>
    ...
</style>

<style name="onboard_sdk_ButtonPrimaryMedium" parent="onboard_sdk_BaseButtonPrimaryMedium">...</style>

<style name="onboard_sdk_ButtonPrimarySmall" parent="onboard_sdk_BaseButtonPrimarySmall">...</style>

<style name="onboard_sdk_ButtonSecondary" parent="onboard_sdk_BaseButtonSecondary">...</style>

<style name="onboard_sdk_ButtonSecondaryBig" parent="onboard_sdk_BaseButtonSecondaryBig">...</style>

<style name="onboard_sdk_ButtonSecondaryMedium" parent="onboard_sdk_BaseButtonSecondaryMedium">...</style>

<style name="onboard_sdk_ButtonSecondarySmall" parent="onboard_sdk_BaseButtonSecondarySmall">...</style>

<style name="onboard_sdk_ButtonText" parent="onboard_sdk_BaseButtonText">...</style>

<style name="onboard_sdk_ButtonTextBig" parent="onboard_sdk_BaseButtonTextBig">...</style>

<style name="onboard_sdk_ButtonTextMedium" parent="onboard_sdk_BaseButtonTextMedium">...</style>

<style name="onboard_sdk_ButtonTextSmall" parent="onboard_sdk_BaseButtonTextSmall">...</style>

<style name="onboard_sdk_ButtonPrimaryV2" parent="onboard_sdk_BaseButtonPrimary"></style>

<style name="onboard_sdk_ButtonPrimaryMediumV2" parent="onboard_sdk_BaseButtonPrimaryMediumV2"></style>

<style name="onboard_sdk_ButtonPrimaryBigV2" parent="onboard_sdk_BaseButtonPrimaryBigV2"></style>

Selfie Manual Shutter Button Customization

To customize the appearance of the manual shutter button in the Selfie Scan module, override the following drawable files in your res/drawable folder:

  • onboard_sdk_selfie_btn_shutter_background.xml
  • onboard_sdk_selfie_btn_shutter_icon.xml

Customize Other UI Elements

Colors, fonts, and button customization cover most use cases. If you need control over additional elements, use the overrides below.

Exit Dialog

To change the color of exit dialog buttons and texts, override the following colors:

<!-- Update the color of all exit dialog texts -->
<item name="onboard_sdk_ExitDialog_TextColor" type="color">@color/onboard_sdk_black</item>

<!-- Update each color individually -->
<item name="onboard_sdk_ExitDialog_TextColor_Title" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>
<item name="onboard_sdk_ExitDialog_TextColor_Description" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>
<item name="onboard_sdk_ExitDialog_TextColor_PositiveButton" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>
<item name="onboard_sdk_ExitDialog_TextColor_NegativeButton" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>

To change the exit dialog color and font of the positive and negative buttons, override the following styles:

<!-- Postive Button -->
<style name="onboard_sdk_ExitDialog_PositiveButton" parent="onboard_sdk_BaseExitDialog_PositiveButton">
    <item name="android:fontFamily">@font/onboard_sdk_FontFamilyRegular</item>
    <item name="android:textColor">@color/onboard_sdk_ExitDialog_TextColor_PositiveButton</item>
</style>

<!-- Negative Button -->
<style name="onboard_sdk_ExitDialog_NegativeButton" parent="onboard_sdk_BaseExitDialog_NegativeButton">
    <item name="android:fontFamily">@font/onboard_sdk_FontFamilyRegular</item>
    <item name="android:textColor">@color/onboard_sdk_ExitDialog_TextColor_NegativeButton</item>
</style>

To customize the exit dialog itself, override the following style:

<style name="onboard_sdk_ExitDialog" parent="onboard_sdk_BaseExitDialog">
    <!-- Exit Dialog Font -->
    <item name="android:fontFamily">@font/onboard_sdk_FontFamilyRegular</item>
    <!-- Exit Dialog Title text color -->
    <item name="android:textColor">@color/onboard_sdk_ExitDialog_TextColor_Title</item>
    <!-- Exit Dialog Description text color -->
    <item name="android:textColorPrimary">@color/onboard_sdk_ExitDialog_TextColor_Description</item>
    <!-- Exit Dialog Positive Button style -->
    <item name="buttonBarPositiveButtonStyle">@style/onboard_sdk_ExitDialog_PositiveButton</item>
    <!-- Exit Dialog Negative Button style -->
    <item name="buttonBarNegativeButtonStyle">@style/onboard_sdk_ExitDialog_NegativeButton</item>
</style>

Selfie Camera Outline

To change the color of the camera outline on the Selfie Scan screen, override the following color:

<item name="onboard_sdk_SelfieCircleCameraOutline" type="color">@android:color/black</item>

Upload Progress Bar

To change the style of the progress bar shown while uploading documents, override these items in your styles.xml:

<item name="onboard_sdk_ProgressBar_Height" type="dimen">6dp</item>
<item name="onboard_sdk_ProgressBar_ProgressDrawable" type="drawable">@drawable/onboard_sdk_progress_bar_round</item>

By default, the progress bar uses the onboard_sdk_BackgroundLight and onboard_sdk_colorPrimary colors.

Capture Failed: Common Issues Items

To change the background for each item on the Capture Failed > Common Issues screen, override the following drawable:

@drawable/onboard_sdk_background_capture_error_item

Or simply override the color:

<item name="onboard_sdk_Background_CaptureErrorItem" type="color">@color/onboard_sdk_lightGray</item>

Countdown Animation: ID and Passport Scan

To change the background and text color of the countdown animation on the ID Scan screen, override the following colors:

<item name="onboard_sdk_CountdownAnimation_BackgroundColor" type="color">@color/onboard_sdk_brand_accentPrimary</item>
<item name="onboard_sdk_CountdownAnimation_TextColor" type="color">@color/onboard_sdk_white</item>

Video Selfie Waveform

To change the color of the waveform on the Video Selfie screen, override the following color:

<item name="onboard_sdk_Waveform" type="color">@color/onboard_sdk_white</item>

Complete List of Customizable UI Element Styles

View complete list of customizable styles

Override these styles in your styles.xml:

<style name="onboard_sdk_Headline1" parent="onboard_sdk_BaseHeadline1">...</style>

<style name="onboard_sdk_Headline2" parent="onboard_sdk_BaseHeadline2">...</style>

<style name="onboard_sdk_Headline3" parent="onboard_sdk_BaseHeadline3">...</style>

<style name="onboard_sdk_Headline4" parent="onboard_sdk_BaseHeadline4">...</style>

<style name="onboard_sdk_InputSpecial" parent="onboard_sdk_BaseInputSpecial">...</style>

<style name="onboard_sdk_InputBig" parent="onboard_sdk_BaseInputBig">...</style>

<style name="onboard_sdk_InputSmall" parent="onboard_sdk_BaseInputSmall">...</style>

<style name="onboard_sdk_InputEditText" parent="onboard_sdk_BaseInputEditText">...</style>

<style name="onboard_sdk_InputEditTextError" parent="onboard_sdk_BaseInputEditTextError">...</style>

<style name="onboard_sdk_InputSpinner" parent="onboard_sdk_BaseInputSpinner">...</style>

<style name="onboard_sdk_BodyBig" parent="onboard_sdk_BaseBodyBig">...</style>

<style name="onboard_sdk_BodyLead" parent="onboard_sdk_BaseBodyLead">...</style>

<style name="onboard_sdk_BodyQuote" parent="onboard_sdk_BaseBodyQuote">...</style>

<style name="onboard_sdk_BodyLongText" parent="onboard_sdk_BaseBodyLongText">...</style>

<style name="onboard_sdk_LabelBig" parent="onboard_sdk_BaseLabelBig">...</style>

<style name="onboard_sdk_LabelSmall" parent="onboard_sdk_BaseLabelSmall">...</style>

<style name="onboard_sdk_ButtonPrimary" parent="onboard_sdk_BaseButtonPrimary">...</style>

<style name="onboard_sdk_ButtonPrimaryBig" parent="onboard_sdk_BaseButtonPrimaryBig">...</style>

<style name="onboard_sdk_ButtonPrimaryMedium" parent="onboard_sdk_BaseButtonPrimaryMedium">...</style>

<style name="onboard_sdk_ButtonPrimarySmall" parent="onboard_sdk_BaseButtonPrimarySmall">...</style>

<style name="onboard_sdk_ButtonSecondary" parent="onboard_sdk_BaseButtonSecondary">...</style>

<style name="onboard_sdk_ButtonSecondaryBig" parent="onboard_sdk_BaseButtonSecondaryBig">...</style>

<style name="onboard_sdk_ButtonSecondaryMedium" parent="onboard_sdk_BaseButtonSecondaryMedium">...</style>

<style name="onboard_sdk_ButtonSecondarySmall" parent="onboard_sdk_BaseButtonSecondarySmall">...</style>

<style name="onboard_sdk_ButtonText" parent="onboard_sdk_BaseButtonText">...</style>

<style name="onboard_sdk_ButtonTextBig" parent="onboard_sdk_BaseButtonTextBig">...</style>

<style name="onboard_sdk_ButtonTextMedium" parent="onboard_sdk_BaseButtonTextMedium">...</style>

<style name="onboard_sdk_ButtonTextSmall" parent="onboard_sdk_BaseButtonTextSmall">...</style>

<style name="onboard_sdk_ProgressBar" parent="onboard_sdk_BaseProgressBar">...</style>

<style name="onboard_sdk_ProgressBarIndeterminate" parent="onboard_sdk_BaseProgressBarIndeterminate">...</style>

<style name="onboard_sdk_Divider" parent="onboard_sdk_BaseDivider">...</style>

<style name="onboard_sdk_BottomSheetItem" parent="onboard_sdk_BaseBottomSheetItem">...</style>

<style name="onboard_sdk_ScanFeedbackTextSmall" parent="onboard_sdk_BaseScanFeedbackTextSmall">...</style>

<style name="onboard_sdk_ScanFeedbackTextMedium" parent="onboard_sdk_BaseScanFeedbackTextMedium"/>

<style name="onboard_sdk_ScanFeedbackTextBig" parent="onboard_sdk_BaseScanFeedbackTextBig">...</style>

<style name="onboard_sdk_ManualCaptureInstructionsText" parent="onboard_sdk_BaseManualCaptureInstructionsText">...</style>

<style name="onboard_sdk_ExitDialog_PositiveButton" parent="onboard_sdk_BaseExitDialog_PositiveButton">...</style>

<style name="onboard_sdk_ExitDialog_NegativeButton" parent="onboard_sdk_BaseExitDialog_NegativeButton">...</style>

<style name="onboard_sdk_ExitDialog" parent="onboard_sdk_BaseExitDialog">...</style>

<style name="onboard_sdk_CountdownAnimationBackground" parent="onboard_sdk_BaseCountdownAnimationBackground">...</style>

<style name="onboard_sdk_CountdownAnimationText" parent="onboard_sdk_BaseCountdownAnimationText">...</style>

<style name="onboard_sdk_IncodeSnackbar_Content" parent="onboard_sdk_IncodeSnackbar_BaseContent">...</style>

<style name="onboard_sdk_IncodeSnackbar_Action" parent="onboard_sdk_IncodeSnackbar_BaseAction">...</style>

<style name="onboard_sdk_IncodeSnackbar_Background" parent="onboard_sdk_IncodeSnackbar_BaseBackground">...</style>

Some UI elements have their own styles inherited from these general styles. They can also be customized individually:

<!-- Need Help Button (inherits from onboard_sdk_ButtonSecondarySmall) -->
<style name="onboard_sdk_ButtonNeedHelp" parent="onboard_sdk_BaseButtonNeedHelp"></style>

<!-- Need Help Manual Capture Button (inherits from onboard_sdk_ButtonTextSmall) -->
<style name="onboard_sdk_ButtonNeedHelpManualCapture" parent="onboard_sdk_BaseButtonNeedHelpManualCapture"></style>

<!-- Manual Capture Instructions Text (inherits from onboard_sdk_LabelBig) -->
<style name="onboard_sdk_ManualCaptureInstructionsText" parent="onboard_sdk_BaseManualCaptureInstructionsText"></style>

Configure Runtime Styles

You can dynamically load styles in the SDK. Do this when you have multiple styles for a single view, such as a button, and want to switch between them based on your users' preferences.

  1. Ensure you've declared the extensions dependency in your [module]/build.gradle.
  2. Create your theme:
    <style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#00B2FD</item>
        <item name="colorPrimaryDark">#2266D8</item>
        <item name="colorAccent">#00B2FD</item>
        <item name="android:textColor">#20263D</item>
        <item name="android:windowBackground">#FFFFFF</item>
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowContentTransitions">true</item>
    </style>
    
  3. Create a ThemeConfiguration and set it through CommonConfig.
    val themeConfiguration: ThemeConfiguration = ThemeConfiguration.Builder()
        .setCustomTheme(R.style.CustomTheme)
        .build()
    
    val commonConfig: CommonConfig = CommonConfig.Builder()
        .setThemeConfiguration(themeConfiguration)
        .build()
    
    IncodeWelcome.getInstance().setCommonConfig(commonConfig)
    
    ThemeConfiguration themeConfiguration = new ThemeConfiguration.Builder()
        .setCustomTheme(R.style.CustomTheme)
        .build();
    
    CommonConfig commonConfig = new CommonConfig.Builder()
        .setThemeConfiguration(themeConfiguration)
        .build();
    
    IncodeWelcome.getInstance().setCommonConfig(commonConfig);
    
  4. Create your own styles in XML:
    <style name="Headline1">
        <item name="android:fontFamily">@font/onboard_sdk_FontFamilyBold</item>
        <item name="android:textColor">#2266D8</item>
        <item name="android:textSize">32sp</item>
        <item name="android:maxLines">2</item>
        <item name="android:lineSpacingExtra">0sp</item>
        <item name="android:gravity">center_horizontal</item>
        <item name="autoSizeTextType">uniform</item>
        <item name="autoSizeMinTextSize">10sp</item>
    </style>
    
    <style name="Headline2">
        <item name="android:fontFamily">@font/onboard_sdk_FontFamilyBold</item>
        <item name="android:textColor">#2266D8</item>
        <item name="android:textSize">26sp</item>
        <item name="android:maxLines">2</item>
        <item name="android:lineSpacingExtra">0sp</item>
        <item name="android:gravity">center_horizontal</item>
        <item name="autoSizeTextType">uniform</item>
        <item name="autoSizeMinTextSize">10sp</item>
    </style>
    
    Or extend the SDK styles:
    <style name="Headline1" parent="onboard_sdk_Headline1">
        <item name="android:fontFamily">@font/onboard_sdk_FontFamilyBold</item>
        <item name="android:textColor">#2266D8</item>
        <item name="android:textSize">32sp</item>
        <item name="android:maxLines">2</item>
    </style>
    
  5. ThemeConfiguration offers methods for applying your own style to each view type, such as Headline1 and LabelBig. Use any of the following methods to override the default styles:
View all available methods
val themeConfiguration: ThemeConfiguration = ThemeConfiguration.Builder()
    .setHeadline1Style(R.style.Headline1)
    .setHeadline2Style(R.style.Headline2)
    .setHeadline3Style(R.style.Headline3)
    .setHeadline4Style(R.style.Headline4)
    .setBodyBigStyle(R.style.BodyBig)
    .setBodyLeadStyle(R.style.BodyLead)
    .setBodyQuoteStyle(R.style.BodyQuote)
    .setBodyLongTextStyle(R.style.BodyLongText)
    .setLabelBigStyle(R.style.LabelBig)
    .setLabelSmallStyle(R.style.LabelSmall)
    .setBottomSheetItemStyle(R.style.BottomSheetItem)
    .setScanFeedbackTextBigStyle(R.style.ScanFeedbackTextBig)
    .setScanFeedbackTextSmallStyle(R.style.ScanFeedbackTextSmall)
    .setManualCaptureInstructionsTextStyle(R.style.ManualCaptureInstructionsText)
    .setFaceMatchProgressTextBigStyle(R.style.FaceMatchProgressTextBig)
    .setFaceMatchProgressTextMediumStyle(R.style.FaceMatchProgressTextMedium)
    .setInputSpecialStyle(R.style.InputSpecial)
    .setInputBigStyle(R.style.InputBig)
    .setInputSmallStyle(R.style.InputSmall)
    .setInputEditTextStyle(R.style.Input)
    .setInputEditTextErrorStyle(R.style.InputError)
    .setInputSpinnerStyle(R.style.InputSpinner)
    .setSpinnerStyle(R.style.Spinner)
    .setButtonPrimaryBigStyle(R.style.ButtonBig)
    .setButtonPrimaryBigAltStyle(R.style.ButtonBigAlt)
    .setButtonPrimaryMediumStyle(R.style.ButtonMedium)
    .setButtonPrimarySmallStyle(R.style.ButtonSmall)
    .setButtonSecondaryBigStyle(R.style.ButtonSecondaryBig)
    .setButtonSecondaryMediumStyle(R.style.ButtonSecondaryMedium)
    .setButtonSecondarySmallStyle(R.style.ButtonSecondarySmall)
    .setButtonTextBigStyle(R.style.ButtonTextBig)
    .setButtonTextMediumStyle(R.style.ButtonTextMedium)
    .setButtonTextSmallStyle(R.style.ButtonTextSmall)
    .setButtonNeedHelpManualCaptureStyle(R.style.ButtonNeedHelpManualCapture)
    .setDividerStyle(R.style.DividerStyle)
    .setCountdownAnimationBackgroundStyle(R.style.CountdownAnimationBackground)
    .setCountdownAnimationTextStyle(R.style.CountdownAnimationText)
    .build()

val commonConfig: CommonConfig = CommonConfig.Builder()
    .setThemeConfiguration(themeConfiguration)
    .build()

IncodeWelcome.getInstance().setCommonConfig(commonConfig)
ThemeConfiguration themeConfiguration = new ThemeConfiguration.Builder()
    .setHeadline1Style(R.style.Headline1)
    .setHeadline2Style(R.style.Headline2)
    .setHeadline3Style(R.style.Headline3)
    .setHeadline4Style(R.style.Headline4)
    .setBodyBigStyle(R.style.BodyBig)
    .setBodyLeadStyle(R.style.BodyLead)
    .setBodyQuoteStyle(R.style.BodyQuote)
    .setBodyLongTextStyle(R.style.BodyLongText)
    .setLabelBigStyle(R.style.LabelBig)
    .setLabelSmallStyle(R.style.LabelSmall)
    .setBottomSheetItemStyle(R.style.BottomSheetItem)
    .setScanFeedbackTextBigStyle(R.style.ScanFeedbackTextBig)
    .setScanFeedbackTextSmallStyle(R.style.ScanFeedbackTextSmall)
    .setManualCaptureInstructionsTextStyle(R.style.ManualCaptureInstructionsText)
    .setFaceMatchProgressTextBigStyle(R.style.FaceMatchProgressTextBig)
    .setFaceMatchProgressTextMediumStyle(R.style.FaceMatchProgressTextMedium)
    .setInputSpecialStyle(R.style.InputSpecial)
    .setInputBigStyle(R.style.InputBig)
    .setInputSmallStyle(R.style.InputSmall)
    .setInputEditTextStyle(R.style.Input)
    .setInputEditTextErrorStyle(R.style.InputError)
    .setInputSpinnerStyle(R.style.InputSpinner)
    .setSpinnerStyle(R.style.Spinner)
    .setButtonPrimaryBigStyle(R.style.ButtonBig)
    .setButtonPrimaryBigAltStyle(R.style.ButtonBigAlt)
    .setButtonPrimaryMediumStyle(R.style.ButtonMedium)
    .setButtonPrimarySmallStyle(R.style.ButtonSmall)
    .setButtonSecondaryBigStyle(R.style.ButtonSecondaryBig)
    .setButtonSecondaryMediumStyle(R.style.ButtonSecondaryMedium)
    .setButtonSecondarySmallStyle(R.style.ButtonSecondarySmall)
    .setButtonTextBigStyle(R.style.ButtonTextBig)
    .setButtonTextMediumStyle(R.style.ButtonTextMedium)
    .setButtonTextSmallStyle(R.style.ButtonTextSmall)
    .setButtonNeedHelpManualCaptureStyle(R.style.ButtonNeedHelpManualCapture)
    .setDividerStyle(R.style.DividerStyle)
    .setCountdownAnimationBackgroundStyle(R.style.CountdownAnimationBackground)
    .setCountdownAnimationTextStyle(R.style.CountdownAnimationText)
    .build();
        
CommonConfig commonConfig = new CommonConfig.Builder()
    .setThemeConfiguration(themeConfiguration)
    .build();

IncodeWelcome.getInstance().setCommonConfig(commonConfig);

Localize Display Text

There are three ways to change the text the SDK displays:

Override strings.xml

To change specific text shown to the user throughout the flow, add these strings to your strings.xml. If your app supports multiple languages, add translations to the matching strings.xml files too. The SDK provides default text for English, Spanish, Portuguese, and German locales, using the locale codes en, es, pt, and de.

View all customizable text elements
<string name="onboard_sdk_dialog_camera_permissions_mandatory_title">Incode Welcome needs\nCamera access to work</string>
<string name="onboard_sdk_dialog_location_permissions_mandatory_title">Incode Welcome needs\nLocation access to work</string>
<string name="onboard_sdk_dialog_microphone_permissions_mandatory_title">Incode Welcome needs\nMicrophone access to work</string>
<string name="onboard_sdk_dialog_camera_permissions_mandatory_subtitle">Please open Settings, go to\nApp Permissions and enable Camera</string>
<string name="onboard_sdk_dialog_location_permissions_mandatory_subtitle">Please open Settings, go to\nApp Permissions and enable Location</string>
<string name="onboard_sdk_dialog_microphone_permissions_mandatory_subtitle">Please open Settings, go to\nApp Permissions and enable Microphone</string>

<string name="onboard_sdk_dialog_permission_btn_open_settings">Open settings</string> <string name="onboard_sdk_btn_continue">Continue</string> <string name="onboard_sdk_btn_back">Back</string> <string name="onboard_sdk_ok">OK</string> <string name="onboard_sdk_btn_skip">Skip</string> <string name="onboard_sdk_btn_quit">Quit</string> <string name="onboard_sdk_btn_next">Next</string> <string name="onboard_sdk_btn_start">Start</string> <string name="onboard_sdk_btn_state_loading">Loading…</string> <string name="onboard_sdk_bullet_point" translatable="false">\u2022</string>

{/* Generic -->
<string name="onboard_sdk_loader_preparing_camera">Preparing camera</string>
<string name="onboard_sdk_input_field_required_state_voice_over">Required field</string>
<string name="onboard_sdk_input_field_clear_selection_voice_over">Clear selection</string>
<string name="onboard_sdk_dropdown_hint">Select an option</string>
<string name="onboard_sdk_dropdown_voice_over_expanded">Expanded</string>
<string name="onboard_sdk_dropdown_voice_over_collapsed">Collapsed</string>
<string name="onboard_sdk_dropdown_selected">Selected</string>
<string name="onboard_sdk_dropdown_not_selected">Not selected</string>
<string name="onboard_sdk_dropdown_search_no_results">No results</string>

{/* IntroActivity -->
<string name="onboard_sdk_intro_title">For this process you will need:</string>
<string name="onboard_sdk_intro_check_id">Valid ID</string>
<string name="onboard_sdk_intro_check_passport">Valid Passport</string>
<string name="onboard_sdk_intro_check_id_or_passport">Valid ID or Passport</string>
<string name="onboard_sdk_intro_check_address">Recent Proof of Address</string>
<string name="onboard_sdk_intro_check_selfie">To take a Selfie</string>
<string name="onboard_sdk_intro_check_medical_doc">Valid Medical Document</string>
<string name="onboard_sdk_intro_check_other_doc">Valid Document</string>
<string name="onboard_sdk_intro_data_protected_label">Your data is protected by Incode</string>
<string name="onboard_sdk_intro_data_protected_highlighted_text">Incode</string>
<string name="onboard_sdk_intro_confirm_btn">I Confirm</string>
<string name="onboard_sdk_intro_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- PhoneNumberActivity -->
<string name="onboard_sdk_enter_phone_number">Enter phone number</string>
<string name="onboard_sdk_error_unknown_error">Unknown error</string>
<string name="onboard_sdk_phone_number_check_box_description">Yes, I’d like to receive important messages from %1$s on my phone</string>
<string name="onboard_sdk_phone_number_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- PhoneNumberActivity V2 -->
<string name="onboard_sdk_phone_verify_subtitle">We\'ll send you a code to ensure it\'s yours</string>
<string name="onboard_sdk_phone_verified_success">Phone verified!</string>
<string name="onboard_sdk_phone_national_placeholder" translatable="false">(123) 123-45-67</string>
<string name="onboard_sdk_phone_max_attempts_error">Something went wrong</string>
<string name="onboard_sdk_phone_refresh">Refresh</string>

<!-- PhoneNumberActivity: Accessibility - Search Country dropdown -->
<string name="onboard_sdk_phone_country_dropdown_a11y_label">Country code, %1$s, %2$s</string>
<string name="onboard_sdk_phone_country_list_a11y_label">Country list</string>
<string name="onboard_sdk_phone_country_row_a11y_label">%1$s, %2$s</string>

<!-- PhoneNumberActivity: Accessibility - Pane title announced when the screen loads or when focus returns -->
<string name="onboard_sdk_phone_screen_pane_title_a11y">Phone number verification</string>

<!-- PhoneNumberActivity: Accessibility - Label for the search field  -->
<string name="onboard_sdk_phone_country_search_a11y_label">Search countries</string>

<!-- PhoneNumberActivity: Phone field -->
<string name="onboard_sdk_phone_number_a11y_label">Phone number</string>

<!-- PhoneNumberActivity: Accessibility - Continue button -->
<string name="onboard_sdk_phone_continue_loading_a11y">Submitting, please wait</string>

<!-- PhoneNumberActivity: Accessibility - Empty state announcement for country search results -->
<string name="onboard_sdk_phone_country_results_empty_a11y">No countries found</string>

<!-- EmailAddressActivity -->
<string name="onboard_sdk_enter_email_address">Enter your email</string>
<string name="onboard_sdk_enter_email">Verify your email</string>
<string name="onboard_sdk_enter_email_subtitle">We’ll send you a code to ensure it’s yours</string>
<string name="onboard_sdk_enter_email_input_placeholder">Email</string>
<string name="onboard_sdk_email_address_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_email_btn_continue">@string/onboard_sdk_email_address_btn_continue</string>
<string name="onboard_sdk_email_verified">Email verified!</string>
<string name="onboard_sdk_email_something_went_wrong">Something went wrong</string>

<!-- EMAIL OTP -->
<string name="onboard_sdk_email_otp_enter_code">Enter the code we’ve sent to your email</string>
<string name="onboard_sdk_email_otp_error_message">Something went wrong</string>
<string name="onboard_sdk_email_otp_resend_or_change_email">Didn’t receive the code? Resend code or Change email</string>
<string name="onboard_sdk_email_otp_resend_code">Resend code</string>
<string name="onboard_sdk_generic_otp_resend_code_in_x_seconds">Resend code in %ds</string>

<!-- NameActivity -->
<string name="onboard_sdk_enter_name">Enter your name</string>

<!-- Common SelectSourceActivity -->
<string name="onboard_sdk_select_document_source_photo_library">Photo Library</string>
<string name="onboard_sdk_select_document_source_take_photo">Take Photo</string>
<string name="onboard_sdk_select_document_source_browse">Browse…</string>
<string name="onboard_sdk_select_document_source_error_opening_file">Error opening file</string>
<string name="onboard_sdk_select_document_source_error">No app available to select content</string>

<!-- DocumentCaptureActivity (V2) -->
<string name="onboard_sdk_document_capture_chooser_title">Verify your document</string>
<string name="onboard_sdk_document_capture_chooser_subtitle">Take a photo or upload a PDF, JPG or PNG.</string>
<string name="onboard_sdk_document_capture_chooser_subtitle_no_pdf">Take a photo or upload a JPG or PNG.</string>
<string name="onboard_sdk_document_capture_only_subtitle">Take a photo of your document to continue.</string>
<string name="onboard_sdk_document_capture_upload_only_subtitle">Upload a PDF, JPG or PNG.</string>
<string name="onboard_sdk_document_capture_upload_only_subtitle_no_pdf">Upload a JPG or PNG.</string>
<string name="onboard_sdk_document_capture_btn_capture">Capture document</string>
<string name="onboard_sdk_document_capture_btn_upload">Upload document</string>
<string name="onboard_sdk_document_capture_btn_skip">Skip this step</string>
<string name="onboard_sdk_document_capture_source_take_photo">Take photo</string>
<string name="onboard_sdk_document_capture_source_camera_roll">Choose from camera roll</string>
<string name="onboard_sdk_document_capture_source_choose_file">Choose file</string>
<string name="onboard_sdk_document_capture_camera_title">Show your full document</string>
<string name="onboard_sdk_document_capture_camera_subtitle">Make sure it’s fully visible and press the button</string>
<string name="onboard_sdk_document_capture_review_btn_replace">Replace</string>
<string name="onboard_sdk_document_capture_review_pdf_subtitle">Make sure you’ve selected the correct file before you continue the verification process.</string>
<string name="onboard_sdk_document_capture_success_title">Successfully processed!</string>
<string name="onboard_sdk_document_capture_common_issues_title">Common issues</string>
<string name="onboard_sdk_document_capture_common_issues_out_of_frame_title">Document is too far or out of frame</string>
<string name="onboard_sdk_document_capture_common_issues_out_of_frame_subtitle">Make sure all edges are visible on screen.</string>
<string name="onboard_sdk_document_capture_common_issues_folded_title">Document is folded</string>
<string name="onboard_sdk_document_capture_common_issues_folded_subtitle">Flatten your document and make sure it’s fully open and straight.</string>
<string name="onboard_sdk_document_capture_common_issues_shadows_title">Shadows on the document</string>
<string name="onboard_sdk_document_capture_common_issues_shadows_subtitle">Move to a brighter area and avoid casting shadows over your document.</string>
<string name="onboard_sdk_document_capture_common_issues_lens_title">Camera lens is dirty</string>
<string name="onboard_sdk_document_capture_common_issues_lens_subtitle">Clean your camera lens for a sharper image.</string>
<string name="onboard_sdk_document_capture_common_issues_btn_try_again">Try again</string>
<string name="onboard_sdk_document_capture_analyzing_title">Analyzing…</string>
<string name="onboard_sdk_document_capture_uploading_title">Uploading…</string>
<string name="onboard_sdk_document_capture_error_title">Document needs to be recaptured</string>
<string name="onboard_sdk_document_capture_error_subtitle">Some pages were unclear or incomplete. Recapture all document pages to continue.</string>
<string name="onboard_sdk_document_capture_error_btn_recapture">Recapture document</string>
<string name="onboard_sdk_document_capture_no_connection_btn_refresh">Refresh</string>
<string name="onboard_sdk_document_capture_exhausted_title">Unable to process</string>
<string name="onboard_sdk_document_capture_exhausted_subtitle">Maximum number of attempts reached.</string>
<string name="onboard_sdk_document_capture_exhausted_btn_continue">Continue</string>

<!-- SelectAddressStatementSourceActivity -->
<string name="onboard_sdk_select_address_statement_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_address_statement_source_subtitle">This can be any legal documentation that proves your address.</string>
<string name="onboard_sdk_select_address_statement_source_bottom_text">Take a photo or upload a PDF, JPG, or PNG</string>
<string name="onboard_sdk_select_address_statement_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_select_address_statement_source_btn_skip">Skip this step</string>

<!-- SelectPaymentProofSourceActivity -->
<string name="onboard_sdk_select_payment_proof_source_title">Upload your proof of payment</string>
<string name="onboard_sdk_select_payment_proof_source_subtitle">This can be a document from your bank or electronic invoice that shows a specific transaction.</string>
<string name="onboard_sdk_select_payment_proof_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_payment_proof_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_select_payment_proof_source_btn_skip">Skip this step</string>

<!-- SelectMedicalDocSourceActivity -->
<string name="onboard_sdk_select_medical_doc_source_title">Upload your medical document</string>
<string name="onboard_sdk_select_medical_doc_source_subtitle">This can be a document that shows you are medically insured.</string>
<string name="onboard_sdk_select_medical_doc_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_medical_doc_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_select_medical_doc_source_btn_skip">Skip this step</string>

<!-- SelectOtherDocument1SourceActivity -->
<string name="onboard_sdk_select_other_document_1_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_other_document_1_source_subtitle">This can be any legal documentation that proves your identity.</string>
<string name="onboard_sdk_select_other_document_1_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_other_document_1_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_select_other_document_1_source_btn_skip">Skip this step</string>

<!-- SelectOtherDocument2SourceActivity -->
<string name="onboard_sdk_select_other_document_2_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_other_document_2_source_subtitle">This can be any legal documentation that proves your identity.</string>
<string name="onboard_sdk_select_other_document_2_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_other_document_2_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_select_other_document_2_source_btn_skip">Skip this step</string>

<!-- SelectOtherDocument3SourceActivity -->
<string name="onboard_sdk_select_other_document_3_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_other_document_3_source_subtitle">This can be any legal documentation that proves your identity.</string>
<string name="onboard_sdk_select_other_document_3_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_other_document_3_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_select_other_document_3_source_btn_skip">Skip this step</string>

<!-- TutorialDocumentScanActivity -->
<string name="onboard_sdk_tutorial_document_scan_title">Place your document within the frame and take the photo</string>
<string name="onboard_sdk_tutorial_document_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- TutorialSelfieActivity -->
<string name="onboard_sdk_tutorial_selfie_title">Let’s take a selfie</string>
<string name="onboard_sdk_tutorial_selfie_subtitle">Keep a neutral expression, find balanced light, and remove any glasses or hats</string>
<string name="onboard_sdk_tutorial_selfie_animation_content_description">Place your phone an arm’s distance in front of your face. The image will be taken automatically.</string>
<string name="onboard_sdk_age_verification_selfie_title">Age verification</string>
<string name="onboard_sdk_age_verification_selfie_subtitle">Please take a selfie to estimate your age, your data is private, your face is not stored or shared</string>
<string name="onboard_sdk_age_verification_selfie_instructions">@string/onboard_sdk_tutorial_selfie_subtitle</string>

<!-- TutorialSelfieV2 -->
<string name="onboard_sdk_tutorial_selfie_v2_title">Take a selfie</string>
<string name="onboard_sdk_tutorial_selfie_v2_subtitle">Keep a neutral expression, find balanced light and remove any glasses and hats</string>
<string name="onboard_sdk_tutorial_selfie_v2_instructions">Stay still, photo will be taken automatically</string>
<string name="onboard_sdk_tutorial_selfie_v2_button_text">Take selfie</string>
<string name="onboard_sdk_age_verification_selfie_v2_title">Take a selfie to verify your age</string>
<string name="onboard_sdk_age_verification_selfie_v2_subtitle">Your image will not be stored or shared with any third-party to protect your privacy</string>
<string name="onboard_sdk_age_verification_selfie_v2_instructions">Stay still, selfie will be taken automatically</string>
<string name="onboard_sdk_age_verification_selfie_v2_button_text">Verify age</string>

<!-- IDTypeChooserActivity -->
<string name="onboard_sdk_id_type_chooser_title">Select what document you want to scan</string>
<string name="onboard_sdk_btn_id">Driver License\nID Card\nResident Card</string>
<string name="onboard_sdk_btn_passport">Passport\nVisa</string>

<!-- TutorialFrontActivity -->
<string name="onboard_sdk_tutorial_front_1_title">Place your\nID inside the frame</string>
<string name="onboard_sdk_tutorial_front_2_title">Avoid\nshadows and glare </string>
<string name="onboard_sdk_tutorial_front_3_title">Make sure\nthe photo is sharp</string>
<string name="onboard_sdk_tutorial_front_4_title">Make sure\ninfo is readable</string>
<string name="onboard_sdk_tutorial_front_voice_over">Place your ID up to the back camera of your phone and slowly move the ID while holding your phone in position. The capture will happen automatically.</string>

<!-- TutorialPassportActivity -->
<string name="onboard_sdk_tutorial_passport_1_title">Place your Passport inside the\nframe and take a photo</string>
<string name="onboard_sdk_tutorial_passport_2_title">Avoid\nshadows and glare </string>
<string name="onboard_sdk_tutorial_passport_3_title">Make sure\nthe photo is sharp</string>
<string name="onboard_sdk_tutorial_passport_4_title">Make sure\ninfo is readable</string>
<string name="onboard_sdk_tutorial_passport_voice_over">@string/onboard_sdk_tutorial_front_voice_over</string>

<!-- TutorialBackActivity -->
<string name="onboard_sdk_tutorial_back_title">Now show the\nback side of your ID</string>
<string name="onboard_sdk_tutorial_back_title_highlighted_part">back side</string>
<string name="onboard_sdk_tutorial_back_subtitle_1">Avoid shadows and glare</string>
<string name="onboard_sdk_tutorial_back_subtitle_2">The photo will be taken automatically</string>
<string name="onboard_sdk_tutorial_back_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_tutorial_back_voice_over">@string/onboard_sdk_tutorial_front_voice_over</string>

<!-- IdValidationFeedback -->
<string name="onboard_sdk_validation_autocapture_hold_still">Don’t move!\nTaking photo…</string>
<string name="onboard_sdk_validation_fill_rectangle_with_id">Fill the rectangle\nwith your ID</string>
<string name="onboard_sdk_validation_fill_rectangle_with_passport">Fill the rectangle\nwith your Passport</string>
<string name="onboard_sdk_validation_warn_show_front">Show the front of the ID</string>
<string name="onboard_sdk_validation_warn_show_back">Show the back of the ID</string>
<string name="onboard_sdk_validation_manual_capture_instructions">1. Put ID in the frame\n2. Press capture button</string>
<string name="onboard_sdk_validation_warn_id_too_dark">Too dark</string>
<string name="onboard_sdk_validation_warn_id_out_of_focus">ID out of focus</string>
<string name="onboard_sdk_validation_warn_id_glare_detected">Glare detected</string>
<string name="onboard_sdk_validation_warn_passport_too_dark">Too dark</string>
<string name="onboard_sdk_validation_warn_passport_out_of_focus">Passport out of focus</string>
<string name="onboard_sdk_validation_warn_passport_glare_detected">Glare detected</string>
<string name="onboard_sdk_validation_success">All good!</string>
<string name="onboard_sdk_validation_voice_over_back_camera_started">Back camera has started</string>
<string name="onboard_sdk_validation_voice_over_warn_id_glare_detected">Glare on ID</string>
<string name="onboard_sdk_validation_voice_over_id_too_close">Move phone further from the ID</string>
<string name="onboard_sdk_validation_voice_over_id_too_far">Move phone closer to the ID</string>
<string name="onboard_sdk_validation_voice_over_autocapture_capturing">Capturing</string>
<string name="onboard_sdk_validation_voice_over_autocapture_success">Capture success</string>
<string name="onboard_sdk_validation_voice_over_enter_manual_mode">Double tap on the screen to capture, or bottom right button if you need help with capturing</string>
<string name="onboard_sdk_voice_over_shutter_button">Take photo</string>
<string name="onboard_sdk_validation_id_type_not_digital_id">Please try with a different document</string>
<string name="onboard_sdk_validation_digital_id_file_size_error_title">File is too large</string>
<string name="onboard_sdk_validation_digital_id_file_size_error_subtitle">The selected file is larger than 5MB, please upload a smaller one</string>
<string name="onboard_sdk_validation_btn_choose_another_file">Choose another file</string>
<string name="onboard_sdk_validation_id_wallet_error_title">Couldn’t verify your ID</string>
<string name="onboard_sdk_validation_id_wallet_error_subtitle">Please try again</string>

<!-- IdValidationActivity -->
<string name="onboard_sdk_validation_show_front">Show the front of the ID</string>
<string name="onboard_sdk_validation_show_front_secondary_text">@string/onboard_sdk_validation_show_front</string>
<string name="onboard_sdk_validation_show_back">Show the back of the ID</string>
<string name="onboard_sdk_validation_show_back_secondary_text">@string/onboard_sdk_validation_show_back</string>
<string name="onboard_sdk_validation_show_passport">Show passport page with photo</string>
<string name="onboard_sdk_id_scan_v1_camera_loading_feedback">Please wait,\nadjusting camera</string>
<string name="onboard_sdk_id_scan_help_btn">Help</string>
<string name="onboard_sdk_id_scan_close_btn">Close</string>
<string name="onboard_sdk_id_scan_help_common_issue_1">ID too far or out of frame</string>
<string name="onboard_sdk_id_scan_help_common_issue_subtext_1"></string>
<string name="onboard_sdk_id_scan_help_common_issue_2">Glare or shadows on ID</string>
<string name="onboard_sdk_id_scan_help_common_issue_subtext_2"></string>
<string name="onboard_sdk_id_scan_help_common_issue_3">Camera lens dirty</string>
<string name="onboard_sdk_id_scan_help_common_issue_subtext_3"></string>
<string name="onboard_sdk_id_scan_help_btn_ok">OK, try again</string>
<string name="onboard_sdk_id_scan_help_btn_manual_capture">I prefer to capture the photo manually</string>
<string name="onboard_sdk_document_scan_help_common_issues">Common issues</string>
<string name="onboard_sdk_document_scan_help_common_issue_1">Document is too far or out of frame</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_1"></string>
<string name="onboard_sdk_document_scan_help_common_issue_2">Document is folded</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_2"></string>
<string name="onboard_sdk_document_scan_help_common_issue_3">Glare or shadows on the document</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_3"></string>
<string name="onboard_sdk_document_scan_help_common_issue_4">Camera lens is dirty</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_4"></string>
<string name="onboard_sdk_document_scan_help_btn_ok">OK, try again</string>

<!-- ReviewActivity -->
<string name="onboard_sdk_review_your_photo">Review your photo</string>
<string name="onboard_sdk_review_your_photo_hint1">Ensure that the text on the ID is readable</string>
<string name="onboard_sdk_review_your_photo_hint2">The ID photo must be sharp and without glare</string>
<string name="onboard_sdk_review_your_photo_btn_scan_again">@string/onboard_sdk_validation_address_btn_scan_again</string>
<string name="onboard_sdk_validation_address_btn_scan_again">"&lt;   Retake photo"</string>
<string name="onboard_sdk_review_your_photo_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- ReviewActivity - Proof of Address -->
<string name="onboard_sdk_review_your_document">Review your document</string>
<string name="onboard_sdk_review_your_document_hint">Make sure that entire document fits the view, and that the text is readable.</string>

<!-- IdDocumentSelection -->
<string name="onboard_sdk_id_capture_title">ID capture</string>
<string name="onboard_sdk_id_document_selection_identity_card">Identity Card</string>
<string name="onboard_sdk_id_document_selection_identity_card_subtitle">National Identity Card,\nor Driver’s License</string>
<string name="onboard_sdk_id_document_selection_passport">Passport</string>
<string name="onboard_sdk_id_document_selection_passport_subtitle">Your country Passport</string>
<string name="onboard_sdk_id_document_selection_footer">verified by</string>
<string name="onboard_sdk_id_document_selection_title_compact">Select how to verify</string>
<string name="onboard_sdk_id_document_selection_digital_id">Upload Digital ID</string>

<!-- IdCaptureIntro -->
<string name="onboard_sdk_id_capture_tutorial_title">Show the front of your ID</string>
<string name="onboard_sdk_id_capture_tutorial_subtitle">Ensure your ID is readable</string>
<string name="onboard_sdk_id_capture_tutorial_hint">The capture will happen automatically</string>
<string name="onboard_sdk_id_capture_lets_scan">Let\'s scan</string>
<string name="onboard_sdk_id_capture_upload_pdf">Upload PDF</string>

<string name="onboard_sdk_id_capture_barcode_tutorial_title">Show the back of your ID</string>
<string name="onboard_sdk_id_capture_back_side_tutorial_title">Show the back of your ID</string>

<string name="onboard_sdk_id_capture_intro_title_passport">Scan your Passport</string>
<string name="onboard_sdk_id_capture_intro_subtitle_passport">Ensure your Passport is readable</string>

<string name="onboard_sdk_id_capture_intro_title_digital_id">Upload Digital ID</string>
<string name="onboard_sdk_id_capture_intro_subtitle_digital_id">A government-issued PDF file with your details, picture and a QR code</string>

<!-- ReviewDigitalIdScreen -->
<string name="onboard_sdk_digital_id_review_title">Review document</string>
<string name="onboard_sdk_digital_id_review_subtitle">Make sure this is the correct file before you continue verification process.</string>
<string name="onboard_sdk_digital_id_review_replace_file">Replace file</string>

<!-- DigitalIdUploadSuccessScreen -->
<string name="onboard_sdk_digital_id_lets_continue">Let\'s continue</string>

<!-- PermissionOnboarding -->
<string name="onboard_sdk_permission_not_granted_generic_title">Mandatory permission not granted</string>
<string name="onboard_sdk_permission_allow">Allow permission</string>
<string name="onboard_sdk_permission_quit">Quit process</string>
<string name="onboard_sdk_permission_intro_title">Camera permission is required</string>
<string name="onboard_sdk_permission_intro_subtitle">This lets you take a photo of your ID and face for verification purposes.</string>
<string name="onboard_sdk_btn_allow">Allow</string>
<string name="onboard_sdk_btn_do_not_allow">Don’t allow</string>

<string name="onboard_sdk_permission_camera_rationale_title">Camera permission is required</string>
<string name="onboard_sdk_permission_rationale_p1">We only use the camera to capture your ID for secure verification</string>
<string name="onboard_sdk_permission_rationale_p2">It helps verify document authenticity and prevent identity fraud</string>
<string name="onboard_sdk_permission_rationale_p3">We protect your data, and it is only used for verification</string>
<string name="onboard_sdk_permission_rationale_p4">This is required to verify your identity</string>

<string name="onboard_sdk_permission_open_setting_camera_title">Allow Incode to access your camera</string>
<string name="onboard_sdk_permission_open_setting_camera_subtitle">This lets you capture your documents in order to complete the process.</string>
<string name="onboard_sdk_permission_open_setting_action">Open settings</string>
<string name="onboard_sdk_permission_allow_permission_action">Allow permission</string>

<!-- IdCaptureCamera -->
<string name="onboard_sdk_id_capture_box_hint_id_not_aligned">ID is not aligned</string>
<string name="onboard_sdk_id_capture_box_hint_id_not_aligned_subtitle">Center your ID inside the frame</string>

<string name="onboard_sdk_id_capture_box_hint_id_blurry">ID too blurry</string>
<string name="onboard_sdk_id_capture_box_hint_id_blurry_subtitle">Zoom in and out, or tap on the ID</string>

<string name="onboard_sdk_id_capture_box_hint_id_glare">ID with glare</string>
<string name="onboard_sdk_id_capture_box_hint_id_glare_subtitle">Find a better lighting to avoid reflections</string>

<string name="onboard_sdk_id_capture_box_hint_id_too_dark">Image too dark</string>
<string name="onboard_sdk_id_capture_box_hint_id_too_dark_subtitle">Find a place with better lighting</string>

<string name="onboard_sdk_id_capture_fill_the_frame_id">Frame the front of your ID</string>
<string name="onboard_sdk_id_capture_fill_the_frame_passport">Fill the frame with your passport</string>
<string name="onboard_sdk_id_capture_fill_the_frame_back_id">Frame the back of your ID</string>
<string name="onboard_sdk_id_capture_manual_capture_instructions">1. Fill the frame with your ID\n2. Press the button</string>
<string name="onboard_sdk_id_capture_manual_capture_voice_over">Now using manual capture mode. Use manual capture button to capture ID.</string>
<string name="onboard_sdk_manual_capture_btn">Manual capture</string>

<string name="onboard_sdk_id_capture_box_hint_wrong_id_side_front">Show the front of ID</string>
<string name="onboard_sdk_id_capture_box_hint_wrong_id_side_front_subtitle">Flip your ID to show its front side</string>

<string name="onboard_sdk_id_capture_box_hint_wrong_id_side_back">Show the back of ID</string>
<string name="onboard_sdk_id_capture_box_hint_wrong_id_side_back_subtitle">Flip your ID to show its reverse side</string>

<string name="onboard_sdk_id_capture_hint_photo_will_be_taken">The capture will happen automatically</string>

<string name="onboard_sdk_id_capture_hint_taking_photo">Taking photo…</string>
<string name="onboard_sdk_id_capture_hint_do_not_move">Don’t move your ID for a few seconds</string>

<string name="onboard_sdk_id_capture_review_photo_title">Review your photo</string>
<string name="onboard_sdk_id_capture_review_photo_subtitle">Ensure that the text on the ID is readable and that the photo is sharp and without glare.</string>
<string name="onboard_sdk_id_capture_review_photo_btn_retake">Retake</string>
<string name="onboard_sdk_id_capture_review_photo_btn_continue">@string/onboard_sdk_btn_continue</string>

<string name="onboard_sdk_id_capture_successfully_processed">Successfully processed!</string>
<string name="onboard_sdk_id_capture_successfully_captured">Successfully captured!</string>
<string name="onboard_sdk_id_capture_now_capture_back">Now let’s capture the back</string>
<string name="onboard_sdk_id_capture_now_capture_front">Now let’s capture the front</string>
<string name="onboard_sdk_id_capture_now_capture_continue">Let’s continue</string>
<string name="onboard_sdk_id_capture_show_the_back">Show the back of your ID</string>

<string name="onboard_sdk_id_capture_common_issues_title">Common issues</string>
<string name="onboard_sdk_id_capture_common_issues_glare_title">Glare present</string>
<string name="onboard_sdk_id_capture_common_issues_glare_subtitle">Tilt the ID slightly up or down to minimize the reflection</string>
<string name="onboard_sdk_id_capture_common_issues_blur_title">Blur present</string>
<string name="onboard_sdk_id_capture_common_issues_blur_subtitle">Move ID further away or closer to your phone until the image is focused</string>
<string name="onboard_sdk_id_capture_common_issues_info_not_readable_title">Info is not readable</string>
<string name="onboard_sdk_id_capture_common_issues_info_not_readable_subtitle">Minimize camera shake by holding your phone steady</string>
<string name="onboard_sdk_id_capture_common_issues_try_again_button">@string/onboard_sdk_try_again</string>

<string name="onboard_sdk_id_capture_analyzing">Analyzing…</string>
<string name="onboard_sdk_id_capture_processing">Processing…</string>
<string name="onboard_sdk_id_capture_uploading">Uploading…</string>

<string name="onboard_sdk_id_capture_scan_the_front">Scan the front</string>
<string name="onboard_sdk_id_capture_scan_the_back">Scan the back</string>
<string name="onboard_sdk_id_capture_retake_scan">Try again</string>

<!-- IdCapture Accepted Documents (customizing these strings is not recommended) -->
<string name="onboard_sdk_id_capture_accepted_documents_unknown">Unknown</string>
<string name="onboard_sdk_id_capture_accepted_documents_passport">Passport</string>
<string name="onboard_sdk_id_capture_accepted_documents_visa">Visa</string>
<string name="onboard_sdk_id_capture_accepted_documents_drivers_license">Driver\'s License</string>
<string name="onboard_sdk_id_capture_accepted_documents_identification_card">Identification Card</string>
<string name="onboard_sdk_id_capture_accepted_documents_permit">Permit</string>
<string name="onboard_sdk_id_capture_accepted_documents_currency">Currency</string>
<string name="onboard_sdk_id_capture_accepted_documents_residence_document">Residence Document</string>
<string name="onboard_sdk_id_capture_accepted_documents_travel_document">Travel Document</string>
<string name="onboard_sdk_id_capture_accepted_documents_birth_certificate">Birth Certificate</string>
<string name="onboard_sdk_id_capture_accepted_documents_vehicle_registration">Vehicle Registration</string>
<string name="onboard_sdk_id_capture_accepted_documents_other">Other</string>
<string name="onboard_sdk_id_capture_accepted_documents_weapon_license">Weapon License</string>
<string name="onboard_sdk_id_capture_accepted_documents_tribal_identification">Tribal Identification</string>
<string name="onboard_sdk_id_capture_accepted_documents_voter_identification">Voter Identification</string>
<string name="onboard_sdk_id_capture_accepted_documents_military">Military</string>
<string name="onboard_sdk_id_capture_accepted_documents_tax_identification">Tax Identification</string>
<string name="onboard_sdk_id_capture_accepted_documents_federal_id">Federal ID</string>
<string name="onboard_sdk_id_capture_accepted_documents_medical_card">Medical Card</string>

<!-- GeolocationActivity -->
<string name="onboard_sdk_determine_location">We need to determine your current location</string>
<string name="onboard_sdk_current_location_label">You are currently in:</string>
<string name="onboard_sdk_location_unavailable">Location not\ndetermined</string>
<string name="onboard_sdk_btn_finish">Finish</string>
<string name="onboard_sdk_geolocation_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- Geolocation v2 -->
<string name="onboard_sdk_geolocation_allow_location_title">Allow location access</string>
<string name="onboard_sdk_geolocation_allow_location_subtitle">to complete the process</string>
<string name="onboard_sdk_geolocation_btn_skip_this_step">Skip this step</string>
<string name="onboard_sdk_geolocation_fetching_title">Determining your location…</string>
<string name="onboard_sdk_geolocation_location_unavailable_title">Unable to verify your location</string>
<string name="onboard_sdk_geolocation_location_unavailable_subtitle">Your location signal may be weak or not\naccurate enough. Please move to an area with better signal and try again.</string>
<string name="onboard_sdk_geolocation_no_network_title">No internet connection</string>
<string name="onboard_sdk_geolocation_no_network_subtitle">Wait for the internet to return to continue the process or connect to an available network.</string>
<string name="onboard_sdk_geolocation_refresh">Refresh</string>
<string name="onboard_sdk_geolocation_btn_quit_process">Quit process</string>

<!-- SelfieActivity -->
<string name="onboard_sdk_face_scan_custom_message"> </string>
<string name="onboard_sdk_face_scan_manual_capture_instructions">Align your face within the silhouette and press the button to capture</string>
<string name="onboard_sdk_face_scan_not_operational">Face scan not ready</string>
<string name="onboard_sdk_face_scan_get_ready">Get ready…</string>
<string name="onboard_sdk_face_scan_low_image_quality">Ensure your face is clearly visible with no obstructions</string>
<string name="onboard_sdk_face_scan_face_occlusion_detected">Remove anything covering your face</string>
<string name="onboard_sdk_face_scan_warn_selfie_too_dark">Too dark</string>
<string name="onboard_sdk_mask_check_info">Put on your\nface mask</string>
<string name="onboard_sdk_feedback_remove_lenses">Take off your glasses</string>
<string name="onboard_sdk_feedback_face_mask_detected">Face mask detected</string>
<string name="onboard_sdk_feedback_open_eyes">Keep your eyes open</string>
<string name="onboard_sdk_feedback_remove_head_cover">Remove head coverings such as hats and caps</string>
<string name="onboard_sdk_feedback_multiple_faces_detected">Make sure you are the only person in the frame</string>
<string name="onboard_sdk_feedback_position_your_face">Look at the camera</string>
<string name="onboard_sdk_feedback_position_your_face_for_age_estimation">Look at the camera to estimate your age</string>
<string name="onboard_sdk_feedback_face_tilted">Don’t tilt your head</string>
<string name="onboard_sdk_feedback_face_rotated_left">Turn right</string>
<string name="onboard_sdk_feedback_face_rotated_right">Turn left</string>
<string name="onboard_sdk_feedback_align_face">Align your face within the silhouette and look at the camera</string>
<string name="onboard_sdk_feedback_blurred_crop">Too blurry.\nClean the camera and hold still.</string>
<string name="onboard_sdk_feedback_face_too_far">Move closer</string>
<string name="onboard_sdk_feedback_face_too_close">Move away</string>
<string name="onboard_sdk_feedback_taking_photo">Don’t move!\nTaking photo…</string>
<string name="onboard_sdk_processing">Processing…</string>
<string name="onboard_sdk_spoof_detected">Poor conditions for selfie. Try in another place.</string>
<string name="onboard_sdk_voice_over_feedback_camera_activated">Front camera activated</string>
<string name="onboard_sdk_voice_over_feedback_blurred_crop">Image not focused, adjust</string>
<string name="onboard_sdk_voice_over_feedback_face_too_close">Move phone further, please.</string>
<string name="onboard_sdk_voice_over_feedback_face_too_far">Move phone closer to you, please.</string>
<string name="onboard_sdk_voice_over_feedback_open_eyes">Keep your eyes open</string>
<string name="onboard_sdk_voice_over_feedback_remove_head_cover">Remove head coverings such as hats and caps</string>
<string name="onboard_sdk_voice_over_feedback_remove_lenses">Take off your glasses</string>
<string name="onboard_sdk_voice_over_feedback_face_mask_detected">Take off your face mask</string>
<string name="onboard_sdk_voice_over_feedback_face_tilted">Don’t tilt your head</string>
<string name="onboard_sdk_voice_over_feedback_face_rotated_left">Turn right a bit</string>
<string name="onboard_sdk_voice_over_feedback_face_rotated_right">Turn left a bit</string>
<string name="onboard_sdk_voice_over_feedback_align_face">Hold phone in front of your face</string>
<string name="onboard_sdk_voice_over_feedback_multiple_faces_detected">@string/onboard_sdk_feedback_multiple_faces_detected</string>
<string name="onboard_sdk_voice_over_feedback_face_scan_not_operational">@string/onboard_sdk_face_scan_not_operational</string>
<string name="onboard_sdk_voice_over_feedback_too_dark">@string/onboard_sdk_validation_warn_id_too_dark</string>
<string name="onboard_sdk_voice_over_face_scan_enter_manual_mode">Double tap anywhere on the screen to capture</string>
<string name="onboard_sdk_voice_over_face_scan_get_ready">Get ready…</string>
<string name="onboard_sdk_voice_over_face_scan_low_image_quality">Ensure your face is clearly visible with no obstructions</string>
<string name="onboard_sdk_voice_over_face_scan_face_occlusion_detected">Make sure nothing is covering your face</string>

<!-- SignatureFormActivity -->
<string name="onboard_sdk_signature_title">Digital signature</string>
<string name="onboard_sdk_signature_description">Please sign in the box below to create your digital signature for signing the document.</string>
<string name="onboard_sdk_signature_sign_here">Sign here</string>
<string name="onboard_sdk_signature_btn_clear_canvas">Clear canvas</string>
<string name="onboard_sdk_signature_btn_done">Done</string>

<!-- VideoSelfieActivity -->
<string name="onboard_sdk_video_selfie_feedback_selfie">Look at the camera</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_processing">Processing…</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_success">Looking good!</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_spoof_detected">Poor conditions for selfie, try in another place</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_lenses_detected">Glasses detected</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_mask_detected">Mask detected</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_error_continue">Continuing the flow. Please wait…</string>
<string name="onboard_sdk_video_selfie_feedback_voice_consent">Say\n“%1$s”\nout loud</string>
<string name="onboard_sdk_video_selfie_recording_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_video_selfie_default_question_1">Say your full name out loud</string>
<string name="onboard_sdk_video_selfie_default_question_2">Say your address out loud</string>
<string name="onboard_sdk_video_selfie_default_question_3">Say your gender out loud</string>
<string name="onboard_sdk_video_selfie_default_answer_1"></string>
<string name="onboard_sdk_video_selfie_default_answer_2"></string>
<string name="onboard_sdk_video_selfie_default_answer_3"></string>
<string name="onboard_sdk_video_selfie_default_consent">I accept the terms &amp; conditions</string>
<string name="onboard_sdk_vs_switch_to_back_camera">Switching to back camera…</string>
<string name="onboard_sdk_vs_switch_to_front_camera">Switching to front camera…</string>
<string name="onboard_sdk_vs_improving_resolution">Improving resolution…</string>
<string name="onboard_sdk_vs_custom_message"> </string>
<string name="onboard_sdk_video_selfie_feedback_selfie_no_match">No match. Try again.</string>
<string name="onboard_sdk_video_selfie_feedback_id_processing">Processing…</string>
<string name="onboard_sdk_video_selfie_feedback_id_scan_failed">ID scan failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_id_scan_failed">ID scan failed</string>
<string name="onboard_sdk_video_selfie_feedback_id_type_match_failed">ID type mismatch. Please show the same ID.</string>
<string name="onboard_sdk_video_selfie_final_feedback_id_type_match_failed">ID type mismatch</string>
<string name="onboard_sdk_video_selfie_feedback_id_photo_verification_failed">ID photo verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_feedback_final_id_photo_verification_failed">ID photo verification failed</string>
<string name="onboard_sdk_video_selfie_feedback_id_name_verification_failed">Name verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_feedback_final_id_name_verification_failed">Name verification failed</string>
<string name="onboard_sdk_video_selfie_feedback_passport_scan_failed">Scan failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_scan_failed">Scan failed</string>
<string name="onboard_sdk_video_selfie_feedback_passport_type_match_failed">ID type mismatch. Please show the same ID.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_type_match_failed">ID type mismatch</string>
<string name="onboard_sdk_video_selfie_feedback_passport_photo_verification_failed">Passport photo verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_photo_verification_failed">Passport photo verification failed</string>
<string name="onboard_sdk_video_selfie_feedback_passport_name_verification_failed">Name verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_name_verification_failed">Name verification failed</string>
<string name="onboard_sdk_video_selfie_question_error_title">Something went wrong</string>
<string name="onboard_sdk_video_selfie_question_error_suggestion_1">Be in a place with less ambient noise</string>
<string name="onboard_sdk_video_selfie_question_error_suggestion_2">Preferably use the microphone of your headphones</string>
<string name="onboard_sdk_video_selfie_question_error_suggestion_3">Be very clear with the pronunciation</string>
<string name="onboard_sdk_speech_to_text_btn_try_again">Try Again</string>
<string name="onboard_sdk_video_selfie_uploading">Uploading video…</string>
<string name="onboard_sdk_video_selfie_upload_success">Video Successfully Uploaded</string>
<string name="onboard_sdk_video_selfie_upload_failed">Processing failed…</string>
<string name="onboard_sdk_video_selfie_upload_failed_subtitle">Something went wrong processing your video selfie. Please try again.</string>
<string name="onboard_sdk_video_selfie_upload_processing_retry">Retry</string>
<string name="onboard_sdk_video_selfie_feedback_no_network">No internet connection</string>
<string name="onboard_sdk_video_selfie_allow_screen_recording_title">For legal reasons, we need you to</string>
<string name="onboard_sdk_video_selfie_allow_screen_recording_subtitle">\“Allow screen recording\“ and \“Allow Microphone\”</string>
<string name="onboard_sdk_video_selfie_allow_screen_recording_subtitle_highlight">\u0020and\u0020</string>
<string name="onboard_sdk_video_selfie_start">Start video selfie</string>
<string name="onboard_sdk_video_selfie_tap_to_answer">Tap to answer</string>
<string name="onboard_sdk_video_selfie_tap_when_done">Tap when done</string>
<string name="onboard_sdk_video_selfie_tap_to_speak">Tap to speak</string>
<string name="onboard_sdk_video_selfie_press_to_continue">Once said, press to continue</string>
<string name="onboard_sdk_video_selfie_answer_out_loud">Please answer out loud</string>
<string name="onboard_sdk_video_selfie_say_out_loud">Please say out loud</string>
<string name="onboard_sdk_video_selfie_voice_consent_success">All good!</string>
<string name="onboard_sdk_video_selfie_upload_modules_partially_complete">Not all modules have been completed…</string>
<string name="onboard_sdk_video_selfie_upload_processing">Kindly hold on and refrain from closing this, as it may take some time to finish…</string>
<string name="onboard_sdk_video_selfie_switch_to_back_camera">Switching to back camera</string>
<string name="onboard_sdk_video_selfie_switch_to_front_camera">Switching to front camera</string>
<string name="onboard_sdk_video_selfie_improving_resolution">Improving resolution</string>
<string name="onboard_sdk_video_selfie_voice_consent_dialog_title">Finished speaking?</string>
<string name="onboard_sdk_video_selfie_voice_consent_dialog_description">Did you say \"%1$s?\" If you haven’t, please try again.</string>
<string name="onboard_sdk_video_selfie_center_face_in_frame">Center face in frame to continue</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_title">Microphone permissions are legally required to continue</string>
<string name="onboard_sdk_video_selfie_allow_permissions">Allow permissions</string>
<string name="onboard_sdk_video_selfie_btn_quit_process">Quit process</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_title">@string/onboard_sdk_video_selfie_allow_permissions</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_subtitle">To continue with the onboarding process, we will need you to enable:</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_instructions_list_title">Microphone permission</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_instructions_item_1">Open settings</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_instructions_item_2">Tap on Apps &amp; Notifications or Apps</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_instructions_item_3">Tap on the name of this app</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_instructions_item_4">Select App Permissions or Permission Manager</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_instructions_item_5">Toggle the switch</string>
<string name="onboard_sdk_video_selfie_allow_audio_permissions_mandatory_dialog_disclaimer">Remember, the specific steps might vary based on your device and the version of the operating system it’s running.</string>
<string name="onboard_sdk_video_selfie_face_match_fail">Faces do not match</string>

<!-- VideoSelfieChecksActivity -->
<string name="onboard_sdk_video_selfie_check_recording_permission">Give recording permission</string>
<string name="onboard_sdk_video_selfie_check_front_id_scan">Scan the front of ID</string>
<string name="onboard_sdk_video_selfie_check_back_id_scan">Scan the back of ID</string>
<string name="onboard_sdk_video_selfie_check_selfie_scan">Look at your front camera</string>
<string name="onboard_sdk_video_selfie_check_random_questions">Answer some questions out loud</string>
<string name="onboard_sdk_video_selfie_check_voice_consent">Speak the words displayed on the screen</string>
<string name="onboard_sdk_video_selfie">Video selfie</string>
<string name="onboard_sdk_video_selfie_checks_description">For legal reasons, we must recheck your documents. You’ll be requested to:</string>

<!-- VoiceConsentDialog -->
<string name="onboard_sdk_voice_consent_dialog_button_done">Yes, I’m done</string>
<string name="onboard_sdk_voice_consent_dialog_button_try_again">Try again</string>

<!-- ExitDialog -->
<string name="onboard_sdk_exit_dialog_title">Are you sure you want to quit?</string>
<string name="onboard_sdk_exit_dialog_message">This will quit the process and all the progress will be lost.</string>
<string name="onboard_sdk_exit_dialog_positive_button">Quit</string>
<string name="onboard_sdk_exit_dialog_negative_button">Get back</string>

<!-- Edit OCR screen -->
<string name="onboard_sdk_edit_ocr_title">Please check your data</string>
<string name="onboard_sdk_edit_ocr_document">Document number</string>
<string name="onboard_sdk_edit_ocr_expiry_date">Expiry Date</string>
<string name="onboard_sdk_edit_ocr_date_of_birth">Date of Birth</string>

<!-- NFC Symbol Confirmation screen -->
<string name="onboard_sdk_epassport_filter_title">Is this symbol visible on your passport cover?</string>
<string name="onboard_sdk_eid_filter_title">Is this symbol visible on the front or back of your ID?</string>

<!-- No NFC Hardware screen -->
<string name="onboard_sdk_no_nfc_hardware_title">We’re sorry, you’re unable to continue the process on this phone</string>
<string name="onboard_sdk_no_nfc_hardware_instruction">Your phone doesn’t have the ability to scan the chip in the document. Please try again using a different phone.</string>

<!-- NFC Scanning screen -->
<string name="onboard_sdk_scan_passport_title_start">Let’s scan the passport chip</string>
<string name="onboard_sdk_scan_passport_title_no_worries">No worries, let’s try again</string>
<string name="onboard_sdk_scan_passport_title_not_working">If that didn’t work…</string>
<string name="onboard_sdk_scan_passport_title_still_not_working">If that still didn’t work…</string>
<string name="onboard_sdk_scan_passport_instruction_start">Hold your phone close to the front cover.</string>
<string name="onboard_sdk_scan_passport_instruction_start_front_text_to_highlight">front cover</string>
<string name="onboard_sdk_scan_passport_instruction_front">Remove your passport from any folder or cover and hold your phone close to the front cover of your passport.</string>
<string name="onboard_sdk_scan_passport_instruction_try">Try holding your phone close to the %1$s of your passport. If nothing happens, try slowly moving your phone across the page.</string>
<string name="onboard_sdk_scan_passport_instruction_first_text_to_highlight">first page</string>
<string name="onboard_sdk_scan_passport_instruction_photo_text_to_highlight">photo page</string>
<string name="onboard_sdk_scan_passport_instruction_back_text_to_highlight">inner back page</string>
<string name="onboard_sdk_scan_id_title_start">Read the chip on the ID</string>
<string name="onboard_sdk_scan_id_instruction_first">1. Hold the ID against the phone’s center back.</string>
<string name="onboard_sdk_scan_id_instruction_second">2. Make sure your ID and phone are touching.</string>
<string name="onboard_sdk_scan_id_instruction_third">3. Hold still until scanning is complete.</string>
<string name="onboard_sdk_scan_id_instruction_first_text_to_highlight">phone’s center back</string>
<string name="onboard_sdk_scan_id_instruction_second_text_to_highlight">are touching</string>
<string name="onboard_sdk_scan_id_instruction_third_text_to_highlight">Hold still</string>
<string name="onboard_sdk_btn_start_scan">Start scanning</string>
<string name="onboard_sdk_dialog_nfc_access_mandatory_title">Incode Welcome needs\nNFC access to work</string>
<string name="onboard_sdk_dialog_nfc_access_mandatory_subtitle">Please open Settings and enable NFC</string>

<!-- Scanning Bottom Sheet -->
<string name="onboard_sdk_scan_bottom_sheet_title_ready">Ready to scan</string>
<string name="onboard_sdk_scan_bottom_sheet_title_scanning">Scanning, hold still…</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_ready">Once you see a change on the screen, keep the phone steady</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_scanning">Scanning, don’t move your phone</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_scanned">Scan successful</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_uploading">Uploading, please wait…</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_failed">We couldn’t scan the chip</string>

<!-- Don't Move Dialog -->
<string name="onboard_sdk_dont_move_dialog_title">Keep your phone and document still</string>
<string name="onboard_sdk_dont_move_dialog_instruction">Make sure you don’t move while scanning is in progress.</string>

<!-- Common NFC Scanning issues Screen -->
<string name="onboard_sdk_nfc_scan_help_common_issues">Common issues</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_1">Passport is covered</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_2">Phone is far away from the document</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_3">Chip is on another page in the passport</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_4">Moving the phone while scanning has initiated</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_5">Phone cover interferes with the scan</string>
<string name="onboard_sdk_nfc_btn_ok_try_again">OK, try again</string>

<!-- NFC Scan results Screen -->
<string name="onboard_sdk_document_nfc_scan_result_success">Document chip scan succeeded</string>
<string name="onboard_sdk_document_nfc_scan_result_failure">Unable to authenticate document chip</string>

<!-- OTHER STRINGS -->
<string name="onboard_sdk_success">Success</string>
<string name="onboard_sdk_try_again">Try again</string>
<string name="onboard_sdk_error_retry">Try again</string>

<string name="onboard_sdk_no_internet_title">No internet connection</string>
<string name="onboard_sdk_no_internet_connection">Wait for the internet to return to continue the process or connect to an available network.</string>
<string name="onboard_sdk_unknown_server_error">Oops… something went wrong. Please try later.</string>

<!-- OTP -->
<string name="onboard_sdk_generic_otp_veryfing">Verifying…</string>
<string name="onboard_sdk_generic_otp_incorrect_code">Incorrect code. Please try again.</string>
<string name="onboard_sdk_generic_otp_try_again_in_x_seconds">Didn’t receive the code? Try again in %d seconds</string>
<string name="onboard_sdk_generic_otp_try_again">Try again</string>

<!-- SMS OTP -->
<string name="onboard_sdk_sms_otp_title">Verify your phone number</string>
<string name="onboard_sdk_sms_otp_subtitle">Please enter the code we’ve sent via SMS</string>
<string name="onboard_sdk_sms_otp_try_again_or_change_number">Didn’t receive the code? Try again or Change phone number</string>
<string name="onboard_sdk_sms_otp_try_again">Try again</string>
<string name="onboard_sdk_sms_otp_change_phone_number">Change phone number</string>

<!-- SMS OTP V2 -->
<string name="onboard_sdk_sms_otp_headline">Enter the code we’ve sent via SMS</string>
<string name="onboard_sdk_sms_resend_code_or_change_number">Didn’t receive the code? Resend code or Change phone number</string>
<string name="onboard_sdk_sms_otp_resend_code">Resend code</string>
<string name="onboard_sdk_sms_otp_incorrect_code">Invalid code. Please try again.</string>

<!-- MachineLearningConsentActivity -->
<string name="onboard_sdk_ml_consent_title" translatable="false">Machine Learning Consent</string>
<string name="onboard_sdk_ml_consent_checkbox">I confirm that I have read and accept (optional)</string>

<!-- ConferenceConnectionActivity -->
<string name="onboard_sdk_conference_hang_on">Hang on</string>
<string name="onboard_sdk_conference_hang_on_subtitle">We’re connecting you with a representative</string>
<string name="onboard_sdk_conference_average_waiting_time_msg">This usually takes 2 – 3 minutes.</string>
<string name="onboard_sdk_conference_interviewer_name">Thomas Keys</string>
<string name="onboard_sdk_conference_interviewer_connected">connected</string>

<!-- TutorialQRScanActivity -->
<string name="onboard_sdk_qr_tip_title">Locate the QR code inside the document</string>
<string name="onboard_sdk_qr_tip_subtitle">QR code will be read automatically</string>
<string name="onboard_sdk_qr_tip_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- QRScanActivity -->
<string name="onboard_sdk_qr_scan_feedback_top">Place the QR code\ninside the box</string>
<string name="onboard_sdk_qr_scan_help_btn">Help</string>
<string name="onboard_sdk_qr_scan_help_common_issues">Common issues</string>
<string name="onboard_sdk_qr_scan_help_common_issue_1">QR cropped out of frame</string>
<string name="onboard_sdk_qr_scan_help_common_issue_2">QR too close or too far</string>
<string name="onboard_sdk_qr_scan_help_common_issue_3">Bad capture angle</string>
<string name="onboard_sdk_qr_scan_help_common_issue_4">Blurred or damaged QR</string>
<string name="onboard_sdk_qr_scan_help_btn_ok">OK, try again</string>
<string name="onboard_sdk_qr_scan_processing">Processing…</string>
<string name="onboard_sdk_qr_scan_success">Done!</string>
<string name="onboard_sdk_qr_scan_failed">QR scan\nunsuccessful!</string>

<!-- IdValidationFeedback -->
<string name="onboard_sdk_validation_on_server_in_progress">Processing…</string>
<string name="onboard_sdk_validation_front_id_validated">ID front validated!</string>
<string name="onboard_sdk_validation_back_id_validated">All done!</string>
<string name="onboard_sdk_validation_passport_validated">All done!</string>
<string name="onboard_sdk_validation_glare_detected">Glare present</string>
<string name="onboard_sdk_validation_glare_detected_hint">Tilt the ID slightly up or down to minimize the reflection</string>
<string name="onboard_sdk_validation_sharpness_failed">Blur present</string>
<string name="onboard_sdk_validation_sharpness_failed_hint">Move ID further away or closer to your phone until the image is focused</string>
<string name="onboard_sdk_validation_passport_sharpness_failed">Blur present</string>
<string name="onboard_sdk_validation_passport_sharpness_failed_hint">Move passport further away or closer to your phone until the image is focused</string>
<string name="onboard_sdk_validation_wrong_side_id">Wrong ID side captured</string>
<string name="onboard_sdk_validation_wrong_side_front_id_hint">Please capture the front side of the ID</string>
<string name="onboard_sdk_validation_wrong_side_back_id_hint">Please capture the back side of the ID</string>
<string name="onboard_sdk_validation_shadow_failed">Shadow detected</string>
<string name="onboard_sdk_validation_classification_failed">ID scan failed</string>
<string name="onboard_sdk_validation_passport_classification_failed">Passport scan failed</string>
<string name="onboard_sdk_validation_front_id_scan_failure">Front ID scan fail</string>
<string name="onboard_sdk_validation_back_id_scan_failure">Back ID scan fail</string>
<string name="onboard_sdk_validation_passport_scan_failure">Passport scan fail</string>
<string name="onboard_sdk_validation_front_id_scan_success">Front ID scan success</string>
<string name="onboard_sdk_validation_back_id_scan_success">Back ID scan success</string>
<string name="onboard_sdk_validation_front_id_no_face">No face found in ID</string>
<string name="onboard_sdk_validation_id_type_unacceptable">ID type is not accepted</string>
<string name="onboard_sdk_validation_id_type_unacceptable_hint">Please try with a different document</string>
<string name="onboard_sdk_validation_btn_try_again">Try Again</string>
<plurals name="onboard_sdk_validation_attempts_remaining">
    <item formatted="true" quantity="one">%d attempt remaining</item>
    <item formatted="true" quantity="other">%d attempts remaining</item>
</plurals>
<string name="onboard_sdk_validation_no_attempts_remaining">No attempts remaining</string>
<string name="onboard_sdk_validation_error_button_text">Scan your ID</string>
<string name="onboard_sdk_validation_btn_retake_photo">Retake Photo</string>
<string name="onboard_sdk_validation_btn_use_another_id">Use another ID</string>
<string name="onboard_sdk_validation_capture_failed_title">Couldn’t capture</string>
<string name="onboard_sdk_validation_validation_referred_title">Referred to an executive</string>
<string name="onboard_sdk_validation_validation_referred_subtitle">We will notify you with the result</string>
<string name="onboard_sdk_validation_no_document_detected_title">No document detected</string>

<!-- IdValidationActivity -->
<string name="onboard_sdk_id_scan_failed_common_issues">Common issues</string>
<string name="onboard_sdk_id_scan_failed_common_issue_1">Shadows or\nglare present</string>
<string name="onboard_sdk_id_scan_failed_common_issue_2">Photo\nis blurred</string>
<string name="onboard_sdk_id_scan_failed_common_issue_3">Info is\nnot readable</string>
<string name="onboard_sdk_id_scan_help_glare_present_title">Glare present</string>
<string name="onboard_sdk_id_scan_help_glare_present_hint">Tilt the ID slightly up or down to minimize the reflection</string>
<string name="onboard_sdk_id_scan_help_blur_present_title">Blur present</string>
<string name="onboard_sdk_id_scan_help_blur_present_hint">Move ID further away or closer to your phone until the image is focused</string>
<string name="onboard_sdk_id_scan_help_info_not_readable_title">Info is not readable</string>
<string name="onboard_sdk_id_scan_help_info_not_readable_hint">Minimize camera shake by holding your phone steady</string>
<string name="onboard_sdk_validation_referred_to_executive_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_validation_id_readability_failed">Info is not readable</string>
<string name="onboard_sdk_validation_passport_readability_failed">Info is not readable</string>
<string name="onboard_sdk_validation_id_readability_failed_hint">Minimize camera shake by holding your phone steady</string>
<string name="onboard_sdk_validation_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- ProcessIdActivity -->
<string name="onboard_sdk_process_id_loading_title">Hold on a sec…</string>
<string name="onboard_sdk_process_id_loading_subtitle">We’re verifying your identity</string>

<!-- IdInfoActivity -->
<string name="onboard_sdk_id_info_retake">Retake</string>
<string name="onboard_sdk_id_info_title">Please check your data</string>
<string name="onboard_sdk_id_info_full_name">Full name</string>
<string name="onboard_sdk_id_info_date_of_birth">Date of birth</string>
<string name="onboard_sdk_id_info_sex">Sex</string>
<string name="onboard_sdk_id_info_male">Male</string>
<string name="onboard_sdk_id_info_female">Female</string>
<string name="onboard_sdk_id_info_address">Address</string>
<string name="onboard_sdk_id_info_document_number">Document number</string>
<string name="onboard_sdk_id_info_expiry_date">Expiry date</string>
<string name="onboard_sdk_id_info_error_message">An error occurred while submitting OCR data.</string>

<!-- TaxId Validation -->
<string name="onboard_sdk_tax_id">Tax ID</string>
<string name="onboard_sdk_enter_tax_id">Enter your Tax ID</string>
<string name="onboard_sdk_tax_id_validation_in_progress">Validating your Tax ID</string>
<string name="onboard_sdk_tax_id_verified">Tax ID verified!</string>
<string name="onboard_sdk_tax_id_not_verified">Tax ID not verified!</string>

<!-- CURP Validation -->
<string name="onboard_sdk_enter_curp">Enter your CURP</string>
<string name="onboard_sdk_confirm_curp">Confirm your CURP</string>
<string name="onboard_sdk_curp">CURP</string>
<string name="onboard_sdk_curp_not_valid">Invalid CURP</string>
<string name="onboard_sdk_no_curp">I don’t have my CURP</string>
<string name="onboard_sdk_btn_generate_curp">Generate</string>

<string name="onboard_sdk_curp_validation_in_progress">Verifying your CURP…</string>
<string name="onboard_sdk_curp_verified">CURP verified!</string>
<string name="onboard_sdk_curp_not_verified">CURP not verified</string>

<string name="onboard_sdk_curp_generating_in_progress">Generating CURP…</string>
<string name="onboard_sdk_curp_generating_failure_title">Couldn’t generate CURP</string>
<string name="onboard_sdk_curp_generating_failure_subtitle">Please check entered information</string>
<string name="onboard_sdk_curp_generating_failure_btn_edit_information">Edit information</string>

<string name="onboard_sdk_curp_generate_title">Generate your CURP</string>
<string name="onboard_sdk_curp_first_name">Name</string>
<string name="onboard_sdk_curp_first_last_name">Last name</string>
<string name="onboard_sdk_curp_second_last_name">Second last name</string>
<string name="onboard_sdk_curp_gender">Gender</string>
<string name="onboard_sdk_curp_birth_date">Date of birth</string>
<string name="onboard_sdk_curp_state">Birth state</string>
<string name="onboard_sdk_btn_generate">Generate</string>
<string name="onboard_sdk_curp_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- TutorialAgeAssurance -->
<string name="onboard_sdk_tutorial_age_assurance_title">Age verification</string>
<string name="onboard_sdk_tutorial_age_assurance_subtitle">We need to scan your ID to know your age</string>
<string name="onboard_sdk_tutorial_age_assurance_label_1">Show your ID and scan it</string>
<string name="onboard_sdk_tutorial_age_assurance_label_2">We only use the date of birth information</string>
<string name="onboard_sdk_tutorial_age_assurance_label_3">The rest of your information will be deleted to ensure your privacy</string>
<string name="onboard_sdk_tutorial_age_assurance_btn_continue">@string/onboard_sdk_btn_continue</string>

<!-- SelfieActivity -->
<string name="onboard_sdk_enroll_success">Success!</string>
<string name="onboard_sdk_face_captured">Face captured!</string>
<string name="onboard_sdk_login_success">Success</string>
<string name="onboard_sdk_login_failed">Access denied</string>
<string name="onboard_sdk_mask_check_success">Success</string>
<string name="onboard_sdk_mask_check_failed">Face mask not detected</string>
<string name="onboard_sdk_selfie_manual_capture_voice_over">Now using manual capture mode. Use manual capture button to capture selfie.</string>
<string name="onboard_sdk_selfie_uploading">Uploading…</string>
<string name="onboard_sdk_selfie_verifying">Verifying…</string>
<string name="onboard_sdk_face_scan_error_4010">Make sure you are the only one in the frame</string>
<string name="onboard_sdk_face_scan_error_4019">Position your face in the center of the frame</string>
<string name="onboard_sdk_face_scan_error_1003">Position your face in the center of the frame</string>
<string name="onboard_sdk_face_scan_error_3004">Position your face in the center of the frame</string>
<string name="onboard_sdk_face_scan_error_3005">Move closer so your face fits the frame</string>
<string name="onboard_sdk_face_scan_error_3006">Photo blurry. Clean the lens and hold still.</string>
<string name="onboard_sdk_face_scan_error_3007">Too dark. Try moving elsewhere.</string>
<string name="onboard_sdk_face_scan_error_3008">Something went wrong. Please try later.</string>
<string name="onboard_sdk_face_scan_error_3009">Something went wrong. Please try later.</string>
<string name="onboard_sdk_face_scan_error_3010">Couldn’t capture. Try moving elsewhere.</string>
<string name="onboard_sdk_face_scan_error_4077">Stay still for the capture, and make sure your face is clear and visible</string>
<string name="onboard_sdk_face_scan_no_network">No internet connection</string>
<string name="onboard_sdk_face_scan_failed_feedback_face_not_aligned_title">Face not aligned</string>
<string name="onboard_sdk_face_scan_failed_feedback_face_not_aligned_hint">Make sure you align your face with the white silhouette</string>
<string name="onboard_sdk_face_scan_failed_feedback_lenses_detected_title">Lenses detected</string>
<string name="onboard_sdk_face_scan_failed_feedback_lenses_detected_hint">Take off your glasses to ensure a clear capture</string>
<string name="onboard_sdk_face_scan_failed_feedback_face_mask_detected_title">Face mask detected</string>
<string name="onboard_sdk_face_scan_failed_feedback_face_mask_detected_hint">Take off your face mask to ensure a clear capture</string>
<string name="onboard_sdk_face_scan_failed_feedback_too_dark_title">Too dark</string>
<string name="onboard_sdk_face_scan_failed_feedback_too_dark_hint">Adjust the lighting or move closer to a light source</string>
<string name="onboard_sdk_face_scan_failed_feedback_eyes_closed_title">Eyes closed</string>
<string name="onboard_sdk_face_scan_failed_feedback_eyes_closed_hint">Keep your eyes open during the capture</string>
<string name="onboard_sdk_face_scan_failed_feedback_head_covered_title">Head covered</string>
<string name="onboard_sdk_face_scan_failed_feedback_head_covered_hint">Remove head coverings such as hats and caps</string>
<string name="onboard_sdk_face_scan_failed_feedback_selfie_capture_failed_title">Selfie capture failed</string>
<string name="onboard_sdk_face_scan_failed_feedback_selfie_capture_failed_hint">We couldn’t capture your selfie. Please try again</string>
<string name="onboard_sdk_face_scan_failed_feedback_selfie_low_quality_title">Low quality conditions</string>
<string name="onboard_sdk_face_scan_failed_feedback_selfie_face_covered_title">Face covered</string>
<string name="onboard_sdk_face_scan_failed_feedback_selfie_face_covered_hint">Make sure your face is clear and visible</string>
<string name="onboard_sdk_face_scan_failed_feedback_selfie_capture_total_failure_hint">Maximum number of attempts reached</string>
<plurals name="onboard_sdk_face_scan_attempts_remaining">
    <item formatted="true" quantity="one">%d attempt remaining</item>
    <item formatted="true" quantity="other">%d attempts remaining</item>
</plurals>
<string name="onboard_sdk_face_scan_retry">Refresh</string>

<!-- FaceMatchActivity -->
<string name="onboard_sdk_recognition_result_title">Verifying identity</string>
<string name="onboard_sdk_recognition_result_id">ID</string>
<string name="onboard_sdk_recognition_result_first_id">First ID</string>
<string name="onboard_sdk_recognition_result_second_id">Second ID</string>
<string name="onboard_sdk_recognition_result_nfc">NFC</string>
<string name="onboard_sdk_recognition_result_selfie">Selfie</string>
<string name="onboard_sdk_recognition_result_success">Matched!</string>
<string name="onboard_sdk_recognition_result_fail">Faces do not match</string>
<string name="onboard_sdk_recognition_result_fail_id">@string/onboard_sdk_recognition_result_fail</string>
<string name="onboard_sdk_recognition_result_fail_nfc">@string/onboard_sdk_recognition_result_fail</string>
<string name="onboard_sdk_recognition_result_liveness_success">Liveness success</string>
<string name="onboard_sdk_recognition_result_liveness_failed">Liveness failed</string>
<string name="onboard_sdk_recognition_result_user_already_exists">User already exists</string>
<string name="onboard_sdk_recognition_result_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_recognition_result_progress_title">Checking your photos</string>
<string name="onboard_sdk_recognition_result_progress_subtitle">This may take a few seconds</string>
<string name="onboard_sdk_questionmark" translatable="false">\?</string>

<!-- ApproveActivity -->
<string name="onboard_sdk_approve_success">Identity confirmed!</string>
<string name="onboard_sdk_approve_fail">Your identity couldn’t be confirmed</string>

<!-- GovernmentValidationActivity -->
<string name="onboard_sdk_ine_validation_in_progress">Connecting to government check…</string>
<string name="onboard_sdk_ine_validation_async">Identity submitted for verification</string>
<string name="onboard_sdk_ine_validation_success">Identity verified!</string>
<string name="onboard_sdk_ine_validation_failure">Identity not\nverified</string>
<string name="onboard_sdk_ine_validation_connection_error">Government check connection error</string>
<string name="onboard_sdk_ine_validation_ine_infrastructure_error">Government check infrastructure error</string>
<string name="onboard_sdk_ine_validation_module_not_supported_error">Module not supported error</string>
<string name="onboard_sdk_ine_validation_missing_document_identifier_error">Missing document identifier</string>
<string name="onboard_sdk_ine_validation_missing_selfie_error">Missing selfie</string>
<string name="onboard_sdk_ine_validation_user_not_found_error">User not found</string>
<string name="onboard_sdk_ine_validation_user_not_in_database">User not in government check DB</string>
<string name="onboard_sdk_ine_validation_insufficient_lookup_data">Insufficient lookup data</string>

<!-- CaptchaActivity -->
<string name="onboard_sdk_btn_submit">Submit</string>
<string name="onboard_sdk_captcha_incorect_code">Incorrect code. Please try again.</string>
<string name="onboard_sdk_captcha_general_error">Something went wrong. Please try again.</string>
<string name="onboard_sdk_captcha_title">Please enter the\n following code</string>
<plurals name="onboard_sdk_captcha_x_seconds_left">
    <item formatted="true" quantity="one">%d second left</item>
    <item formatted="true" quantity="other">%d seconds left</item>
</plurals>
<string name="onboard_sdk_captcha_generating_code">Generating new code…</string>

<!-- VideoConferenceActivity -->
<string name="onboard_sdk_conference_chat_send">Send</string>
<string name="onboard_sdk_chat_hint">Write a message</string>
<string name="onboard_sdk_chat_with">Chat with %1$s</string>

<!-- CustomWatchlistActivity -->
<string name="onboard_sdk_custom_watchlist_uploading_information">Uploading information…</string>
<string name="onboard_sdk_custom_watchlist_processing_subtitle">This won’t take long.</string>
<string name="onboard_sdk_custom_watchlist_result_success">Success</string>
<string name="onboard_sdk_custom_watchlist_result_success_v2">Success!</string>
<string name="onboard_sdk_custom_watchlist_result_fail">Could not process information</string>

<!-- GlobalWatchlistActivity -->
<string name="onboard_sdk_global_watchlist_title">Fill out your credentials</string>
<string name="onboard_sdk_global_watchlist_process_result_description">This might take a while. Please keep the app opened…</string>
<string name="onboard_sdk_global_watchlist_something_went_wrong">Something went wrong</string>
<string name="onboard_sdk_global_watchlist_hint_nationality">Select</string>
<string name="onboard_sdk_global_watchlist_name_form_hint">First Name</string>
<string name="onboard_sdk_global_watchlist_name_form_title">First Name</string>
<string name="onboard_sdk_global_watchlist_name_form_error_message">First name is required</string>
<string name="onboard_sdk_global_watchlist_last_name_form_hint">Last Name</string>
<string name="onboard_sdk_global_watchlist_last_name_form_title">Last Name</string>
<string name="onboard_sdk_global_watchlist_last_name_form_error_message">Last name is required</string>
<string name="onboard_sdk_global_watchlist_country_form_title">Country</string>
<string name="onboard_sdk_global_watchlist_country_form_error_message">Country is required</string>
<string name="onboard_sdk_global_watchlist_dob_form_hint" translatable="false">DD / MM / YYYY</string>
<string name="onboard_sdk_global_watchlist_dob_form_title">Date of Birth</string>
<string name="onboard_sdk_global_watchlist_dob_form_error_message">Date of Birth required</string>

<!-- eKYB -->
<string name="onboard_sdk_ekyb_title">Fill out your business credentials</string>
<string name="onboard_sdk_ekyb_business">Business name</string>
<string name="onboard_sdk_ekyb_error_name_mandatory">Business name cannot be empty</string>
<string name="onboard_sdk_ekyb_house_number">House Number</string>
<string name="onboard_sdk_ekyb_house_number_form_error_message">House number is required</string>
<string name="onboard_sdk_ekyb_street">Street</string>
<string name="onboard_sdk_ekyb_street_form_error_message">@string/onboard_sdk_ekyc_street_form_error_message</string>
<string name="onboard_sdk_ekyb_business_address_2">Address 2 (optional)</string>
<string name="onboard_sdk_ekyb_country">Country</string>
<string name="onboard_sdk_ekyb_country_form_error_message">@string/onboard_sdk_ekyc_country_form_error_message</string>
<string name="onboard_sdk_ekyb_city">City</string>
<string name="onboard_sdk_ekyb_city_form_error_message">@string/onboard_sdk_ekyc_city_form_error_message</string>
<string name="onboard_sdk_ekyb_state">State</string>
<string name="onboard_sdk_ekyb_state_form_error_message">@string/onboard_sdk_ekyc_state_form_error_message</string>
<string name="onboard_sdk_ekyb_zipcode">Postal code</string>
<string name="onboard_sdk_ekyb_zipcode_form_error_message">@string/onboard_sdk_ekyc_postal_form_error_message</string>
<string name="onboard_sdk_ekyb_tax_id">Tax ID number</string>
<string name="onboard_sdk_ekyb_business_failure">Business not verified…</string>
<string name="onboard_sdk_ekyb_btn_confirm">Confirm</string>

<!-- EKYCActivity -->
<string name="onboard_sdk_ekyc_country_us_string">United States</string>
<string name="onboard_sdk_ekyc_country_us_key" translatable="false">US</string>
<string name="onboard_sdk_ekyc_country_br_string">Brazil</string>
<string name="onboard_sdk_ekyc_nationality_brazilian_string">BRAZILIAN</string>
<string name="onboard_sdk_ekyc_nationality_naturalized_brazilian_string">NATURALIZED BRAZILIAN</string>
<string name="onboard_sdk_ekyc_nationality_foreigner_string">FOREIGNER</string>
<string name="onboard_sdk_ekyc_nationality_foreigner_key" translatable="false">foreigner</string>
<string name="onboard_sdk_ekyc_nationality_brazilian_born_abroad_string">BRAZILIAN BORN ABROAD</string>
<string name="onboard_sdk_ekyc_country_form_title">Country</string>
<string name="onboard_sdk_ekyc_country_form_error_message">Country is required</string>
<string name="onboard_sdk_ekyc_name_form_hint">Name</string>
<string name="onboard_sdk_ekyc_name_form_title">First Name</string>
<string name="onboard_sdk_ekyc_name_form_error_message">First name is required</string>
<string name="onboard_sdk_ekyc_last_name_form_hint">Last Name</string>
<string name="onboard_sdk_ekyc_last_name_form_title">Last Name</string>
<string name="onboard_sdk_ekyc_last_name_form_error_message">Last name is required</string>
<string name="onboard_sdk_ekyc_house_number_form_title">House Number</string>
<string name="onboard_sdk_ekyc_house_number_form_hint">House Number</string>
<string name="onboard_sdk_ekyc_house_number_form_error_message">House number is required</string>
<string name="onboard_sdk_ekyc_street_form_hint">Street</string>
<string name="onboard_sdk_ekyc_street_form_title">Street</string>
<string name="onboard_sdk_ekyc_street_form_error_message">Street is required</string>
<string name="onboard_sdk_ekyc_street_house_number_missing_message">House number is required</string>
<string name="onboard_sdk_ekyc_postal_form_title">Postal code</string>
<string name="onboard_sdk_ekyc_postal_form_error_message">Postal code is required</string>
<string name="onboard_sdk_ekyc_postal_format_not_valid_message_us">Please enter a 5 or 9 digit Postal Code</string>
<string name="onboard_sdk_ekyc_postal_format_not_valid_message_br">Please enter a 5 or 8 digit Postal Code</string>
<string name="onboard_sdk_ekyc_state_form_hint">Any State</string>
<string name="onboard_sdk_ekyc_state_form_title">State</string>
<string name="onboard_sdk_ekyc_state_form_error_message">State is required</string>
<string name="onboard_sdk_ekyc_city_form_hint">Any City</string>
<string name="onboard_sdk_ekyc_city_form_title">City</string>
<string name="onboard_sdk_ekyc_city_form_error_message">City is required</string>
<string name="onboard_sdk_ekyc_email_form_hint" translatable="false">email@incode.com</string>
<string name="onboard_sdk_ekyc_email_form_title">Email</string>
<string name="onboard_sdk_ekyc_email_form_error_message">Email is required</string>
<string name="onboard_sdk_ekyc_email_format_not_valid_message">Invalid email format</string>
<string name="onboard_sdk_ekyc_phone_form_title">Phone Number</string>
<string name="onboard_sdk_ekyc_phone_form_error_message">Phone is required</string>
<string name="onboard_sdk_ekyc_phone_format_not_valid_message">Invalid phone format</string>
<string name="onboard_sdk_ekyc_tax_id_form_us_title">SSN</string>
<string name="onboard_sdk_ekyc_tax_id_form_br_title">CPF</string>
<string name="onboard_sdk_ekyc_tax_id_form_us_error_message">SSN is required</string>
<string name="onboard_sdk_ekyc_tax_id_form_br_error_message">CPF is required</string>
<string name="onboard_sdk_ekyc_tax_id_format_not_valid_message_us">Please enter a valid number</string>
<string name="onboard_sdk_ekyc_dob_form_hint" translatable="false">DD / MM / YYYY</string>
<string name="onboard_sdk_ekyc_dob_form_title">Date of Birth</string>
<string name="onboard_sdk_ekyc_dob_form_error_message">Date of Birth required</string>
<string name="onboard_sdk_ekyc_nationality_form_error_message">Nationality is required</string>
<string name="onboard_sdk_ekyc_nationality_form_title">Nationality</string>
<string name="onboard_sdk_ekyc_main_title">Fill out your credentials</string>
<string name="onboard_sdk_ekyc_invalid_text_error_message">This value seems invalid. Please recheck it.</string>
<string name="onboard_sdk_ekyc_loading_message">Verifying…</string>
<string name="onboard_sdk_ekyc_success_message">Verified!</string>
<string name="onboard_sdk_ekyc_fail_message">Person not verified…</string>
<string name="onboard_sdk_ekyc_btn_confirm">Confirm</string>

<!-- ActivityResults -->
<string name="onboard_sdk_error_token_expired">The access token has expired</string>
<string name="onboard_sdk_results_yes">Yes</string>
<string name="onboard_sdk_results_no">No</string>

<string name="onboard_sdk_results_fetching_in_progress">Fetching results…</string>

<string name="onboard_sdk_results_fragment_title_id_verification">ID Verification</string>
<string name="onboard_sdk_results_fragment_title_liveness_check">Liveness Check</string>
<string name="onboard_sdk_results_fragment_title_facial_recognition">Facial Recognition</string>
<string name="onboard_sdk_results_fragment_title_government_validation">Government + Incode Check</string>

<string name="onboard_sdk_results_needs_review">NEEDS REVIEW</string>
<string name="onboard_sdk_id_verification_manual_check_needed">Manual check needed</string>

<string name="onboard_sdk_section_title_photo_security_and_quality">Photo security &amp; quality</string>

<string name="onboard_sdk_section_title_id_specific">ID specific</string>

<string name="onboard_sdk_facial_recognition_label_selfie">Selfie</string>
<string name="onboard_sdk_facial_recognition_label_id">ID Scan</string>

<string name="onboard_sdk_facial_recognition_match">It’s a match!</string>
<string name="onboard_sdk_facial_recognition_mismatch">No match</string>

<string name="onboard_sdk_government_label_selfie">Incode Selfie</string>
<string name="onboard_sdk_government_label_ine">Government Check Data</string>

<string name="onboard_sdk_government_face_match">It’s a match!</string>
<string name="onboard_sdk_government_face_mismatch">No match</string>

<string name="onboard_sdk_section_title_ocr_validation">OCR Validation</string>

<string name="onboard_sdk_choose_provider">Choose provider:</string>
<string name="onboard_sdk_provider_incode">Incode</string>
<string name="onboard_sdk_provider_nom151" translatable="false">NOM-151</string>

<!-- UserConsentActivity -->
<string name="onboard_sdk_user_consent_title">Consent for Biometric Processing</string>
<string name="onboard_sdk_user_consent_description"><![CDATA[
I consent to the capture, collection, enrollment, use, retention, processing, and disclosure of a scan of my face geometry (i.e. faceprint) and information derived from the barcode of the identification card I provide as follows:<br>
<br>
- **Purpose:** verifying my identity pursuant to Incode’s [Privacy Policy](https://policies.incodesmile.com/omni-privacy-mobile/)<br>
<br>
- **Data Collected:** facial geometry/faceprint/image; data contained in/obtained by scanning the barcode of a government-issued identification card provided by me (including, e.g., name, address, DOB, license type, sex, height, weight, eye color, ID number)<br>
<br>
- **Retention Period:** earliest of: (i) so long as necessary for identity verification purposes; or (ii) stated [Data Retention Period](https://policies.incodesmile.com/omni-privacy-mobile/#data-retention) (e.g. IL (3 yrs following last engagement), TX (1 yr following exhaustion of purpose)).
]]>
</string>
<string name="onboard_sdk_btn_reports">Reports</string>
<string name="onboard_sdk_user_consent_btn_finish">I agree</string>
<string name="onboard_sdk_btn_cancel">Cancel</string>
<string name="onboard_sdk_user_consent_checkbox">I have read and agree to Incode’s [Privacy Policy](https://policies.incodesmile.com/omni-privacy-mobile/) and Incode’s [Terms of Use](https://policies.incodesmile.com/terms-of-use/).</string>
<string name="onboard_sdk_user_consent_cancel_dialog_title">User consent is mandatory</string>
<string name="onboard_sdk_user_consent_cancel_dialog_message">Are you sure you want to quit the process?</string>
<string name="onboard_sdk_user_consent_cancel_dialog_button_positive">Quit</string>
<string name="onboard_sdk_user_consent_cancel_dialog_button_negative">Continue</string>
<string name="onboard_sdk_report_not_available">Sorry, report is not available at the moment.</string>
<string name="onboard_sdk_show_report_app_unavailable">Sorry, there is no PDF viewer app installed on this device. Please install it first.</string>
<string name="onboard_sdk_qr_scan_not_operational">QR scan not ready. Please update Google Play Services.</string>

<string name="onboard_sdk_property_tamperCheck">Tamper Check</string>
<string name="onboard_sdk_property_postitCheck">Postit Check</string>
<string name="onboard_sdk_property_alignment">Alignment</string>
<string name="onboard_sdk_property_fakeCheck">Fake Check</string>
<string name="onboard_sdk_property_idLiveness">ID Liveness</string>
<string name="onboard_sdk_property_screenIdLiveness">Screen Id Liveness</string>
<string name="onboard_sdk_property_paperIdLiveness">Paper Id Liveness</string>
<string name="onboard_sdk_property_readabilityCheck">Readability Check</string>
<string name="onboard_sdk_property_balancedLightFront">Balanced light (front side)</string>
<string name="onboard_sdk_property_balancedLightBack">Balanced light (back side)</string>
<string name="onboard_sdk_property_sharpnessFront">Sharpness (front side)</string>
<string name="onboard_sdk_property_sharpnessBack">Sharpness (back side)</string>
<string name="onboard_sdk_property_incodeTamperCheck">Incode TamperCheck</string>
<string name="onboard_sdk_property_incodeFakeCheck">Incode FakeCheck</string>
<string name="onboard_sdk_property_incodeCrossCheck">Incode CrossCheck</string>
<string name="onboard_sdk_property_incodeIdLiveness">Incode ID Liveness</string>
<string name="onboard_sdk_property_qrCheck">QR check</string>
<string name="onboard_sdk_property_issueDateCheck">Issue Date Check</string>
<string name="onboard_sdk_property_documentIdCheck">Document ID Check</string>
<string name="onboard_sdk_property_2DBarcodeRead">2D Barcode Read</string>
<string name="onboard_sdk_property_birthDateCheckDigit">Birth Date Check Digit</string>
<string name="onboard_sdk_property_birthDateCrosscheck">Birth Date Crosscheck</string>
<string name="onboard_sdk_property_birthDateValidity">Birth Date Valid</string>
<string name="onboard_sdk_property_underageCheck">Underage Check</string>
<string name="onboard_sdk_property_compositeCheckDigit">Composite Check Digit</string>
<string name="onboard_sdk_property_documentClassification">Document Classification</string>
<string name="onboard_sdk_property_documentCrosscheckAggregation">Document Crosscheck Aggregation</string>
<string name="onboard_sdk_property_documentExpired">Document Expired</string>
<string name="onboard_sdk_property_documentNumberCheckDigit">Document Number Check Digit</string>
<string name="onboard_sdk_property_documentNumberCrosscheck">Document Number Crosscheck</string>
<string name="onboard_sdk_property_documentTypeSideCrosscheck">Document Type Side Crosscheck</string>
<string name="onboard_sdk_property_expirationDateCheckDigit">Expiration Date Check Digit</string>
<string name="onboard_sdk_property_expirationDateCrosscheck">Expiration Date Crosscheck</string>
<string name="onboard_sdk_property_expirationDateValidity">Expiration Date Valid</string>
<string name="onboard_sdk_property_documentSeriesExpired">Document Series Expired</string>
<string name="onboard_sdk_property_fullNameCrosscheck">Full Name Crosscheck</string>
<string name="onboard_sdk_property_imageTamperingCheck">Image Tampering Check</string>
<string name="onboard_sdk_property_issueDateValidity">Issue Date Valid</string>
<string name="onboard_sdk_property_issuingStateValidity">Issuing State Valid</string>
<string name="onboard_sdk_property_qrScan">QR Scan</string>
<string name="onboard_sdk_property_photoPrinting">Photo Printing</string>
<string name="onboard_sdk_property_personalNumberCrosscheck">Personal Number Crosscheck</string>
<string name="onboard_sdk_property_sexCrosscheck">Sex Crosscheck</string>
<string name="onboard_sdk_property_visibleColorResponse">Visible Color Response</string>
<string name="onboard_sdk_property_visiblePattern">Visible Pattern</string>
<string name="onboard_sdk_property_visiblePhotoFeatures">Visible Photo Features</string>
<string name="onboard_sdk_property_emissionNumberCrosscheck">Emission Number Crosscheck</string>
<string name="onboard_sdk_property_liveness_score">Liveness Score</string>
<string name="onboard_sdk_property_photo_quality">Photo Quality</string>
<string name="onboard_sdk_property_user_already_in_database">User already in database</string>
<string name="onboard_sdk_property_photo_comparison">Photo Comparison</string>
<string name="onboard_sdk_property_issueDate">Issue Date Valid</string>
<string name="onboard_sdk_property_firstName">First Name Valid</string>
<string name="onboard_sdk_property_maternalLastName">Maternal Last Name Valid</string>
<string name="onboard_sdk_property_paternalLastName">Paternal Last Name Valid</string>
<string name="onboard_sdk_property_ocr">OCR Valid</string>
<string name="onboard_sdk_property_personalId">Personal Id Valid</string>
<string name="onboard_sdk_property_electorsKey">Electors Key Valid</string>
<string name="onboard_sdk_property_emissionNumber">Emission Number Valid</string>
<string name="onboard_sdk_property_registrationDate">Registration Date Valid</string>
<string name="onboard_sdk_results_btn_done">Done</string>

<!-- NoNetworkSnackbar -->
<string name="onboard_sdk_no_network_snackbar_content_text">No internet connection</string>
<string name="onboard_sdk_no_network_snackbar_action_text">Retry</string>
<string name="onboard_sdk_no_network_snackbar_warning_icon_content_description">warning icon</string>

<!-- Delayed Onboarding -->
<string name="onboard_sdk_you_are_offline">You’re offline</string>
<string name="onboard_sdk_offline_onboarding_description">If you do the onboarding offline, you’ll have to sync the data when you restore connectivity.</string>
<string name="onboard_sdk_no_connection">No connection</string>

<!-- AESActivity -->
<string name="onboard_sdk_aes_title">Confirm your signature</string>
<string name="onboard_sdk_aes_documents_list_title">The following documents will be signed:</string>
<string name="onboard_sdk_aes_documents_list_item_title">Contract %d</string>
<string name="onboard_sdk_aes_documents_list_item_view_doc">View doc</string>
<string name="onboard_sdk_aes_checkbox_terms_and_condtions">I accept the terms and conditions of the Trust Center</string>
<string name="onboard_sdk_aes_checkbox_generate_certificate">I wish to sign the contract electronically. Please generate the required certificate for me</string>
<string name="onboard_sdk_aes_checkbox_legal_binding">I would like to sign the displayed contract in a legally binding way by means of the ensuing signature procedures</string>
<string name="onboard_sdk_aes_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_aes_success">Success!</string>
<string name="onboard_sdk_aes_something_went_wrong">Something went wrong.</string>
<string name="onboard_sdk_aes_open_pdf_error">Please install an app that can open a PDF</string>
<string name="onboard_sdk_aes_signing_title">Document signing in progress. Please wait, this may take some time.</string>
<string name="onboard_sdk_aes_confirmed_signature_title">Confirmed signature!</string>
<string name="onboard_sdk_aes_confirmed_signature_documents_list_title">The following documents were signed:</string>
<string name="onboard_sdk_aes_btn_continue_and_finish">Continue and finish</string>
<string name="onboard_sdk_aes_upload_screen_error_file_type">Please select a PDF file</string>

<!-- QESActivity -->
<string name="onboard_sdk_qes_title">Confirm your signature</string>
<string name="onboard_sdk_qes_documents_list_title">The following documents will be signed:</string>
<string name="onboard_sdk_qes_documents_list_item_title">Contract %d</string>
<string name="onboard_sdk_qes_documents_list_item_view_doc">View doc</string>
<string name="onboard_sdk_qes_checkbox_terms_and_conditions">I have read and agree to Incode’s [Privacy Policy](https://policies.incodesmile.com/omni-privacy-mobile/) and Incode’s [Terms of Use](https://policies.incodesmile.com/terms-of-use/).</string>
<string name="onboard_sdk_qes_checkbox_generate_certificate">I agree to the issuance of the required certificate and to signing this document electronically.</string>
<string name="onboard_sdk_qes_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_qes_success">Success!</string>
<string name="onboard_sdk_qes_something_went_wrong">Something went wrong.</string>
<string name="onboard_sdk_qes_open_pdf_error">Please install an app that can open a PDF</string>
<string name="onboard_sdk_qes_signing_title">Document signing in progress. Please wait, this may take some time.</string>
<string name="onboard_sdk_qes_confirmed_signature_title">Confirmed signature!</string>
<string name="onboard_sdk_qes_confirmed_signature_documents_list_title">The following documents were signed:</string>
<string name="onboard_sdk_qes_btn_continue_and_finish">Continue and finish</string>
<string name="onboard_sdk_qes_signed_document">Your document has been signed.</string>
<string name="onboard_sdk_qes_download_document_title">Download your document</string>
<string name="onboard_sdk_qes_download_document_description">Your signed document is ready. Save it securely for your records or to share as needed.</string>
<string name="onboard_sdk_qes_download_document_btn_title">Download Document</string>

<!-- AntifraudActivity -->
<string name="onboard_sdk_antifraud_process">Processing…</string>

<!-- IdCaptureCamera -->
<string name="onboard_sdk_id_capture_error_title">ID scan failed</string>
<string name="onboard_sdk_id_capture_error_unacceptable_title">ID document not accepted</string>
<string name="onboard_sdk_id_capture_error_unacceptable_empty_list_title">No documents accepted\n for this country</string>
<string name="onboard_sdk_id_capture_accepted_documents_for_country">Accepted documents for:</string>
<string name="onboard_sdk_id_capture_error_glare_title">Glare present</string>
<string name="onboard_sdk_id_capture_error_glare">Tilt the ID slightly up or down to minimize the reflection</string>
<string name="onboard_sdk_id_capture_error_blur_title">Blur present</string>
<string name="onboard_sdk_id_capture_error_blur">Move ID further away or closer to your phone until the image is focused</string>
<string name="onboard_sdk_id_capture_error_missing_document">ID scan failed</string>
<string name="onboard_sdk_id_capture_error_side_title">Wrong document side</string>
<string name="onboard_sdk_id_capture_error_side_front">Capture the front side of the ID</string>
<string name="onboard_sdk_id_capture_error_side_back">Capture the back side of the ID</string>
<string name="onboard_sdk_id_capture_error_unacceptable">Use a different ID from the accepted list:</string>
<string name="onboard_sdk_id_capture_error_shadow"></string>
<string name="onboard_sdk_id_capture_error_readability_title">Info is not readable</string>
<string name="onboard_sdk_id_capture_error_readability">Minimize camera shake by holding your phone steady</string>
<string name="onboard_sdk_id_capture_encrypted_photos_disclaimer">All data is encrypted</string>
<string name="onboard_sdk_id_capture_retry">Refresh</string>
<string name="onboard_sdk_id_capture_processing_your_id_description">%1$s. We are processing your ID.</string>

<!-- BiometricConsentActivity -->
<string name="onboard_sdk_bio_consent_default_title">Request for biometric processing</string>
<string name="onboard_sdk_bio_consent_desc">Your verification is powered by Incode. To comply with state regulations, we need your consent for biometric processing.</string>
<string name="onboard_sdk_bio_consent_default_text">I consent to Incode’s collection, use, retention, and disclosure of my biometric information (i.e. faceprint) and information derived from scanning the barcode of my identification card to verify my identity, and to Incode’s Privacy Policy.\nIncode permanently deletes biometric information by the earlier of (i) the time at which the purpose for which it was collected has been satisfied or (ii) three years after my last interaction with Incode.</string>

<!-- Dynamic Forms -->
<string name="onboard_sdk_dynamic_forms_input_text_hint">Write your answer here…</string>
<string name="onboard_sdk_dynamic_forms_date_hint">Enter date</string>
<string name="onboard_sdk_dynamic_forms_country_selector_hint">Search for country</string>
<string name="onboard_sdk_dynamic_forms_phone_format_not_valid_message">Invalid phone format</string>
<string name="onboard_sdk_dynamic_forms_tax_id_format_not_valid_message_us">Please enter a valid number</string>
<string name="onboard_sdk_dynamic_forms_email_format_not_valid_message">Invalid email format</string>

<!-- Kiosk Login */}
<string name="onboard_sdk_kiosk_login_feedback_position_your_face">@string/onboard_sdk_feedback_position_your_face</string> <string name="onboard_sdk_kiosk_login_feedback_face_tilted">@string/onboard_sdk_feedback_face_tilted</string> <string name="onboard_sdk_kiosk_login_feedback_face_rotated_left">@string/onboard_sdk_feedback_face_rotated_left</string> <string name="onboard_sdk_kiosk_login_feedback_face_rotated_right">@string/onboard_sdk_feedback_face_rotated_right</string> <string name="onboard_sdk_kiosk_login_feedback_remove_lenses">@string/onboard_sdk_feedback_remove_lenses</string> <string name="onboard_sdk_kiosk_login_feedback_user_not_found">You’re not enrolled</string> <string name="onboard_sdk_kiosk_login_lid_uploading">@string/onboard_sdk_selfie_uploading</string> <string name="onboard_sdk_kiosk_login_lid_done">Done!</string>

<!-- Accessibility pane titles (announced by TalkBack on screen transitions) */}
<string name="onboard_sdk_age_verification_tutorial_pane_title">Age verification tutorial</string> <string name="onboard_sdk_id_capture_tutorial_pane_title">ID capture tutorial</string> <string name="onboard_sdk_id_capture_pane_title">ID capture screen</string> <string name="onboard_sdk_document_selection_pane_title">Document selection</string> <string name="onboard_sdk_digital_id_upload_pane_title">Digital ID upload screen</string> <string name="onboard_sdk_digital_id_upload_error_pane_title">Digital ID upload error</string> <string name="onboard_sdk_digital_id_upload_success_pane_title">Digital ID upload success</string> <string name="onboard_sdk_review_digital_id_pane_title">Review digital ID</string> <string name="onboard_sdk_wallet_id_upload_error_pane_title">Wallet ID upload error</string> <string name="onboard_sdk_face_capture_pane_title">Face capture screen</string> <string name="onboard_sdk_face_capture_tutorial_pane_title">Face capture tutorial</string> <string name="onboard_sdk_face_match_pane_title">Face match</string>

Dynamic Localization

You can override the SDK's text programmatically using dynamic localization. This requires the extensions dependency.

Call IncodeWelcome.getInstance().setStrings() to update the SDK's texts and labels:

val textToLocalize: java.util.HashMap<String, CharSequence> = HashMap()
        
// Use any string key from resources
textToLocalize["onboard_sdk_enter_phone_number"] = "My Label"
textToLocalize["onboard_sdk_intro_title"] = "My Title"
        
IncodeWelcome.getInstance().setStrings(Locale("en"), textToLocalize)
IncodeWelcome.getInstance().setStrings(new Locale("en"), new HashMap<String, String>() {
    {
        // Use any string key from resources
        put("onboard_sdk_enter_phone_number", "My Label");
        put("onboard_sdk_intro_title", "My Title");
    }
});

String arrays and quantity strings can also be updated with these APIs:

IncodeWelcome.getInstance().setStringArray(Locale?, Map<String, Array<CharSequence>>?)
IncodeWelcome.getInstance().setQuantityStrings(Locale?, Map<String, Map<QuantityKeyword, CharSequence>?>?)
IncodeWelcome.getInstance().setStringArray(Locale, Map<String, Array<CharSequence>>);
IncodeWelcome.getInstance().setQuantityStrings(Locale, Map<String, Map<QuantityKeyword, CharSequence>>);

Runtime Localization

You can change the SDK language at runtime. This requires the extensions dependency.

Set the SDK language programmatically through the CommonConfig.Builder().setLocalizationLanguage() API:

val LANGUAGE_CODE_PORTUGUESE = "pt_BR"

        ...

IncodeWelcome.getInstance().setCommonConfig(
    CommonConfig.Builder()
        .setLocalizationLanguage(LANGUAGE_CODE_PORTUGUESE)
        .build()
)
String LANGUAGE_CODE_PORTUGUESE = "pt_BR";

        ...

IncodeWelcome.getInstance().setCommonConfig(
    new CommonConfig.Builder()
        .setLocalizationLanguage(LANGUAGE_CODE_PORTUGUESE)
        .build()
);

We support the following values for setLocalizationLanguage():

Value Language
"en_US" English
"es_ES" Spanish
"pt_BR" Brazilian Portuguese
"de_DE" German
"he_IL" Hebrew

Add Custom Supplemental Text

The Selfie Scan and Video Selfie modules let you add custom supplemental text near the bottom of their screens, alongside the existing text.

Override the following string resources to insert custom text. These can be overridden in strings.xml or using dynamic localization:

Selfie: onboard_sdk_face_scan_custom_message
VideoSelfie: onboard_sdk_vs_custom_message

Replace Videos with Custom Videos

The SDK uses Lottie animations for videos. To use your own videos, put the matching Lottie .json or .lottie files in your res/raw directory.

Android raw resources are referenced by name only, without the file extension. Your replacement file must use the same name as the original, but it doesn't need to match the original file extension. For example, you can replace onboard_sdk_lottie_tutorial_selfie_v2.lottie with a file named onboard_sdk_lottie_tutorial_selfie_v2.json, or replace a .json file with a .lottie file the same way.

Tutorial Animations: V1

File Screen
onboard_sdk_lottie_tutorial_id_front.json ID front tutorial
onboard_sdk_lottie_tutorial_id_back.json ID back tutorial
onboard_sdk_lottie_tutorial_passport.json Passport tutorial
onboard_sdk_lottie_tutorial_selfie.json Selfie tutorial
onboard_sdk_lottie_tutorial_qr_scan.json QR scan tip

Tutorial Animations: V2

File Screen
onboard_sdk_lottie_tutorial_selfie_v2.lottie Selfie Scan tutorial
onboard_sdk_id_capture_tutorial_id.lottie ID Scan tutorial
onboard_sdk_id_capture_tutorial_passport.lottie Passport capture tutorial
onboard_sdk_id_capture_tutorial_barcode.lottie Barcode capture tutorial

ID Capture Animations: V2

File Screen
onboard_sdk_id_capture_flip.json ID capture: flip card prompt
onboard_sdk_id_capture_laser_id.json ID capture: scanning laser
onboard_sdk_id_capture_laser_id_vertical.json ID capture: vertical scanning laser
onboard_sdk_id_capture_laser_passport.json Passport capture: scanning laser
onboard_sdk_id_capture_laser_passport_vertical.json Passport capture: vertical scanning laser

ID Capture Feedback Animations: V2

File Screen
onboard_sdk_id_capture_align.lottie ID capture: alignment suggestion
onboard_sdk_id_capture_blur.lottie ID capture: blur detected
onboard_sdk_id_capture_glare.lottie ID capture: glare detected
onboard_sdk_id_capture_too_dark.lottie ID capture: too dark
onboard_sdk_id_capture_wrong_id_side_front.lottie ID capture: wrong side, front
onboard_sdk_id_capture_wrong_id_side_back.lottie ID capture: wrong side, back

Other Animations

File Screen
onboard_sdk_lottie_id_processing.json ID processing
onboard_sdk_lottie_error_selfie_positioning.json Selfie Scan error feedback

Lottie Files for the Optional NFC Dependency

File Screen
onboard_sdk_lottie_android_nfc_id_modal_animation.json NFC Scan bottom sheet: ID
onboard_sdk_lottie_android_nfc_passport_modal_animation.json NFC Scan bottom sheet: Passport
onboard_sdk_lottie_tutorial_nfc_scan_1.json NFC Scan tutorial: step 1
onboard_sdk_lottie_tutorial_nfc_scan_2.json NFC Scan tutorial: step 2
onboard_sdk_lottie_tutorial_nfc_scan_3.json NFC Scan tutorial: step 3
onboard_sdk_lottie_tutorial_nfc_scan_4.json NFC Scan tutorial: step 4
onboard_sdk_lottie_tutorial_nfc_scan_front_cover.json NFC Scan tutorial: front cover
onboard_sdk_lottie_tutorial_nfc_scan_id.json NFC Scan tutorial: ID

Enable V2 UI

Contact your Incode representative to enable the v2 (Jetpack Compose) UI. The v2 modules are opt-in. How you turn them on depends on how you start onboarding.

  • Server-driven Flows and Workflows: Use startFlow() or startWorkflow() to start onboarding. In Dashboard, open the Flow or Workflow, click the Settings tab, and turn on Enable new user experience. The SDK reads the UX version when it fetches this configuration. You don't need to change any code.
  • Client-configured Flows: Use startOnboarding() to start onboarding. These flows have no server configuration to carry the UX version. Opt in explicitly at initialization with setClientExperimentId("experimentV2"):
    IncodeWelcome.Builder(application, API_URL, API_KEY)
        .setClientExperimentId("experimentV2")
        // ... other configuration
        .build()
    
    new IncodeWelcome.Builder(application, API_URL, API_KEY)
        .setClientExperimentId("experimentV2")
        // ... other configuration
        .build();
    

setClientExperimentId("experimentV2") opts every supported module into the v2 UI.

Info

Coordinate with Your ECSM

setClientExperimentId drives A/B experiments and can change the UX broadly. Confirm the right value and approach with your Enterprise Customer Success Manager (ECSM) before you ship.


Configure V2 Theme and UX

The V2 modules were built using Jetpack Compose. To support customization, Incode offers a tool that follows this architecture. It supports two types of customization: Theme and UX. You can configure both through JSON or through their own configuration objects.

Theme Configuration via JSON

View an example JSON configuration

The example below groups color tokens by purpose: neutrals for backgrounds, brand colors for buttons and links, gray shades for general UI, a secondary brand accent, and status colors for errors, warnings, and success states.

val json = """
{
  "displayMode": "light",
  "typography": {
    "family": {
      "text": {
        "android": {
          "regular": "onboard_sdk_dm_sans_regular",
          "bold": "onboard_sdk_dm_sans_bold",
          "medium": "onboard_sdk_dm_sans_medium"
        },
        "ios": {
          "regular": "DMSans-Regular",
          "bold": "DMSans-Bold",
          "medium": "DMSans-Medium"
        }
      },
      "display": {
        "android": {
          "regular": "onboard_sdk_dm_sans_regular",
          "bold": "onboard_sdk_dm_sans_bold",
          "medium": "onboard_sdk_dm_sans_medium"
        },
        "ios": {
          "extraBold": "DMSans-ExtraBold"
        }
      }
    },
    "letterSpacing": {
      "none": 0,
      "medium": -0.5,
      "large": -1.0,
      "extraLarge": -1.5
    }
  },
    "colorPalette": {
        "neutralLight" : "#ffffff",
        "neutralDark" : "#000000",
        "brand50" : "#e5f0ff",
        "brand200" : "#99c3ff",
        "brand300" : "#66a6ff",
        "brand400" : "#3388ff",
        "brand500" : "#006aff",
        "brand600" : "#0055cc",
        "brand900" : "#21273b",
        "gray50" : "#FCFCFD",
        "gray100" : "#EBECEF",
        "gray200" : "#C6C8D2",
        "gray300" : "#A3A8B8",
        "gray500" : "#60667C",
        "gray700" : "#3A3E4B",
        "gray800" : "#262831",
        "gray900" : "#14151A",
        "gray1000" : "#000000",
        "brandSecondary50" : "#F2E2FE",
        "brandSecondary500" : "#820AD1",
        "negative50" : "#FFF0F0",
        "negative400" : "#FF5A5F",
        "negative500" : "#E71111",
        "negative950" : "#240001",
        "warning50" : "#FFF7EB",
        "warning400" : "#FFB647",
        "warning500" : "#FF9900",
        "warning950" : "#523100",
        "positive50" : "#E4FBF0",
        "positive400" : "#45B380",
        "positive500" : "#189F60",
        "positive800" : "#0C5030",
        "focus400": "#0099FF",
        "focus500": "#006AFF"
    },
   "components": {
     "buttons": [
       {
         "style": "primary",
         "surface": {
           "default": ["#000000", "#E8E8E8"],
           "hover": "#04FF5C",
           "pressed": "#00B540",
           "disabled": ["#EBECEF", "#000000"]
         },
         "text": {
           "default": ["#FFFFFF", "#000000"],
           "disabled": ["#959595", "#666666"]
         },
         "border": {
           "color": {
             "default": "#00D149",
             "hover": "#04FF5C",
             "pressed": "#00B540",
             "disabled": "#EBECEF"
           },
           "width": 0,
           "radius": 15
         }
       }
     ]
   }
}
"""

Provide it to the SDK like this:

IncodeWelcome.getInstance().setCommonConfig(
    CommonConfig.Builder()
        .setThemeConfig(IncodeThemeConfig.fromJson(context, json))
        .build()
)
IncodeWelcome.getInstance().setCommonConfig(
            new CommonConfig.Builder()
                .setThemeConfig(IncodeThemeConfig.fromJson(context, json))
                .build());

Note:

  • displayMode can be "light", "dark", or "system". If not set, the default is "light".
  • typography/family/text/android/variable takes priority over statically provided fonts. If you set it, the SDK ignores other fields in the same object and uses the variable.
  • When you apply JSON, your resources must include fonts with the predefined names, or parsing fails. For example, if you set typography/family/text/android/variable to "dm_sans_variable", your project must contain R.font.dm_sans_variable.
  • letterSpacing is defined in sp units on Android.
  • All properties are optional.

Theme Configuration via Object

View an example object configuration
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.incode.welcome_sdk.CommonConfig
import com.incode.welcome_sdk.DisplayMode
import com.incode.welcome_sdk.IncodeWelcome
import com.incode.welcome_sdk.commons.theme.ButtonBorder
import com.incode.welcome_sdk.commons.theme.ButtonBorderColor
import com.incode.welcome_sdk.commons.theme.ButtonSurface
import com.incode.welcome_sdk.commons.theme.ButtonText
import com.incode.welcome_sdk.commons.theme.ColorState
import com.incode.welcome_sdk.commons.theme.IncodeButtonStyle
import com.incode.welcome_sdk.commons.theme.IncodeColorPalette
import com.incode.welcome_sdk.commons.theme.IncodeComponents
import com.incode.welcome_sdk.commons.theme.IncodeThemeConfig
import com.incode.welcome_sdk.commons.theme.IncodeTypography
import com.incode.welcome_sdk.views.composables.IncodeButtonStyleName

IncodeWelcome
.getInstance()
.setCommonConfig(
CommonConfig.Builder()
.setThemeConfig(
IncodeThemeConfig(
displayMode = DisplayMode.SYSTEM,
typography = IncodeTypography(
family = IncodeTypography.Family(
text = FontFamily(
Font(R.font.onboard_sdk_dm_sans_regular, FontWeight.Normal),
Font(R.font.onboard_sdk_dm_sans_medium, FontWeight.Medium),
Font(R.font.onboard_sdk_dm_sans_bold, FontWeight.Bold)
),
display = FontFamily.SansSerif
),
letterSpacing = IncodeTypography.LetterSpacing(
none = 0f.sp,
medium = (-0.5f).sp,
large = (-1.0f).sp,
extraLarge = (-1.5f).sp
),
fontWeight = IncodeTypography.Weight(
regular = FontWeight.Normal,
medium = FontWeight.Medium,
bold = FontWeight.Bold,
extraBold = FontWeight.ExtraBold
),
),
colorPalette = IncodeColorPalette(
neutralLight = Color(0xffffffff),
neutralDark = Color(0xff000000),
brand50 = Color(0xffe5f0ff),
brand200 = Color(0xff99c3ff),
brand300 = Color(0xff66a6ff),
brand400 = Color(0xff3388ff),
brand500 = Color(0xff006aff),
brand600 = Color(0xff0055cc),
brand900 = Color(0xff21273b),
gray50 = Color(0xfffcfcfd),
gray100 = Color(0xffebecef),
gray200 = Color(0xffc6c8d2),
gray300 = Color(0xffa3a8b8),
gray500 = Color(0xff60667c),
gray700 = Color(0xff3a3e4b),
gray800 = Color(0xff262831),
gray900 = Color(0xff14151a),
gray1000 = Color(0xff000000),
brandSecondary50 = Color(0xfff2e2fe),
brandSecondary500 = Color(0xff820ad1),
positive50 = Color(0xFFE4FBF0),
positive400 = Color(0xff45B380),
positive500 = Color(0xff189f60),
positive800 = Color(0xff0c5030),
warning50 = Color(0xfffff7eb),
warning400 = Color(0xffffb647),
warning500 = Color(0xffff9900),
warning950 = Color(0xff523100),
negative50 = Color(0xfffff0f0),
negative400 = Color(0xffff5a5f),
negative500 = Color(0xffe71111),
negative950 = Color(0xff240001),
focus400 = Color(0xff0099FF),
focus500 = Color(0xff006AFF)
),
components = IncodeComponents(
buttons = listOf(
// Primary Button Style
IncodeButtonStyle(
style = IncodeButtonStyleName.Primary,
surface = ButtonSurface(
default = ColorState(
light = Color(0xFF006AFF),
dark = Color(0xFF0052CC)
),
hover = ColorState(
light = Color(0xFF0052CC),
dark = Color(0xFF003D99)
),
pressed = ColorState(
light = Color(0xFF003D99),
dark = Color(0xFF002966)
),
disabled = ColorState(
light = Color(0xFFE5F0FF),
dark = Color(0xFF1A1A1A)
)
),
text = ButtonText(
default = ColorState(
light = Color(0xFFFFFFFF),
dark = Color(0xFFFFFFFF)
),
disabled = ColorState(
light = Color(0xFF8FA3BF),
dark = Color(0xFF666666)
)
),
border = ButtonBorder(
radius = 15.dp
)
),
// Secondary Button Style
IncodeButtonStyle(
style = IncodeButtonStyleName.Secondary,
text = ButtonText(
default = ColorState(
light = Color(0xFF006AFF),
dark = Color(0xFF4A9EFF)
),
disabled = ColorState(
light = Color(0xFFC6C8D2),
dark = Color(0xFF666666)
)
)
)
)
)
)
)
.build()
)

If Java is your primary language:

  1. Create a Kotlin wrapper for the Incode theme configuration:
    object IncodeThemeKotlinHelper {
    
        fun configureTheme() =
            IncodeThemeConfig(
                typography = IncodeTypography(),
                colorPalette = IncodeColorPalette(),
                components = IncodeComponents(listOf()),
                displayMode = DisplayMode.SYSTEM
            )
    }
    
  2. Call it from your Java code:
    IncodeWelcome.getInstance()
        .setCommonConfig(new CommonConfig.Builder()
            .setThemeConfig(IncodeThemeKotlinHelper.configureTheme())
            .build()
        );
    

UX Configuration via JSON

Example JSON:

val jsonString = """
{
  "showFooter": true,
  "closeButtonPosition": "topLeft",
  "helpButtonPosition": "bottomRight",
  "headerAlignment": "center",
  "realtimeFeedbackMessageUIFlavor": "standard"
}"""
String jsonString = "{\n" +
                "  \"showFooter\": true,\n" +
                "  \"closeButtonPosition\": \"topLeft\",\n" +
                "  \"helpButtonPosition\": \"bottomRight\",\n" +
                "  \"headerAlignment\": \"center\",\n" +
                "  \"realtimeFeedbackMessageUIFlavor\": \"standard\"\n" +
                "}";

Apply the configuration to the SDK:

IncodeWelcome.getInstance().setCommonConfig(
    CommonConfig.Builder()
        .setUXConfig(IncodeUXConfig.fromJson(jsonString))
        .build())
IncodeWelcome.getInstance().setCommonConfig(
    new CommonConfig.Builder()
        .setUXConfig(IncodeUXConfig.fromJson(jsonString))
        .build());
View available properties and their possible values
Property Type Values Default Description
showFooter Boolean true or false true Controls whether the SDK shows the "Verified by Incode" footer
closeButtonPosition String TOP_LEFT or topLeft, TOP_RIGHT or topRight topRight Position of the close button
helpButtonPosition String TOP_LEFT or topLeft, TOP_RIGHT or topRight, BOTTOM_RIGHT or bottomRight bottomRight Position of the help button
realtimeFeedbackMessageUIFlavor String STANDARD or standard, MINIMAL or minimal standard Visual flavor of real-time feedback messages
headerAlignment String CENTER or center, START or start, END or end center Alignment of the header

UX Configuration via Object

IncodeWelcome.getInstance()
    .setCommonConfig(
        CommonConfig.Builder()
            .setUXConfig(IncodeUXConfig.Builder()
                .setShowFooter(true)
                .setCloseButtonPosition(CloseButtonPosition.TOP_RIGHT)
                .setHelpButtonPosition(HelpButtonPosition.BOTTOM_RIGHT)
                .setHeaderAlignment(HeaderAlignment.CENTER)
                .setRealtimeFeedbackMessageUIFlavor(RealtimeFeedbackMessageUIFlavor.STANDARD)
                .build())
            .build())
IncodeWelcome.getInstance()
                .setCommonConfig(new CommonConfig.Builder()
                        .setUXConfig(new IncodeUXConfig.Builder()
                                .setShowFooter(true)
                                .setCloseButtonPosition(CloseButtonPosition.TOP_RIGHT)
                                .setHelpButtonPosition(HelpButtonPosition.BOTTOM_RIGHT)
                                .setHeaderAlignment(HeaderAlignment.CENTER)
                                .setRealtimeFeedbackMessageUIFlavor(RealtimeFeedbackMessageUIFlavor.STANDARD)
                                .build())
                        .build());

Customize V2 Vector Drawables

Vector drawables in V2 flow screens automatically match your brand theme's colors. The SDK resolves these colors from the Prizma Design System at runtime, based on a path-naming convention in the vector XML.

How It Works

The SDK dynamically recolors any vector path whose android:name starts with the prefix onboard_sdk_themed_. The full naming format is:

onboard_sdk_themed_[fill|stroke]_<colorName>[_<description>]
  • fill or stroke: An optional target property. Defaults to fill if omitted.
  • <colorName>: A camelCase color token name from the Prizma Design System, such as iconAccent or surfaceBrand50.
  • <description>: An optional, human-readable label for designers. The SDK ignores it at runtime.

At runtime, the SDK replaces the fill or stroke color of each themed path with the resolved color token value. It leaves paths without the prefix unchanged, including gradients.

Default Behavior

By default, the SDK's vector drawables use theming tokens for their brand-colored areas. If you customize theming primitives in your color palette, these areas automatically follow.

Overriding a Vector Drawable

To replace any SDK vector drawable, override its resource in your app's res/drawable/ folder using the same file name.

When you override a drawable:

  • With a raster image, such as PNG, JPG, or WebP: The SDK detects that the resource isn't a vector drawable and shows it as-is, without theming. No crash occurs.
  • With a custom vector, in XML: If your vector doesn't include any paths with the onboard_sdk_themed_ prefix, the SDK skips theming and renders the vector as-is. If you include onboard_sdk_themed_ prefixed paths, the SDK applies the matching theme colors.

Creating a Themed Custom Vector

If you want your custom vector to use the SDK's dynamic theming, add the onboard_sdk_themed_ prefix to the android:name of any path you want recolored:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="40dp"
    android:height="40dp"
    android:viewportWidth="40"
    android:viewportHeight="40">

    <!-- This path's fill will be recolored to the iconAccent token -->
    <path
        android:name="onboard_sdk_themed_iconAccent_background"
        android:pathData="M0,0h40v40H0z"
        android:fillColor="#007AFF"/>

    <!-- This path's fill will be recolored to the surfaceBrand50 token -->
    <path
        android:name="onboard_sdk_themed_fill_surfaceBrand50_highlight"
        android:pathData="M5,5h30v30H5z"
        android:fillColor="#E6F0FF"/>

    <!-- This path's stroke will be recolored to the borderAccent token -->
    <path
        android:name="onboard_sdk_themed_stroke_borderAccent_outline"
        android:pathData="M2,2h36v36H2z"
        android:strokeWidth="2"
        android:fillColor="#00000000"
        android:strokeColor="#007AFF"/>

    <!-- This path is NOT themed (no prefix) - it keeps its original color -->
    <path
        android:pathData="M10,10h20v20H10z"
        android:fillColor="#FFFFFF"/>

</vector>

Different paths in the same vector can reference different theme colors. The android:fillColor value in the XML is the default fallback. It's visible only if the SDK can't apply theming: for example, outside the SDK's Compose theme.

Available Color Names

You can use any color token from the Prizma Design System as the <colorName> segment.

Was this page helpful?