Skip to main content
Version: 1.8.0

Changelog

1.8.0 - 02.10.2026​

minBackendVersion

Added
  • The passport step now automatically detects whether the passport is a new or old type. The detected type is sent to the backend in the document upload request as the passport_type field (new, old, or unknown). No additional configuration is required on the integration side.
Changed
  • Redesigned the capture screen in the ID front, ID back, and passport steps: the static template images were removed, and the area where the document should be placed is now shown as a document frame over a semi-transparent background.
  • Face detection in the liveness step now waits for the user's face to become stable before capturing an image, reducing blurry captures caused by moving frames.
  • Upgraded the IdVerification dependency to version 1.0.6. After upgrading, running File > Packages > Reset Package Caches in Xcode is recommended.
Fixed
  • Fixed the device screen dimming and auto-locking during the flow. The SDK now keeps the screen awake for the duration of the flow and restores the setting when the flow ends.

1.6.14 - 15.09.2026​

minBackendVersion

Added
  • Added the KPS step: an Identity Sharing System verification with no user interface, in which the SDK performs the backend query directly and moves to the next step based on the result. Used via .setStepType(.kps).
  • Added per-step NFC text configuration: successfulReadText, scanDescription, and retryDescription can be customized with StepBuilder.setNFCTextConfig(_:).
  • Added device security check: setSecurityCheckEnabled(true) enables jailbreak, simulator, debugger, and hooking detection. Every run emits a SECURITY_CHECK_PASSED or SECURITY_WARNING event; on compromised devices the flow is stopped with a fail screen. Messages can be customized with setSecurityErrorMessage.
  • Success screen texts are now customizable: setCompletedScreenTexts(_:) and CompletedScreenTexts (titleText, descriptionText, buttonText).
  • Lighting warnings are now configurable: setOverexposureWarning(_:) and setLowLightWarning(_:) together with WarningConfig (.enabled(message:) / .disabled). The default value is .disabled.
  • Expanded the UIConfig theme tokens. ColorsConfig gained primaryColor, onPrimaryColor, surfaceColor, onSurfaceColor, backgroundColor, errorColor, successColor, textPrimaryColor, textSecondaryColor, and lineButtonTextColor; ShapesConfig gained cardCornerRadius, imageFrameCornerRadius, and bottomSheetCornerRadius; TypographyConfig gained promptFontSize and promptFontWeight.
  • Added startButtonText and stopButtonText to TextConfig for the video record screen.
  • Added per-step button text and close button control: setApproveButtonText, setRetakeButtonText, and setCancelButtonIsActive on StepBuilder. Per-step values override the global texts provided through UIConfig.textConfig.
  • Added the roomName parameter to enterKYC, used as the appointment identifier in video call requests.
  • Documented certificate pinning support: setPinnedCertificate(from:orEmbeddedFile:isPEM:).
  • Documented every LogState event delivered through onEvent, together with its raw value.
  • Documented the KYCManager.onError closure as an alternative to the delegate, and the title, message, and extraDetail fields readable from TeydexError.
  • Added an informational note about package variants and Reset Package Caches to the installation section.
  • Place of birth is now read in the NFC step.
Changed
  • Breaking change: the case names of the TeydexError sub-enums moved to UPPER_SNAKE_CASE. For example: .cameraPermissionDenied → .CAMERA_PERMISSION_DENIED, .deviceNotHaveNfc → .DEVICE_NOT_HAVE_NFC, .nfcDisabled → .NFC_NOT_ENABLED, .deviceInitFailed → .CAMERA_CONFIGURATION_FAILED, .externalAuthFailed → .CARD_AUTH_FAILED. Integrations passing dictionaries to methods such as setCameraErrorMessage and setNFCErrorMessage need to be updated.
  • The enterKYC(clientToken:...) signature is marked deprecated; use enterKYC(from:...), which takes the screen the flow is started from, instead.
  • Added new error families: TeydexError.PermissionError, TeydexError.SecurityError, TeydexError.NetworkError, and TeydexError.VideoRecordError. The setPermissionErrorMessage, setSecurityErrorMessage, setNetworkErrorMessage, and setVideoRecordErrorMessage methods are available for these families.
  • Added the FACE_DETECTION_FAILED and APP_WENT_BACKGROUND cases to the CameraSourceError family.
Fixed
  • Fixed the dark screen problem in video calls.
  • Fixed the freeze that occurred on unsuccessful video calls.
  • Fixed a crash in the liveness step.
  • Fixed the recording preview not being shown in the video record step.
  • Fixed the audio problem in the video record step and updated the default timeout duration.
  • Improved image compression behavior.

1.4.6 - 13.05.2026​

minBackendVersion

Added
  • Added the VideoRecord step: a voice-verified video step in which the user creates a video recording by reading the on-screen text aloud. Used via .setStepType(.videoRecord); configurable with setStartButtonText, setStopButtonText, setApproveButtonText, setRetakeButtonText, and setVideoRecordDuration.
Changed
  • The signature of KYCProcessResult.failed and cancelled (returned via onProcessFinished) changed: step: KYCStep? is now stepName: String?, and the failed case's reason: TeydexError is now reason: String. Integrations relying on these types need to be updated.
Fixed