1. Function Signature
Copy
val sdkConfigs = SDKConfigs(
activeLivenessEnable = true/false,
passiveLivenessEnable = true/false,
kioskEnable = true/false
)
val sDKBuilder = SDKBuilder.builder()
.sdkConfigs(sdkConfigs)
.setDocumentNumber("xxx-xxxx-xxxxxxxx-x")
.setEventID(selectedEventId)
.setDocumentType("uid")
.setAuthenticateForEvent(true/false)
.setTicketType("ticketType")
.setGovIntegration(true/false)
.functionType(FunctionType.ON_BOARDING)
.faceHandHandler { sdkResponse ->
// handle sdk callback
}
.build()
Launcher.launch(sDKBuilder, context)
2. Required Parameters by Function
| Function | Required Parameters |
|---|---|
| ON_BOARDING | sdkConfigs |
| TRANSFER | uid, biometricType |
| BIOMETRIC_LOGIN | documentNumber, documentType, eventId |
| FACE_CAPTURE | biometricType, base64ImageString |
| KIOSK_MODE_CAMERA | eventId |
| REGISTER_EVENT_BY_QR | eventId, ticketType |
| VALIDATE_QR | eventId, qrData, qrSignature |
| GET_EVENTS | sdkConfigs |
| GET_USER_DETAILS | uid, consentToken |
| GET_REGISTRANT_DETAILS | uid, eventId, consentToken |
3. Examples
- Onboarding:
Copy
val sdkConfigs = SDKConfigs(
activeLiveness = true,
passiveLiveness = true,
kioskMode = false
)
val sdkBuilder = SDKBuilder.builder()
.sdkConfigs(sdkConfigs)
.functionType(FunctionType.ON_BOARDING)
.sdkGeneralHandler { response ->
if(response.code == 200){
val uid = response.data?.jsonObject?.get("uid")
val token = response.data?.jsonObject?.get("token")
}
}.build()
Launcher.launch(sdkBuilder, context)
- Transaction:
Copy
val sdkConfigs = SDKConfigs(
activeLiveness = true,
passiveLiveness = true,
kioskMode = false
)
val sdkBuilder = SDKBuilder.builder()
.functionType(FunctionType.TRANSFER)
.setBiometricType("face")
.sdkConfigs(sdkConfigs)
.setUiD(uid)
.sdkGeneralHandler { response ->
if(response.code == 200){
// transaction verified
}
}.build()
Launcher.launch(sdkBuilder, context)
- Authentication:
Copy
val sdkConfigs = SDKConfigs(
activeLivenessEnable = sdkConfigManager.activeLiveness,
passiveLivenessEnable = sdkConfigManager.passiveLiveness,
kioskEnable = sdkConfigManager.kioskMode
)
val sdkBuilder = SDKBuilder.builder()
.sdkConfigs(sdkConfigs)
.setDocumentNumber(uiState.documentNumber)
.setEventID(selectedEventId)
.setDocumentType(uiState.documentType)
.setAuthenticateForEvent(true)
.functionType(FunctionType.BIOMETRIC_LOGIN)
.faceHandHandler { sdkResponse ->
if (sdkResponse.uID != null && sdkResponse.token != null) {
navController.navigateToRegistrantDetailsScreen(
uId = sdkResponse.uID!!,
selectedEventId,
consentToken = sdkResponse.token!!
)
} else {
context.showMessage("${sdkResponse.message}")
}
}.build()
Launcher.launch(sdkBuilder, context)
- Search:
Copy
val sdkConfigs = SDKConfigs(activeLivenessEnable = sdkConfigManager.activeLiveness, passiveLivenessEnable = sdkConfigManager.passiveLiveness, kioskEnable = sdkConfigManager.kioskMode)
val sDKBuilder = SDKBuilder.builder().sdkConfigs(sdkConfigs).functionType(FunctionType.KIOSK_FACE,).faceHandHandler { sdkResponse ->
Log.e("sdkResponse Customer Search",": ${sdkResponse}")
if (sdkResponse.uID!=null && sdkResponse.token!=null){
sdkResponse.uID?.let {
if (isNormal) navController.navigateToProfileDetailsScreen(uID = it, consentToken = sdkResponse.token) else
// perfomr action here
}
}else{ sdkResponse.message?.let { showMessage(navController, message = it) } }}.build()
Launcher.launch(sDKBuilder, context)
- Search Capture:
Copy
SDK. faceCapture(
base64Image = base64ImageString, biometricType = "face", govVerification = true/false, eventId = eventId
) { result ->
// ALWAYS switch to Main thread for UI
Log.e(" faceCapture: ", " Response: $result")
context.lifecycleScope.launch(Dispatchers.Main) {
when (result) {
is ApiFunctionsResult.Loading -> {
Log.e(" faceCapture ", "Loading...") // show loading }
is ApiFunctionsResult.Success -> { // data
context.showLoader = false // hide loading
if (result.data != null) {
// perform action
} else {
val message = result.errors.safeErrorMessage()
showMessage(context, message)
}
}
is ApiFunctionsResult.Failure -> { context.showLoader = false // hide
Log.e(" faceCapture: ", "Failed : Response: ${result.errors?.toString()}")
// show message touser
} } }}
- Get Events:
Copy
SDK. getEvents(evenetId=””,status=”Active”)
{ result ->
// ALWAYS switch to Main thread for UI
Log.e(" getEvents: ", " Response: $result")
context.lifecycleScope.launch(Dispatchers.Main) {
when (result) {
is ApiFunctionsResult.Loading -> {
Log.e(" getEvents ", "Loading...") // show loading }
is ApiFunctionsResult.Success -> { // data
context.showLoader = false // hide loading
if (result.data != null) {
// perform action
} else {
val message = result.errors.safeErrorMessage()
showMessage(context, message)
}
}
is ApiFunctionsResult.Failure -> { context.showLoader = false // hide
Log.e(" getEvents: ", "Failed : Response: ${result.errors?.toString()}")
// show message touser
} } }}
- Event Registration:
Copy
val sdkConfigs = SDKConfigs(activeLivenessEnable = sdkConfigManager.activeLiveness, passiveLivenessEnable = sdkConfigManager.passiveLiveness, kioskEnable = sdkConfigManager.kioskMode)
val sDKBuilder = SDKBuilder.builder().sdkConfigs(sdkConfigs).setEventID(eventId).setTicketType(ticketType).setGovIntegration(sdkConfigManager.govVerification)
.functionType(
FunctionType.REGISTER_EVENT_BY_QR,
).sdkGeneralHandler { sdkResponse ->
Log.e("sdkResponse : ","$sdkResponse")
Log.e("eventQrRegistration : ","$sdkResponse")
if (sdkResponse.code==200){
val qrResponse = Json.decodeFromJsonElement<QrResponse>(sdkResponse.data!!)
val payloadData = qrResponse.payload?.data
val payloadSignature = qrResponse.payload?.signature
val uid = qrResponse.uid
}else{
val message = sdkResponse.errors.safeErrorMessage()
showMessage(navController, message = message) }
}.build()
Launcher.launch(sDKBuilder,context)
- Embedded View (KioskMode/EnventBiometricCheckin:
Copy
val sDKBuilder = SDKBuilder.builder()
.sdkConfigs(sdkConfigs)
.setDocumentNumber(documentNumberForApi)
.setEventID(selectedEventId)
.setDocumentType(uiState.documentType)
.setAuthenticateForEvent(true)// for even checkin true for normal login false
.functionType(FunctionType.KIOSK_MODE_CAMERA)
.faceHandHandler { sdkResponse ->
Log.e("BIOMETRIC_LOGIN_Event", "$sdkResponse")
if (sdkResponse.uID != null && sdkResponse.token != null) {
navController.navigateToRegistrantDetailsScreen(
uId = sdkResponse.uID!!,
eventId = selectedEventId,
consentToken = sdkResponse.token!!
)
} else {
val message = sdkResponse.message?: "Unable to check-in please try again"
showMessage(navController=navController, message = message)
// context.showMessage("${sdkResponse.message}")
}
} .build()
Launcher.launch(sDKBuilder, context)
Response
Copy
QuepassKitOutputModel
data class SDKResponse(
var code:Int?=null, // 200 for success
var data: JsonElement? = null,
var errors: JsonElement? = null
)
public struct ErrorModel{
public let code: Int
public let message: String
public let details: String
}
- ExpressVerfication:
Copy
val sdkConfigManager = (context as MainActivity).sdkConfigManager
val sdkConfigs = SDKConfigs(activeLivenessEnable = sdkConfigManager.activeLiveness, passiveLivenessEnable = sdkConfigManager.passiveLiveness, kioskEnable = sdkConfigManager.kioskMode)
val quepassBuilder = QuepassBuilder.builder()
.sdkConfigs(sdkConfigs)
.setManualEntryParams(identifierType=identifierType,nationality=nationality,identifierNumber=identifierNumber)
.functionType(FunctionType.EXPRESS_VERIFICATION)
.sdkGeneralHandler { sdkResponse ->
if (sdkResponse.code == 200) {
val uid = sdkResponse.data?.jsonObject?.get("uid")?.jsonPrimitive?.contentOrNull
val token = sdkResponse.data?.jsonObject?.get("token")?.jsonPrimitive?.contentOrNull
// Example: Home screen, dashboard, etc.
Log.e("uid: →", " $uid")
if (uid!=null && token!=null){
navController.navigateToUserDetailsScreen(uID = uid, consentToken = token)
}
} else {
Toast.makeText(context,"${sdkResponse.errors}", Toast.LENGTH_LONG).show()
Log.e("Failure → sdkResponse : "," ${sdkResponse.errors}")
}
} .build()
// Launch QuePass Activity
Launcher.launch(
quepassBuilder,
context
)
- ExpressOnboarding:
Copy
val sdkConfigManager = (context as MainActivity).sdkConfigManager
val sdkConfigs = SDKConfigs(activeLivenessEnable = sdkConfigManager.activeLiveness, passiveLivenessEnable = sdkConfigManager.passiveLiveness, kioskEnable = sdkConfigManager.kioskMode)
val quepassBuilder = QuepassBuilder.builder()
.sdkConfigs(sdkConfigs)
.setManualEntryParams(identifierType=identifierType,nationality=nationality,identifierNumber=identifierNumber)
.functionType(FunctionType.EXPRESS_ONBOARDING)
.sdkGeneralHandler { sdkResponse ->
if (sdkResponse.code == 200) {
val uid = sdkResponse.data?.jsonObject?.get("uid")?.jsonPrimitive?.contentOrNull
val token = sdkResponse.data?.jsonObject?.get("token")?.jsonPrimitive?.contentOrNull
// Example: Home screen, dashboard, etc.
Log.e("uid: →", " $uid")
if (uid!=null && token!=null){
navController.navigateToUserDetailsScreen(uID = uid, consentToken = token)
}
} else {
Toast.makeText(context,"${sdkResponse.errors}", Toast.LENGTH_LONG).show()
Log.e("Failure → sdkResponse : "," ${sdkResponse.errors}")
}
} .build()
// Launch QuePass Activity
Launcher.launch(
quepassBuilder,
context
)
- uid — User unique ID
- token — Consent token
- message — Success message
- isSuccess — Boolean