Android SDK

How It Works?

  1. 1.
    Register your app at https://www.verifykit.com and get your client keys and server key.
  2. 2.
    Add VerifyKit SDK to your app
  3. 3.
    Configure and start VerifyKit SDK
  4. 4.
    When verification is complete, send sessionId which VerifyKit SDK gives you to your backend service.
  5. 5.
    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
Java
// Add it to your app build.gradle at the end of repositories:
implementation 'org.bitbucket.verifykit:verifykit-android:0.5.7'
//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

Application.kt
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

Kotlin
VerifyKit.startVerification(this, object : VerifyCompleteListener {
override fun onSuccess(sessionId: String) {
// TODO operate SUCCESS process
}
override fun onFail(error: VerifyKitError) {
// TODO operate FAIL process
}
})
You must pass the result to VerifyKit.onActivityResult

VerifyKit.onActivityResult

Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
VerifyKit.onActivityResult(requestCode, resultCode, data)
}
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.

VerifyCompleteListener

Application.kt
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:
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.
<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>

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.
Need some help?
We all need a little help sometimes. If you have any question or request, feel free to create an issue.
Last modified 27d ago
Copy link
On this page
How It Works?
VerifyKit Flow
Installation
Requirements
Usage
AndroidManifest
ProGuard