Usage (Kotlin)
Under Development: This SDK is currently in development. Documentation and API may change. For production use, please contact our team.
Overview
The Vouch Android SDK provides a UI flow for initiating and managing verification within your app. It uses the Activity Result APIs, so you can launch the flow from a ComponentActivity or Fragment and handle the result in a single callback.
Initialization
Create a single VouchSdk instance in your Activity or Fragment and keep it alive for the lifetime of that component.
Recommended initialization pattern:
import androidx.activity.ComponentActivity
import com.vlayer.vouch.sdk.VouchSdk
class MainActivity : ComponentActivity() {
private val vouchSdk = VouchSdk(
activityResultCaller = this,
customerId = "YOUR_CUSTOMER_ID",
apiKey = "YOUR_API_KEY"
)
}Important: Keep the SDK instance alive for the entire lifecycle of your Activity or Fragment. Creating multiple instances may lead to unexpected behavior.
Requesting a Verification
Call vouchSdk.initialize(context) once before the first prove() call. Initialization fetches customer appearance so the SDK opening screen renders with your brand.
To start a verification flow, build a ProveConfig and call vouchSdk.prove. The SDK will launch its UI and return a NotarizationRequestSdkResult when finished.
Basic usage example:
import com.vlayer.vouch.sdk.InitializeSdkResult
import com.vlayer.vouch.sdk.NotarizationRequestSdkResult
import com.vlayer.vouch.sdk.ProveConfig
import com.vlayer.vouch.sdk.VouchSdk
import kotlinx.coroutines.launch
class MainActivity : ComponentActivity() {
private val vouchSdk = VouchSdk(
activityResultCaller = this,
customerId = "YOUR_CUSTOMER_ID",
apiKey = "YOUR_API_KEY"
)
private fun startProving() {
val inputs = mapOf<String, String>(
"inputParamName" to "inputParamValue"
)
val proveConfig = ProveConfig(
datasourceId = "DATA_SOURCE_ID",
inputs = inputs,
webhookUrl = "WEBHOOK_URL",
metadata = "optional-metadata"
)
lifecycleScope.launch {
when (val init = vouchSdk.initialize(this@MainActivity)) {
is InitializeSdkResult.Success ->
vouchSdk.prove(
context = this@MainActivity,
proveConfig = proveConfig,
callback = ::handleNotarizationResult
)
is InitializeSdkResult.Failure -> {
// Handle init failure, e.g. show init.message
}
}
}
}
private fun handleNotarizationResult(result: NotarizationRequestSdkResult) {
when (result) {
is NotarizationRequestSdkResult.Success -> {
val requestId = result.requestId
// Handle success
}
is NotarizationRequestSdkResult.Failure -> {
val requestId = result.requestId
val message = result.message
// Handle failure
}
is NotarizationRequestSdkResult.Canceled -> {
val requestId = result.requestId
// Handle cancellation
}
}
}
}Parameters
The VouchSdk constructor accepts:
activityResultCaller: theComponentActivityorFragmentthat hosts the SDK. The SDK uses Android's Activity Result API to launch its verification UI and return the result back to your app.customerId: your customer ID.apiKey: your API key for server-side proof request creation. The SDK callsPOST /proof-requestwith bearer auth before fetching the config.
The ProveConfig requires your datasourceId and webhookUrl. It also accepts:
metadata(optional): custom metadata string (1–256 characters) attached to the proof request. It is also returned in the webhook payload.
For detailed documentation on datasourceId, webhookUrl, and inputs, see the Vouch URL Parameters section.
Note: In the Android SDK, inputs is passed as a Map<String, String> and is serialized internally by the SDK.
Result Handling
The callback receives a NotarizationRequestSdkResult:
Success: verification completed; containsrequestIdFailure: verification failed; containsrequestId(nullable) andmessage(nullable)Canceled: user canceled; containsrequestId(nullable)
Best Practice: Always handle all result types and log the requestId for debugging and user support.