Skip to main content



5.26.0 (March 8th 2024)​

  • Fixed an issue where deleteLocalUserData sometimes did not clear cached files for upload requests.
  • Added a new variable modalTransitionStyle to IncdOnboardingManager that enables customization of UIModalTransitionStyle for presenting the SDK's UI.
  • VideoSelfie errors are now extended to more granularly describe denied permissions. permissionsDenied is now replaced with: screenRecordingPermissionsDenied, recordingMicrophonePermissionsDenied, voiceConsentMicrophonePermissionsDenied, and cameraPermissionsDenied.
  • Added a new screen to VideoSelfie that instructs users on properly accepting the screen recording system permission.
  • Show an alert when the user denies screen recording for VideoSelfie, where they can choose to go back to grant permission.
  • Added new color to ColorConfiguration: primaryDark that enables customization of elements against dark backgrounds.
  • Added new button to ButtonConfiguration: chooser that enables customization of the ID type chooser on the ID Capture module.

*Changes that apply for a default .standard SDK mode only:

  • Updated uploading face frame as a JPEG instead of a PNG.
  • Video Selfie upload retries are now reusing upload URL generated for the first upload attempt.
  • Fixed multiple face match animations shown when using workflows

5.25.0 (Feb 27th 2024)​

  • Redesigned ID type chooser screen.
  • ID Manual capture timeout is now 60 seconds if no ID is detected at all, or 25 seconds (configurable) after the ID is first detected.
  • The ID overlay now automatically adjusts to align with the orientation of the ID, whether it is placed horizontally or vertically. Defaults to vertical, specify initialOrientation param in the addIdScan method to change it.
  • Overall ID capture performance improvements.
  • Passport capture now processes full frame photo instead of a cropped one.
  • Added 3 new analytic events - idOrientationChanged, frontIdDetected, and backIdDetected.
  • Region code has been deprecated and ignored for future use.
  • Updated VoiceOver strings for better clarity.

*Changes that apply for a default .standard SDK mode only:

  • Fixed valid OTPs not being allowed in Email and Phone modules.
  • (BETA) Reconnect AI support - Added a new method startFlow that enables the initiation of an online flow. The flow is referenced by setting its ID as the configurationId in the sessionConfig object passed to this method. Additionally, the method startFlow has been overloaded to take a Universal Link URL as a parameter and allows resumption of an interrupted flow.
  • Added parameter externalCustomerId to IncdOnboardingSessionConfiguration Id that is used outside of Incode Omni platform. Similar to externalId but it creates a new session, instead of restarting one.
  • The global watchlist module no longer displays the input UI. Instead, it automatically retrieves data from the session, and the processing screen is shown.
  • If a user chooses 'passport' but provides an ID, the module will continue with capturing the back of the ID. Conversely, if 'ID' is chosen but a passport is presented, back ID capture will be omitted.
  • Fixed a bug where second ID would be processed as a first ID.

5.24.1 (Jan 25th 2024)​

  • Fixed wrong .podspec file causing compilation errors for Cocoapods integration with version 5.24.0

5.24.0 (Jan 12th 2024)​

*Changes that apply for a default.standard` SDK mode only:

  • Added parameter isBackgroundExecuted to addGovernmentValidation making it execute without presenting UI.
  • Fixed a crash in the Video Selfie module that occured when video was uploading if screen recording was on.
  • Added optional End-to-end encryption for API requests and responses. Can be enabled using the e2eEncryptionEnabled flag in the IncdOnboardingSessionConfiguration model and setting e2eeURL param of the initIncdOnboarding method. See full guide here.
  • Added a mandatory consent screen for using Incode services from regulated states. User consent can be displayed either immediately after the session starts or after scanning the front of the ID. If the user decides to omit giving consent, the flow is interrupted, the onError callback is called, and all session data is deleted. New type of error will be returned in this case: IncdFlowError.biometricConsentNotGiven

5.23.0 (Dec 20th 2023)​

  • Added global variable IncdTheme.logo that will override all by default visible logos.
  • Added parameter customLogo to addSelfieScan and to startFaceLogin to customize Face Capture Module only.
  • Calling setLogo on VideoSelfieConfiguration customises logo for Video Selfie Module only.
  • Added option to provide a custom text for Face Capture and Video Selfie modules.

*Changes that apply for a default .standard SDK mode only:

  • Fixed an issue in NFC module where scan would not start and try again button would remain disabled.
  • Fixed an issue in NFC module where black vertical lines would appear on the edges of the authentication result screen.

5.22.0 (Dec 4th 2023)​

  • Fixed a bug on editable ocr where date of birth could be set in the future.
  • Added ability to configure capture overlay color and opacity with idCaptureFrame property for ID capture module and with videoSelfie for Video selfie module at ThemeConfiguration.customComponents.
  • Fixed status bar style which was incorrect in some cases on the Video Selfie screen.
  • Fixed problems with auto capture when ID or Face recording is turned on.

*Changes that apply for a default .standard SDK mode only:

  • Added missing module events when running workflows.
  • Face recording setting is now respected inside the workflows.
  • Fixed video selfie back ID validation results not visible on dashboard.
  • Accessible constructor is now available for ExternalVerificationConfiguration.
  • Fixed bug where face recording config for Face capture has been ignored.
  • Added new analytics for the video selfie module to track recording details and log any errors during the upload process.


  • ID scan back ID capture will always start in autocapture mode, even if front ID was captured manually.
  • Enhanced VoiceOver for the Selfie Scan module.
  • Enhanced VoiceOver for ID Scan module.
  • Replaced some of the Screen opened/closed log events with their specific ones, ie. Events.screenOpened and Events.screenClosed with a screen SELFIE_UPLOAD_SUCCEEDED' is now Events.selfieUploadSucceeded`
  • Added new logging events for OTP screen.

*Changes that apply for a default .standard SDK mode only:

  • Fixed bug that caused recorded video sessions not to appear on the Dashboard.
  • Added threeway face match between the primary ID, secondary ID and selfie by specifying idCategory param this way: addFaceMatch(idCategory: .primary, .secondary)
  • The user consent screen will now display a default title and subtitle if they are not provided.
  • Fixed bug on recording last screen opened, now it is being properly logged.
  • Added eKYB (Electronic "Know Your Business") module, which allows users to validate the existence and legitimacy of business.
  • Added eKYC (Electronic "Know Your Customer") module, which allows users to validate the existence and legitimacy of their customer.
  • Added Global watchlist module. Check customer identities against sources of Sanctions, Politically Exposed Persons (PEPs) etc.
  • Introducing Workflows. New way of creating user's onboarding journeys. Please follow the guide on how to use them here.

5.20.1 (Oct 10th 2023)​

  • Resolved additional SSZipArchive name conflicts.

5.20.0 (Sep 29th 2023)​

*Changes that apply for a default .standard SDK mode only:

  • Updated Machine learning consent screen UI, mainly to include a title.
  • Upon specific flow configuration, it is now possible to automatically skip the back ID scan after front ID scan is done.
  • Added validations for the Video Selfie back ID step
  • Fixed missing videos on dashboard when streamFrames parameter is enabled for ID and Selfie modules.
  • If streamFrames is true users will now see 'Please wait, adjusting camera' dialogue before streaming from camera feed is ready inside ID and Selfie modules.
  • Streaming videos on dashboard now contain all attempts instead of only the last one
  • Added parameter defaultRegionPrefix to the addPhone() which overrides the default region prefix derived from device's selected region. Valid values are integers greater than 0, up to 4 digits. Invalid values will be ignored and default region prefix will be used.

5.19.0 (Sep 1st)​

  • Updated SSZipArchive to 2.5.4 and resolved method name conflicts.
  • Fixed external screens tracking not stopped/started properly when using sections API
  • Fixed default region code in Phone module when cell provider is not available, which prevents issue of users not being able to type in their phone number.
  • Refactor capturing events for ID / Selfie capture.
  • Added new model for face mask, glasses, headwear, and closed eyes detection.
  • Removed framework variant '-m'. Local mask check is now always available. Check migration guide for more details.
  • Fixed streamed frames not being recorded in -d-vc framework variant.

*Changes that apply for a default .standard SDK mode only:

  • Added AES module for signing documents. (Demo environment only)
  • Error messages on the Email and SMS OTP screen are now displayed in the ColorsConfiguration.error color.
  • OnboardingValidationModule now has addressFieldPoAValidation module for Proof of address classification.
  • Blacklisted users upon server 1:1 login will see 'Access denied' message, instead of 'Something went wrong'

5.18.0 (July 12th)​

  • IncdOnboarding SDK now requires minimum Xcode 14.1 and iOS 13.0
  • Logging events for OTP screen.
  • Improved capture eficacy when using photo review screen
  • Instead of using mp4 video files for tutorials, we are now transitioning to Lottie vector animations.
  • Added 18 character limit on CURP input filed.

*Changes that apply for a default .standard SDK mode only:

  • onCURPValidationCompleted called with CURP for failed attempts as well.

5.17.0 (June 14th)​

  • Added '-ra' framework variant which performs Sardine's 'Risk analysis during onboarding
  • Fixed issue on Digital Signature screen where theme customization was not applied.
  • Ensure AVCaptureSession is started on a background thread.
  • Incorporated externalAnalyticsEnabled and enableExternalScreenshots into IncdOnboardingManager, providing refined control over tracking. The default settings for tracking extrarnal screens is true, and for screenshots of external screens is false.
  • Added logging of events once ID and Selfie video recordings are uploaded for better visibility on dashboard.
  • Added ID autocapture feedback message 'Too Dark' in case image brightness is too low (applies to Video Selfie ID capture as well)
  • Fixed 'Help' button within ID screen being shown without theme and localization applied
  • Fixed ID autocapture feedback message UI glitch within back ID autocapture when closing 'Help' screen
  • Fixed faulty ID feedback messages that appeared during manual capture
  • Prevented multi-click on ID manual capture button
  • Fixed ID autocapture feedback message UI glitch if same feedback message needs to stay visible for the user (applies to Video Selfie ID capture as well)
  • Loosened the threshold for ID being too big, thus making the ID autocapture getting triggered even though ID is slightly outside of pulsing rectangle.
  • Added tooDark, idDetectionError, idNotFullyVisible, horizontalIdDetected, idTooSmall, idTooBig errorStates that are logged as part of switchToManualCaptureFrontId and switchToManualCaptureBackId events
  • Video Selfie ID autocapture hint to show front or back ID is now visible for 3 seconds before ID detection starts
  • Fixed crash in User Score module if being called without ID, Selfie or Face Match modules being executed before it.

*Changes that apply for a default .standard SDK mode only:

  • Added OTP verification option for the Phone and Email modules. To enable this feature you need to pass the otpVerification parameter set to true to the addPhone() and addEmail() methods.
  • New module added: Antifraud. Enable it using addAntifraud() method within IncdOnboardingFlowConfig, which will show a brief processing UI to the user. To perform a non-UI antifraud check call IncdOnboardingManager.shared.antifraudCheck method.
  • Fixed flow getting stuck on uploading session video recordings
  • Now able to stream camera feed using the streamFrames flag set in addIdScan and addSelfieScan. Only available for the VC variant.

5.16.0 (May 9th 2023)​


  • Manual captures in Selfie Scan don't perform error checks by default. To enable it set IncdOnboardingManager.shared.manualCaptureLocalErrorCheck to true. (BETA)
  • Removed HelpButtonConfiguration in favor of an improved standard ButtonConfiguration when theming the 'Help' button in the ID scan. Please refer to the migration guide.
  • Improved accuracy in Selfie scan for local lenses and face mask detection during autocapture.
  • If local face mask check detects a face mask during Selfie autocapture feedback message 'Take off your mask' will appear for 3 seconds, instead of pausing the camera session, showing an error message and asking the user to retry before resuming it.
  • Fix for Video Selfie missing Spanish and Portuguese translations when lenses and face mask are detected during Selfie scan.

*Changes that apply for a default .standard SDK mode only:

  • Added NFC ID support, plese refer to the migration guide for updates. (BETA)
  • Fix for 1:1 local mode attempts are not visible on the dashboard in case there is no locally stored identity.
  • Authentication attempts on the dashboard now contain information if an attempt was done using zFaceAuthMode.local, FaceAuthMode.hybridorFaceAuthMode.server`.
  • FaceLoginResult now contains hasLenses which indicates that login failed due to a person wearing lenses
  • FaceMaskCheckMode.local will now also respect server mask check in case locally mask wasn't detected, but server check detected upon selfie upload
  • Showing 'Something went wrong' if the selfie couldn't be uploaded due to some error so no liveness confidence couldn't be calculated
  • Fixed an issue where the SDK did not recognize that location permissions have been granted after being set to Never
  • Fix for Video Selfie lenses and face mask detection server results being ignored

5.15.0 (Apr 13th 2023)​

  • Added Jailbreak detection. May be disabled by setting true to IncdOnboardingManager.shared.disableJailbreakDetection property
  • Reduced size of non-NFC framework variants by removing NFC related resources
  • deleteLocalUserData now clears session data and is available for all framework variants
  • Added showIDOverlay parameter to the addIdScan method to show ID template overlay within ID capture frame.
  • Removed pulsating ID frame animation during manual capture
  • Fixed an issue where user could start multiple NFC scans.
  • Fixed successful checkmark color issue on Video Selfie success screen
  • Sending Face Login local recognition and spoof thresholds in order to display face login attempts more accurately on the dashboard
  • Improved performance of capturing the documents in Document Scan module.

*Changes that apply for a default .standard SDK mode only:

  • Support for API key rotation
  • Fix skipping Geolocation module if there is no internet
  • Fixed successful checkmark color issue on CURP and Government Validation success screens
  • Remove concurrency within NFC codebase to make it work with Xcode 13.0
  • Fix for being unable to upload document correctly to the server on certain devices.
  • Fix for document capture flow freeze after multiple unsuccessful document capture attempts
  • Breaking Change: The function onEvent(_ event: Event, data: [String: Any]) has been replaced with onEvents(_ eventsWithDetails: [EventWithDetails]), which takes an array of EventWithDetails as an input, where EventWithDetails is a typealias for a tuple containing an Event and its associated data.

5.14.1 (Mar 29st 2023)​

  • Resolved integration issue with dynamic SDK variants.

5.14.0 (Mar 21st 2023)​

  • Added 'Screen Opened' and 'Screen Closed' log events for each screen
  • Added 'Module Opened' and 'Module closed' for each module
  • Added event logging whenever external app screen is shown after Incode SDK is initialized and before the flow ends. To disable this, set loggingEnabled to false in initIncdOnboaringSDK method
  • Removed some unused resources to reduce SDK size impact
  • Fixed UI glitch on iPads during screen rotation in Selfie module
  • Fixed Video Selfie getting stuck if audio is disabled and recordSession is enabled for that flow
  • Fixed onIdBackCompleted callback being triggered for passports
  • Fixed camera freeze when sending app to the background

*Changes that apply for a default .standard SDK mode only:

  • Added NFC scan module in BETA (also Xcode 13.3.1+ required and iOS 13), please refer to NFC Scan - Integration & Usage
  • Retry dialog shown to the user if something fails due to bad Internet
  • Fixed app freeze when going to background after uploading the document
  • Added issueName, issueYear, failReason and countryCode to the IdScanResult
  • Added ability to upload a PDF from device for .otherDocument1, .otherDocument2, .otherDocument3 and .paymentProof document types
  • Showing 'ID type unacceptable' upon uploading the ID if that ID type is configured not to be accepted
  • Showing 'Face not detected' if a face isn't found upon capturing Selfie
  • Added 'spoofThreshold' and 'recognitionThreshold' settings that apply to local and hybrid face login

5.13.1 (Feb 23rd 2023)​

  • Fix Video Selfie videos being corrupted in case user temporarily leaves the app
  • Renamed db file names to support toolchains that don't allow spaces

5.13.0 (Feb 14th 2023)​

  • iPad landscape ID capture and Selfie module UX optimizations
  • Fixed continue button being enabled even when input is not completed in Captcha Module
  • Fixed Video Selfie showing wrong ID frame when used in capture only mode

*Changes that apply for a default .standard SDK mode only:

  • Removed redundant API call in Video Selfie in case selfie spoof attempt was detected
  • Enabled background upload of data in case user leaves the app in the middle of the data upload


  • Added autocaptureUxMode parameter to ID Scan module configuration. Default is holdStill that waits for 1 second after ID is detected, specify .countdown to show 3-2-1 countdown to capture.
  • Using latest ID side detection model to detect more accurate if front or back of the ID is being used

*Changes that apply for a default .standard SDK mode only:

  • Added logAuthenticationEnabled parameter to startFaceLogin. Enables/disables sending login statistics after a login attempt.
  • Video Selfie continues with the flow if ID can't be validated due to the regular ID scan step not being present in the flow
  • Fix startFaceLogin method using server mode instead of a hybrid in case no identity is stored locally
  • onDocumentScanCompleted callback now contains raw JSON field data that contains all the info extracted from the document


  • Added getUserOCRData public API method to fetch OCR data
  • Added lensesCheck and faceMaskCheck parameters to selfieScan method in VideoSelfieConfiguration
  • Callback onVideoSelfieCompleted triggered with audio/video data whenever a video is recorded, even if Video Selfie didn't complete successfully
  • "Show front/back ID" messages during the ID capture in Video Selfie now present on the screen for longer
  • Fixed Video Selfie recording session not being closed timely
  • IncdError now has noActiveSession case thrown when trying to start onboarding section or calling other API methods that require an active session
  • Updated liveness threshold from 0.3 to 0.5
  • Updated incdOnboarding.cameraState.scanFrontID and incdOnboarding.cameraState.scanBackID icons when during ID capture we detect a user shown wrong side of the ID.
  • Fixed font theme issues


  • Replaced Name module with a simplified version that asks for full name
  • Video Selfie now uses idBackShownAsFrontCheck and idFrontShownAsBackCheck settings
  • Replaced incdOnboarding.cameraState.scanBack asset with incdOnboarding.cameraState.scanFrontId
  • Updated local ID detection model. It should improve ID capture module and ID capturing within Video Selfie
  • VideoSelfieError now has idTypeNotMatched for case when ID captured during Video Selfie is different type then the one taken from the ID scan step
  • Added downloadImagesEnabled parameter to the OnboardingSessionConfig that prevents processed images captured during onboarding to be fetched
  • Added enableRotationOnRetakeScreen parameter to the addIdScan method. Enables/disables rotation of the ID preview to the right by 90 on the Retake screen
  • Removed 'Continue' button during Selfie capture in Video Selfie, face capture now starts immediately
  • Fixed bad Video Selfie error messaging when passport is shown
  • Fixed Selfie manual capture not detecting a face mask
  • SDK info on dashboard now shows a specific iOS SDK variant used
  • Added SDKMode.submitOnly that only uploads data to the server without returning results back to the SDK user


  • Video Selfie isn't interrupted if ID isn't validated
  • Added event logging for processing states within Video Selfie
  • Video Selfie now displays feedback messages how to complete the step successfully
  • OnboardingValidationModule now has finer granulation for modules within Video Selfie, newly added are videoSelfieLiveness, videoSelfieOcr, videoSelfieIdType and videoSelfieSpeech
  • VideoSelfieError now has internalError(String) case to expose more detail about internal errors that can occur.
  • Face Match now can be configured not to show 'User already exists' by specifying showUserExists prameter to false in addFaceMatch method
  • Face login Close button now disabled by default, can be enabled by specifying IncdOnboardingManager.shared.allowUserToCancel to true
  • Fixed re-introduced issue of getting duplicated symbols for SSZipArchive


  • Fixed text alignment and color issue in subtitles for ID back tutorial screen
  • Introduced idBackShownAsFrontCheck param to the IncdOnboardingManager
  • Removed 'X' close button from screens that don't have user interaction
  • Added autocapture timeout in Selfie screen during Login, after which manual capture UX will appear. Defaults to 25 seconds and can be change via IncdOnboardingManager.shared.selfieTimeout field.
  • Fixed Document Scan camera issue on iPhone 14 Pro
  • Fixed ID autofocus camera issue on iPhone 14 Pro
  • Video Selfie recording gets uploaded even if the user presses 'X' close button
  • Video Selfie step now continues with the flow even if ID OCR doesn't match
  • Video Selfie now has support for Passports besides regular IDs
  • Video Selfie now has improved image quality checks during ID scan
  • Fix for Selfie recording not getting uploaded if app is sent to background
  • Added loadModels API that preloads the local models in order to speed up the startup time of some steps, ie. Selfie.
  • Added missing translations for feedback messages in ID and Video Selfie steps


  • Added a delay of 3 seconds before retry inside Selfie module when lenses are detected
  • ML Consent module now fetches the content from the server, shows the content for .gdpr in language set as user's locale, and for .us always in English
  • It is possible to specify preferred language. To do it, set IncdOnboardingManager.shared.localizationLanguage to desired locale, ie. "es".
  • Replaced ID capture countdown once ID is detected with a 'Hold still...' delay. The best frame during ID capture will be used, instead of last one after the countdown.
  • Fixed CURP module wrong font size
  • Fixed issue with fetching flow configuration when OnboardingSessionConfiguration is being setup with a token
  • Fixed Video Selfie issue for Selfie step where user will get stuck on 'Processing...' state


  • Fixed issue with finishFlow failing with 401 error
  • Fixed issue with flow error event not being sent
  • IncdOnboardingManager.shared.addNOM151Archive method now returns AddNOM151ArchiveResponse, which contains archiveUrl and signature for the NOM151Archive
  • Added showAutoCaptureRetakeScreen param to the addIdScan method to show Photo Review screen after ID auto-capture
  • Added parameter cameraFacing to the addSelfieScan method to specify front or back camera that will be used during SelfieScan. Defaults to front camera.
  • Added new Video Selfie tutorial that shows a video to the user how to complete the Video Selfie step efficiently.
  • Added new method maxVideoLength to the VideoSelfieConfiguration that allows setting of maximum video length of captured video.
  • VideoSelfieConfiguration now has voice consent and questions steps turned off by default
  • Back camera is now used for capturing the ID and Document inside Video Selfie. To change this behaviour set cameraFacingConfig in VideoSelfieConfiguration
  • Fixed Video Selfie voice consent issues on iOS 16
  • Fixed ID Scan feedback messages not visible for large font sizes
  • Added Kiosk APIs startKioskFlow and startKioskLogin methods that can be used on iPads embedded in Aila frames. These will be available as part of 'd-k' variant only.


  • Added Face Login 1:N local mode and APIs addFace, removeFace, setFaces and getFaces. These are available for framework variants '-l'.
  • Added local FaceMaskCheck during Selfie autocapture for framework varaints '-m'. Choose between .server and .local check by specifying faceMaskCheckMode in IncdOnboardingManager.
  • Renamed setting serverSelfieFaceMaskCheck: Bool to faceMaskCheck: Bool.
  • Added local faceMaskCheck mode on Selfie screen for framework variants '-m'
  • Added Machine learning Consent module
  • Added option to customise Signature module canvas and border colors
  • Added option to provide a custom name for a .strings file in which you will overide texts in the SDK
  • Fixed Selfie not getting uploaded if app is closed during upload
  • Now clearing Keychain stored values related to session once session is completed
  • Fixed custom fonts not being applied to Email and Enter name modules


  • Added Custom watchlists module
  • Added Face Login 1:1 in local mode. To use FaceAuthMode.local you have to use -l framework variant
  • Added deleteLocalUserData method that clears stored user data
  • Fixed wrong text in Spanish when capturing ID inside Video Selfie
  • Added additionalTextHeight theme parameter to fonts to support changing height of certain fonts
  • Fixed memory leak related to delegate reference provided in startOnboardingSection
  • Fixed screen recording for selfie not uploaded in certain scenarios


  • Face Login 1:1 now uses faster and more advanced API call.
  • Added faceMaskCheck parameter to startFaceLogin method. Specify true to deny face login attempts when face mask is detected
  • FaceLoginResult now includes for both 1:1 and 1:N: success, customerUUID, interviewId, interviewToken, token, transactionId and hasFaceMask (if faceMaskCheck is enabled)
  • ID and Selfie attempts can be recorded, to enable it use recordSession method inside IncdOnboardingFlowConfiguration
  • Removed redundant CATransaction calls during ID scan
  • Fixed pulsating animation not visible after first attempt during ID scan autocapture
  • Fixed Signature upload fail for custom themes
  • Fixed issues with callbacks for DocumentScan in captureOnly SDK mode
  • Document Scan module now shows 'Review Photo' screen by default after manual capture, can be disabled via showRetakeScreen parameter
  • Video Selfie can now record video only, to turn off audio set disableAudio to true when creating VideoSelfieConfiguration
  • Improved ID detection in Video Selfie


  • Added .sessionCreationFailed error case within IncdFlowError and OnboardingSessionError that will be thrown in case session creation fails
  • IncdOnboardingManager.shared.allowUserToCancel now adds 'X' cancel button to other screens in the flow, instead of only showing it inside camera capture screens.
  • Added IncdTheme.current.colors.cancelDark theme color, now used in Video Selfie 'X' button
  • Added transactionId to the FaceLoginResult response of 1:1 Face Login
  • DocumentScan module now has 3 retries by default when uploading docments
  • Fixed startFaceLogin throwing error .notInitialized if it is called without creating a session beforehand.
  • IncdOnboardingDelegate now extends AnyObject, it is referenced as weak and it gets released in IncdOnboardingManager singleton after startOnboarding is completed.
  • Keyboard now shown automatically inside Captcha step
  • Removed animation when closing CURP screen
  • Now disabling signature canvas after user submitted the signature
  • Enforced SwiftLint code style


  • Added minVideoLengthRequired parameter to VideoSelfieConfiguration. Specifying false means there will be no minimum 30 seconds limit.
  • Now sending Login Authentication info/statistics to the server for each attempt
  • Fixed bug in Document Scan when uploading images
  • Fixed bug for Document Scan uploads not shown in dashboard
  • Fix Selfie tutorial subtitle alignment
  • Fix Retake screen subtitle alignment
  • Fixed issue with showRetakeScreen not being applied when SDK is running in .captureOnly mode
  • Fixed bug when specifying token in IncdOnboardingSessionConfiguration and using startOnboarding afterwards.


  • Fixed bug in Document Scan while in Capture Only mode.


  • Fixed bug in Capture Only mode when using sections.


  • Introduced new way to configure flows and setup onboarding sessions. Plese refer to the migration guide.
  • Video Selfie module now works in capture only mode. Please refer to the guide here.
  • Removed network calls from initIncdOnboarding method. url parameter is now optional.
  • Init errors related to API key and URL will now be delegated through IncdOnboardingDelegate.onError(_ error: IncdFlowError) (case initError(_ error: IncdInitError)).
  • Fixed iOS 12 camera issues during document scan.
  • Fixed camera session staying open after ID scan.
  • Fixed custom font letters being cut-off.
  • Fixed Signature subtitle alignment.
  • Fixed Signature module not using proper theme colors.
  • Fixed Face Login screen not getting closed in some scenarios.
  • Added errorDescription when logging error events.
  • Removed faulty blinking line during ID auto-capture.
  • Animated overlay during passport auto-capture.
  • Switched to non-base64 document upload API.
  • Fixed Back ID being skipped in secondary flow.
  • Fixed duplicate symbols error that emerged in React Native platforms.


  • Crash fix for memory issues during camera capture on low-end devices .
  • Fixed Proof of address capture on devices with smaller screens.
  • iOS 12 fix for continue button not being hidden during ID upload.
  • Bugfix when using both addIdProcess and addIdScan modules.
  • Fix for input error when using swipe keyboard.


  • Added all camera feedback assets to customizables.


  • Added email module support.
  • Added autocapture for passports.
  • Added rawJSON data to the UserScore result.
  • Updated IncdTheme, check IncdTheme Guide for more info.
  • Fixed several UI issues.


  • JSON theme customization.
  • ID help screen title labels can now have up to two lines.
  • ID capture "side label" can now be customized.
  • ID capture "side label" can now change text when autocapture countdown timer starts through "" and "" localization labels.
  • Introducing Dynamic Localization. Check Localization Guide.


  • Localization for specific continue buttons.
  • Added ability to customize specific views.
  • Added subtitle labels to the ID capture "Need help" screen.
  • Added set onboarding session with token


  • Added an optional parameter token for initializing the sdk.
  • Added an optional parameter to show/hide retake screen after manually capturing an ID.
  • Fixed bug with Captcha module where code would not refresh after being used.


  • Added onEvent method to the IncdOnboardingDelegate protocol, so that optionally you can get notified about events that are being tracked inside the SDK.
  • Fixed QR scan wrong processing logic.
  • Now using faceCaptureQuality obj-c method during Selfie scan.


  • Added Side Label and Help Button on the ID scan to customizable list.
  • Fixed issue with Help Button where it was applying localization after it gets appeared.


  • Added externalId parameter for createNewOnboardingSession.
  • Added Barcode scan module.
  • Fixed issue with not returning classifiedIdType after the ID scan module.
  • Fixed issue with manual selfie capture in the captreOnly mode.
  • Added otherDocument3 in the DocumentType that doesn't require server validation.
  • Optimazing size impact, resulting in smaller download and install size.


  • Reworked Document Scan to support new type, check Migration Guide for more info about breaking change.
  • Added User Review screen which allows user to check and retake manually captured photo before uploading.
  • Added an official Cocoapods ODR functionality.
  • Added support for iOS Simulator on Apple Silicon Macs (non - Video Conference variants only).
  • Added option to change Video Selfie video codec type. Use videoSelfieConfiguration.videoCodecType = .h264 to change codec to H.264. Default is HEVC.
  • Added processPaymentProof API.
  • Added processLaborHistory API.
  • Added lazy load model for more optimized performance and memory handling.
  • Fixed ghost onboarding session issue after going through the flow again.
  • Fixed tutorial videos freeze if the device gets locked on iOS 15 and later.
  • Fixed "SDK info" event log being sent when each onboarding section is started.
  • Fixed issue where iOS SDK version was not visible in β€˜Device info’ on dashboard.
  • Fixed issue where QR scan did not look for generic codes, minor UX improvements.
  • Restored ODR functionality.
  • Renamed ODR tag StaticSDKResoucesBundleODR from to IncdOmniResources.
  • Minor UI improvements.


  • Captcha module (aka One Time Password) received an UI/UX update.
  • Added croppedFace: UIImage? to the IdScanResult
  • Support for dynamic localization. Check IncdOnboardingManager.localizationBundle property.


  • New module added: Process ID.
    • Added parameter showIdSummary (default is true) which will display summary of ID scan in case it is not successful. Also known as "Referred to Executive" screen.
    • Introducing new result structure IdProcessResult.
  • Added individual, non-UI function idProcess which performs ID process immediately.
  • Added individual, non-UI function geolocation which performs Geolocation process immediately.
  • ID Scan:
    • Added paarmeter ScanSide to specify which side to scan. Process ID module has to be added unless .both is specified, in which case it is added automatically.
    • Introducing new result structure IdScanResult.
  • Added 30s timer for Captcha (OTP) after which it will be refreshed automatically.
  • Warning icon on ID Capture Summary screen is now customizable.
  • Removed most of individual functions.
  • Removed deprecated API which were using parameter vc: UIViewController.


  • Added nameMatched, confidence, existingUser and existingInterviewId to the FaceMatchResult
  • initIncdOnboarding method will return .serverUnreachable error in case device is in airplane mode
  • Fix for app events being sent after user cancels the session
  • Added basic theming via JSON config


  • Added geolocation API which doesn't show UI.
  • Calling faceMatch now returns an error if SDK is not initialized.
  • Added property to check SDK initialization status - isSDKEntierlyInitialized. If isSDKEntierlyInitialized.flag is true SDK is successfully initialized, false otherwise.
  • Added Server Face mask check in Selfie Scan.
  • Removed 'simulatorDetected' error type & bugfix for 'refered to executive screen' shown on iOS simulator.
  • Fix frozen flow after secondary ID isn't captured correctly 3 times.


  • Add show id side label on id capture screen
  • Add face match api without ui
  • Removed error events for errors that don't stop the flow
  • Bugfix for crash if UserDefaults is erased by host app
  • Added selfieBase64 to selfie result
  • User Canceled event now sent as standard event instead of an error
  • Bugfix for ID session not cancelled properly when user presses 'X'
  • userCancelledSession now called once the user cancels any of the steps, instead of onError with .userCanceled error being triggered
  • Added 'serverUnreachable' error for initIncdOnboarding method that happens when Incode server couln't be reached due to bad internet connection
  • Fix for User Consent content not being scrolled to top on iOS 12.x devices
  • Added local liveness failed event


  • Added User Consent module


  • Added option to perform local Liveness check during Selfie Scan.
  • Sending additional face coordinates during Selfie Scan to improve processing.


  • Added option to send externalId when creating onboarding session
  • Improved Document Scan UX
  • Fixed unnecessary face cropping during Selfie Scan due to aspect ratio
  • Now returning encrypted base64 images from Id and Selfie scans.


  • Cocapods variants breaking change -> Static and Dynamic now don't include Video Conference module by default. To use Video Conference module, please add vc, ie. 3.0.0-d-vc.
  • Fix for onCaptchaCompleted not being called once the Captcha step is completed
  • Fix for onboarding sections not being shown if being opened too quickly after previous sections got completed
  • Fix for some session not being flagged as NEEDS_REVIEW


  • Introduced new Video Selfie mode faceMatch, that does a comparison between photo from the ID and Selfie.
  • Introduced startFaceLogin method that does 1:1 and 1:N face authentication. Please visit Face Login Guide for more info.


  • startOnboarding can now be called with a specific interviewId, so it doesn't create a new session.


  • Fix some customization issues on iOS 11-12


  • Added IncdTheme (please visit IncdTheme Guide for more info)
  • Added option to show close button during ID or selfie capture
  • Minor bugfixes & improvements


  • Fixed not having captured ID images inside IDValidationResult in case upload fails
  • Removed unnecessary face processing during ID front autocapture


  • API change (please take a look at the Migration Guide)
  • Added support for presenting SDK from a modal UIViewController
  • Fixing a few UI issues, mostly in Capture Only mode
  • Added Portugeese localization


  • Introducing Static framework with On-Demand-Resources option
  • Added CURP module, refined ID Verification
  • New ID detection model for Video Selfie
  • Fixing onboarding presentation on UIViewControllers which are not part of UINavigationController stack
  • Various bugfixes & improvements


  • SDK now delivered as a static IncdOnboarding.xcframework
  • Because some framework files now exceed 100MB Git Large File Storage is needed to be installed to fetch all the updated frameworks.
  • Improved Error handling


  • Lenses check enabled by default in Selfie Scan module
  • Added new OCR fields notExtracted and notExtractedDetails
  • ID Scan autocapture not working after migration
  • ID Scan crash fix when permissions are manually disabled in Settings


  • Crash fixes


  • OMNI rebranding
  • Selfie scan defaults to manual capture if photo is not taken automatically
  • Help feature in ID scan
  • Informing the user about the number of ID scan retries
  • Analytics events updates
  • Added intro module for educating users about the process and to help with measuring conversion
  • Added noLocationExtracted case in GeolocationResult
  • Using server configuration for auto capture timeouts and upload retries
  • Bug fixes