---
title: "iOS migration guide | Veriff.com"
slug: "ios-migration-guide"
description: "Learn how to migrate the Veriff iOS SDK from versions 3 to 7, including updates on branding, configurations, and minimum iOS requirements."
updated: 2026-03-16T12:24:29Z
published: 2026-03-16T12:24:29Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.veriff.com/llms.txt
> Use this file to discover all available pages before exploring further.

# iOS SDK migration guide

## Migrating Veriff iOS SDK from 9 to 10

### Update `VeriffSdk.Branding` object

**Following configurations are added:**

- `onCameraOverlaySecondary`
- `feedbackSuccessBackground`
- `onFeedbackSuccess`
- `feedbackErrorBackground`
- `onFeedbackError`

**Following configurations will be deprecated in the next major release:**

- `error` - replaced by `onFeedbackError`
- `success` - replaced by `onFeedbackSuccess`

## Migrating Veriff iOS SDK from 8 to 9

- Minimum version was bumped to iOS 15.0
- 2 new methods were added to the `VeriffSdkDelegate`, check out [**iOS SDK: NFC data listener**](https://devdocs.veriff.com/docs/ios-sdk-nfc-data-listener)****article for more info
- New `uploadLimitReached` error was added to the `Veriff.Error` enum

## Migrating Veriff iOS SDK from 7 to 8

- Veriff’s API become MainActor isolated
- The NFC scanning logic was moved into separate framework. Check out [**Enable NFC scanning**](https://devdocs.veriff.com/docs/ios-sdk-guide#enable-nfc-scanning) guide.

## Migrating Veriff iOS SDK from 6 to 7

### Minimum iOS supported version increased

Minimum version is iOS 13.0.

## Migrating Veriff iOS SDK from 5 to 6

### Update `VeriffSdk.Branding` object

**Following configurations are added:**

- `background`
- `onBackground`
- `onBackgroundSecondary`
- `onBackgroundTertiary`
- `primary`
- `onPrimary`
- `secondary`
- `onSecondary`
- `outline`
- `error`
- `success`

**Following configurations are removed:**

- `themeColor`
- `backgroundColor`
- `primaryTextColor`
- `rimaryButtonBackgroundColor`
- `bulletPoint`

**Following configurations are deprecated:**

- `logomark` not used anymore

**Following configurations are renamed:**

- `buttonCornerRadius` -> `buttonRadius`

## Migrating Veriff iOS SDK from 4 to 5

### Minimum iOS supported version increased

Minimum version is iOS 11.0.

### Updates to `VeriffSdk.Branding` object

**Following configurations are removed:**

- `buttonHeight`
- `statusBarColor`
- `secondaryTextColor`
- `isTextUppercase`

**Changes to the fonts API:**

- `lightFontName` is removed
- `regularFontName`, `semiBoldFontName` and `boldFontName` are renamed to `regular`, `medium` and `bold`.

**Following configurations are added:**

- `logomark` customization

## Migrating Veriff iOS SDK from 3 to 4

`Veriff`**instances renamed to**`VeriffSdk`

The name `Veriff` was used both for our module and public class name. This blocked us from supporting Swift Package Manager due to [Swift compiler bug](https://bugs.swift.org/browse/SR-898). We renamed our public class name to `VeriffSdk`.

**Following structs have been moved:**

- `VeriffConfiguration` struct is moved under `VeriffSdk.Configuration` (replace the occurrences of `VeriffConfiguration` with `VeriffSdk.Configuration`)
- `Branding` `VeriffSdk.Branding` (replace the occurrences of `Branding` with `VeriffSdk.Branding`)
- `VeriffDelegate` struct is moved under `VeriffSdkDelegate `(replace the occurrences of `VeriffDelegate` with `VeriffSdkDelegate`)

**Following are now mandatory:**

- `VeriffSdk.Result.description` (if you had issues with unwrapping it, feel free to remove it)

**Other changes**

`VeriffSdk.Result.sessionToken` removed and `VeriffSdk.Result.sessionUrl` added instead.

Remove the occurrences of `sessionToken`. You can now use `sessionUrl` to get the full `sessionUrl` including token.

## Migrating Veriff iOS SDK to 3

**Switch from******`baseUrl`******and******`sessionToken`******to******`sessionUrl`

The `Veriff` object in the SDK 3.0.0 takes a required `sessionUrl` and an optional `VeriffConfiguration` instance as parameters into initialisation. The `sessionUrl` is received from your backend implementation (namely the respone of the [POST /sessions](https://veriff-dev-documentation.document360.io/apidocs/v1sessions)[↗] call), it is composed of the `baseUrl` and `sessionToken` sent to the `VeriffConfiguration` object in earlier versions.

**Updated******`VeriffConfiguration`******object**

The `VeriffConfiguration` struct now takes in `branding` and `languageLocale` as initialisation parameters.

**The new******`VeriffDelegate`******method**

You can now receive session results via `func sessionDidEndWithResult(_ result: Veriff.Result)` instead of the obsolete `func onSession(result: VeriffResult, sessionToken: String)`. The `sessionToken` is included in the `Veriff.Result` as an instance variable.

**Use******`Veriff.Result`******instead of******`VeriffResult`

The new****`Veriff.Result` struct comprises `status: Status` and `sessionToken: String?` instance variables. The `Status` enum can be of three types: `done`, `canceled`, `error`. The `description` variable on the `Veriff.Result` returns additional information as a string.

---

## Changelog

| Date | Description |
| --- | --- |
| Mar 16, 2026 | [Migrating Veriff iOS SDK from 9 to 10](/v1/docs/ios-migration-guide#migrating-veriff-ios-sdk-from-9-to-10) added |
| Feb 3, 2026 | [Migrating Veriff iOS SDK from 8 to 9](/v1/docs/ios-migration-guide#migrating-veriff-ios-sdk-from-8-to-9) added |
| Jun 6, 2025 | Header “Article versioning” renamed to “Changelog” |
| Apr 23, 2025 | **Enable NFC scanning** section added |
| Mar 12, 2025 | Documentation published |

## Related

- [iOS SDK guide](/ios-sdk-guide.md)
- [iOS SDK changelog](/ios-changelog.md)
- [Intro to the API](/quick-guide-of-idv-using-the-api.md)
