Android Component SDK
Take direct control of individual identity components in your native Android app: capture identification documents, run face capture and matching, extract structured data, and submit it all to the Digital Experience Platform (DXP).
Install · Initialize · CaptureOverview
The Assentify Component SDK has several capabilities and functionalities that empower developers to take complete control of the identity extraction process. The Component SDK complements the Digital Experience Platform (DXP).
The developer leverages the available data by using the response information from the supported components or data provided by the app user. The SDK allows the developer to submit all extracted data to Assentify to gain access to further features such as Compliance, AML, client profile, and other capabilities that the DXP covers. The key components supported and available in the SDK are the identification document capture, face capture and matching, Context-Aware-Signing, wrap up, and submission.
StepID represents the ID of the Step in the Engagement block that you configure in the Flow Builder on the portal (for example, the StepID of Face Capture or ID Capture). You will need it to submit your data to the portal.
Requirements
The Assentify Component SDK is available for Android native, iOS native, Flutter, and React Native. To use the Android SDK you need the following before you begin.
- An Assentify DXP account with access to the Developers section of the portal.
- An API Key, a Tenant Identifier, and an Interaction Hash retrieved from the portal (see Getting credentials).
- A published flow with the Engagement block and Steps you intend to target.
minRam and minCPUCores values you configure will use manual scanning instead of automatic detection.
Project setup for NFC
The guide describes the project files you update to enable NFC passport scanning. As part of Step 6 of
that capability, you update the AndroidManifest and app/build.gradle. For the
package coordinates and repository, follow the version your Assentify contact provides.
startScanNfc, update both the AndroidManifest and app/build.gradle, check NFC support at runtime, and override onResume, onPause, and onNewIntent. See ID Document Capture for the NFC flow steps.
Initialization
To leverage the capabilities of the Assentify Component SDK, the developer must initialize the SDK on each application start up. Initialization ensures the developer has the key information required to begin using the Component SDK. To initialize the Component SDK you will require the following variables.
- API Key
- Tenant Identifier
- Interaction Hash
The values for the above variables can be retrieved from the Assentify DXP portal. Once you have logged in, visit the Developers section and select the Flow you would like to use for your application.
1. environmentalConditions configuration
The variable environmentalConditions is instantiated as an object of type EnvironmentalConditions. It is configured with the following parameters.
| Parameter | Description |
|---|---|
enableDetect | Detection feature is enabled when set to true. |
enableGuide | Guide feature is enabled, to assist users during scanning. |
CountDownNumbersColor | Custom color (HEX) for the count down timer on the Face Match Step, for example "#610A3A". |
HoldHandColor | Color (HEX) for the hand-holding guide or indicator, for example "#FFC400". |
MotionCardLimit | Number of frames taken before sending in case of a steady hand, for ID Card Android. (Optional) |
MotionPassportLimit | Number of frames taken before sending in case of a steady hand, for Passport Android. (Optional) |
BRIGHTNESS_HIGH_THRESHOLD | Acceptable high brightness threshold, Android. (Optional) |
BRIGHTNESS_LOW_THRESHOLD | Acceptable low brightness threshold, Android. (Optional) |
activeLiveType | Local active liveness type. (Optional) 1 _ actions: move your head (left, right, up, down); 2 _ wink: your eye (left or right); 3 _ blink. |
activeLivenessCheckCount | The number of times the local active liveness check will be requested. (Optional) |
faceLivenessRetryCount | The number of times the user failed the face liveness before passing the step. (Optional) |
minRam, minCPUCores | Any Android device with RAM or CPU smaller than these values will use manual scanning instead of automatic detection. (Optional) |
2. assentifySdk configuration
The assentifySdk object is an instance of AssentifySdk and is initialized with several parameters.
| Parameter | Description |
|---|---|
apiKey | The API key. |
tenantIdentifier | The tenant identifier. |
interaction | The interaction type or ID. |
environmentalConditions | Passes the previously defined environmentalConditions as part of the SDK configuration. |
assentifySdkCallback | Sets the current class (this) as the callback handler for SDK events. |
performActiveLivenessFace | Enable local active liveness check for the face. (Optional) |
Initialization callbacks
| Callback | Description |
|---|---|
onAssentifySdkInitSuccess | An initialization callback invoked when the SDK has successfully been initialized. |
onAssentifySdkInitError | A callback executed upon failure to initialize the SDK. |
getTemplates function. This returns a List<TemplatesByCountry>. Store the result to be used later in the process when processing an ID Card.
Getting credentials
Retrieve the API Key, Tenant Identifier, and Interaction Hash from the Assentify DXP portal.
- Visit the Assentify DXP and click on the Developers section. Then click on the Flow Configuration button.
- Select the flow you want to use with your application. Then, from the drop-down menu, select the Engagement block you would like to target.
- Once you have selected an appropriate block you will be able to see the information related to the flow. You can retrieve the Tenant Identifier from this section.
- To retrieve the API Key, create a new API Key or leverage an already existing key. You can assign Claims to an API Key, which you can then use to limit the amount of access a specific API Key has.
- To fetch the Interaction Hash, click on the Flow Manager and select your flow. Once the Digital Engagement Link has loaded on the right side panel, the format should be
https://platform.assentify.com?interaction={HASH}. Copy the HASH part to retrieve the interaction hash.
BlockLoader
The Assentify BlockLoader is a core component provided to the developer to perform several functions and capabilities. The BlockLoader provides the developer with core properties that the developer sets to give context to the Assentify DXP platform.
| Property | Description |
|---|---|
DeviceName | The device name. |
FlowName | The name of the flow. |
TimeStarted | The time the flow started. |
Application | The application. |
UserAgent | The user agent. |
InstanceHash | The instance hash. |
The properties outlined above are built into the BlockLoader. However, the developer can access the DXP and add additional properties if needed. For example, creating additional properties such as phoneNumber and clientIdentifier; these properties can be used to transfer custom information to Assentify DXP, which can later be mapped to WebHooks or other platform capabilities. The developer has no limit on the number of properties that can be added to the BlockLoader.
How to add a property to the BlockLoader
- Go to the Flow Manager and select the flow you want to edit.
- Click the view more button on the Engagement Block.
- In the input field, type the name of the property. Then press the add button.
- Completed.
How to use the BlockLoader properties as a developer
Once the developer adds these properties using the DXP, the developer then defines in their application the properties that have been added, which they can use to set the BlockLoader Step for Submission. All custom properties added can be used to perform additional capabilities on the Assentify DXP, such as running decisions and mapping webhooks.
To make use of the custom properties added on the Assentify DXP, you need to declare these properties inside your app. Assentify uses OnBoardMe_Property_{propertyName} as the naming nomenclature for all custom properties.
Identification Document Capture
The Identification Document Capture is a standalone event-driven component that provides a means by which the developer can extract information from an ID Card. The ID type is determined by the configuration set in Assentify DXP. The developer or business user can log in to Assentify and manage these configurations at any time, even after the application has gone live. This provides flexibility in allowing the application to support as many ID cards as possible without re-compiling and deploying the application.
This component returns many different types of information depending on the ID Type being scanned, such as a Civil ID versus a Driving License. This is done using dynamic keys and mappings built into the SDK. A global model is available for developers to extract information from the base model and the available property dictionary. The component has a built-in user interface that can be used by default, or the developer can use their own custom user interface by turning off the guides and default interface, and drawing on top of the events fired during the scanning process.
Methods
| Method | Description |
|---|---|
startFlow | Initializes and launches the entire flow, including the UI and events configured in the Admin Portal. |
getTemplates | Receives all the configured supported Identification Document Templates in the system (such as Passport, Lebanese Civil ID, Lebanese Driving License, French Resident Permit, and so on). You need the template when starting the ID scanning feature, to inform the ID scanning which template you are using. You also use it to create a list for the user to select which ID they would like to provide. |
startScanIDCard | Begins the ID scanning process for an ID card. |
startScanPassport | Begins the passport scanning process. |
startScanOther | Begins the scanning process for other document types. |
startScanNfc | Begins the NFC passport scanning process. |
startFlow parameters
This function initializes and launches the entire flow, including the UI and events configured in the Admin Portal.
| Parameter | Description |
|---|---|
FlowEnvironmentalConditions | Flow appearance and behavior configuration (see fields below). |
flowCallback | Specify the callback function called during the flow complete. |
activityContext | Current Activity Context. |
FlowEnvironmentalConditions fields:
| Field | Description |
|---|---|
logoUrl (optional) | URL of the logo displayed in the flow header or main screen. |
svgBackgroundImageUrl (optional) | URL of the SVG background image used for the screen background. |
textColor (optional) | Primary text color in HEX format (for example: #000000). |
secondaryTextColor (optional) | Secondary text color in HEX format, used for subtitles or less prominent text. |
backgroundCardColor (optional) | Background color for cards and containers in HEX format. |
accentColor (optional) | Accent color used for highlights and interactive elements. |
backgroundColor (optional) | Defines the main background style of the screen. Can be Solid (single color) or Gradient (multiple colors with angle). |
clickColor (optional) | Defines the background style applied on click or pressed states. |
backgroundType | Defines how the background should be rendered (for example: color or image). This is the only required field. |
Language (optional) | Optionally set the language that the OCR will process the extracted content from the cards. |
enableNfc, enableQr | Triggers NFC scanning after scanning a passport, or QR scanning after scanning a card. |
blockLoaderCustomProperties | Map containing the custom properties configured in the Admin Portal. |
startScanIDCard parameters
| Parameter | Description |
|---|---|
scanIDCardCallback | Specify the callback function called during the scanning process. |
templatesByCountry | The object of the templates that are supported to scan. |
Language (optional) | Optionally set the language that the OCR will process the extracted content from the ID card. |
startScanPassport parameters
| Parameter | Description |
|---|---|
scanPassportCallback | Specify the callback function called during the scanning process. |
Language (optional) | Optionally set the language that the OCR will process the extracted content from the ID card. |
startScanOther parameters
| Parameter | Description |
|---|---|
scanOtherCallback | Specify the callback function called during the scanning process. |
Language (optional) | Optionally set the language that the OCR will process the extracted content from the ID card. |
startScanNfc parameters
| Parameter | Description |
|---|---|
scanNfcCallback | Specify the callback function called during the scanning process. |
Language (optional) | Optional OCR language. |
| context | Context of your activity. |
How to initialize the flow
- Initialize the Assentify Sdk Object.
- Call
AssentifySdk.startFlow(). - Configure the
startFlowparameters.
How to initialize the ID Card scanning
- Initialize the Assentify Sdk Object.
- Call
AssentifySdk.startScanIDCard(). - Configure the
startScanIDCardparameters. startScanIDCardaccepts a parametertemplatesByCountrythat includes all the available templates that are retrieved.
How to initialize the passport scanning
- Initialize the Assentify Sdk Object.
- Call
AssentifySdk.startScanPassport(). - Configure the
startScanPassportparameters. - Completed.
How to initialize NFC passport scanning
- Initialize the Assentify Sdk Object.
- Call
AssentifySdk.startScanNfc(). - Check NFC support.
- Override
onResume,onPause, andonNewIntent. - Call
onActivityNewIntentwith the extracted Passport Response Model. - Update the
AndroidManifestandapp/build.gradle.
How to initialize other ID scanning
- Initialize the Assentify Sdk Object.
- Call
AssentifySdk.startScanOther(). - Configure the
startScanOtherparameters. - Completed.
Face Capture / Matching
The Face Capture and Matching step is a standalone event-driven component that allows the developer to perform face matching between a live source and a target image. The developer offers the target image, while the selfie camera captures the source image. All the features and capabilities of the Face Capture / Matching component are driven by the configuration that the developer or business user can configure on Assentify DXP. The developer may choose to override this configuration.
How to use the Face Acquisition component
- Initialize the Assentify Sdk Object.
- Call
AssentifySdk.startFaceMatch(). - Configure the
startFaceMatchparameters. - Supply the target base-64 encoded face image.
- Add the component to the fragment manager and commit.
- Run the application.
imageUrl from the onComplete callback for document scanning, convert it to base64, and use it in face match. If the document had multiple sides, choose an order (page) that contains a face to set it for face match; when the document URL is retrieved from the document scan, Assentify flags whether it has a face extracted based on the template.
Context-Aware-Signing
How to initialize it
- Call
startContextAwareSigning. - Wait for
onHasTokens: the tokens from your selected document. - Fill the tokens and call
createUserDocumentInstance. - Wait for
onCreateUserDocumentInstanceand call the signature function with a base64 signature. - Wait for
onSignatureand get the document URL.
Wrap Up
The Wrap Up component is a built-in step that allows the developer to set the TimeEnded value. The developer can supply an end time for the flow.
Submission
Submission is a built-in function of the SDK that allows the developer to initiate the data transmission from the integrating app to Assentify DXP. The power of Submission is that it can be used to add additional properties to the BlockLoader and perform data aggregation and manipulation before sending it to Assentify. For example, the developer may want to send additional eKYC information, user-specific data, or data to bridge between the Assentify DXP and the back-end services of the integrating application. The developer may also perform additional functions such as custom date formatting, translation, transliteration, and calculations.
One of the key features of using the Assentify Component SDK is being able to submit all the collected data to Assentify DXP, allowing business users to review all the data that has been collected. The simplest way to submit data to Assentify is to leverage the existing code provided in the Demo Application (Android, iOS).
How to submit data to Assentify DXP
- Retrieve the step definition model so that there is a reference to the
List<StepDefinitions>. - Retrieve the output properties model.
- Retrieve the output properties for the face from
OutPropertiesModelFace. - Define variables for the wrap up, blockLoader, Context-Aware-Signing step, face step, and ID capture step.
- Loop through the steps and populate the output properties into a map.
- Ensure that each
SubmitRequestModelis then set into aMutableList<SubmitRequestModel>. - Call the
assentifySdk.startSubmitData()method.
You must prepare your list of steps with the outputProperties obtained for each step. For example:
sharedStepDefinitionsStepFace = SubmitRequestModel(item.stepId, StepsName.FaceMatch, values);
sharedStepDefinitionsStepDoc = SubmitRequestModel(item.stepId, StepsName.DocumentCapture, values);
// etc.
Callback Events
Callbacks on the BaseResponseDataModel report progress and results during processing.
| Callback | Description |
|---|---|
onSend() | Starts processing. |
onRetry() | Invoked when processing fails. |
onComplete() | Called when processing is complete. |
onEnvironmentalConditionsChange() | Provides real-time updates on environmental conditions like brightness and motion changes. |
onWrongTemplate() // ID Card | Called when trying to scan a wrong ID based on the submitted template. |
onStartNfcScan() // NFC | Called when NFC starts. |
onCompleteNfcScan() // NFC | Called when NFC processing is complete. |
onErrorNfcScan() // NFC | Invoked when processing fails. |
onCurrentLiveMoveChange() // Face | Provides real-time updates about the current action required from the user. |
onCollectingManualImages() // Face | In manual scan mode, after the user clicks “Take Photo”, this notifies that multiple images will be captured to verify liveness detection. After that, the onSend function is called. |
ScanIDCard, FaceMatch, and similar features, the component is returned as a fragment, allowing you to draw on top of it. For ScanIDCard you receive each page in order via the onComplete callback, and the camera automatically starts scanning the next page after each callback.
Language Transformation
A list of LanguageTransformationModel objects is created and populated with different language transformation configurations. Each model specifies the type of language transformation (either translation or transliteration), a key-value pair, the target language, and the data type for that transformation.
The LanguageTransformationModel class defines the structure for each language transformation, requiring the following parameters.
| Parameter | Description |
|---|---|
languageTransformationEnum | The type of transformation (transliteration or translation). |
Key and value | Placeholders (for example "Your Key", "Your Value") for the specific content you want to work with. |
Language | The target language (for example English, Arabic, Azerbaijani). |
DataType | The type of data being transformed (text, date, number). |
After defining the data, invoke language transformation and handle the callbacks for the transformation results.
Data Models
BaseResponseDataModel
| Field | Description |
|---|---|
outputProperties | A map containing the extracted data with hash keys for submission. |
transformedProperties | A map with extracted data that may be transformed if translation is needed. |
additionalDetails | Extra extracted data, particularly for “Other Scanning”. |
imageUrl | The URL of the ID image. |
Faces | URLs of faces extracted from the ID. |
identificationDocumentCapture | This model contains all extracted data. |
baseImageFace | The selfie image used for “Face Match”. |
secondImageFace | The image provided for comparison in “Face Match”. |
percentageMatch | Match percentage. |
isLive | Liveliness detection result. |
Error message | The error message, if any. |
Success | A Boolean indicating success. |
TemplatesByCountry
| Field | Type | Description |
|---|---|---|
name | String | The name of the country. |
sourceCountryCode | String | The ISO-2 country code. |
Flag | String | The country flag image. |
Templates | List<Templates> | The list of templates by country. |
KycDocumentDetails
| Field | Type | Description |
|---|---|---|
name | String | The name of the document. |
Order | Int | The order of the page (front, back, etc.). |
templateSpecimen | String | The default specimen that represents the ID type being used (Civil ID, Driving License, etc.). |
templateProcessingKeyInformation | String | The template Id. |
hasQrCode | Boolean | Whether the ID has a QR code. |
Templates
| Field | Type | Description |
|---|---|---|
id | Int | The template Id. |
sourceCountryFlag | String | The flag of the country as a URL. |
sourceCountryCode | String | The ISO-2 country code. |
kycDocumentType | String | The name of the Template. |
sourceCountry | String | The country name. |
kycDocumentDetails | List<KycDocumentDetails> | A list of KycDocumentDetails. |
ConfigModel
| Field | Type | Description |
|---|---|---|
stepId | Int | Identifier for the step. |
flowName | String | Name of the flow. |
blockName | String | Name of the block. |
instanceHash | String | Hash value of the instance. |
stepDefinition | Any? | Step definition, can be any type. |
flowInstanceId | String | Identifier for the flow instance. |
tenantIdentifier | String | Identifier for the tenant. |
blockIdentifier | String | Identifier for the block. |
flowIdentifier | String | Identifier for the flow. |
customProperties | Map<String, Any> | Custom properties map with string keys and any values. |
defaultLanguageId | Int | Identifier for the default language. |
instanceId | String | Identifier for the instance. |
userStateStepMap | Map<String, List<UserState>> | Mapping of user states. |
stepDefinitions | List<StepDefinitions> | List of step definitions. |
StepDefinitions
| Field | Type | Description |
|---|---|---|
stepId | Int | Identifier for the step. |
stepDefinition | String | Definition of the step. |
customization | Customization | Customization options. |
outputProperties | List<OutputProperties> | List of output properties. |
OutputProperties
| Field | Type | Description |
|---|---|---|
id | Int | Identifier for the output property. |
key | String | Key for the output property. |
displayName | String | Display name for the output property. |
isRequired | Boolean | Whether the property is required. |
isExcluded | Boolean | Whether the property is excluded. |
type | Int | Type identifier for the property. |
Customization
| Field | Type | Description |
|---|---|---|
ProcessMrz | Boolean? | Whether to process MRZ (Machine Readable Zone). |
StoreCapturedDocument | Boolean? | Whether to store captured documents. |
PerformLivenessDetection | Boolean? | Whether to perform liveness detection. |
StoreImageStream | Boolean? | Whether to store image streams. |
SaveCapturedVideo | Boolean? | Whether to save captured video. |
identificationDocuments | List<IdentificationDocuments>? | List of identification documents. |
PassportResponseModel
| Field | Type | Description |
|---|---|---|
destinationEndpoint | String? | Destination endpoint. |
passportExtractedModel | PassportExtractedModel? | Extracted passport model. |
error | String? | Error message. |
success | Boolean? | Success status. |
PassportExtractedModel
| Field | Type | Description |
|---|---|---|
outputProperties | Map<String, Any>? | Output properties map. |
transformedProperties | Map<String, String>? | Transformed properties map. |
extractedData | Map<String, Any>? | Extracted data map. |
imageUrl | String? | URL for the image. |
faces | List<String>? | List of detected faces. |
identificationDocumentCapture | IdentificationDocumentCapture? | Identification document capture details. |
OtherResponseModel
| Field | Type | Description |
|---|---|---|
destinationEndpoint | String? | Destination endpoint. |
otherExtractedModel | OtherExtractedModel? | Extracted model for other data. |
error | String? | Error message. |
success | Boolean? | Success status. |
OtherExtractedModel
| Field | Type | Description |
|---|---|---|
outputProperties | Map<String, Any>? | Output properties map. |
transformedProperties | Map<String, String>? | Transformed properties map. |
extractedData | Map<String, Any>? | Extracted data map. |
additionalDetails | Map<String, Any>? | Additional details map. |
transformedDetails | Map<String, String>? | Transformed details map. |
imageUrl | String? | URL for the image. |
faces | List<String>? | List of detected faces. |
identificationDocumentCapture | IdentificationDocumentCapture? | Identification document capture details. |
IDResponseModel
| Field | Type | Description |
|---|---|---|
destinationEndpoint | String? | Destination endpoint. |
idExtractedModel | IDExtractedModel? | Extracted model for ID data. |
error | String? | Error message. |
success | Boolean? | Success status. |
IDExtractedModel
| Field | Type | Description |
|---|---|---|
outputProperties | Map<String, Any>? | Output properties map. |
transformedProperties | Map<String, String>? | Transformed properties map. |
extractedData | Map<String, Any>? | Extracted data map. |
imageUrl | String? | URL for the image. |
faces | List<String>? | List of detected faces. |
identificationDocumentCapture | IdentificationDocumentCapture? | Identification document capture details. |
FaceResponseModel
| Field | Type | Description |
|---|---|---|
destinationEndpoint | String? | Destination endpoint. |
faceExtractedModel | FaceExtractedModel? | Extracted model for face data. |
error | String? | Error message. |
success | Boolean? | Success status. |
FaceExtractedModel
| Field | Type | Description |
|---|---|---|
outputProperties | Map<String, Any>? | Output properties map. |
extractedData | Map<String, Any>? | Extracted data map. |
baseImageFace | String? | Base image face. |
secondImageFace | String? | Second image face. |
percentageMatch | Int? | Percentage match between faces. |
isLive | Boolean? | Whether the face is live. |
identificationDocumentCapture | IdentificationDocumentCapture? | Identification document capture details. |
IdentificationDocumentCapture
| Field | Type | Description |
|---|---|---|
name | Any? | Name of the document holder. |
surname | Any? | Surname of the document holder. |
documentType | Any? | Type of the document. |
birthDate | Any? | Birthdate of the document holder. |
documentNumber | Any? | Document number. |
sex | Any? | Sex of the document holder. |
expiryDate | Any? | Expiry date of the document. |
country | Any? | Country of the document. |
nationality | Any? | Nationality of the document holder. |
idType | Any? | ID type of the document. |
faceCapture | Any? | Face capture details. |
image | Any? | Image of the document. |
isSkippedAfterMRZFails | Any? | Whether MRZ failed after skipping. |
isFailedFront | Any? | Whether the front check failed. |
isFailedBack | Any? | Whether the back check failed. |
skippedStatus | Any? | Skipped status. |
capturedVideoFront | Any? | Captured video of the front. |
capturedVideoBack | Any? | Captured video of the back. |
livenessStatus | Any? | Liveness status of the document holder. |
isFrontAuth | Any? | Whether the front is authorized. |
isBackAuth | Any? | Whether the back is authorized. |
isExpired | Any? | The document isExpired (true, false). |
isTampering | Any? | The document is tampered (true, false). |
tamperHeatMap | Any? | The URL to the tampering heatmap. |
isBackTampering | Any? | The back of the document has been tampered. |
backTamperHeatmap | Any? | The URL to the heatmap of the back-side of the document. |
originalBackImage | Any? | The URL to the back-side of the image. |
ghostImage | Any? | The URL to the ghost image. |
idMaritalStatus | Any? | The marital status. |
idDateOfIssuance | Any? | The date of issuance. |
idCivilRegisterNumber | Any? | The civil register number. |
idPlaceOfResidence | Any? | The place of residence. |
idProvince | Any? | The province. |
idGovernorate | Any? | The governorate. |
idMothersName | Any? | The mother's name. |
idFathersName | Any? | The father's name. |
idPlaceOfBirth | Any? | The place of birth. |
idBackImage | Any? | The URL to the back image. |
idBloodType | Any? | The blood type. |
idDrivingCategory | Any? | The driving category. |
idIssuanceAuthority | Any? | The issuance authority that issued the ID. |
idArmyStatus | Any? | The army status. |
idProfession | Any? | The profession of the ID holder. |
idUniqueNumber | Any? | The unique number on the ID card. |
idDocumentTypeNumber | Any? | The ID document number. |
idFees | Any? | The fees paid. |
idReference | Any? | The reference data associated with the ID card. |
idRegion | Any? | The region. |
idRegistrationLocation | Any? | The registration location. |
idFaceColor | Any? | The face color. |
idEyeColor | Any? | The eye color. |
idSpecialMarks | Any? | Any special marks (tattoos, etc.). |
idCountryOfStay | Any? | The current country of stay. |
idIdentityNumber | Any? | The Identity Number of the ID. |
idPresentAddresss | Any? | The card holder present address. |
idPermanentAddresss | Any? | The card holder permanent address. |
idFamilyNumber | Any? | The family number. |
identityNumberBack | Any? | The identity number found on the back of the ID card. |
DocumentTokensModel
| Field | Type | Description |
|---|---|---|
displayName | String | Token name. |
id | int | Token id. |
templateId | int | Document id. |
tokenTypeEnum | int? | Token type. |
CreateUserDocumentResponseModel
| Field | Type | Description |
|---|---|---|
documentId | int | Document id. |
isPdf | bool | Is HTML or PDF. |
templateInstance | String | Document as base64 after filling the tokens. |
templateInstanceId | int? | The new Document id. |
SignatureResponseModel
| Field | Type | Description |
|---|---|---|
fileName | String | Document name. |
signedDocument | bool | Document as base64 after signed. |
signedDocumentUri | String | Document as URL after signed. |
FAQ
Can you set what data the ResponseModels have from the admin page?
No, the response models are static and are based on responses from the core ID orchestrator.
When the onComplete callback is triggered (for example, for the passport), can that data be retrieved or a hook triggered on our backend?
When the callback is triggered, the application receives all the information. It is the responsibility of the application to transfer that data to any specific backend at this point. If the data can be transferred at a later stage, or when it has been submitted to the platform, then yes: you can define a webhook in the connector block to be triggered after submission to inform your backend or send you specific data.
What are the KycDocumentDetails on the ScanIDCard? How would I know how many to add to the list?
The template chosen from the getTemplates() callback.
Are there any actions allowed to be triggered programmatically on the scan screens (ScanIDCard, FaceMatch, etc.)?
For features like ScanIDCard and FaceMatch, these are returned as fragments, allowing you to draw on top of them. For ScanIDCard, you receive each page in order via the onComplete callback. The camera automatically starts scanning the next page after each callback.
On the FaceMatchActivity there is a static document image being loaded to be matched against the face. How can I get the document scanned on the previous step to pass it to the face match?
You can obtain the imageUrl from the onComplete callback for document scanning, convert it to base64, and use it in face match.
What happens if the document had multiple sides? How can I find which document had the photo of the user to pass to the FaceMatch?
You must choose an order (page) that contains a face to set it for face match. When the document URL is retrieved from the document scan, Assentify flags that it has a face extracted based on the template.
What data should you submit on startSubmitData? Are these specified from the admin page?
You must prepare your list of steps with the outputProperties obtained for each step. For example, SubmitRequestModel(item.stepId, StepsName.FaceMatch, values) and SubmitRequestModel(item.stepId, StepsName.DocumentCapture, values).
On the StepNames file there are various keys used for uploading the data on startSubmitData. How do these correlate with the admin page? Where can I find this mapping?
In Flow Builder, after selecting a flow from Flow Manager, you are presented with the various blocks that make up the flow. To view the additional keys per flow, select the magnifier icon on the BlockLoader; you can press the magnifier icon and see all the data there. You can also define and add new data points.