Once verificationState is TCVerificationState.otpInitiated and the user has entered the OTP, first name and last name(optional), you can complete the verification process by calling the following method :
Swift: TCTrueSDK.sharedManager().verifySecurityCode(<#OTP>, andUpdateFirstname: <#FIRST_NAME>, lastName:<#LAST_NAME>)
Objective C
[[TCTrueSDK sharedManager] verifySecurityCode:<#OTP> andUpdateFirstname:<#FIRST_NAME> lastName:<#LAST_NAME>];
Please note that the first name and last name values to be passed in the above method call need to follow the below mentioned rules :
The strings need to contain at least 1 alphabet, and cannot be completely comprised of numbers or special characters
String length should be less than 128 characters
First name is a mandatory field, last name can be empty ( but non null )
After you call the above method, your delegate method verificationStatusChanged() with verification status as TCVerificationState.verificationComplete is called and the user profile is received in delegate method
Objective C: - (void)didReceiveTrueProfile:(nonnull TCTrueProfile *)profile
Swift: func didReceive(_ profile: TCTrueProfile)
Whenever you get verification status as TCVerificationState.verificationComplete, SDK will share an additional access token with your application which can be accessed using the accessTokenForOTPVerification() method. You can use this access token to validate the authenticity of the verification flow by making an API call from your server to Truecaller's server. For details on this part, please refer here.
Swift: TCTrueSDK.sharedManager().accessTokenForOTPVerification()
Objective C : [[TCTrueSDK sharedManager] accessTokenForOTPVerification];