Identity Verification Android SDK
Beta
Last updated: January 21, 2026
You can use the Identity Verification Android SDK to redirect applicants to attempts in your Android mobile app.
Information
To enable the SDK for your Identity Verification configuration ID supports the SDK, contact your account manager or request support.
You must have integrated the Identity Verification solution.
The following minimum versions apply:
- Kotlin 2.1.0
- Android minSdkVersion 24
Follow these steps:
- Install the SDK.
- Initialize the SDK.
- Handle the verification result.
The Identity Verification Android SDK is distributed as a local Maven repository containing Android archive files (AARs).
Download and unzip the file provided by your account manager.
Copy the unzipped folder to your project root at
<project-root>/local-repo/, using the following structure:
1<project-root>/2├── local-repo/3│ └── com/4│ └── checkout/5│ └── idv/6│ ├── idv/7│ │ └── 0.1.0/8│ │ └── idv-0.1.0.aar9│ └── idv-ui/10│ └── 0.1.0/11│ └── idv-ui-0.1.0.aar12└── ...
- In
settings.gradle.kts, add the local Maven repository todependencyResolutionManagement:
1dependencyResolutionManagement {2repositories {3google()4mavenCentral()5maven(url = uri("${rootProject.projectDir}/local-repo"))6}7}
- In
gradle/libs.versions.toml, add the following dependencies to the version catalog:
1[versions]2idv = "0.1.0"34[libraries]5idv = { group = "com.checkout.idv", name = "idv", version.ref = "idv" }6idv-ui = { group = "com.checkout.idv", name = "idv-ui", version.ref = "idv" }
- In your app module
build.gradle.kts, add the dependencies:
1dependencies {2implementation(libs.idv)3implementation(libs.idv.ui)4}
Information
Star the SDK in GitHub to receive notifications when Checkout.com releases updates to the SDK.
In your app's assets library, add your business's logo in any image format supported by Android. For example GIF, JPG, PNG, WebP, Android Vector Drawable (AVD).
Information
For information on providing a logo for dark mode, see Medium – Use a Different Image When Dark Mode is Enabled on Android.
- Call the Create an attempt endpoint from your back end, which returns the following:
- The attempt URL, which is valid for 15 minutes, in the
verification_urlfield - The
client_secret, which is valid for 48 hours, to authorize the verification
- Initialize the SDK and pass the attempt URL and the client secret:
1override fun onCreate(savedInstanceState: Bundle?) {2super.onCreate(savedInstanceState)3enableEdgeToEdge()45setContent {6// 1. Create the configuration (optional branding customization)7val configuration = IdentityVerificationConfiguration(8commercialName = "YOUR_BRAND",9logo = R.drawable.logo,10// For example, your app's primary color11lightColorScheme = ColorScheme(12primary = Color(0xFFEC1408),13onPrimary = Color.White14)15)1617// 2. Initialize the launcher18val idv = CheckoutIdentityVerification.rememberCheckoutIdentityVerification(19configuration = configuration20) { result ->21// 3. Handle the result22when (result) {23is IDVResult.Completed -> {24println("Verification completed successfully!")25}26is IDVResult.Failed -> {27println("Verification failed or cancelled. Reason: ${result.reason}")28}29}30}3132val launchOptions = IDVLaunchOptions(33verificationUrl = "https://example.com/verify",34clientSecret = "Your_client_secret",35)3637Scaffold(modifier = Modifier.fillMaxSize()) { padding ->38Box(modifier = Modifier.padding(padding).fillMaxSize(), contentAlignment = Alignment.Center) {39Button(onClick = {40// 4. Launch the SDK41idv.launch(launchOptions = launchOptions)42}) {43Text("Start Verification")44}45}46}47}48}
You can use the IdentityVerificationConfiguration struct to:
- Set the color scheme.
- Display your logo.
- Display the commercial name for your business.
The UI supports the following languages:
- Chinese (simplified)
- Dutch
- English (UK)
- English (US)
- Estonian
- Finnish
- French
- German
- Italian
- Japanese
- Korean
- Latvian
- Polish
- Portuguese
- Romanian
- Russian
- Slovak
- Spanish
- Swedish
When the verification is completed and the result is available, catch the ReturnReason enum.
| Enum | Description |
|---|---|
| The verification was completed successfully. |
| The applicant selected a button to refuse to perform the verification. This can have the value |
| The applicant needs to retry the verification. This can have the following values:
|
Information
Each ReturnReason returns a response code that provides more information about the reason.
See Identities response codes.