# Completing Verification

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];`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.truecaller.com/truecaller-sdk/ios/integrating-with-your-ios-app/verifying-non-truecaller-app-users/completing-verification.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
