Android SDK
How It Works?
Register your app at https://www.verifykit.com and get your client keys and server key.
Add VerifyKit SDK to your app
Configure and start VerifyKit SDK
When verification is complete, send sessionId which VerifyKit SDK gives you to your backend service.
At your server side, get user's phone number from VerifyKit service with serverKey and sessionId. You can check Rest Api Docs.
IMPORTANT NOTE
ServerKey is used for getting info from VerifyKit service.
Please keep ServerKey safe. Do not include it in your client's code base.
VerifyKit Flow

Installation
Requirements
Minimum SDK Version is api 16
// Add it to your app build.gradle at the end of repositories:
implementation 'org.bitbucket.verifykit:verifykit-android:0.11.1'
//Add it to your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Usage
In your Application file you should initialize VerifyKit. VerifyKit.init() method needs VerifyKitOptions object.
Usage
val theme = VerifyKitTheme(
backgroundColor = Color.WHITE
)
VerifyKit.init(
this,
VerifyKitOptions(
isLogEnabled = true,
verifyKitTheme = theme
)
)
You can call VerifyKit.startVerification(this) method from your Activity or Fragment then get the result via VerifyCompleteListener interface from your Activity or Fragment.
VerifyCompleteListener
VerifyKit.startVerification(this, object : VerifyCompleteListener {
override fun onSuccess(sessionId: String) {
// TODO operate SUCCESS process
}
override fun onFail(error: VerifyKitError) {
// TODO operate FAIL process
}
})
Optional: You can pass user phone number to VerifyKit with startVerification
method. In this way VerifyKit doesn’t ask phone number to user
VerifyKit.startVerification(
activity = this,
countryPhoneCode = "+90",
phoneNumber = "5555555555",
mCompleteListener = object : VerifyCompleteListener {
override fun onSuccess(sessionId: String) {
// TODO operate SUCCESS process
}
override fun onFail(error: VerifyKitError) {
// TODO operate FAIL process
}
})
VerifyKit.checkInterruptedSession
There may be a case when user chooses a third party messaging app for validation, sends a message, but doesn't return to main app and kills it. In that case, that user is verified with VerifyKit but the main app doesn't know it yet.
To fix this, we have a method to check interrupted session status.
VerifyKit.checkInterruptedSession(object : VerifyCompleteListener {
override fun onSuccess(sessionId: String) {
// sessionId
}
override fun onFail(error: VerifyKitError) {
// error
}
})
AndroidManifest
Open the /app/manifest/AndroidManifest.xml file.
Add the following meta-data elements, an activity for VerifyKit and intent filter for App Link inside your application element:
<meta-data
android:name="com.verifykit.sdk.clientKey"
android:value="your_verifykit_client_key" />
<meta-data
android:name="com.verifykit.sdk.clientSecret"
android:value="your_verifykit_client_secret" />
<activity
android:name="com.verifykit.sdk.ui.VerificationActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="your_deep_link_url"
android:pathPattern="your_deep_link_pattern"
android:scheme="https" />
</intent-filter>
</activity>
An Android App Link is a deep link based on your website URL that has been verified to belong to your website. So clicking one of these immediately opens your app if it's installed—the disambiguation dialog does not appear. Though the user may later change their preference for handling these links. For verifying your App Link see document.
ProGuard
-keep class com.verifykit.sdk.core** { *; }
Backend Integration
When the verification is complete, in order to get information of the verified user, you should integrate with VerifyKit Rest API. After receiving the sessionID variable from the Web SDK, you can fetch your client's data, such as phone numbers , from VerifyKit Rest API service.
This integration requires a ServerKey token that is unique to your application in VerifyKit and used as both an identifier and a security measure. For this reason, you have to use your ServerKey token in backend integration. You can not use ServerKey on your client-side.
For further info on how to integrate this part please click here.

Last updated