youverify-ios-sdk

Overview

YouVerify_SDK allows you to onboard users properly and confirming identities by providing data embedded in their identity documents. A wide range of IDs can be scanned ranging from driver’s license to national ID cards, passports e.t.c.

Requirements

YouVerify_SDK supports ios 15 and above and can scan IDs from the following country list -:

Country Documents
Albania Driver Card, ID Card, Professional DL, Passport
Algeria Driving Licence, ID Card, Passport
Argentina Alien ID, Driving Licence, ID Card, Passport
Armenia ID Card
Australia Passport, ID Card, Driving Licence, Proof Of Age Card
Azerbaijan ID Card, Passport
Bangladesh Driving Licence, ID Card, Passport
Belgium Driving Licence, ID Card, Passport, Minors ID, Passport, Residence Permit, Resident ID
Bosnia And Herzegovina Driving Licence, ID Card, Passport
Botswana ID Card
Brazil Driving Licence, Passport
Bulgaria Driving Licence, ID Card, Passport
Canada Passport, ID Card, Citizenship Certificate, Residence Permit, Tribal ID, Weapon Permit, Driving Licence, Public Services Card
Colombia Alien ID, Driving Licence, ID Card, Minors ID, Passport
Croatia Driving Licence, ID Card, Residence Permit, Passport
Cyprus Driving Licence, ID Card, Residence Permit
Czechia Driving Licence, ID Card, Residence Permit, Passport
Dominican Republic Driving Licence, ID Card
Ecuador Driving Licence, ID Card
Estonia Driving Licence, ID Card, Residence Permit, Passport
Finland Alien ID, Driving Licence, ID Card, Residence Permit, Passport
France Driving Licence, ID Card, Residence Permit, Passport
Georgia Driving Licence, ID Card, Passport
Germany Driving Licence, ID Card, Residence Permit, Passport
Ghana Driving Licence, ID Card, Passport
Greece Driving Licence, ID Card, Residence Permit, Passport
Guatemala Consular ID, Driving Licence, ID Card, Passport
Hong Kong ID Card, Passport
Iran Passport
Ireland Driving Licence, Passport Card, Public Services Card, Passport
Israel Driving Licence, ID Card, Passport
Italy Driving Licence, ID Card, Residence Permit, Passport
Ivory Coast Driving Licence, ID Card
Jamaica Driving Licence
Japan Driving Licence, Passport
Jordan Driving Licence, ID Card, Passport
Kazakhstan ID Card
Kenya ID Card, Passport
Kuwait Driving Licence, ID Card, Resident ID
Kyrgyzstan ID Card
Latvia Alien ID, Driving Licence, ID Card, Residence Permit Passport
Libya Passport
Lithuania Driving Licence, ID Card, Passport
Luxembourg Driving Licence, ID Card, Residence Permit
Malaysia Driving Licence, MyKAS, MyKad, MyKid, MyPR, MyPolis, MyTentera, Refugee ID, Passport, i-Kad
Maldives ID Card
Malta Driving Licence, ID Card, Residence Permit
Mexico Consular ID, Passport, Professional DL, Residence Permit, Voter ID, Driving Licence
Moldova ID Card, Passport
Montenegro Driving Licence, ID Card, Passport
Morocco Driving Licence, ID Card, Passport
Nepal Passport
Netherlands Driving Licence, ID Card, Residence Permit, Passport
New Zealand Driving Licence, Passport
Nicaragua ID Card
Nigeria Driving Licence, ID Card, Passport, Voter ID
North Macedonia Driving Licence, ID Card, Passport
Norway Driving Licence, Residence Permit, Passport
Pakistan Consular ID, ID Card, Passport, Driving Licence
Philippines Driving Licence, Multipurpose ID, Passport, Professional ID, Social Security Card, Tax ID, Voter ID
Poland Driving Licence, ID Card, Residence Permit, Passport
Portugal Driving Licence, ID Card, Residence Permit, Passport
Puerto Rico Driving Licence, Voter ID
Romania Driving Licence, ID Card, Passport
Russia Driving Licence, Passport
Rwanda ID Card
Senegal ID Card
Serbia Driving Licence, ID Card, Passport
Singapore Driving Licence, Employment Pass, Fin Card, ID Card, Resident ID, Passport, S Pass, Work Permit
Slovakia Driving Licence, ID Card, Residence Permit, Passport
Slovenia Driving Licence, ID Card, Residence Permit, Passport
South Africa Driving Licence, ID Card, Passport
South Korea Driving Licence, ID Card, Passport
Syria Passport
Thailand Alien ID, Driving Licence, ID Card, Passport
United Arab Emirates Driving Licence, ID Card, Resident ID
Uganda Driving Licence, ID Card
United Kingdom Driving Licence, Passport, Residence Permit
Uruguay ID Card
United States of America Border Crossing Card, Global Entry Card, Green Card, Military ID, Nexus Card, Passport, Social Security Card, Veteran ID, Work Permit, Driving Licence, ID Card, Weapon Permit
Zimbabwe Passport

Integration

YouVerify_SDK can integrate with both UIKit and SwiftUI using slightly different syntax.

Integrate YouVerify DocumentCapture with Cocoapods by calling :-

pod ‘YouVerify_SDK’ 

Add a post install block to the end of your podfile with the following command

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      	config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
    end
  end
end

and run pod install on your terminal from your ios project directory.

After a successful pod install, navigate to your targets and select “Build Settings” and set “User Script Sandboxing to NO

Add the Camera usage description in the info.plist file

<key>NSCameraUsageDescription</key>
	<string>YouVerify would like to use your camera for better ID capturing and recognition</string>

UIKit

Import the SDK into your project from any view Controller with

import YouVerify_SDK

To start the document capture process, declare a YV variable and pass a callback to it.

let yv = YV(merchant_id: "<merchant_id>", callBack: {[weak self] dict in
                
            if let dict = dict {
                //self!.printResult(dict: dict)
            }else {
                print("dict is nil")
            }
        })

You can customize the look and and feel of the buttons and the entry texts and can also set a username by passing an appearance object in the YV variable declared earlier. Leaving out any argument in the Appearance object is fine as they all have a default value.

let appearance = Appearance(actionText: "Verify Identity", bTnTextColor: UIColor.white, userName: "User")
let yv = YV(merchant_id: "61d880f1e8e15aaf24558f1a", appearance2: appearance, callBack: {[weak self] dict in
                
            if let dict = dict {
                //self!.printResult(dict: dict)
            }else {
                print("dict is nil")
            }
        })

Finally, start the capture process by calling the startYV() function.

yv.startYV(from: self)

SwiftUI

Insert a YVView object into a SwiftUI view hierachy, passing in the merchant id, a property to hold the result of the document capture and a boolean state variable. The dict property gets updated with the result after the document capture process have been concluded.

struct ContentView: View {
    
    @ObservedObject var dict : AppState
    @State var isShowingYouVerify = false
    
    var body: some View {
        VStack {
            Button(action: {
                self.isShowingYouVerify.toggle()
            }) {
                Text(isShowingYouVerify ? "Selected" : "Not Selected")
            }
            Text(dict.dict.description)
        }
        if isShowingYouVerify {
            YVView(appearance: nil, dict: $dict.dict, isShown: $isShowingYouVerify, mercha_id: "<MERCHANT ID>")
        }
    }
}