iOS SDK

Latest Version: 1.1.0

Overview

Our iOS VoveSDK is a comprehensive solution designed to facilitate ID verification and Know Your Customer (KYC) compliance effortlessly within your iOS applications. By integrating VoveSDK, you can enable secure and efficient user identity verification, leveraging our robust backend APIs for session token generation and verification status management.

Getting Started

Installation

CocoaPods

VoveSDK is available through CocoaPods. To integrate VoveSDK into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'VoveSDK'

Then, run the following command in your terminal:

pod install

Swift Package Manager

To integrate VoveID using Swift Package Manager, you'll need Swift version 5.3 or later. Follow these steps within your Xcode project:

Go to File, Add Packages. You'll see a search bar in the top right corner of the dialog box. Enter the VoveID package URL: https://github.com/vove-id/vove-id-ios From the results, choose the knot-api-ios package. Decide on your Dependency Rule. We suggest opting for the Up to Next Major Version. Choose the project you want to integrate with VoveID, then click Add Package. Pick the VoveID package product and click on Add Package. Confirm that the VoveID Swift package was successfully added as a package dependency to your project.

Camera Permission Requirement

For VoveSDK to function properly, it is essential to request and obtain camera permission from the users. This permission is crucial for ID verification processes that require access to the device's camera. To request camera permission, add the following key to your Info.plist file:

<key>NSCameraUsageDescription</key>
<string>This application requires access to the camera for ID verification purposes.</string>

Important Note on Testing

To accurately test and evaluate the functionality of VoveSDK, please conduct all tests on a real iOS device. VoveSDK is designed to interact with hardware-specific features not available in iOS simulators, making real devices necessary for proper operation and testing.

Initialize Vove SDK

To initialize the Vove SDK, use your public API key. This setup should ideally be done in your AppDelegate at the earliest possible point.

Vove.initialize(publicKey: "PUBLIC_KEY", environment: "ENVIRONMENT") { result in
    switch(result) {
    case .success:
        print("Vove SDK initialized")
        break
    case .failure:
        print("Could not initialize Vove SDK")
        break
    }
    
}

Starting an ID Verification Session

To start an ID verification session, you need a session token that should be generated from your backend by interacting with VoveSDK's APIs. Once you have the session token, you can start the verification session as follows:

Vove.start(sessionToken: sessionToken) { verificationResult in
  switch (verificationResult) {
      case .failure:
          print("Verification failed")
          break
      case .pending:
          print("Verification pending")
          break
      case .success: 
          print("Verification successful")
          break
      case .canceled: 
          print("Verification successful")
          break
  }
}

Handling Verification Status

VoveSDK provides three status callbacks for the ID verification process: success, pending, and failed. It's crucial to handle each status appropriately in your application to ensure a smooth user experience.

Success

The success status indicates that the user's ID verification has been successfully completed. You can proceed with the user's access to the application's features or services.

Pending

The pending status means that the user's ID verification is still in progress and hasn't been concluded yet. You may need to inform the user to wait or check back later.

Failed

The failed status occurs when the ID verification process fails. It's important to handle this case by informing the user of the failure and potentially guiding them on how to retry the verification process.

Setting the Application Locale

VoveSDK supports multiple locales to cater to a diverse user base. You can set the locale programmatically to match the user's language and regional preferences. This is particularly useful in multilingual applications or in regions with specific language requirements.

To change the locale in VoveSDK, use the following method:

Vove.setLocal(local: .arMA)

Here is the list of supported locales defined in the VoveLocale enumeration:

  • en: English

  • fr: French

  • ar: Arabic

  • arMA: Moroccan Arabic

Select the appropriate locale to ensure that the SDK’s text and user interface elements are presented in the chosen language, enhancing the user experience by providing localized content that is more accessible and understandable to the user.

Enabling Vocal Guidance for 3D Liveness Verification

To improve the user experience and ensure accurate performance during the 3D liveness verification step, VoveSDK offers an optional vocal guidance feature. This feature provides audio cues to guide users through the verification process, instructing them on how to position themselves or move in front of the camera.

To enable vocal guidance in your application, use the following method:

Vove.setVocalGuidanceEnabled(true)

When enabled, the SDK will provide voice instructions during the 3D liveness verification step, helping users understand exactly what they need to do to successfully complete the verification process. This feature is particularly useful in ensuring that users perform the necessary actions correctly and efficiently, leading to higher success rates in liveness detection.

Enabling NFC Functionality (Optional)

If your application requires NFC capabilities for ID verification, you need to ensure that NFC is properly enabled and configured:

  • Add NFC Entitlements: Make sure your app has the necessary entitlements to use NFC. You can enable NFC capabilities in your Apple Developer account and ensure that your app's provisioning profile includes NFC.

  • Modify Info.plist: Add the following configuration to your Info.plist to allow your app to access specific NFC tags needed for ID verification:

    <key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
    <array>
        <string>A0000002471001</string>
        <string>A0000002472001</string>
        <string>00000000000000</string>
    </array>
    ```

This setup allows your app to interact with designated NFC tags that are part of the ID verification process.

Conclusion

By following this guide, you should be able to integrate VoveSDK into your iOS application smoothly, enabling efficient and secure ID verification and KYC compliance. For further assistance or questions, please contact our support team.

Last updated