Android SDK Introduction
This document introduces the IDentity Android SDK within the IDmission product suite. Developers, project managers and QA testers should reference this document for information on configuration and use of the IDentity SDK on the Android platform. IDmission recommends reading this entire document as an implementation guide to fully understand the IDentity SDK functionality and its respective capabilities.
This document details processes and procedures for embedding the IDentity SDK into your host application and utilizing its current features. For additional IDentity SDK support, please contact our Customer Support team at support@idmission.com or submit a service request via the My IDentity Portal.
Download latest IDentity Developer APK from below location
Overview and Key Features
Overview
The IDmission IDentity SDK is a comprehensive toolkit that enables the use of any combination of factors of identity to complete digital transformation goals. The goal of the IDentity SDK is to offer seamless integration into an existing digital paradigm where the end-to-end customer experience is still owned and managed in-house.
The main features supported in this SDK are:
- ID Capture and Scanning with OCR
- Biometric Capture and Verification for:
- Face (with Liveness detection)
- Voice
- Fingerprint
- Customer
- Enrollment
- Search
- Verification
- Employee
- Enrollment
- Search
- Verification
Note: When using the IDentity SDK, you do not need to create a request for XML; it is automatically generated by the SDK based on the function that you are calling.
Each of these features are available through various Service IDs. A full list of current available services is provided in the table below. The most commonly used Services from this list are included in Section 4 of this document.
SDK Flavours
- All Feature
- Full SDK Without CardIO
- ID validation, face matching, and CardIO
- ID validation and Face matching
- ID validation and Face matching without models
- ID Face Fingerprint Devices
- ID Fingerprint Devices
- Face Matching
- Video, Video Conference and Signature
Getting Started
1. Please contact to sales@idmission.com for Login Credentials, which you will later pass to the SDK.
2. Go to your project-level build.gradle file, and add the following code
allprojects {
repositories {
maven {
url "https://gitlab.idmission.com/api/v4/projects/82/packages/maven"
name "GitLab"
credentials(HttpHeaderCredentials) {
name = "Private-Token"
value = "qyEnjYwt4g2HjJN6koF2"
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
1. In your app-level build.gradle file, add the following code:
//All Feature
dependencies {
implementation 'com.idmission.sdk:idmission-sdk:9.6.21.1.03'
}
//Full SDK Without CardIO
dependencies {
implementation 'com.idmission.sdk:idmission-full_sdk_without_cardio:9.6.21.1.03'
}
//ID validation, face matching, and CardIO
dependencies {
implementation 'com.idmission.sdk:idmission-id_face_cardio:9.6.21.1.03'
}
//ID validation and Face matching
dependencies {
implementation 'com.idmission.sdk:idmission-id_face:9.6.21.1.03'
}
//ID validation and Face matching without models
dependencies {
implementation 'com.idmission.sdk:idmission-id_face_without_models:9.6.21.1.03'
}
//ID Face Fingerprint Devices
dependencies {
implementation 'com.idmission.sdk:idmission-id_face_scanner_devices:9.6.21.1.03'
}
//ID Fingerprint Devices
dependencies {
implementation 'com.idmission.sdk:idmission-id_scanner_devices:9.6.21.1.03'
}
//Face Matching
dependencies {
implementation 'com.idmission.sdk:idmission-id_face:9.6.21.1.03'
}
//Video, Video Conference and Signature
dependencies {
implementation 'com.idmission.sdk:idmission-video_videoconf_signature:9.6.21.1.03'
}
Download latest SDK packages from below location ImageProcessingSDK (All Feature) ImageProcessingSDK (Full SDK Without CardIO) ImageProcessingSDK (ID validation,face matching and CardIO) ImageProcessingSDK (ID validation and Face matching) ImageProcessingSDK (ID validation and Face matching without models) Image Processing SDK (ID_Face_Fingerprint_devices) Image Processing SDK (ID_Fingerprint_devices) ImageProcessingSDK (Face Matching)
SDK Flavours Supported Features
Features
|
Full SDK
|
Full SDK without CardIO |
ID validation, face matching, and CardIO |
ID validation, face matching | ID Face Fingerprint Devices | ID Fingerprint Devices | Face Matching | Video, Video Conference and Signature |
---|---|---|---|---|---|---|---|---|
ID Capture | YES | YES | YES | YES | YES | YES | NO | NO |
Face Capture | YES | YES | YES | YES | YES | NO | YES | NO |
Signature Capture | YES | YES | YES | YES | NO | NO | NO | YES |
Document Capture | YES | YES | YES | YES | NO | NO | NO | NO |
Voice Capture | YES | YES | NO | NO | NO | NO | NO | NO |
FingerPrint Capture | YES | YES | NO | NO | YES | YES | NO | NO |
FingerPrint Capture(4F) | YES | YES | YES | NO | NO | NO | NO | NO |
Location/GPS Capture | YES | YES | YES | YES | YES | YES | YES | NO |
Video Capture | YES | YES | YES | YES | NO | No | NO | YES |
Image Snippet OCR | YES | YES | YES | YES | NO | NO | NO | NO |
Bcarcode Scan | YES | YES | YES | YES | YES | YES | NO | NO |
Card Capture | YES | NO | YES | NO | NO | NO | NO | NO |
Video Conference | YES | YES | NO | NO | NO | NO | NO | YES |
Capture Secondary ID | YES | YES | YES | YES | YES | YES | NO | NO |
Service ID
Service ID |
Service Description |
Included Features |
---|---|---|
20 | ID Validation Only | Capturing ID document(s), validate the ID and extract data from it. |
10 | ID Validation + Face Match | Capturing ID document(s), validate the ID and extract data from it. Additionally, capture a selfie and match it against the photo on the ID. |
50 | ID Validation + Face Match w/Customer Enrollment | Capturing ID document(s), validate that ID and extract data from it. Additionally, capture a selfie of the customer and match it against the photo on the ID, then enroll all captured biometrics with the customer if the match is positive. |
55 | ID Validation + Face Match w/Employee Enrollment | Capturing ID document(s), validate the ID and extract data from it. Additionally, capture a selfie of the employee and match it against the photo on the ID, then enroll all captured biometrics with the employee if the match is positive. |
155 | ID Validation + Video Match | Capturing ID document(s), validate the ID and extract data from it. Additionally, capture a video stream and use it to match the face against the ID. |
160 | ID Validation + Video Match w/Customer Enrollment | Capturing ID document(s) for a customer, validate the ID and extract data from it. Additionally, capture a video stream and use it to match the face against the ID, then enroll all captured biometrics with the customer. |
165 | ID Validation + Video Match w/Employee Enrollment | Capturing ID document(s) for an employee, validate the ID and extract data from it. Additionally, capture a video stream and use it to match the face against the ID, then enroll all captured biometrics with the employee. |
175 | Customer Enrollment w/ Biometrics | Capture customer data and biometrics and enroll into the customer database. No ID documents are captured. |
180 | Employee Enrollment w/Biometrics | Capture employee data and biometrics and enroll into the employee database. No ID documents are captured. |
70 | Customer Update | Capture of any new/updated customer data to update the previously enrolled customer record. |
75 | Employee Update | Capture of any new/updated customer data to update the previously enrolled employee record. |
105 | Customer Verification | Capture of biometric data to verify against a previously enrolled customer. |
106 | Customer Verification with Host Only | Capture of biometric data to verify against a previously enrolled customer with Host. |
305 | Employee Verification | Capture of biometric data to verify against a previously enrolled employee. |
185 | Identify Customer with Biometrics | Capture biometric data for a Customer (face, fingerprint, voice or iris) and search the customer DB to see if its already enrolled. |
190 | Identify Employee with Biometrics | Capture biometric data for a Customer (face, fingerprint, voice or iris) and search the customer DB to see if its already enrolled. |
186 | Customer Search | Capture customer data (non-biometric) to search against previously enrolled customers in the database. If a match is found, the data associated with that customer is returned. |
191 | Employee Search | Capture employee data (non-biometric) to search against previously enrolled employees in the database. If a match is found, the data associated with that employee is returned. |
500 | Video Conference | Initiate a video conference session with a back office operator that will be recorded for audit purposes. |
505 | IDV + Video Conference Match | Capturing ID document(s), validate the ID and extract data from it. Additionally, initiate a video conference session with a back office operator that will be recorded for audit purposes. A photo image from the video conference will be extracted and used to match the face against the ID. |
510 | IDV + Video Conference Match + Customer Enrollment | Capturing ID document(s) for a customer, validate the ID and extract data from it. Additionally, initiate a video conference session with a back office operator that will be recorded for audit purposes. A photo image from the video conference will be extracted and used to match the face against the ID, then enroll all captured biometrics with the customer. |
515 | IDV + Video Conference Match + Employee Enrollment | Capturing ID document(s) for an employee, validate the ID and extract data from it. Additionally, initiate a video conference session with a back office operator that will be recorded for audit purposes. A photo image from the video conference will be extracted and used to match the face against the ID, then enroll all captured biometrics with the employee. |
620 | ID Data Extraction | Capturing ID document(s) and using ONLY the barcode, MRZ or QR code to extract data to pre-populate data into an application or online form. |
660 | Offline Liveness Detection | Capturing a selfie to detect liveness without having to send the images to the server. A short video is captured of an individual and used to check for liveness. |
ID Validation Manual Review
For each of the services above that support ID Validation, an optional request can be made through this SDK for a manual review to be performed in the event the ID does not pass our automated system checks. There is an additional fee for this service if performed. There is also an additional POST API Request that contains the results of that manual review once completed. You will have to provide a URL where that information will be posted to. The details for requesting this manual review can be found in the sections that outline how to call the function for processing images and the POST API Request Details.
Minimum Requirements and Initial Setup
The minimum requirements for utilizing this SDK are:
- Android 8.0 or higher
- Active internet connection
- Android studio 3.6 and above
The following permissions and features should be present in your AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<uses-permission android:name="android.permission.USB_PERMISSION"/>
<uses-feature android:name="android.hardware.usb.host" android:required="false" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
Use getRequiredPermissions
to get a list of required dangerous permissions.
The SDK requires there to be following nodes in your AndroidManifest.xml.
In Manifest tag:
<manifest xmlns:tools="http://schemas.android.com/tools">
In Application tag:
<application android:theme="@style/AppTheme" tools:replace ="android:icon,android:name,android:allowBackup">
Dependencies
Import the following module using these steps:
1. Navigate to File > Import > New Module
2. Click on Import .JAR/.AAR Package
3. Add AAR file path in File name
4. Add Firebase to your app
5. Open the Firebase Assistant in Android Studio
6. Click Tools > Firebase to open the Assistant window
7. Click to expand one of the listed features (e.g., Analytics)
8. Click the Connect to Firebase button to connect to Firebase
9. Add the necessary code to your app
10. For more details please reference: Firebase.
Dependencies
Dependency (versions earlier than 9.4.4.1.5) | Dependency (version 9.4.4.1.5 and later) | Description |
---|---|---|
idm-imgproc-#.#.#.#.aar |
Import the provided AAR with the latest sdk. (e.g idm-imgproc-9.4.4.1.5.aar) |
|
OpenCV_#.#.#.aar |
Import the provided AAR with the latest sdk. (e.g OpenCV_4.1.1.aar) |
|
(e.g. |
CardIO Library (Use latest released version) | |
Add above dependency in |
||
Add above dependency in build.gradle of your main project. |
implementation 'com.google.mlkit:face-detection:16.0.2' implementation 'com.google.android.gms:play-services-mlkit-text-recognition:16.1.1' |
Support library for face-detection |
apply plugin: Add above line as the last line in build.gradle of your main project. |
Support library for face-detection | |
Add the following code in build.gradle ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } apply plugin: |
||
libjinglewrapper.aar (e.g libjinglewrapper.aar) |
Support library for video conferencing | |
webrtcpeer-android | Support library project for video conferencing. libjinglewrapper.aar will be added as a module in this project. |
|
|
Support library for video conferencing | |
compile 'io.fotoapparat:fotoapparat:2.6.1' |
Support library for camera frame processing. (Note: This dependency should be added for release version 6.4.4.2 or above) |
|
Recommended IDE version and gradle plugins: Android studio 3.2.1 Gradle:
|
Recommended IDE version and gradle plugins: |
|
If you are using SDK version 7.1.1.22 or above, you need to update build.gradle with the following additional node: |
||
android { aaptOptions {
} compileOptions {
} } Additionally, you need to add the following dependencies.
Also, we suggest you update the existing dependencies with the following version:
You can also use the Android studio 3.5.1 and above with gradle 3.5.3 and gradle-5.4.1-all.zip |
implementation 'org.tensorflow:tensorflow-lite:2.3.0' |
build.gradle changes for 7.1.1.22 and above SDK version. |
|
Apache Commons Lang library | |
|
This library is required for SDK. |
Check the Android Studio sample project to learn the most common use.
Response Status Codes
Below is the list of all status codes which the SDK will return in the response.
Status Code | Status Message |
---|---|
0 | Success |
1 | SDK not initialized |
2 | Image not captured |
3 | No internet connection |
4 | Poor internet connectivity |
5 | Live face not detected |
6 | Request parameter not available |
7 | Invalid request parameter |
8 | Some error occurred, please try again |
9 | Card not detected |
10 | Device not supported. |
11 | Voice recording already running. |
12 | Operation cancel. |
13 | GPS not Enable. |
14 | Request already running. |
15 | Connect fingerprint device |
16 | Play service exception |
17 | Permission not granted |
18 | Real id not detected. |
19 | ID type country required. |
20 | Minimum selfie camera required. |
21 | Write permission require |
22 | Operation timeout |
23 | Not able to extract Autofill data |
24 | All models are not downloaded |
29 | Max retry count reached for live face not detected |
500 | Error in processing your request. Internal Server Error |
502 | Error in processing your request. Bad gateway |
503 | Error in processing your request. Please try after some time |
504 | Error in processing your request. Gateway timeout |
404 | Resource URL could not find. Please correct URL |
100 | Socket connection exception. {connect timeout} |
101 | Timeout for Response |
102 | Error in processing your request. {Unhandled Exception message} |
103 | Error in processing your request. Empty response received. |
104 | Error in processing your request. Unknown Host Exception. |
Initializing the SDK
To create an instance for the SDK, perform the following call as soon as your activity is initialized:
ImageProcessingSDK imageProcessingSDK = ImageProcessingSDK.initialize(
Activity activityContext,
String url,
String loginID,
String password,
String merchantID,
Integer productID,
String productName,
String language,
boolean enableGPS);
Async initialization call with callback method:
ImageProcessingSDK.initializeAsync(
Activity activityContext,
String url,
String loginID,
String password,
String merchantID,
Integer productID,
String productName,
String language,
boolean** enableGPS);
Mandatory (and Other) Parameters
Note: On the following table, all parameters are mandatory except Language
and EnableGPS
:
Parameter | Type | Default | Range | Description |
---|---|---|---|---|
activityContext |
Activity | - | Instance of activity | |
url |
String | - | IDmission Server URL | |
loginID |
String | - | Your Login ID | |
password |
String | - | Your Login Password | |
merchantID |
String | - | Your Merchant ID | |
productID |
integer | - | Your Product ID | |
productName |
String | - | Your Product Name | |
Language |
String | en | en, es, my, fr, ar, th, km, bn, id, vi, ta, hi, zh_hk, zh_cn, ur | Language code, English(en), Spanish(es), Burmese(my), French(fr), Arebic(ar), Thai(th), Khmer(km), Bengali(bn), Indonesia/Bahasa(id), Vietnamese(vi), Tamil(ta), Hindi(hi), Chienes Traditional(zh_hk), Chienes Simplified(zh_cn), Urdu(ur) supported |
EnableGPS |
boolean | Enable/Disable GPS fetching |
Initializing Labels
ImageProcessingSDK.initializeLabels(
HashMap<String, String> englishLabelMap,
HashMap<String, String> spanishLabelMap);
Label Parameters
Parameter | Type | Default | Description |
---|---|---|---|
englishLabelMap | HashMap |
Blank Map | You can add following key with your own message in value to display on UI, this map is for changing English labels."align_document_img_capture" |
spanishLabelMap | HashMap |
Blank Map | Keys are same as above. This map is for changing Spanish labels. |
Label definitions
Label key |
Used for | Label default value |
---|---|---|
align_document_img_capture |
For aligning the ID/Document in the frame. | Align document inside the green corners and wait, we'll take the photo for you. |
subject_is_too_dark_img_capture |
For letting user know the low light while ID/Document capture. | It's too dark to take a good image. Find a place with better lighting. |
out_of_focus_img_capture |
For letting user know out of focus while ID/Document capture. | Tap screen to focus or move camera closer/away |
too_much_glare_img_capture |
For letting user know of too much glare while ID/Document capture. | Too much light, move document away from direct light |
subject_is_too_dark_fc_detect |
For letting user know the low light while Live face capture. | It's too dark to take a good image. Find a place with better lighting. |
out_of_focus_fc_detect |
For letting user know out of focus while Live face capture. | Tap screen to focus or move camera closer/away |
move_camera_closer_to_your_face |
For letting user know if face is too far behind while Live face capture. | Move camera closer to face and look towards light. |
camera_movement_fc_detect |
For letting user know to keep face steady and smile while Live face capture. | Hold camera steady. |
keep_face_steady |
For letting user know to keep face steady and smile while Live face capture. | Keep your face steady |
smile_please |
For letting user know to keep face steady and smile while Live face capture. | Hold camera steady and smile please. |
face_detected |
For letting user know Live face is captured. | Face detected |
light |
For letting user know Light %. (only visible in debug mode) | Light % |
focus |
For letting user know Focus %. (only visible in debug mode) | Focus % |
glare |
For letting user know glare %. (only visible in debug mode) | Glare % |
smile |
For letting user know smile %. (only visible in debug mode) | Smile % |
page_title_face_detection |
For the header of the face capture screen | Detecting face |
camera_error |
For letting the user know an error has occurred when trying to engage the camera | Unable to start the camera, please restart the device. |
turn_left |
Used only in active face detection, instructions for when the left arrow shows. | Turn your head slowly to the left |
turn_right |
Used only in active face detection, instructions for when the right arrow shows. | Turn your head slowly to the right |
move_up |
For letting the user know to move their head upwards during liveness detection. | Slowly move your head up |
move_down |
For letting the user know to move their head down during liveness detection. | Slowly move your head down |
look_straight |
For letting the user know to look into the camera if their eyes are looking elsewhere. | Please look straight into the phone |
page_title_image_capture |
For setting title text for ID/Document capture. | Capturing identification |
page_title_face_detection |
For setting title text for Live face capture. | Detecting face |
barcode_detected_error_message |
For informing the user that the barcode has not been detected. | Barcode is not detected please try again |
capturing_id_scanbarcode |
For prompting the user to scan the barcode. | Scan Barcode |
capturing_id_scanbarcode_msg |
For prompting the user to align the barcode inside the rectangle. | Align barcode inside the rectangle and wait. |
id_capture_instruction |
For instructing the user on how to hold ID for ID/Document capture. | Hold your ID straight and steady in front of the camera so the entire image is in view. Avoid excessive backlighting and glare. |
align_id_and_mrz_inside_rectangle |
For prompting the user to align the ID and MRZ inside the rectangle. | Align document and MRZ inside rectangle |
align_barcode_inside_rectangle |
For prompting the user to align the barcode inside the rectangle. | Align BARCODE inside rectangle |
barcode_mrz_not_found |
For informing the user that the barcode or MRZ was not found. | BARCODE or MRZ not found for the selected id. |
capturing_id_scanbarcode_pdf_417_msg |
For prompting the user to align the PDF 417 barcode inside the rectangle. | Align PDF 417 barcode inside the rectangle and wait. |
move_id_closer |
For prompting the user to move the ID closer to the camera. | Move ID closer |
move_id_away |
For prompting the user to move the ID further away from the camera. | Move ID away |
align_document_inside_rectangle |
For prompting the user to align the document inside the rectangle. | Align document inside rectangle. |
id_capture_preview_header |
The header of the ID capture screen after capture is complete. | Check readability |
id_capture_preview_message |
The footer message of the ID capture screen after capture is complete. | Verify to ensure complete ID is visible with edges and there is no glare or blurred text |
barcode_error_message |
For informing the user that the barcode has not been detected. | Barcode is not detected please try again |
mrz_error_message |
For informing the user that the MRZ has not been detected. | MRZ is not detected please try again |
barcode_mrz_error_message |
For informing the user that the MRZ or the barcode has not been detected. | MRZ or Barcode is not detected please try again |
id_capture_success_message |
For informing the user that the ID capture is successful. | Success |
id_capture_instruction_continue |
Button label on the ID capture instruction screen | Continue |
video_recording_max_time_val_msg |
While recording video | Max recording time should be greater than 0 |
video_recording_min_time_val_msg |
While recording video | Video recording min time(%@) |
video_recording_max_time_validation_msg |
While recording video | Max recording time should be greater than Min recording time |
face_mask_detected |
While Capturing face | Face Mask Detected |
minimum_selfie_camera_requirement |
While Capturing Face | Need minimum %@ MegaPixel Selfie Camera! |
Customizing the User Interface
To customize the UI component position on ID capture and face detection screen, please use the following method and customize UI for all the features in one call.
Sample UI configuration json is available on the following URL: Sample UI customization call
ImageProcessingSDK.customizeUserInterface(String uiConfigurationJsonString);
Also find the supported JSON below with description:
Single Call UI Customization
Single Call UI Customization
{
"id_capture_front": {
"id_outline_color": "FFFFFF",
"id_outline_color_alpha": "1",
"id_detected_id_outline_color": "6EB24C",
"id_detected_id_outline_color_alpha": "1",
"id_outside_outline_color": "FFFFFF",
"id_outside_outline_color_aplha": "1",
"id_detected_id_outside_outline_color": "487D95",
"id_detected_id_outside_outline_color_alpha": "1",
"id_back_button_color": "FFAD36",
"id_back_button_color_alpha": "1",
"id_retry_button_color": "606060",
"id_retry_button_color_alpha": "1",
"id_retry_button_border_color": "FFFFFF",
"id_retry_button_border_color_alpha": "1",
"id_retry_button_text": "",
"id_retry_button_text_color": "FFFFFF",
"id_retry_button_text_color_alpha": "1",
"id_retry_button_text_size": "20",
"id_confirm_button_color": "606060",
"id_confirm_button_color_alpha": "1",
"id_confirm_button_border_color": "FFFFFF",
"id_confirm_button_border_color_alpha": "1",
"id_confirm_button_text": "",
"id_confirm_button_text_color": "FFFFFF",
"id_confirm_button_text_color_alpha": "1",
"id_confirm_button_text_size": "20",
"id_instruction_button_color": "606060",
"id_instruction_button_alpha": "1",
"id_instruction_button_txt_color": "FFFFFF",
"id_instruction_button_txt_alpha": "1",
"id_label_text_color": "606060",
"id_label_text_alpha": "1",
"id_label_text_typeface_type": "DEFAULT",
"id_label_text_typeface_style": "NORMAL",
"id_label_text_size": "",
"id_header_text_label_color": "FFFFFF",
"id_header_text_label_alpha": "1",
"id_header_text_typeface_type": "DEFAULT",
"id_header_text_typeface_style": "NORMAL",
"id_header_text_label_size": "",
"id_capture_border_style": "Thick",
"id_title_img_bitmap_base64": "",
"id_instruction_img_resource_id": "",
"id_title_label_alignment": "Top",
"id_hint_message_alignment": "Center",
"id_title_image_alignment": "Bottom",
"id_hide_id_title_label": "N",
"id_hide_id_hint_message": "N",
"id_hide_id_title_image": "N",
"id_show_instruction": "N",
"id_enable_label_shadow": "N",
"id_capture_button_color": "FFFFFF",
"id_capture_button_alpha": "1",
"id_capture_background_color": "FFFFFF",
"id_capture_background_color_alpha": "50",
"id_capture_success_message_color": "33CC33",
"id_capture_success_message_color_alpha": "1",
"id_dummy_image_color": "5CBAEA",
"id_dummy_image_color_alpha": "1",
"labels": {
"light": "Light",
"focus": "Focus",
"glare": "Glare",
"align_document_img_capture": "Align document inside the corners and wait, we'll take the photo for you.",
"subject_is_too_dark_img_capture": "It's too dark to take a good image. Find a place with better lighting.",
"out_of_focus_img_capture": "Tap screen to focus or move camera closer/away",
"too_much_glare_img_capture": "Too much light, move document away from direct light",
"page_title_image_capture": "Capture Front",
"barcode_detected_error_message": "Barcode is not detected please try again",
"capturing_id_scanbarcode": "Scan Barcode",
"capturing_id_scanbarcode_msg": "Align barcode inside the rectangle and wait.",
"id_capture_instruction": "Hold your ID straight and steady in front of the camera so the entire image is in view. Avoid excessive backlighting and glare.",
"align_id_and_mrz_inside_rectangle": "Align document and MRZ inside rectangle",
"align_barcode_inside_rectangle": "Align BARCODE inside rectangle",
"barcode_mrz_not_found": "BARCODE or MRZ not found for the selected id.",
"capturing_id_scanbarcode_pdf_417_msg": "Align PDF 417 barcode inside the rectangle and wait.",
"move_id_closer": "Move ID closer",
"mrz_not_detected": "MRZ is not detected",
"move_id_away": "Move ID away",
"align_document_inside_rectangle": "Align document inside rectangle.",
"id_capture_preview_header": "Check readability",
"id_capture_preview_message": "Verify to ensure complete ID is visible with edges and there is no glare or blurred text",
"barcode_error_message": "Barcode is not detected please try again",
"mrz_error_message": "MRZ is not detected please try again",
"barcode_mrz_error_message": "MRZ or Barcode is not detected please try again",
"id_capture_success_message": "Success",
"id_capture_instruction_continue": "Continue",
"real_id_not_detected": " Real ID not detected, please try again",
"id_model_downloading": "Please wait...\nRequired components are being downloaded"
"not_in_focus": "Not In Focus"
}
},
"id_capture_back": {
"id_outline_color": "FFFFFF",
"id_outline_color_alpha": "1",
"id_detected_id_outline_color": "6EB24C",
"id_detected_id_outline_color_alpha": "1",
"id_outside_outline_color": "FFFFFF",
"id_outside_outline_color_aplha": "1",
"id_detected_id_outside_outline_color": "487D95",
"id_detected_id_outside_outline_color_alpha": "1",
"id_back_button_color": "FFAD36",
"id_back_button_color_alpha": "1",
"id_retry_button_color": "606060",
"id_retry_button_color_alpha": "1",
"id_retry_button_border_color": "FFFFFF",
"id_retry_button_border_color_alpha": "1",
"id_retry_button_text": "",
"id_retry_button_text_color": "FFFFFF",
"id_retry_button_text_color_alpha": "1",
"id_retry_button_text_size": "20",
"id_confirm_button_color": "606060",
"id_confirm_button_color_alpha": "1",
"id_confirm_button_border_color": "FFFFFF",
"id_confirm_button_border_color_alpha": "1",
"id_confirm_button_text": "",
"id_confirm_button_text_color": "FFFFFF",
"id_confirm_button_text_color_alpha": "1",
"id_confirm_button_text_size": "20",
"id_instruction_button_color": "606060",
"id_instruction_button_alpha": "1",
"id_instruction_button_txt_color": "FFFFFF",
"id_instruction_button_txt_alpha": "1",
"id_label_text_color": "606060",
"id_label_text_alpha": "1",
"id_label_text_typeface_type": "DEFAULT",
"id_label_text_typeface_style": "NORMAL",
"id_label_text_size": "",
"id_header_text_label_color": "FFFFFF",
"id_header_text_label_alpha": "1",
"id_header_text_typeface_type": "DEFAULT",
"id_header_text_typeface_style": "NORMAL",
"id_header_text_label_size": "",
"id_capture_border_style": "Thick",
"id_title_img_bitmap_base64": "",
"id_instruction_img_resource_id": "",
"id_title_label_alignment": "Top",
"id_hint_message_alignment": "Center",
"id_title_image_alignment": "Bottom",
"id_hide_id_title_label": "N",
"id_hide_id_hint_message": "N",
"id_hide_id_title_image": "N",
"id_show_instruction": "N",
"id_enable_label_shadow": "N",
"id_capture_button_color": "FFFFFF",
"id_capture_button_alpha": "1",
"id_capture_background_color": "FFFFFF",
"id_capture_background_color_alpha": "50",
"id_capture_success_message_color": "33CC33",
"id_capture_success_message_color_alpha": "1",
"id_dummy_image_color": "5CBAEA",
"id_dummy_image_color_alpha": "1",
"labels": {
"light": "Light",
"focus": "Focus",
"glare": "Glare",
"align_document_img_capture": "Align document inside the corners and wait, we'll take the photo for you.",
"subject_is_too_dark_img_capture": "It's too dark to take a good image. Find a place with better lighting.",
"out_of_focus_img_capture": "Tap screen to focus or move camera closer/away",
"too_much_glare_img_capture": "Too much light, move document away from direct light",
"page_title_image_capture": "Capture Back",
"barcode_detected_error_message": "Barcode is not detected please try again",
"capturing_id_scanbarcode": "Scan Barcode",
"capturing_id_scanbarcode_msg": "Align barcode inside the rectangle and wait.",
"id_capture_instruction": "Hold your ID straight and steady in front of the camera so the entire image is in view. Avoid excessive backlighting and glare.",
"align_id_and_mrz_inside_rectangle": "Align document and MRZ inside rectangle",
"align_barcode_inside_rectangle": "Align BARCODE inside rectangle",
"barcode_mrz_not_found": "BARCODE or MRZ not found for the selected id.",
"capturing_id_scanbarcode_pdf_417_msg": "Align PDF 417 barcode inside the rectangle and wait.",
"move_id_closer": "Move ID closer",
"mrz_not_detected": "MRZ is not detected",
"move_id_away": "Move ID away",
"align_document_inside_rectangle": "Align document inside rectangle.",
"id_capture_preview_header": "Check readability",
"id_capture_preview_message": "Verify to ensure complete ID is visible with edges and there is no glare or blurred text",
"barcode_error_message": "Barcode is not detected please try again",
"mrz_error_message": "MRZ is not detected please try again",
"barcode_mrz_error_message": "MRZ or Barcode is not detected please try again",
"id_capture_success_message": "Success",
"id_capture_instruction_continue": "Continue",
"real_id_not_detected": " Real ID not detected, please try again",
"id_model_downloading": "Please wait...\nRequired components are being downloaded"
"not_in_focus": "Not In Focus"
}
},
"document_capture": {
"id_outline_color": "FFFFFF",
"id_outline_color_alpha": "1",
"id_detected_id_outline_color": "6EB24C",
"id_detected_id_outline_color_alpha": "1",
"id_outside_outline_color": "FFFFFF",
"id_outside_outline_color_aplha": "1",
"id_detected_id_outside_outline_color": "487D95",
"id_detected_id_outside_outline_color_alpha": "1",
"id_back_button_color": "FFAD36",
"id_back_button_color_alpha": "1",
"id_retry_button_color": "606060",
"id_retry_button_color_alpha": "1",
"id_retry_button_border_color": "FFFFFF",
"id_retry_button_border_color_alpha": "1",
"id_retry_button_text": "",
"id_retry_button_text_color": "FFFFFF",
"id_retry_button_text_color_alpha": "1",
"id_retry_button_text_size": "20",
"id_confirm_button_color": "606060",
"id_confirm_button_color_alpha": "1",
"id_confirm_button_border_color": "FFFFFF",
"id_confirm_button_border_color_alpha": "1",
"id_confirm_button_text": "",
"id_confirm_button_text_color": "FFFFFF",
"id_confirm_button_text_color_alpha": "1",
"id_confirm_button_text_size": "20",
"id_instruction_button_color": "606060",
"id_instruction_button_alpha": "1",
"id_instruction_button_txt_color": "FFFFFF",
"id_instruction_button_txt_alpha": "1",
"id_label_text_color": "606060",
"id_label_text_alpha": "1",
"id_label_text_typeface_type": "DEFAULT",
"id_label_text_typeface_style": "NORMAL",
"id_label_text_size": "",
"id_header_text_label_color": "FFFFFF",
"id_header_text_label_alpha": "1",
"id_header_text_typeface_type": "DEFAULT",
"id_header_text_typeface_style": "NORMAL",
"id_header_text_label_size": "",
"id_capture_border_style": "Thick",
"id_title_img_bitmap_base64": "",
"id_instruction_img_resource_id": "",
"id_title_label_alignment": "Top",
"id_hint_message_alignment": "Center",
"id_title_image_alignment": "Bottom",
"id_hide_id_title_label": "N",
"id_hide_id_hint_message": "N",
"id_hide_id_title_image": "N",
"id_show_instruction": "N",
"id_enable_label_shadow": "N",
"id_capture_button_color": "FFFFFF",
"id_capture_button_alpha": "1",
"id_capture_background_color": "FFFFFF",
"id_capture_background_color_alpha": "50",
"id_capture_success_message_color": "33CC33",
"id_capture_success_message_color_alpha": "1",
"labels": {
"light": "Light",
"focus": "Focus",
"glare": "Glare",
"align_document_img_capture": "Align document inside the corners and wait, we'll take the photo for you.",
"subject_is_too_dark_img_capture": "It's too dark to take a good image. Find a place with better lighting.",
"out_of_focus_img_capture": "Tap screen to focus or move camera closer/away",
"too_much_glare_img_capture": "Too much light, move document away from direct light",
"page_title_image_capture": "Capture Document",
"barcode_detected_error_message": "Barcode is not detected please try again",
"capturing_id_scanbarcode": "Scan Barcode",
"capturing_id_scanbarcode_msg": "Align barcode inside the rectangle and wait.",
"id_capture_instruction": "Hold your ID straight and steady in front of the camera so the entire image is in view. Avoid excessive backlighting and glare.",
"align_id_and_mrz_inside_rectangle": "Align document and MRZ inside rectangle",
"align_barcode_inside_rectangle": "Align BARCODE inside rectangle",
"barcode_mrz_not_found": "BARCODE or MRZ not found for the selected id.",
"capturing_id_scanbarcode_pdf_417_msg": "Align PDF 417 barcode inside the rectangle and wait.",
"move_id_closer": "Move ID closer",
"move_id_away": "Move ID away",
"align_document_inside_rectangle": "Align document inside rectangle.",
"id_capture_preview_header": "Check readability",
"id_capture_preview_message": "Verify to ensure complete ID is visible with edges and there is no glare or blurred text",
"barcode_error_message": "Barcode is not detected please try again",
"mrz_error_message": "MRZ is not detected please try again",
"barcode_mrz_error_message": "MRZ or Barcode is not detected please try again",
"id_capture_success_message": "Success",
"id_capture_instruction_continue": "Continue"
}
},
"snippet_capture": {
"id_outline_color": "FFFFFF",
"id_outline_color_alpha": "1",
"id_detected_id_outline_color": "6EB24C",
"id_detected_id_outline_color_alpha": "1",
"id_outside_outline_color": "FFFFFF",
"id_outside_outline_color_aplha": "1",
"id_detected_id_outside_outline_color": "487D95",
"id_detected_id_outside_outline_color_alpha": "1",
"id_back_button_color": "FFAD36",
"id_back_button_color_alpha": "1",
"id_retry_button_color": "606060",
"id_retry_button_color_alpha": "1",
"id_retry_button_border_color": "FFFFFF",
"id_retry_button_border_color_alpha": "1",
"id_retry_button_text": "",
"id_retry_button_text_color": "FFFFFF",
"id_retry_button_text_color_alpha": "1",
"id_retry_button_text_size": "20",
"id_confirm_button_color": "606060",
"id_confirm_button_color_alpha": "1",
"id_confirm_button_border_color": "FFFFFF",
"id_confirm_button_border_color_alpha": "1",
"id_confirm_button_text": "",
"id_confirm_button_text_color": "FFFFFF",
"id_confirm_button_text_color_alpha": "1",
"id_confirm_button_text_size": "20",
"id_instruction_button_color": "606060",
"id_instruction_button_alpha": "1",
"id_instruction_button_txt_color": "FFFFFF",
"id_instruction_button_txt_alpha": "1",
"id_label_text_color": "606060",
"id_label_text_alpha": "1",
"id_label_text_typeface_type": "DEFAULT",
"id_label_text_typeface_style": "NORMAL",
"id_label_text_size": "",
"id_header_text_label_color": "FFFFFF",
"id_header_text_label_alpha": "1",
"id_header_text_typeface_type": "DEFAULT",
"id_header_text_typeface_style": "NORMAL",
"id_header_text_label_size": "",
"id_capture_border_style": "Thick",
"id_title_img_bitmap_base64": "",
"id_instruction_img_resource_id": "",
"id_title_label_alignment": "Top",
"id_hint_message_alignment": "Center",
"id_title_image_alignment": "Bottom",
"id_hide_id_title_label": "N",
"id_hide_id_hint_message": "N",
"id_hide_id_title_image": "N",
"id_show_instruction": "N",
"id_enable_label_shadow": "N",
"id_capture_button_color": "FFFFFF",
"id_capture_button_alpha": "1",
"id_capture_background_color": "FFFFFF",
"id_capture_background_color_alpha": "50",
"id_capture_success_message_color": "33CC33",
"id_capture_success_message_color_alpha": "1",
"labels": {
"light": "Light",
"focus": "Focus",
"glare": "Glare",
"align_document_img_capture": "Align document inside the corners and wait, we'll take the photo for you.",
"subject_is_too_dark_img_capture": "It's too dark to take a good image. Find a place with better lighting.",
"out_of_focus_img_capture": "Tap screen to focus or move camera closer/away",
"too_much_glare_img_capture": "Too much light, move document away from direct light",
"page_title_image_capture": "Capture Snippet",
"barcode_detected_error_message": "Barcode is not detected please try again",
"capturing_id_scanbarcode": "Scan Barcode",
"capturing_id_scanbarcode_msg": "Align barcode inside the rectangle and wait.",
"id_capture_instruction": "Hold your ID straight and steady in front of the camera so the entire image is in view. Avoid excessive backlighting and glare.",
"align_id_and_mrz_inside_rectangle": "Align document and MRZ inside rectangle",
"align_barcode_inside_rectangle": "Align BARCODE inside rectangle",
"barcode_mrz_not_found": "BARCODE or MRZ not found for the selected id.",
"capturing_id_scanbarcode_pdf_417_msg": "Align PDF 417 barcode inside the rectangle and wait.",
"move_id_closer": "Move ID closer",
"move_id_away": "Move ID away",
"align_document_inside_rectangle": "Align document inside rectangle.",
"id_capture_preview_header": "Check readability",
"id_capture_preview_message": "Verify to ensure complete ID is visible with edges and there is no glare or blurred text",
"barcode_error_message": "Barcode is not detected please try again",
"mrz_error_message": "MRZ is not detected please try again",
"barcode_mrz_error_message": "MRZ or Barcode is not detected please try again",
"id_capture_success_message": "Success",
"id_capture_instruction_continue": "Continue"
}
},
"secondary_id_capture_front": {
"id_outline_color": "FFFFFF",
"id_outline_color_alpha": "1",
"id_detected_id_outline_color": "6EB24C",
"id_detected_id_outline_color_alpha": "1",
"id_outside_outline_color": "FFFFFF",
"id_outside_outline_color_aplha": "1",
"id_detected_id_outside_outline_color": "487D95",
"id_detected_id_outside_outline_color_alpha": "1",
"id_back_button_color": "FFAD36",
"id_back_button_color_alpha": "1",
"id_retry_button_color": "606060",
"id_retry_button_color_alpha": "1",
"id_retry_button_border_color": "FFFFFF",
"id_retry_button_border_color_alpha": "1",
"id_retry_button_text": "",
"id_retry_button_text_color": "FFFFFF",
"id_retry_button_text_color_alpha": "1",
"id_retry_button_text_size": "20",
"id_confirm_button_color": "606060",
"id_confirm_button_color_alpha": "1",
"id_confirm_button_border_color": "FFFFFF",
"id_confirm_button_border_color_alpha": "1",
"id_confirm_button_text": "",
"id_confirm_button_text_color": "FFFFFF",
"id_confirm_button_text_color_alpha": "1",
"id_confirm_button_text_size": "20",
"id_instruction_button_color": "606060",
"id_instruction_button_alpha": "1",
"id_instruction_button_txt_color": "FFFFFF",
"id_instruction_button_txt_alpha": "1",
"id_label_text_color": "606060",
"id_label_text_alpha": "1",
"id_label_text_typeface_type": "DEFAULT",
"id_label_text_typeface_style": "NORMAL",
"id_label_text_size": "",
"id_header_text_label_color": "FFFFFF",
"id_header_text_label_alpha": "1",
"id_header_text_typeface_type": "DEFAULT",
"id_header_text_typeface_style": "NORMAL",
"id_header_text_label_size": "",
"id_capture_border_style": "Thick",
"id_title_img_bitmap_base64": "",
"id_instruction_img_resource_id": "",
"id_title_label_alignment": "Top",
"id_hint_message_alignment": "Center",
"id_title_image_alignment": "Bottom",
"id_hide_id_title_label": "N",
"id_hide_id_hint_message": "N",
"id_hide_id_title_image": "N",
"id_show_instruction": "N",
"id_enable_label_shadow": "N",
"id_capture_button_color": "FFFFFF",
"id_capture_button_alpha": "1",
"id_capture_background_color": "FFFFFF",
"id_capture_background_color_alpha": "50",
"id_capture_success_message_color": "33CC33",
"id_capture_success_message_color_alpha": "1",
"labels": {
"light": "Light",
"focus": "Focus",
"glare": "Glare",
"align_document_img_capture": "Align document inside the corners and wait, we'll take the photo for you.",
"subject_is_too_dark_img_capture": "It's too dark to take a good image. Find a place with better lighting.",
"out_of_focus_img_capture": "Tap screen to focus or move camera closer/away",
"too_much_glare_img_capture": "Too much light, move document away from direct light",
"page_title_image_capture": "Capture Front",
"barcode_detected_error_message": "Barcode is not detected please try again",
"capturing_id_scanbarcode": "Scan Barcode",
"capturing_id_scanbarcode_msg": "Align barcode inside the rectangle and wait.",
"id_capture_instruction": "Hold your ID straight and steady in front of the camera so the entire image is in view. Avoid excessive backlighting and glare.",
"align_id_and_mrz_inside_rectangle": "Align document and MRZ inside rectangle",
"align_barcode_inside_rectangle": "Align BARCODE inside rectangle",
"barcode_mrz_not_found": "BARCODE or MRZ not found for the selected id.",
"capturing_id_scanbarcode_pdf_417_msg": "Align PDF 417 barcode inside the rectangle and wait.",
"move_id_closer": "Move ID closer",
"move_id_away": "Move ID away",
"align_document_inside_rectangle": "Align document inside rectangle.",
"id_capture_preview_header": "Check readability",
"id_capture_preview_message": "Verify to ensure complete ID is visible with edges and there is no glare or blurred text",
"barcode_error_message": "Barcode is not detected please try again",
"mrz_error_message": "MRZ is not detected please try again",
"barcode_mrz_error_message": "MRZ or Barcode is not detected please try again",
"id_capture_success_message": "Success",
"id_capture_instruction_continue": "Continue"
}
},
"secondary_id_capture_back": {
"id_outline_color": "FFFFFF",
"id_outline_color_alpha": "1",
"id_detected_id_outline_color": "6EB24C",
"id_detected_id_outline_color_alpha": "1",
"id_outside_outline_color": "FFFFFF",
"id_outside_outline_color_aplha": "1",
"id_detected_id_outside_outline_color": "487D95",
"id_detected_id_outside_outline_color_alpha": "1",
"id_back_button_color": "FFAD36",
"id_back_button_color_alpha": "1",
"id_retry_button_color": "606060",
"id_retry_button_color_alpha": "1",
"id_retry_button_border_color": "FFFFFF",
"id_retry_button_border_color_alpha": "1",
"id_retry_button_text": "",
"id_retry_button_text_color": "FFFFFF",
"id_retry_button_text_color_alpha": "1",
"id_retry_button_text_size": "20",
"id_confirm_button_color": "606060",
"id_confirm_button_color_alpha": "1",
"id_confirm_button_border_color": "FFFFFF",
"id_confirm_button_border_color_alpha": "1",
"id_confirm_button_text": "",
"id_confirm_button_text_color": "FFFFFF",
"id_confirm_button_text_color_alpha": "1",
"id_confirm_button_text_size": "20",
"id_instruction_button_color": "606060",
"id_instruction_button_alpha": "1",
"id_instruction_button_txt_color": "FFFFFF",
"id_instruction_button_txt_alpha": "1",
"id_label_text_color": "606060",
"id_label_text_alpha": "1",
"id_label_text_typeface_type": "DEFAULT",
"id_label_text_typeface_style": "NORMAL",
"id_label_text_size": "",
"id_header_text_label_color": "FFFFFF",
"id_header_text_label_alpha": "1",
"id_header_text_typeface_type": "DEFAULT",
"id_header_text_typeface_style": "NORMAL",
"id_header_text_label_size": "",
"id_capture_border_style": "Thick",
"id_title_img_bitmap_base64": "",
"id_instruction_img_resource_id": "",
"id_title_label_alignment": "Top",
"id_hint_message_alignment": "Center",
"id_title_image_alignment": "Bottom",
"id_hide_id_title_label": "N",
"id_hide_id_hint_message": "N",
"id_hide_id_title_image": "N",
"id_show_instruction": "N",
"id_enable_label_shadow": "N",
"id_capture_button_color": "FFFFFF",
"id_capture_button_alpha": "1",
"id_capture_background_color": "FFFFFF",
"id_capture_background_color_alpha": "50",
"id_capture_success_message_color": "33CC33",
"id_capture_success_message_color_alpha": "1",
"labels": {
"light": "Light",
"focus": "Focus",
"glare": "Glare",
"align_document_img_capture": "Align document inside the corners and wait, we'll take the photo for you.",
"subject_is_too_dark_img_capture": "It's too dark to take a good image. Find a place with better lighting.",
"out_of_focus_img_capture": "Tap screen to focus or move camera closer/away",
"too_much_glare_img_capture": "Too much light, move document away from direct light",
"page_title_image_capture": "Capture Back",
"barcode_detected_error_message": "Barcode is not detected please try again",
"capturing_id_scanbarcode": "Scan Barcode",
"capturing_id_scanbarcode_msg": "Align barcode inside the rectangle and wait.",
"id_capture_instruction": "Hold your ID straight and steady in front of the camera so the entire image is in view. Avoid excessive backlighting and glare.",
"align_id_and_mrz_inside_rectangle": "Align document and MRZ inside rectangle",
"align_barcode_inside_rectangle": "Align BARCODE inside rectangle",
"barcode_mrz_not_found": "BARCODE or MRZ not found for the selected id.",
"capturing_id_scanbarcode_pdf_417_msg": "Align PDF 417 barcode inside the rectangle and wait.",
"move_id_closer": "Move ID closer",
"move_id_away": "Move ID away",
"align_document_inside_rectangle": "Align document inside rectangle.",
"id_capture_preview_header": "Check readability",
"id_capture_preview_message": "Verify to ensure complete ID is visible with edges and there is no glare or blurred text",
"barcode_error_message": "Barcode is not detected please try again",
"mrz_error_message": "MRZ is not detected please try again",
"barcode_mrz_error_message": "MRZ or Barcode is not detected please try again",
"id_capture_success_message": "Success",
"id_capture_instruction_continue": "Continue"
}
},
"face_capture": {
"fd_outline_color": "FF0000",
"fd_outline_color_alpha": "1",
"fd_detected_face_outline_color": "6EB24C",
"fd_detected_face_outline_color_alpha": "1",
"fd_outside_face_outline_color": "FFFFFF",
"fd_outside_face_outline_color_alpha": "1",
"fd_passive_outside_face_outline_color": "FFFFFF",
"fd_passive_outside_face_outline_color_alpha": "1",
"fd_detected_outside_face_outline_color": "FFFFFF",
"fd_detected_outside_face_outline_color_alpha": "1",
"fd_back_button_color": "FFAD36",
"fd_back_button_color_alpha": "1",
"fd_retry_button_color": "606060",
"fd_retry_button_color_alpha": "1",
"fd_retry_button_border_color": "FFFFFF",
"fd_retry_button_border_color_alpha": "1",
"fd_retry_button_text": "",
"fd_retry_button_text_color": "FFFFFF",
"fd_retry_button_text_color_alpha": "1",
"fd_retry_button_text_size": "20",
"fd_confirm_button_color": "606060",
"fd_confirm_button_color_alpha": "1",
"fd_confirm_button_border_color": "FFFFFF",
"fd_confirm_button_border_color_alpha": "1",
"fd_confirm_button_text": "",
"fd_confirm_button_text_color": "FFFFFF",
"fd_confirm_button_text_color_alpha": "1",
"fd_confirm_button_text_size": "20",
"fd_instruction_button_color": "606060",
"fd_instruction_button_alpha": "1",
"fd_instruction_button_txt_color": "FFFFFF",
"fd_instruction_button_txt_alpha": "1",
"fd_label_text_color": "909090",
"fd_label_text_alpha": "1",
"fd_label_text_typeface_type": "DEFAULT",
"fd_label_text_typeface_style": "NORMAL",
"fd_label_text_size": "",
"fd_header_text_label_color": "909090",
"fd_header_text_label_alpha": "1",
"fd_header_text_typeface_type": "DEFAULT",
"fd_header_text_typeface_style": "NORMAL",
"fd_header_text_label_size": "",
"fd_title_img_bitmap_base64": "",
"fd_instruction_img_resource_id": "",
"fd_face_contours": "Zero",
"fd_face_title_label_on_top": "N",
"fd_face_hint_message_on_top": "Y",
"fd_face_hint_icon_on_top": "Y",
"fd_title_image_on_top": "Y",
"fd_hide_face_title_lable": "N",
"fd_hide_face_hint_message": "N",
"fd_hide_face_hint_icon": "N",
"fd_hide_title_image": "N",
"fd_show_custom_ui":"N",
"fd_face_outline_image_id":"",
"fd_outside_face_outline_image_id":"",
"fd_face_outline_progress_images":"",
"fd_face_outline_progress_images_delay":"500",
"fd_face_turn_arrow_list":"",
"fd_toggle_camera_button_icon":"",
"fd_show_preview_screen": "Y",
"fd_show_instruction_screen": "Y",
"fd_enable_label_shadow": "N",
"fd_instruction_preview_background_color": "FFFFFF",
"fd_instruction_preview_background_color_alpha": "1",
"fd_enable_manual_capture" : "N",
"fd_enable_manual_capture_time" : 60,
"fd_enable_manual_capture_retry_count" : 2,
"fd_capture_success_message_color": "33CC33",
"fd_capture_success_message_color_alpha": "1",
"fd_dummy_image_color": "5CBAEA",
"fd_dummy_image_color_alpha": "1",
"fd_preview_screen": "ENABLE",
"fd_passive_text_hint_label_color": "FFFFFF",
"fd_passive_text_hint_label_color_alpha": "1",
"fd_success_message_typeface_type": "DEFAULT_BOLD",
"fd_success_message_typeface_style": "BOLD",
"fd_success_message_size": "23",
"fd_passive_text_hint_label_size": "",
"fd_instruction_button_txt_size": "",
"fd_capture_preview_info_color": "",
"fd_capture_preview_info_size": "",
"fd_preview_background_color": "",
"fd_max_live_face_not_detected_count": "20",
"labels": {
"too_much_glare_face_capture": "Too much light, move face away from direct light",
"light": "Light",
"focus": "Focus",
"smile": "Smile",
"out_of_focus_fc_detect": "Tap screen to focus or move camera closer/away",
"subject_is_too_dark_fc_detect": "It's too dark to take a good image. Find a place with better lighting.",
"move_camera_closer_to_your_face": "Move camera closer to face and look towards light.",
"camera_movement_fc_detect": "Hold camera steady.",
"smile_please": "Hold camera steady and smile please.",
"face_detected": "Face detected",
"keep_face_steady": "Keep your face steady",
"page_title_face_detection": "Detecting face",
"camera_error": "Unable to start the camera, please restart the device.",
"turn_left": "Turn your head slowly to the left",
"turn_right": "Turn your head slowly to the right",
"move_up": "Slowly move your head up",
"move_down": "Slowly move your head down",
"look_straight": "Please look straight into the phone",
"face_detection_instruction": "Take an interactive selfie.\nDo not wear GLASSES or HAT.\nDo not have LIGHT behind you.\nWhen you see turn arrow, please TURN your head slowly.",
"passive_face_detection_instruction": "Before taking a selfie, remove your glasses and/or hat and avoid excessive backlighting.\nTo capture your selfie automatically, frame your face inside the oval and position your device at eye level while looking directly into the camera.",
"fd_too_much_ligth_error": "Excessive backlighting detected. Please reduce backlighting to proceed",
"fd_look_straight_msg": "Look straight into the camera",
"fd_face_model_downloading": "Please wait...\nRequired components are being downloaded",
"fd_frame_face_inside": "Frame your face inside the oval and look directly into the camera.",
"fd_too_dark_error": "Excessive darkness detected. Please reduce darkness to proceed.",
"face_capture_preview_message": "Verify your eyes are open and there is no excessive light in the background.",
"face_capture_preview_header": "Detect face preview",
"live_face_not_detected_msg": "Live face is not detected.please try again",
"face_capture_success_msg": "Success",
"face_capture_instruction_continue": "Continue",
"move_face_closer": "Move closer",
"move_face_away": "Move back",
"move_head_up": "Move head up",
"move_head_down": "Move head down"
"face_not_in_focus": "Face not in focus"
}
},
"camera_finger_capture": {
"cfc_label_text_typeface_type": "DEFAULT",
"cfc_label_text_typeface_style": "NORMAL",
"cfc_label_text_color": "FFFFFF",
"cfc_label_text_color_alpha": "1",
"cfc_show_instruction_screen": "Y",
"cfc_instruction_button_color": "FFFFFF",
"cfc_instruction_button_alpha": "1",
"cfc_instruction_button_txt_color": "487D95",
"cfc_instruction_button_txt_alpha": "1",
"cfc_finger_capture_background_color": "487D95",
"cfc_finger_capture_background_color_alpha": "1",
"cfc_back_button_color": "FFAD36",
"cfc_back_button_color_alpha": "1",
"labels": {
"camera_finger_capture_title": "Capture Fingerprint",
"move_closer": "Move closer",
"move_away": "Move away",
"incorrect_hand": "Incorrect hand",
"hold_steady": "Hold Steady",
"capturing_detail": "Capturing Detail",
"finger_too_close": "TOO CLOSE",
"finger_too_far": "TOO FAR"
}
},
"barcode_capture": {
"barcode_capture_portrait": "N",
"labels": {
"barcode_text_message_footer": "Barcode Scan"
}
},
"voice_recording": {
"voice_button_color": "FFFFFF",
"voice_button_color_alpha": "1",
"voice_background_color": "F2F7FA",
"voice_background_color_alpha": "1",
"voice_title_label_on_top": "Y",
"voice_display_position": "Center",
"voice_auto_play": "Y",
"voice_text_label_color": "000000",
"voice_text_label_color_alpha": "1",
"voice_title_label_color": "FFFFFF",
"voice_title_label_color_alpha": "1",
"voice_title_label_size": "18",
"voice_text_label_size": "16",
"voice_counter_label_size": "40",
"labels": {
"voice_title_label_message": "",
"voice_start": "Start",
"voice_play": "Play",
"voice_pause": "Pause",
"voice_stop": "Stop",
"voice_delete": "Delete",
"voice_save": "Save",
"voice_retry": "Retry",
"voice_resume": "Resume",
"voice_record": "Record",
"voice_recording": "Recording.."
}
},
"signature_capture": {
"signature_text_color": "000000",
"signature_text_color_alpha": "1",
"labels": {
"signature_title_label_message": ""
}
},
"video_conferencing": {
"vc_text_label_color": "FFFFFF",
"vc_text_label_color_alpha": "1",
"vc_text_background_color": "000000",
"vc_text_background_color_alpha": "1",
"vc_text_label_size": "16",
"vc_text_typeface_type": "DEFAULT_BOLD",
"vc_text_typeface_style": "BOLD",
"vc_text_position": "Bottom",
"labels": {
"vc_text_label_message": "Please wait while we setup conference"
}
},
"video_capture": {
"vc_text_label_color": "FFFFFF",
"vc_text_label_color_alpha": "1",
"vc_text_label_size": "16",
"vc_text_typeface_type": "DEFAULT_BOLD",
"vc_text_typeface_style": "BOLD",
"labels": {
"min_time_greater": "Video Recording Min time is greater than Max Time",
"min_value_message": "Video Recording Min Time"
}
}
}
Custom ID Configurations
ID Front/Back/Doc./Snippet Config | Description |
---|---|
id_show_instruction |
To display the instruction screen. |
|
ID capture outline (border) color and transparency configuration. 1. Color is hex string (e.g. FFFFFF). 2. Alpha value is (1 to 100 where bigger value means more transparency).
|
|
Outline (Border) color and transparency to be shown when ID is detected. |
|
Background color and transparency of ID capture screen. |
|
Background color and transparency to be shown when ID is detected. |
|
Back/Exit button color and transparency (ID capture) |
|
Retry button color and transparency (Preview screen) |
|
Retry button border color and transparency (Preview screen) |
|
Confirm/Done button color and transparency (Preview screen) |
|
Confirm/Done background color and transparency (Preview screen) |
|
Continue button color and transparency (Instruction screen) |
|
Continue button text color and transparency (Instruction screen) |
|
Color and Transparency of all the labels on instruction, ID capture and preview screen. |
id_label_text_typeface_type |
Following values are supported for label typeface. DEFAULT, DEFAULT_BOLD, SANS_SARIF, SERIF, MONOSPACE |
id_label_text_typeface_style |
Following values are supported for label typeface style. NORMAL, BOLD, ITALIC, BOLD_ITALIC |
id_label_text_size |
Label text size. |
|
Color and Transparency of header text on ID capture screen |
id_header_text_typeface_type |
Following values are supported for label typeface. DEFAULT, DEFAULT_BOLD, SANS_SARIF, SERIF, MONOSPACE |
id_header_text_typeface_style |
Following values are supported for label typeface style. NORMAL, BOLD, ITALIC, BOLD_ITALIC |
id_header_text_label_size |
Header text size. |
id_capture_border_style |
ID Capture border style support the following values: Thick, Thin |
id_title_img_bitmap_base64 |
If you would like to show custom title image/logo on ID capture screen you can add base64 string of bitmap image here. |
id_instruction_img_resource_id |
If you would like to show custom instruction image pass image resource ID here. |
id_title_label_alignment |
ID title label (String) position can be configured using the following configuration: Top, Center, Bottom |
id_hint_message_alignment |
ID capture hint/instruction message (String) position can be configured using the following configuration: Top, Center, Bottom |
|
ID title image position can be configured using the following configuration: Top, Center, Bottom |
id_hide_id_title_label |
Hide ID title label (Y/N) |
id_hide_id_hint_message |
Hide ID hint/instruction label (Y/N) |
id_hide_id_title_image |
Hide ID title image (Y/N) |
labels |
Currently following labels are shown on ID Capture screen, that can be customized with your own custom message. light focus glare align_document_img_capture subject_is_too_dark_img_capture out_of_focus_img_capture too_much_glare_img_capture page_title_image_capture page_title_face_detection barcode_detected_error_message capturing_id_scanbarcode capturing_id_scanbarcode_msg id_capture_instruction align_id_and_mrz_inside_rectangle align_barcode_inside_rectangle barcode_mrz_not_found capturing_id_scanbarcode_pdf_417_msg move_id_closer move_id_away align_document_inside_rectangle id_capture_preview_header id_capture_preview_message barcode_error_message mrz_error_message barcode_mrz_error_message id_capture_success_message id_capture_instruction_continue |
Custom Face Capture Configurations
Face capture config | Description |
---|---|
fd_show_preview_screen |
To display the preview screen after capturing face. |
fd_show_instruction_screen |
To display the instruction screen. |
|
Face capture outline (face shape outline) color and transparency configuration. * Color is hex string (e.g. FFFFFF). * Alpha value is (1 to 100 where bigger value means more transparency).
|
|
Outline (Border) color and transparency to be shown when face is detected. |
|
Background color and transparency of face capture screen. |
|
Background color and transparency to be shown when face is detected. |
|
Back/Exit button color and transparency (Face capture) |
|
Retry button color and transparency (Preview screen) |
|
Retry button border color and transparency (Preview screen) |
|
Confirm/Done button color and transparency (Preview screen) |
|
Confirm/Done background color and transparency (Preview screen) |
|
Continue button color and transparency (Instruction screen) |
|
Continue button text color and transparency (Instruction screen) |
|
Color and Transparency of all the labels on instruction, face-capture and preview screen. |
fd_label_text_typeface_type |
Following values are supported for label typeface. DEFAULT, DEFAULT_BOLD, SANS_SARIF, SERIF, MONOSPACE |
fd_label_text_typeface_style |
Following values are supported for label typeface style. NORMAL, BOLD, ITALIC, BOLD_ITALIC |
fd_label_text_size |
Label text size. |
|
Color and Transparency of header text on face capture screen |
fd_header_text_typeface_type |
Following values are supported for label typeface. DEFAULT, DEFAULT_BOLD, SANS_SARIF, SERIF, MONOSPACE |
fd_header_text_typeface_style |
Following values are supported for label typeface style. NORMAL, BOLD, ITALIC, BOLD_ITALIC |
fd_header_text_label_size |
Header text size. |
fd_title_img_bitmap_base64 |
If you would like to show custom title image/logo on face capture screen you can add base64 string of bitmap image here. |
fd_instruction_img_resource_id |
If you would like to show custom instruction image pass image resource ID here. |
fd_face_contours |
Face contours count can be customized using the following configuration: Low, Medium, ALL, Zero |
fd_face_title_label_on_top |
Face title label on top (Y/N) |
fd_face_hint_message_on_top |
Face hint/instruction message on top (Y/N) |
fd_title_image_on_top |
Face title image on top (Y/N) |
fd_hide_face_title_lable |
Hide face title label (Y/N) |
fd_hide_face_hint_message |
Hide face hint / instruction label (Y/N) |
fd_hide_title_image |
Hide face title image (Y/N) |
fd_show_custom_ui |
In case you want to show your own custom overlay over face detection screen, you can pass your custom image and show it. First you need to pass (Y/N) in this parameter, based on your choice to show custom overlay or not. We have predefined image sizes for overlay images; please check these using the following URL: You can create similar size transparent PNG overlay image and pass it. |
fd_face_outline_image_id |
Drawable resource ID for overlay border image. |
fd_outside_face_outline_image_id |
Drawable resource ID for overlay background image. |
fd_face_outline_progress_images |
In case you want to show animation/gif on face detection screen you need to pass the comma separated list of image resource ID in this parameter. |
fd_face_outline_progress_images_delay |
You can customize gif image delay here in milisecond. |
fd_face_turn_arrow_list |
In case you want to customize face turn arrow you need to pass four commas separated drawable resource IDs. First image will be used as left arrow and second image will be used as top arrow and so on from left to bottom. |
fd_toggle_camera_button_icon |
You can customize toggle camera icon by passing image resource ID here. |
fd_instruction_button_txt_size |
You can customize instruction button text size |
fd_capture_preview_info_color |
You can customize preview info color |
fd_capture_preview_info_size |
You can customize preview info text size |
fd_preview_background_color |
You can customize preview background color |
labels | Currently following labels are shown on Face Capture screen, that can be customized with your own custom message. too_much_glare_face_capture light focus smile too_much_glare_face_capture out_of_focus_fc_detect subject_is_too_dark_fc_detect move_camera_closer_to_your_face camera_movement_fc_detect smile_please face_detected keep_face_steady page_title_face_detection camera_error turn_left turn_right move_up move_down look_straight face_detection_instruction passive_face_detection_instruction fd_too_much_ligth_error fd_look_straight_msg fd_face_model_downloading fd_frame_face_inside fd_too_dark_error face_capture_preview_message face_capture_preview_header live_face_not_detected_msg face_capture_success_msg face_capture_instruction_continue move_face_closer move_face_away move_head_up move_head_down |
Custom Camera Fingerprint Capture Configurations
Camera fingerprint capture config | Description |
---|---|
cfc_label_text_typeface_type |
Following values are supported for label typeface. DEFAULT, DEFAULT_BOLD, SANS_SARIF, SERIF, MONOSPACE |
cfc_label_text_typeface_style |
Following values are supported for label typeface style. NORMAL, BOLD, ITALIC, BOLD_ITALIC |
|
Color and Transparency of label text on instruction screen. |
|
Color and Transparency of instruction screen continue button. |
|
Color and Transparency of instruction screen continue button text. |
id_enable_label_shadow |
Enable/Disable label shadow |
|
Color and Transparency of ID capture button. |
labels |
Currently following labels are shown on FingerPrint Capture screen, that can be customized with your own custom message. camera_finger_capture_title |
Custom Signature Capture Configurations
Signature Capture | Description |
---|---|
signature_text_color signature_text_color_alpha |
Title label color signature capture screen |
labels |
Currently following labels are shown on Signature Capture screen, that can be customized with your own custom message. signature_title_label_message |
Custom Voice Recording Configurations
Voice Recording | Description color |
---|---|
|
Button color of voice recording screen |
|
Background color of voice recording screen |
voice_title_label_on_top |
Title position |
voice_display_position |
Voice recording pop up position |
voice_auto_play |
Record voice automatically when function is called or take user action (button press) |
voice_recording_time |
Max recording time |
|
Label color on voice recording screen |
|
Title label color on voice recording screen |
|
Title label size |
voice_counter_label_size |
Voice recording counter label size |
labels |
Currently following labels are shown while Voice Capture screen, that can be customized with your own custom message. voice_title_label_message |
Sequence Diagrams
Now that the basic setup and customization is understood, use the sequence diagrams in this section to setup and utilize the most commonly used services through the SDK. In Sections 5-7, each of the functions within these diagrams are explained in detail.
ID Validation Only (Service ID 20)
This diagram depicts Service ID 20 where the initiating application needs to utilize the SDK features to capture the front and back of the ID document, then send it the IDmission server for validation. The response from the server will include the validation result as well as data extracted from the ID documents.
Figure 1: ID Validation Only sequence diagram
ID Validation + Face Match (Service ID 10)
This diagram depicts Service ID 10 where the initiating application needs to utilize the SDK features to capture the front and back of the ID document, capture a selfie and then send it the IDmission server for validation and biometric matching. The response from the server will include the validation results as well as data extracted from the ID documents.
Figure 2: ID Validation + Face Match sequence diagram
ID Validation + Face Match w/Customer Enrollment (Service ID 50)
This diagram depicts Service ID 50 where the initiating application needs to utilize the SDK features to capture the front and back of the ID document, capture a selfie and basic customer details. Additionally, other biometrics can be captured to subsequently use in future verification service. All of this information will be sent to the IDmission server for validation and biometric matching. The response from the server will include the validation results as well as data extracted from the ID documents and a unique assigned customer code.
Figure 3: ID Validation + Face Match w/ Customer Enrollment sequence diagram
Customer Enrollment with Biometrics (Service ID 175)
This diagram depicts Service ID 175 where the initiating application wants to enroll a customer and their biometrics (e.g., face, fingerprint, or voice – all three are shown but only one is required) but does not require the collection and validation of ID documents.
Figure 4: Customer enrollment with biometrics sequence diagram
Customer Verification (Service ID 105)
This diagram depicts Service ID 105 where the initiating application will send a unique identifier for the customer along with captured biometrics. This information will be used to verify the customer against previously enrolled biometrics. The response from the server will include the verification result.
Figure 5: Customer verification sequence diagram
Customer Update (Service ID 70)
This diagram depicts Service ID 70 where the initiating application wants to update the information for a previously enrolled customer.
Figure 6: Customer update sequence diagram
SDK Main Functions
The following sections describe each of the function calls that are used in each service. Many of these functions are mandatory for a specific service, but others can be optionally included as required by the initiating application.
Automatic Image Capture
To capture an image, use the following calls. First call will launch camera in portrait mode by default. This function is used for the following Service IDs: 10, 20, 50, 55, 155, 160, 165, 505, 510, 515.
The following method is released in SDK version 6.2.6.2 and it is recommended to use this method going forward:
ImageProcessingSDK.autoCapture(
Activity activityContext,
ImageType imagesTypes,
JSONObject idCaptureConfig,
JSONObject additionalJSON,
HashMap<String, String> snippetNameMap)
Image Capture Parameters (6.2.6.2 and above)
Parameter | Type | Default | Range | Description |
---|---|---|---|---|
activityContext | Context | Instance of your activity | ||
imageType | Enum | ImageType.FRONT or ImageType.BACK |
||
idCaptureConfig | JSONObject | /***We can use below config JSON to pass all the feature related configuration parameter, if no value is sent it will use default value, All the value should be sent as string***/ Note: |
Processing Images with Parameters and Additional Data
This function is used to process the image(s) and retrieve data. Also, additional data is sent in JSON format. You can also include parameter settings to request a manual review of images by the IDmission back office review team, or to bypass certain features that are built into the solution. This function is used for the following Service ID: 20.
ImageProcessingSDK.processImage(
activityContext,
countryCode,
stateCode,
idType,
additionalJSON);
ImageProcessingSDK.processImage(
activityContext,
countryCode,
stateCode,
idType,
additionalJSON,
isFinalSubmit);
ImageProcessingSDK.processImage(
activityContext,
countryCode,
stateCode,
idType,
additionalJSON,
isFinalSubmit,
clearFormKey);
ImageProcessingSDK.processImage(
Activity activityContext,
String countryCode,
String stateCode,
IdType idType,
JSONObject additionalJSON,
JSONObject empJSON,
boolen isFinalSubmit,
boolen clearFormKey)
The captured image data will be sent to the server for processing.
Processing Images Parameters
Parameter | Type | Description |
---|---|---|
activityContext | Context | Instance of your activity |
idType | Enum | Refer to ID Type table |
countryCode | String | 3-character ISO country code |
stateCode | String | 2-character ISO state code |
additionalJSON | JSONObject | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the Additional JSON Element Dictionary section of this document for more details on each of the subsequent elements: |
empJSON | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the EmpJSON Element Dictionary section of this document for more details on each of the subsequent elements: |
|
isFinalSubmit | boolean | Set TRUE to execute submit request. |
clearFormKey | boolean | Clear form key once operation is executed successfully |
ID Types
ID Type Key | ID Type Value | ID Back Required |
---|---|---|
IdType.PASSPORT |
PP | N |
IdType.NATIONAL_ID |
NID | Y |
IdType.RESIDENCE_CARD |
RID | Y |
IdType.DRIVERS_LICENSE |
DL | Y |
IdType.PHOTO_ID |
PID | Y |
IdType.VOTER_ID_CARD |
VID | Y |
IdType.TAX_ID_CARD |
TID | Y |
IdType.WORK_VISA_PERMIT |
WV | Y |
IdType.STUDENT_VISA_PERMIT |
SV | Y |
IdType.MILITARY_POLICE_GOVERNMENT_ID |
GID | Y |
IdType.BOAT_SHIP_ID_CARD |
BID | Y |
IdType.OTHERS |
OTH | Y |
IdType.GLOBAL_ENTRY_CARD |
GE | Y |
IdType.PASSPORT_CARD |
PPC | Y |
By default, all of the ID Types from various countries that IDmission accepts are made available to you through this SDK. If you want to limit the ID Types you accept, you can do so by limiting the selections within your initiating application. The list of all supported ID types is available on the IDmission website. If you find that there is an ID Type that is not supported, please contact our support team to request one to be added.
Live Face Detection
This set of functions is used to detect live face and capture an image of the face. These functions are used for the following Service IDs: 10, 50, 55, 105, 106, 185, 190, 305.
The following method is released in SDK version 6.2.6.2 and it is recommended to use this method going forward.
ImageProcessingSDK.detectFace(
Activity activityContext,
JSONObject commonConfigJson,
JSONObject additionalJson);
Live Face Parameters
Parameter | Type | Description |
---|---|---|
commonConfigJSON | JSONObject | /***We can use below config JSON to pass all the feature related configuration parameter, if no value is sent it will use default value, All the value should be sent as string***/ Note: For customizing UI use “customizeUserInterface” method with JSON string. |
Process Image and Facial Biometric Verification with Additional Data
This is an overloaded API to process the image and match the face image. Also, additional data will be sent in JSON format. These functions are used for the following Service IDs: 10, 50, 55, 155, 160, 165, 505, 510, 515.
ImageProcessingSDK.processImageAndMatchFace(
activityContext,
countryCode,
stateCode,
idType,
faceImageType,
additionalJSON);
ImageProcessingSDK.processImageAndMatchFace(
activityContext,
countryCode,
stateCode,
idType,
faceImageType,
additionalJSON,
isFinalSubmit);
ImageProcessingSDK.processImageAndMatchFace(
activityContext,
countryCode,
stateCode,
idType,
faceImageType,
additionalJSON,
isFinalSubmit,
clearFormKey);
ImageProcessingSDK.processImageAndMatchFace(
Activity activityContext,
String countryCode,
String stateCode,
IdType idType,
String faceImageType,
JSONObject additionalJSON,
JSONObject empJSON,
Boolean isFinalSubmit,
Boolean clearFormKey);
The captured image data will be sent to the server for processing.
Process Image and Facial Biometric Verification Parameters
Parameter | Type | Description |
---|---|---|
activityContext | Context | Instance of your activity |
idType | Enum | Refer to ID Type table mentioned above |
countryCode | String | 3-character ISO country code |
stateCode | String | Refer to States table mentioned above |
faceImageType | String | Keyname:
PROCESSED_FACE OVAL_FACE |
additionalJSON | JSONObject | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the Additional JSON Element Dictionary at the end of this document for details regarding each of these elements: |
empJSON | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the empJSON Element Dictionary at the end of this document for details regarding each of these elements: |
|
isFinalSubmit | boolean | Set TRUE to execute submit request. |
clearFormKey | boolean | Clear form key once operation is executed successfully |
Auto Image Capture and Live Face Capture must be performed prior to this call. The captured image data will be sent to server for processing.
Customer Enrollment with Biometrics and Additional Data
To enroll a customer with their biometrics. Also, additional data will be sent in JSON format. This function is used for Service ID: 175.
1.Face API :
ImageProcessingSDK.getInstance().detectFace(getActivity(), commonUIObject);
Face Response :
void onFaceDetectionResultAvailable(Map<String, String> resultMap, Response response)
2.Voice API :
ImageProcessingSDK.getInstance().startVoiceRecording(getActivity(), commonUIObject, addJSON);
Voice Response :
void onVoiceRecordingFinished(Map<String, String> resultMap, Response response)3.
3.FingerPrint API :
ImageProcessingSDK.getInstance().captureFourFingerprint(getActivity(), config);
FingerPrint Response :
void onFourFingerCaptureFinished(Map<String, String> resultMap, Response response)
4.Generic API :
ImageProcessingSDK.getInstance().genericApiCall(getActivity(), serviceCallJson);
Generic Response :
void genericApiCallResponse(Map<String, String> resultMap, Response responses)
Process Image and Facial Biometric Verification Parameters
Parameter | Type | Description |
---|---|---|
additionalJSON | JSONObject | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the Additional JSON Element Dictionary section of this document for more details on each of the subsequent elements: |
isFinalSubmit | boolean | Set TRUE to execute submit request. |
clearFormKey | boolean | Clear form key once operation is executed successfully |
Employee Enrollment with Biometrics and Additional Data
To enroll an employee with their biometrics (Voice, face, fp). Also, additional data will be sent in JSON format. This function is used for Service ID: 180.
createEmployee(
Activity activityContext,
JSONObject employeeJSON,
JSONObject additionalJSON,
boolean isFinalSubmit,
boolean clearFormKey)
Employee Enrollment with Biometrics Parameters
Parameter | Type | Description |
---|---|---|
additionalJSON | JSONObject | JSON Object may contain following elements, those with a double Asterix** are mandatory |
empJSON | JSONObject | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the Additional JSON Element Dictionary section of this document for more details on each of the subsequent elements: { "Employee_Code":"", // |
isFinalSubmit | boolean | Set TRUE to execute submit request. |
clearFormKey | boolean | Clear form key once operation is executed successfully |
Customer Update
Used to update a previously enrolled customer. This function is used for Service ID: 70.
updateCustomer(getActivity(), faceImgType, additionalData)
Customer Update Parameters
Parameter | Type | Description |
---|---|---|
faceImageType | String | Keyname: FACE PROCESSED_FACE OVAL_FACE |
additionalJSON | JSONObject | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the Additional JSON Element Dictionary section of this document for more details on each of the subsequent elements: |
isFinalSubmit | boolean | Set TRUE to execute submit request. |
clearFormKey | boolean | Clear form key once operation is executed successfully |
Employee Update
Used to update a previously enrolled employee. This function is used for Service ID: 75
updateEmployee(
Activity activityContext,
String faceImageType,
JSONObject employeeJSON,
JSONObject additionalJSON,
boolean isFinalSubmit,
boolean clearFormKey)
Employee Update Parameters
Parameter | Type | Description |
---|---|---|
faceImageType | String | Keyname: FACE PROCESSED_FACE OVAL_FACE |
additionalJSON | JSONObject | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the Additional JSON Element Dictionary section of this document for more details on each of the subsequent elements: { |
empJSON | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the EmpJSON Element Dictionary section of this document for details regarding each of these elements |
|
isFinalSubmit | boolean | Set TRUE to execute submit request. |
clearFormKey | boolean | Clear form key once operation is executed successfully |
Customer Verification
Used to verify a customer using biometrics. This function is used for Service ID: 105. (For verifying customer face image or FP, there must be a capture first).
ImageProcessingSDK.verifyCustomer(activityContext, biometricType);
ImageProcessingSDK.verifyCustomer(activityContext, biometricType, additionalJSON);
Customer Verification Parameters
Parameter | Type | Range | Description |
---|---|---|---|
activityContext | Context | Context | |
biometricType | String | FACE FP VOICE 4F |
Include the ranges that are required to be verified. |
additionalJSON | JSONObject | JSON Object may contain following elements, those with a double // are mandatory. Please refer to the Additional JSON Element Dictionary section of this document for more details on each of the subsequent elements: |
|
isFinalSubmit | Boolean | Set TRUE to execute submit request | |
clearFormKey | Boolean | Clear form key once operation is executed successfully |
Employee Verification
Used to verify an employee using biometrics. This function is used for Service ID: 305.
imageProcessingSDK.verifyEmployee(
Activity activityContext,
String empCode, JSONObject
additionalJSON,
boolean isFinalSubmit);
Employee Verification Parameters
Parameter | Type | Default | Range | Description |
---|---|---|---|---|
activityContext | Context | Instance of your activity | ||
employeeCode | String | null | Unique code of employee | |
additionalJSON | JSONObject | JSON Object must contain the following elements
} |
||
biometricType | String | FACE FP VOICE 4F |
Include the ranges that are required to be verified. | |
isFinalSubmit | boolean | Set TRUE to execute submit request | ||
clearFormKey | Boolean | Clear form key once operation is executed successfully |
Customer Search
Used to search a customer with or without biometrics. This function is used for service ID 185 (biometric) and 186 (non-biometric).
imageProcessingSDK.genericApiCall(
Activity activityContext,
JSONObject commonConfigJson);
Customer Search Parameters
Parameter | Type | Description |
---|---|---|
activityContext | Context | Instance of your activity |
commonConfigJson | JSONObject | {“country_id”: “”,“state_id”: “”,“id_type”: “”,“country_id_secondary”: “”,“state_id_secondary”: “”,“id_type_secondary”: “”,“additionalDataJSON”: {"Service_ID": "",//Mandatory "Unique_Customer_Number": "", //"Old_Client_Customer_Number": "", "Customer_Name": "","Customer_Type": "","Customer_Phone": "","Customer_Email": "","Gender": "","Address_Line_1": "","Address_Line_2": "","Country": "","State": "","City": "","Postal_Code": "",},“clear_form_key”: “”,“emailId”: “”,“mobileNo”: “”,“notificationType”: “”,“receivedOTP”: “”,“addressJson”: “”,“empCode”: “”,“employeeDataJSON”: {"Employee_Code":"", //Mandatory"Login_ID": "","Employee_Email": "", "Employee_Organization":"","Employee_Name":"","Employee_MobileNumber":"","Employee_ID_Number":"","Employee_Country":"","Employee_DateOfBirth ":"","Employee_Email ":"","Employee_Gender ":"","Employee_AddressLine1 ":"","Employee_AddressLine2 ":"","Employee_State":"","Employee_Nationality":"",}}Note: Please refer to the Additional JSON Element Dictionary section of this document for additional information on the preceding parameters. Employee JSON is required when service ID supports employee related operations. If you are not supporting employee related operations, you may skip the Employee JSON node. |
Employee Search
Used to search an employee with or without biometrics. This function is used for service ID 190 (biometric) and 191 (non-biometric).
Employee Search Parameters
Parameter | Type | Description |
---|---|---|
activityContext | Context | Instance of your activity |
commonConfigJson | JSONObject | {“country_id”: “”,“state_id”: “”,“id_type”: “”,“additionalDataJSON”:{"Service_ID": "",//Mandatory "Unique_Customer_Number": "", //"Old_Client_Customer_Number": "", "Customer_Name": "","Customer_Type": "","Customer_Phone": "","Customer_Email": "","Gender": "","Address_Line_1": "","Address_Line_2": "","Country": "","State": "","City": "","Postal_Code": "",},“clear_form_key”: “”,“emailId”: “”,“mobileNo”: “”,“notificationType”: “”,“receivedOTP”: “”,“addressJson”: “”,“empCode”: “”,“employeeDataJSON”: {"Employee_Code":"", //Mandatory"Login_ID": "","Employee_Email": "", "Employee_Organization":"","Employee_Name":"","Employee_MobileNumber":"","Employee_ID_Number":"","Employee_Country":"","Employee_DateOfBirth ":"","Employee_Email ":"","Employee_Gender ":"","Employee_AddressLine1 ":"","Employee_AddressLine2 ":"","Employee_State":"","Employee_Nationality":"",}}NOTE:Please refer to the Additional JSON Element Dictionary section of this document for additional information on the preceding parameters. Employee JSON is required when service ID supports employee related operations. If you are not supporting employee related operations, you may skip the Employee JSON node. |
Generic API Call
The call bellow is the generic implementation of all the above calls. Instead of calling separate function for different service ID, we can use the following call and pass the required data with proper service ID:
imageProcessingSDK.genericApiCall(
Activity activityContext,
JSONObject commonConfigJson);
Generic API Parameters
Parameter | Type | Description |
---|---|---|
activityContext | Context | Instance of your activity |
commonConfigJson | JSONObject | {“country_id”: “”,“state_id”: “”,“id_type”: “”,“additionalDataJSON”:{"Service_ID": "",**//Mandatory},“clear_form_key”: “”,“emailId”: “”,“mobileNo”: “”,“notificationType”: “”,“receivedOTP”: “”,“addressJson”: “”,“empCode”: “”,“employeeDataJSON”: { "Service_ID": "",//Mandatory "Unique_Customer_Number": "", //"Old_Client_Customer_Number": "", "Customer_Name": "","Customer_Type": "","Customer_Phone": "","Customer_Email": "","Gender": "","Address_Line_1": "","Address_Line_2": "","Country": "","State": "","City": "","Postal_Code": "",}}NOTE:Please refer to the Additional JSON Element Dictionary section of this document for additional information on the preceding parameters. Employee JSON is required when service ID supports employee related operations. If you are not supporting employee related operations, you may skip the Employee JSON node. |
ID Auto Extraction
The ID Auto Extraction functionality provides an option to capture the barcode, MRZ or QR code from an ID document, automatically extract the data from it, and use it to prefill data into an application, in offline mode. This is done with Service ID 620.
First, we need to call the following function with given parameters:
public void getAutoFillFieldInformation(Activity activityContext, JSONObject idCaptureConfig);
idCaptureConfig | "id_country”:””,"id_state”:””,"id_type”:”” |
It will return if barcode or MRZ is available for the selected criteria on the below callback method.
public void onAutoFillFieldInformationAvailable(Map<String, String> result, Response response);
result | FRONT : “BARCODE_MRZ” //BARCODE or MRZBACK : “BARCODE_MRZ” //BARCODE or MRZ |
After that we have to call the following method with given parameters:
public void autoFill(Activity activityContext, JSONObject idCaptureConfig, JSONObject additionalJSON);
idCaptureConfig | "Id_country”:””, //same as above call"Id_state”:””, //same as above call"Id_type”:””, //same as above call"Id_side”:””, //Side which is received on above callback(FRONT/BACK) |
After scanning the ID, it will return a response on the following call-back method:
public void onAutoFillResultAvailable(Map<String, String> resultMap, Response response);
Offline Liveness Detection
The offline liveness detection is used to collect a series of selfie images from an individual to determine if they are a live person, not a spoof. For using this service, pass a value of 660 in the Service ID in additional data information while calling “detectFace” function.
Additional SDK Features
The features listed in the section below are utilized in combination with the services listed above. For example, when executing Service ID 50 which is ID Validation + Face Matching with Customer Enrollment, an application could utilize all of the following features for a more robust enrollment:
- Card Capture
- Voice Recording
- Video Recording
- Video Conferencing
- Fingerprint Capture
- GPS Capture
- QR / Barcode Capture
- Signature Capture
- Video ID Capture
- Generic Document Capture (for capturing a proof of address document like a bank statement)
Card Capture
To capture a debit/credit card, use the following call.
ImageProcessingSDK.detectCard(activityContext);
ImageProcessingSDK.detectCard(
activityContext,
JSONObject additionalJSON);
Parameter | Type | Description |
---|---|---|
activityContext | Context | Instance of your activity |
Voice Recording
To record voice, use the following call.
ImageProcessingSDK.startVoiceRecording(
Activity activityContext,
final int recordingTime)
ImageProcessingSDK.startVoiceRecording(
Activity activityContext,
final int recordingTime,
boolean recordWithUI)
ImageProcessingSDK.startVoiceRecording(
Activity activityContext,
final int recordingTime,
boolean recordWithUI,
JSONObject additionalJSON)
Voice Recording Parameters
Parameter |
Type | Default | Description |
---|---|---|---|
activityContext | Context | Instance of your Activity | |
recordingTime | Integer | 10 | Voice Recording time |
recordWithUI | Boolean | 0 | Voice Recording voice in foreground or background |
4F Fingerprint Capture
To capture four fingerprints using the device camera, use the following call.
ImageProcessingSDK.captureFourFingerprint(
Activity activityContext,
JSONObject fingerCaptureConfig)
Fingerprint Capture Parameters
Parameter |
Type | Description |
---|---|---|
activityContext | Context | Instance of your Activity |
fingerCaptureConfig | JSONObject | /***We can use below config JSON to pass all the feature related configuration parameter, if no value is sent it will use default value, All the value should be sent as string***/ Note: For customizing UI use “customizeUserInterface” method with JSON string. |
Standard Fingerprint Capture
To capture fingerprint, use the following call.
ImageProcessingSDK.captureFingerprint(
Activity activityContext,
FingerprintDeviceType fingerprintDeviceType,
FingerType fingerType,
int minNFIQValue,
int deviceTimeout,
int minImageSize)
Standard Fingerprint Parameters
Parameter |
Type | Default | Description |
---|---|---|---|
activityContext | Context | Instance of your Activity | |
fingerprintDeviceType | FingerprintDeviceType Class with two parameter Futronic, IB_Watson, MORPHO | Futronic | Fingerprint device to be selected. |
fingerType | FingerType class | Finger to be selected | |
minNFIQValue | Int | 3 | Minimum NFIQ value |
deviceTimeOut | Int | 50 | Minimum time out value |
minImageSize | Int | 20 | Minimum image size |
Clear Fingerprint
To clear fingerprint, use the following call.
ImageProcessingSDK.clearFingerprint(FingerType fingerType)
Parameter | Type | Default | Description |
---|---|---|---|
fingerType | FingerType class | RTHUMB | Finger to be selected |
Video Recording
To complete the video recording operation, use the following call.
ImageProcessingSDK.startVideoRecording(
Activity activityContext,
int videoRecordingTime,
JSONObject additionalJSON,
String textOnVideoScreen)
ImageProcessingSDK.startVideoRecording(
Activity activityContext,
int videoRecordingTime,
int videoRecordingMinTime
JSONObject additionalJSON,
String textOnVideoScreen)
Video Recording Parameters
Parameter |
Type | Default | Description |
---|---|---|---|
activityContext | Context | Instance of your Activity | |
videoRecordingTime | Int | 10 | Time limit to record a video |
textOnVideoScreen | String | String data to be seen on video recording screen |
Video Conferencing
To complete the video conferencing operation, use the following call.
ImageProcessingSDK.startVideoConferencing(
Activity activityContext,
** JSONObject videoConferencingData)
Video Conferencing Parameters
Parameter |
Type | Description |
---|---|---|
activityContext | Context | Instance of your Activity |
videoConferencingData | JSONObject | { "vdoconf_width": "640", "vdoconf_height": "480", "vdoconf_framerate": "15", "videoConferenceServerURL": "https://oldqa.idmission.com:6443/idms-web-conf", "FORM_ID": "8122244" } |
GPS Capture
To capture GPS coordinates, use the following call.
ImageProcessingSDK.getGPSCoordinate(activityContext)
Parameter |
Type | Description |
---|---|---|
activityContext | Context | Instance of your Activity |
QR / Barcode Capture
To capture QR Code or Barcode, use the following call.
ImageProcessingSDK.scanBarcode(
Activity activityContext,
JSONObject additionalJSON)
Parameter |
Type | Description |
---|---|---|
activityContext | Context | Instance of your Activity |
Signature Capture
To capture a signature, use the following code.
ImageProcessingSDK.captureSignature(Activity activityContext)
ImageProcessingSDK.captureSignature(
Activity activityContext,
JSONObject captureSignatureConfig)
Signature Capture Parameters
Parameter |
Type | Description |
---|---|---|
activityContext | Context | Instance of your Activity |
captureSignatureConfig | JSONObject | { "signature_capture_background": “N”, "signature_title_label_message": "Sign", "signature_capture_detect_coordinates": "true" } |
Video ID Capture
To capture a Video ID, use the following code.
ImageProcessingSDK.videoID(
Activity activityContext,
JSONObject idCaptureConfig,
JSONObject faceCaptureConfig,
JSONObject videoIdCaptureConfig,
JSONObject additionalJSON)
Video ID Capture Parameters
Parameter |
Type | Description |
---|---|---|
activityContext | Context | Instance of your Activity |
idCaptureConfig | JSONObject | { } |
faceCaptureConfig | JSONObject | { } |
videoIdCaptureConfig | JSONObject | {"vIdEnableIdBackCapture":"Y","vIdEnablePhotoCheckOnIdBack":"N","vIdEnableReadVoiceText":"Y","vIdVoiceText":"Voice read text","vIdVoiceTextTimeInSeconds":"10"} |
additionalJSON | JSONObject | { } |
Generic Document Capture
To capture a generic document, use the following call:
imageProcessingSDK.captureGenericDocument(MainActivity.this,
capturePortraitChcBoxPOA.isChecked(), minimumLightThreshold, minFocusScoreThreshold,focusScoreThreshold, glarePercentageThreshold, enableCaptureButtonTime, maxImageSize,
highResolutionImageHeight, highResolutionImageWidth, addJSON,
new ColorCode(idImageOutlineColor, idImageOutlineAlpha),
new ColorCode(detectedIdImageOutlineColor, detectedIdImageOutlineAlpha),
new ColorCode(idImageOutsideOutlineColor, idImageOutsideOutlineAlpha),
new ColorCode(detectedIdImageOutsideOutlineColor, detectedIdImageOutsideOutlineAlpha), titleBitmap,
showInstructionPOA.isChecked(), 0,fieldName);
Generic Document Capture Parameters
Parameter | Type | Default | Range | Description |
---|---|---|---|---|
activityContext | Context | Instance of your activity | ||
capturePortrait | boolean | For capturing image in portrait mode | ||
ColorCode idOutlineColor : Color for face outline idOutsideOutlineColor : Color for area around outline outsideFaceOutlineColor : Color outside face outline |
Object | Hex ColorCode, Transparency(1-100) |
HexColorCode - Hexcolor string with RRGGBB format without # Transparency: int value (1-100), where 1 is no transparency and 100 is max transparency. |
|
enableCaptureButtonTime | integer | 15 | 5-200 | No. of seconds after which manual capture is enabled |
FieldName | String | Generate document according to field name | ||
glarePercentage | integer | 1 | 0-50 | Maximum glare in percentage allowed |
idCaptureConfig | JSONObject | /***We can use below config JSON to pass all the feature related configuration parameter, if no value is sent it will use default value, All the value should be sent as string***/ Note: For customizing UI use “customizeUserInterface” method with JSON string. |
||
imageHeight | integer | 830 | 640-1920 | Image Height in pixels |
imageWidth | integer | 1170 | 480-1280 | Image Width in Pixels |
lightThreshold | integer | 60 | 50-100 | Minimum light required |
maxFocusThreshold | integer | 25 | 10-50 | Minimum focus required |
maxImageSize | integer | 500 | 256-2048 | Maximum image size in kb |
maxImageSize | integer | 500 | 256-2048 | Maximum image size in kb |
minFocusThreshold | integer | 15 | 5-30 | Bare minimum(fallback) focus required |
imageProcessingSDK.captureGenericDocument(
Activity activityContext,
JSONObject idCaptureConfig,
JSONObject additionalJSON);
Delete Image
To delete captured image data, use the following call.
ImageProcessingSDK.deleteData();
Meta Data
Use the following call for get request meta data
ImageProcessingSDK.getMetaData(Context context);
Callback Instructions
To receive callback, for Download All Models Data class should implement DownloadAllModelsResultListener
interface and implements onDownloadAllModelsResult method
public class YourActivity implements DownloadAllModelsResultListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//For register call back with SDK
ImageProcessingSDK.getInstance().setDownloadAllModelsResultListener(this);
}
@Override
public void onDownloadAllModelsResult(Map resultMap, Response responses) {
//received response
// SUCCESS with value 0
// NOT_ALL_MODELS_DOWNLOADED value 24
}
}
Download model information
Use the following call for get details of model download information
ImageProcessingSDK.getInstance().getModelDownloadInformation(Context context);
To receive callbacks, the class should implement ImageProcessingResponseListener
interface.
public class YourActivity implements ImageProcessingResponseListener
OR you can implement an individual listener:
InitializationResultListener
DownloadAllModelsResultListener
AutoFillFieldInformationListener
AutoFillResultListener
AutoImageCaptureListener
BankStatementResultListener
BirthCertificateResultListener
CardCaptureListener
CreateEmployeeListener
CustomerVerificationResultListener
CustomizeUserInterfaceResultListener
DownloadXsltResultListener
ExecuteCustomProductListener
FaceDetectionListener
FaceMatchingResultListener
FingerprintCaptureListener
FingerprintEnrolmentListener
FingerprintVerificationListener
FourFingerCaptureListener
GenerateOTPListener
GenerateTokenListener
GenericApiCallResponseListener
GenericDocumentResultListener
GPSCoordinateListener
IDValidationAndVideoMatchingListener
ImageProcessingAndFaceMatchingResultListener
ImageProcessingResultListener
OperationResultListener
ProofOfAddressResultListener
ScanBarcodeListener
SignatureCaptureListener
SnippetCaptureResultListener
UpdateCustomerListener
UpdateEmployeeListener
VerifyAddressListener
VerifyEmployeeListener
VerifyOTPListener
VerifyTokenListener
VideoConferencingListener
VideoRecordingListener
VideoIdResultListener
Sequence diagrams describing how these callbacks are used in conjunction with the integration calls above, can be found in Section 5.
Customizing the User Interface
public void onCustomizeUserInterfaceResultAvailable(Map<String, String> resultMap, Response response);
Automatic Image Capture
The callback will contain a Response object, which will consist of Response.statusCode
and Response.statusMessage.
public void onAutoImageCaptureResultAvailable(Map<String, String> resultMap,Response response);
Automatic Image Capture Result Parameters
Result Parameter | Description |
---|---|
FRONT | For front image call, Result image will be available in resultMap with key FRONT. |
BACK | For back image call, Result image will be available in resultMap with key BACK. |
Processing the Image
public void onImageProcessingResultAvailable(Map<String, String> resultMap, Response response);
Below is a sample of some of the fields that will be returned in the response. The results will vary based on the type of ID submitted (e.g. MRZ present or not, barcode, etc.)
Processing the Image Result Parameters
Result Parameter | Description | Result Parameter | Description |
---|---|---|---|
Status_Code | Response status Code | DocumentType | ID type from the matched template |
Status_Message | Response status message | IssueDate | Issued date |
Valid_Issue_Date | Valid issue date flag | IssuingCountry | Country code of issuing country |
Address | Full Address | Low_Resolution | Indicates if the image is high enough quality |
Age_Over_18 | Age over 18 flag | MRZ_Data | Machine readable zone data |
Date_of_Birth | Date of birth | MRZ_Detected | Machine readable zone data detected on front/back flag |
Exception | Image processing Java error message | MRZErrorMessages | MRZ check digit error |
Expiration_Date | Date ID Expires | MRZValid | MRZ valid flag |
Face_Detected | Face detection flag | Name | Full name from the ID |
First_Name | First name from the ID | Last_Name | Last name from the ID |
Middle_Name | Middle name from the ID | MatchingTemplateFound | Indicates if a matching ID template was found for the submitted ID |
EnoughFeatureFound | Indicates if the total number of features meet thresholds | EnoughFeaturesFoundOnID_BACK | Indicates if the number of features meet thresholds for back |
EnoughFeaturesFoundOnID_FRONT | Indicates if the number of features meet thresholds for front | Nationality | Nationality on the ID |
FormID | Unique ID assigned to the form | ColorCode | Indicates if the image is color or greyscale |
ID_Country | 3-character ISO country code | Security_Feature_Match | Security feature matched |
ID_Not_Expired | ID Expired flag | ID_State | ISO 2-digit state |
ID_Number | ID/Document Number | State | Response state from the server based on the Svc ID |
IDNumber2 | Secondary ID number | Address Line 1 | AddressLine1 |
Address Line 2 | AddressLine2 | Form_Key | Unique ID assigned by you or our server for the request |
Request_Id | Unique ID assigned by our server for the request | Form State Code | This includes the 'Form State Code' based on 'Form State' which has been populated in response. For example, (If the Form State is 'Approved' then Form State Code will be 00) All available Form State Codes are mentioned below in Appendix B. (For details description of sate codes please go through point number 10.) |
Live Face Detection
public void onFaceDetectionResultAvailable(Map<String, String> resultMap,Response response);
Live Face Detection Result Parameters
Result Parameter | Description |
---|---|
FACE | Face image will be available in resultMap with key FACE. |
PROCESSED_FACE | Processed face image will be available in resultMap with key PROCESSED_FACE. |
OVAL_FACE | Processed face image with oval will be available in resultMap with key OVAL_FACE. |
Please refer to the Automatic Image Capture callback table mentioned above for Response object description.
Process Image and Facial Biometric Verification
public void onImageProcessingAndFaceMatchingResultAvailable(Map<String, String> resultMap, Response response);
Below is a sample of some of the fields that will be returned in the response. The results will vary based on the type of ID submitted (e.g. MRZ present or not, barcode, etc.)
Process Image and Facial Biometric Result Parameters
Result Parameter | Description | Result Parameter | Description |
---|---|---|---|
Status_Code | Response status Code | DocumentType | ID type from the matched template |
Status_Message | Response status message | IssueDate | Issued date |
Valid_Issue_Date | Valid issue date flag | IssuingCountry | Country code of issuing country |
Address | Full Address | Low_Resolution | Indicates if the image is high enough quality |
Age_Over_18 | Age over 18 flag | MRZ_Data | Machine readable zone data |
Date_of_Birth | Date of birth | MRZ_Detected | Machine readable zone data detected on front/back flag |
Exception | Image processing Java error message | MRZErrorMessages | MRZ check digit error |
Expiration_Date | Date ID Expires | MRZValid | MRZ valid flag |
Face_Detected | Face detection flag | Name | Full name from the ID |
First_Name | First name from the ID | Last_Name | Last name from the ID |
Middle_Name | Middle name from the ID | MatchingTemplateFound | Indicates if a matching ID template was found for the submitted ID |
EnoughFeatureFound | Indicates if the total number of features meet thresholds | EnoughFeaturesFoundOnID_BACK | Indicates if the number of features meet thresholds for back |
EnoughFeaturesFoundOnID_FRONT | Indicates if the number of features meet thresholds for front | Nationality | Nationality on the ID |
FormID | Unique ID assigned to the form | ColorCode | Indicates if the image is color or greyscale |
ID_Country | 3 character ISO country code | Security_Feature_Match | Security feature matched |
ID_Not_Expired | ID Expired flag | ID_State | ISO 2 digit state |
ID_Number | ID/Document Number | State | Response state from the server based on the Svc ID |
IDNumber2 | Secondary ID number | Address Line 1 | AddressLine1 |
Address Line 2 | AddressLine2 | Form_Key | Unique ID assigned by you or our server for the request |
Request_Id | Unique ID assigned by our server for the request | FaceVerificationStatus | Face verification result |
Form State Code | This includes the 'Form State Code' based on 'Form State' which has been populated in response. For example, if the Form State is 'Approved' then Form State Code will be 00. For all available Form States, please reference the ID Validation / Form Status and State Codes section of this document. |
Customer Enrollment
public void onFingerprintEnrolmentFinished(Map<String,String > resultMap, Response response)
Customer Enrollment Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request |
Employee Enrollment
public void onCreateEmployeeFinished(Map<String,String> resultMap, Response responses);
Customer Enrollment Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request |
Customer Update
public void onUpdateCustomerFinished(Map<String, String> resultMap, Response response);
Customer Update Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request |
Employee Update
public void onUpdateEmployeeFinished(Map<String,String> resultMap, Response responses);
Employee Update Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request |
Customer Verification
public void onCustomerVerificationResultAvailable(Map<String, String> resultMap, Response response);
Customer Verification Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request based on verification status |
CustomerVerificationStatus | Biometric Verification result NOTE: Scores may be returned but are information only, the result should always come from this field. |
Employee Verification
public void onVerifyEmployeeFinished(Map<String,String> resultMap, Response responses);
Employee Verification Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request based on verification status |
Employee_Verify_Status | Biometric Verification result NOTE: Scores may be returned but are information only, the result should always come from this field. |
Customer Search
public void genericApiCallResponse(Map<String,String> resultMap, Response responses);
Customer Search Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request based on Search status |
Employee Search
public void genericApiCallResponse(Map<String,String> resultMap, Response responses);
Employee Search Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request based on Search status |
Generic API Callback
public void genericApiCallResponse(Map<String,String> resultMap, Response responses);
Generic API Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Request_Id | Unique ID assigned by the server |
FormKey | Unique ID assigned by the application or our server if not provided |
FormID | Form identifier |
State | Status of the request |
Card Capture
public void onCardDetectionResultAvailable (Map<String, String> resultMap, Response response);
Card Capture Result Parameters
Result Parameter | Description |
---|---|
CardType | Card type |
CardNumber | Card number |
CardExpiryDate | Card expiry date |
CARD | Redacted card image |
Please refer to the Automatic Image Capture callback table mentioned above for Response object description.
Voice Recording
public void onVoiceRecordingFinished(Map<String, String> resultMap, Response response);
Result Parameter | Description |
---|---|
resultMap | Recorded Voice file path will be available in resultMap with key FILEPATH.
Recorded Voice Base64 Data will be available in resultMap with key DATA. Rate hertz Data will be available in resultMap with key RATEHERTZ. Audio duration time will be available in resultMap with key AUDIODURATION. |
Response Code | Description |
---|---|
0 | Success |
12 | Operation cancel. |
17 | Permission not granted |
4F Fingerprint Capture
public void onFourFingerCaptureFinished(Map<String,String > resultMap, Response response);
Result Parameter | Description |
---|---|
resultMap | Base64 Fingerprint Data will be available in resultMap with keys: LRFINGER LMFINGER LIFINGER LLFINGER RRFINGER RMFINGER RIFINGER RLFINGER |
Response Code | Description |
---|---|
0 | Success |
12 | Operation cancel. |
17 | Permission not granted |
Standard Fingerprint Capture
public void onFingerprintCaptureFinished(Map<String,String > resultMap, Response response);
Result Parameter | Description |
---|---|
resultMap | Finger image, Finger type, Finger Count will be available in resultMap with keys FINGEPRINT, FINGER_TYPE, FINGER_COUNT. |
Video Recording
public void onVideoRecordingFinished(Map<String,String > resultMap, Response response);
Result Parameter | Description |
---|---|
resultMap | Recorded Video file path will be available in resultMap with key FILEPATH.
Recorded Video Data will be available in resultMap with key DATA. |
Response Code | Description |
---|---|
0 | Success |
12 | Operation cancel. |
17 | Permission not granted |
Video Conferencing
public** void** onVideoConferencingFinished(Map<String,String > resultMap, Response response);
Result Parameter | Description |
---|---|
resultMap | Return null value |
Response Code | Description |
---|---|
0 | Success |
12 | Operation cancel. |
17 | Permission not granted |
25 | Call disconnected |
100 | Socket connection timeout |
GPS Capture
public void onGPSCoordinateAvailable(Map<String, String> resultMap, Response response);
Result Parameter | Description |
---|---|
resultMap | Location Latitude data will be available in resultMap with key Latitude
Location Longitude data will be available in resultMap with key Longitude |
Response Code | Description |
---|---|
0 | Success |
13 | GPS not Enable. |
17 | Permission not granted |
QR / Barcode Capture
public void onScanBarcodeFinished(Map<String, String> resultMap, Response response);
Result Parameter | Description |
---|---|
resultMap | Barcode/QR code image, Type will be available in resultMap with key SCAN_BARCODE_DATA |
Signature Capture
public void onCaptureSignatureFinished(Map<String, String> resultMap, Response response);
Result Parameter | Description |
---|---|
SignatureImage | Base64 Signature image data will be available in resultMap with key SignatureImage |
SignatureDataCoordinates | Signature Coordinates data will be available in resultMap with key SignatureDataCoordinates |
Response Code | Description |
---|---|
0 | Success |
12 | Operation cancel. |
Models Downloaded Callback
public void onDownloadAllModelsResult(Map<String, String> resultMap, Response response);
Result Parameter | Description |
---|---|
statusCode | Response status Code |
statusMessage | Response status message |
Response Code | Description |
---|---|
0 | Success |
24 | All models are not downloaded |
Generic Document Capture
public void onCaptureGenericDocumentResultAvailable(Map<String, String> resultMap, Response response);
Result Parameter | Description |
---|---|
GENERIC_DOCUMENT | Generic Document image will be available in resultMap with key GENERIC_DOCUMENT. |
Initialization Response
public void onInitializationResultAvailable(Map<String, String> resultMap, Response response);
Initialization Response Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
Video ID Capture Response
public void onVideoIdCaptureResultAvailable(Map<String, String> resultMap, Response response);
Video ID Capture Response Result Parameters
Result Parameter | Description |
---|---|
Status | Response status Code |
Status_Message | Response status message |
VideoUrl | Capture Video URl path |
AudioUrl | Capture Audio URL path |
VID_FACE_IMAGE | Video ID Face capture base64 image data |
VID_IDFRONT | Video Id Front base64 image data |
VID_IDBACK | Video Id Back base64 image data |
ID Validation / Form Status and State Codes
All process image callbacks include the formStatus
, which shows the results of the ID Validation and additional processing if completed. The table below describes each formStatus
that can be returned, the recommended actions to be taken by your application and the state codes that can be returned.
Form Status Returns and State Codes
State Code |
Form Status |
Description | Recommended Actions |
---|---|---|---|
00 | Approved | - All checks in our system have passed - Data was extracted with the level of accuracy within our defined thresholds based on image quality. |
- No action required - ID is approved |
50 | Barcode Unreadable | If a barcode is expected to be present, and the barcode data is not detected by our system. | The application using this SDK should prompt the user to recapture the images where the barcode is present in better lighting without glare so the ID can be processed properly. |
32 | Biometric Match Fail | If the user’s biometric data (face, voice, and/or fingerprint) captured does not match the biometric data in the database from a previously enrolled user. | The application using this SDK/API should prompt the user to recapture their biometric information, ensuring that face, fingerprint, or voice is be captured with clarity and accuracy. |
46 | Customer Found | If the customer biometric data (face, voice, and/or fingerprint) has matched the biometric data in the database of a previous enrollment. | - No action required - Customer verification is approved. |
44 | Customer Not Found | If the customer biometric data (face, voice, and/or fingerprint) cannot be found while attempting to match the biometric data in the database from previously enrolled users. | The application using this SDK/API should prompt the user to recapture their biometric information, ensuring that face, fingerprint, or voice is be captured with clarity and accuracy. |
34 | Customer Onboarded | - All validation and security checks in our system have passed. - The customer was successfully enrolled in the database. |
- No action required - Customer enrollment is approved. |
37 | Customer Onboarding Failed | - The customer ID documents and/or biometric have failed one or more validation checks in our system. - The customer was not enrolled into the database. |
- The application using this SDK/API should prompt the user to reattempt enrollment. - When reattempting to enroll, the recapture should be completed in a well-lit room with the ID documents and fully visible, ensuring that face, fingerprint, or voice is be captured with clarity and accuracy. |
39 | Customer Updated | If the capture of customer data has updated a previously enrolled customer record. | - No action required - Customer data is successfully updated. |
35 | Duplicate Customer | The biometric data provided by the customer for a new enrollment has matched to a previously enrolled user. | - The application using the SDK should notify the customer that their enrollment has failed and they must contact their support center. |
36 | Duplicate Employee | The biometric data provided by the employee for a new enrollment has matched to biometric data from a previous enrollment. | - The application using the SDK should notify the employee that their enrollment has failed and they must contact their support center. |
47 | Employee Found | If the customer biometric data (face, voice, and/or fingerprint) has matched the biometric data in the database of a previous enrollment. | - No action required. - Customer verification is approved. |
45 | Employee Not Found | If the customer biometric data (face, voice, and/or fingerprint) does not match the biometric data in the database from a previously enrolled user. | The application using this SDK/API should prompt the user to recapture their biometric information, ensuring that face, fingerprint, or voice is be captured with clarity and accuracy |
33 | Employee Onboarded | - All validation and security checks in our system have passed. - The employee was successfully enrolled in the database. |
- No action required - Employee enrollment is approved. |
38 | Employee Onboarding Failed | - The employee ID documents and/or biometric data have failed one or more validation checks in our system. - The employee was not enrolled into the database. |
- The application using this SDK/API should prompt the user to reattempt enrollment. - When reattempting to enroll, the recapture should be completed in a well-lit room with the ID documents and fully visible, ensuring that face, fingerprint, or voice is be captured with clarity and accuracy. |
41 | Employee Updated | If the capture of employee data has updated a previously enrolled customer record. | - No action required - Employee data is successfully updated |
40 | xpired ID | If an ID has an expiration date that is expired as of today's date. | The application using this SDK should prompt the user to provide an ID that is not expired. |
31 | Face Not Detected | - A face is not detected on an image. - Typically, this occurs when the face is not present on the ID - In some cases, is due to poor image quality or image glare. |
The application using this SDK should prompt the user to provide a clear image of an ID that has a photo included. |
30 | Facial Biometric Match Failed | If a customer photo is captured and does not biometrically match the photo in the ID document, the ability to review the images is in the back-office. | The application using this SDK should prompt the user to capture a new selfie image. |
10 | ID Back Image not found | - The back of an ID is expected to be present - The back image was not sent or - A blank image was provided |
The application using this SDK should prompt the user to provide a clear image of the back of the ID. |
60 | ID Front and Back Mismatch | If the data extracted from the back of the ID image does not belong to the presented front of the ID image. | The application using the SDK should prompt the user to provide new front and back images because inconsistences were found. Note: If this occurs more than once, the application could decide to push this to a manual review queue because it could be an issue with OCR extraction accuracy. |
11 | ID Front Image Not Found | If the front of an ID is not uploaded or a blank image was provided. | The application using this SDK should prompt the user to provide a clear image of the front of the ID. |
61 | ID Not Accepted | If the uploaded ID is configured invalid for the selected country. | The application using this SDK should prompt the user to provide an ID that is in the list of accepted ID Types. Note: The application should prompt the user to select an ID type from a dropdown list, which reduces the likeliness of this result. |
62 | ID Type Mismatch | If the ID Type submitted doesn’t match the ID Type extracted from the ID Image. | The application using this SDK should prompt the user to select the ID Type that matches the Type of ID that was uploaded/captured. |
51 | IDNumber Match Failed | The ID Number that was extracted by OCR from the ID does not match the ID Number that was extracted from the MRZ or Barcode. | The application using this SDK/API should prompt the user to retry ID Validation. |
63 | Invalid ID Number | The ID Number on the ID does not match the pattern defined in the ID Template. | The application using this SDK should prompt the user to provide a new ID with a valid ID number. |
12 | Key Component Not Visible | A key component that is expected on the ID is missing such as the date of birth, expiration date, photo, etc. | The application using this SDK should prompt the user to provide a clear image of both the front and back of the ID. |
13 | Low Resolution | - The front or back image that is uploaded has been detected as low resolution or - The ID image is not a color/grayscale image based on resolution thresholds defined by IDmission. |
The application using this SDK should prompt the user to recapture the images in better lighting without glare so the ID can be processed properly. |
48 | Live Face Detected | If our system detects a live face from the selfie. | - No action required. - Live face detection was approved. |
49 | Live Face Not Detected | If our system does not detect a live face from the selfie image (e.g., if the selfie image is a photo of a photo, if the selfie image is a screen capture of a face, etc.) | The application using the SDK should prompt the user to retake the selfie ensuring that a live face is captured in good lighting. |
64 | MRZ and ID Data Mismatch | If the data extracted from the MRZ does not match the data extracted from the ID image itself. | The application using the SDK should prompt the user to provide new image(s) because inconsistences were found. Note: If this occurs more than once, the application could decide to push this to a manual review queue because it could be an issue with OCR extraction accuracy. |
65 | MRZ Invalid | If the MRZ Validation flag (Machine Readable Zone) results in determining that the MRZ Data was not correct according to the standards. | The application using this SDK should prompt the user to provide a valid ID as this was deemed invalid. |
66 | Name Match Failed | If the name submitted for the Customer or the Employee doesn’t meet the matching thresholds against the name extracted from the ID Document. | The application using this SDK should prompt the user to manually re-enter the name. |
14 | No Image Found | If the ID front and back images are black or white without any ID Image. | The application using this SDK should prompt the user to upload a new image and ensure there is no glare or damage to any of the data on the image. |
N/A | Pending Review | If no other conditions are met that push an ID into the listed states, it will go into Pending Review. | The application using this SDK should prompt the user that the ID could not be validated, and they should upload a new ID. |
53 | Real ID Detected | If our system detects a real ID from the ID image. | - No action required. - Real ID Detection was approved. |
54 | Real ID Not Detected | If our system does not detect a real ID from the ID image (e.g., if the ID image is a photocopy, if the ID image is a screen capture of an ID, etc.) | The application using the SDK should prompt the user to retake the ID image ensuring that a real ID is captured in good lighting. |
67 | Sample ID | If an ID has been decisioned by the manual review team as a sample. | The application using this SDK should prompt the user that: - The ID they have provided is not valid - To capture a different ID image. |
68 | Security Feature Invalid | If one or more security features defined for the ID template are detected as not matching with the image provided. | The application using the SDK could also decide to handle this directly and alert the user that the ID is invalid and to capture new images. |
01 | Submitted | If it is an asynchronous call via the API, the ID is awaiting process completion to be categorized into a form state. | - No action required |
69 | Suspected Sample | If an ID has been detected as a sample (logic has been configured to recognize sample ID numbers, names, watermarks and other suspected sample data.) | The application using this SDK should prompt the user that the ID they have provided is not valid and to capture an image of a different ID. |
70 | Suspected Tampering | - Photo editing software (e.g. Microsoft Paint, Adobe Photoshop) was detected. - Dates have been falsely created or modified in the ID document image. |
The application using this SDK should prompt the user that the ID they have provided is not valid and to capture an image of a different ID. |
73 | uspicious ID | - If an ID is found to be suspicious based on IDmission’s AI logic. | The application using this SDK should prompt the user that the ID they have provided is not valid and to capture an image of a different ID. |
71 | Tampered ID | If an ID has been decisioned by the manual review team as being tampered with / edited in some way. | The application using this SDK should prompt the user that the ID they have provided is not valid and to capture an image of a different ID. |
15 | Template Not Found | The correct template cannot be matched against those configured for the client. Note: The system will not find a template to associate with the image for correct data extraction and validation. |
The application using the SDK should prompt the user to capture a different ID. |
80 | hird Party Verification Failed | If an ID or data extracted from the ID has not been successfully verified by a third party. | - The application using this SDK/API should prompt the user that the ID they have provided has failed validation and to capture an image of a different ID. OR- If the user thinks it is an error, they can retry. |
72 | Under the age of 18 | If the date of birth (extracted from the barcode/MRZ) calculates the individual as under the age of 18. | The date of birth indicates that the user is under the age of 18 Note: The SDK can determine if this was already indicated in the application. If it was not indicated, the SDK should prompt for correct ID. |
Pending Manual Review ID Validation Results
If Manual Review is requested and the form moves into a ‘Review…’ formStatus, this is the list of values that the formStatus will show until manual review is completed. These are not the final form states, this is just a temporary formStatus that will be present until review is completed.
Pending Manual Review Form Status Returns
State Code |
Form Status |
Description | Recommended Actions |
---|---|---|---|
104 | Review Barcode | If a barcode is expected to be present, and the barcode data is not detected by our system. | Manual review of the ID in the Back Office to verify the information on the front of the ID against what is shown on the back. |
111 | Review Duplicate Employee Found | If the submitted biometric data matches data already associated with an enrolled employee. | The submission will be manually reviewed in the back-office to determine if the matches found are true duplicates and will action the form accordingly. |
95 | Review Expired ID | If an ID has an expiration date that is expired as of today's date. | Manual review of the ID in the back-office to determine if the ID is truly expired or not. |
93 | Review Face Not Detected | If a face is not detected on an image. The main reason for this is that the face was not present on the ID, however in some cases this could be due to poor image quality, or if there is a glare throughout the image. | Manual review of the ID in the Back Office to determine if a face is actually present on the ID. |
102 | Review Facial Biometric Match Not Verified | If a customer photo is captured and does not biometrically match the photo in the ID document, the ability to review the images is in the back office. | Manual review of the ID in the Back Office to determine if the Customer Photo is a match to the photo on the ID. If the person appears to be the same, it would be Approved, if not, it would be marked as ‘Facial Biometric Match Failed’. |
90 | Review Forced | This form state occurs when the Manual Review flag is set to F (Forced), which requires every form to be reviewed by the back-office team. | The ID will be manually reviewed in the back-office and decisioned into the appropriate form state. |
94 | Review ID Back Image not found | If the flags that determine a back image is not found are questionable, then the ability to review the ID back image is available in the back office. | Manual review of the ID back image in the Back Office to determine if its present and valid. |
105 | Review ID Front and Back Mismatch | If the back of an ID is expected to be present and if the data extracted from the front of the ID data does not match the data extracted from the barcode, then the ability to review the data is available in the Back Office. | Manual review of the ID in the Back Office because the data from the front does not match the data extracted from the barcode. The back office user will need to be able to see the ID Number field that was extracted from the front of the ID vs what was extracted from the barcode. They can manually compare this to the image to see if it's actually a mismatch or if it was an issue with OCR extraction. |
103 | Review ID Front Image Not Found | If the front of an ID is not uploaded or a blank image was provided. | Manual review of the ID front image in the Back Office to see if its present and valid. |
108 | Review ID Type Mismatch | If the ID Type submitted doesn’t match the ID Type extracted from the ID Image. | Manual Review of the ID in the Back Office to determine if the template match is correct based on the ID Type submitted. |
63 | Review Invalid ID Number | The ID Number on the ID does not match the pattern defined in the ID Template. | The ID will be manually reviewed in the back office to determine if the ID number matches the pattern defined in the ID template and was extracted incorrectly. |
109 | Review Key Component Not Visible | A key component that is expected on the ID is missing such as the Date of birth, expiration date, photo, etc. | Manual Review of the ID in the Back Office to determine if the components are present but just weren’t extracted. |
116 | Review Live Face Not Detected | If the live photo submitted fails the liveness checks based on IDmission's liveness detection logic. | Manual Review in the back-office. This occurs when an image fails the liveness check. |
96 | Review Low Resolution | If either the front or back image that is uploaded has been detected as low resolution or the ID image is not a color/gray scale image. This is based on resolution thresholds defined in our system. | Manual review of the ID in the Back Office to determine if the ID images have a clear enough resolution to be reviewed and validated. |
106 | Review MRZ and ID Data Mismatch | If the data extracted from the MRZ does not match the data extracted from the ID image itself. | Manual review of the ID in the Back office because the data from the front does not match the data extracted from the MRZ. The back-office user will need to be able to see the ID Number field that was extracted from the front of the ID vs what was extracted from the MRZ. They can manually compare this to the image to see if it's actually a mismatch or if it was an issue with OCR extraction. |
91 | Review MRZ Invalid | If the MRZ Validation flag (Machine Readable Zone) is questionable, and MRZ Data is expected to be present, then the ability to review the MRZ is available in the back office. An MRZ parsing tool is provided in the event the MRZ extracted might have a few characters transposed. | Manual Review of the ID in the Back Office. The MRZ String should be provided and an MRZ parsing tool should be present for the back-office user to utilize. In most cases, this is due to a glare on the MRZ so the data was extracted improperly. It can be manually fixed and tested to ensure the MRZ is truly valid. |
107 | Review Name Match Failed | If the name submitted for the Customer or the Employee doesn’t meet the matching thresholds against the name extracted from the ID Document. | Manual Review in the Back Office of the name submitted against the name extracted from the ID. |
98 | Review No Image Found | If the ID front and back images were not uploaded or a blank image was provided. | The ID front and back images will be manually reviewed in the back-office to see if they are present and valid. |
97 | Review Security Feature Invalid | If one or more security features defined for the ID template are detected as not matching with the image provided. | Manual Review in the Back Office. This occurs when the ID Template the image is matched against indicates the placement of the security feature is off or is not present. |
112 | Review Suspected Tampering | If photo editing software (e.g., Microsoft Paint, Adobe Photoshop) or other means of ID tampering were detected. | The ID will be manually reviewed in the back-office to investigate whether the ID has been tampered with. |
113 | Review Suspicious ID | If an ID is found to be suspicious based on IDmission’s AI logic. | Manual Review in the back-office. This occurs when an ID is found to be suspicious. |
92 | Review Template Not Found | If the image provided does not match any ID templates that are configured for a client, it can be reviewed by a back office team to determine if the image was just of poor quality and if it should be accepted OR if it should be rejected OR if the template needs to be setup and configured for that client. | Manual Review in the Back Office. This is generally due to poor image quality, so a manual check is required to see if it's truly a valid and accepted ID type for the region / customer. |
101 | Review Under the age of 18** | If the date of birth (extracted from the barcode/MRZ) calculates the individual as under the age of 18. | Manual review of the ID in the Back Office to determine if the date of birth extracted has resulted in a proper calculated age. |
114 | Review Verification Results | If the verification results through a third-party verification process are flagged to be reviewed. For example, the customer name matched against a watchlist. | The verification results will be manually reviewed in the back-office |
Post Processing POST Update API Request Details
The below JSON format will be sent via an API once processing is complete by IDmission. In order to receive this, a URL must be provided and the POST_Data_API_Required field in the original API request must be set to a value of ‘Y’. A URL must be provided that this JSON data will be posted to. These URLs need to be defined in the dashboard for the Sandbox and Production environments through My Account > Account Settings.
JSON POST Update API Example:
{
"Form_Status":"Approved",
"Form_Id":16725444,
"Product_Id":1523,
"Form_Key":"IDMTPIA_1553497978827_10:07:B6:43:3A:65","
"ID_Type":"DL",
"ID_State":"AZ"
"ID_Country":"USA"
"Name":"JANE D DOE",
"First_Name" : "JANE",
"Middle_Name" : "D",
"Last_Name" : "DOE",
"Address" : "123 E TEST ST MESA AZ 85212",
"Address1":"123 E TEST ST",
"Address2":"MESA AZ 85212"
"Country":"USA",
"ID_Number":"B1111111",
"ID_Number_Match_Result":"Matched"
"IDNumber1",
"IDNumber2",
"IDNumber3",
"Valid_ID_Number" : "Y",
"Date_of_Birth":"01/01/1980"
"Date_of_Birth_Formatted" : "01/01/1980",
"Expiration_Date":"01/01/2025",
"Expiration_Date_Formatted":"1/01/2025"
"Issue_Date":"03/01/2012",
"Issuing_Country":"USA",
"Face_Detected" : "Y",
"MRZValid" : "NA",
"MRZData" : "MRZString",
"FaceVerificationStatus ":"Verified",
"Manual_Review_Executed":"Y",
"Image_Front":"BASE_64_DATA_OF_IMAGE",
"Image_Back":"BASE_64_DATA_OF_IMAGE",
"Image_ProcessedFront":"BASE_64_DATA_OF_IMAGE",
"Image_ProcessedBack":"BASE_64_DATA_OF_IMAGE",
"Customer_Photo":"BASE_64_DATA_OF_IMAGE",
"NameNonEng":"",
"FirstNameNonEng":"",
"LastNameNonEng":"",
"MiddleNameNonEng":"",
"LastName2":"",
"AddressNonEng":"",
"AddressLine1NonEng":"",
"AddressLine2NonEng":"",
"IDNumberNonEng":"",
"IDNumber2NonEng":"",
"DateofBirthNonEng":"",
"ExpiryDateNonEng":"",
"IssueDateNonEng":"",
"Gender":"M",
"Unique_Customer_Number":"687461556",
"Form_State_Code":"00"
}
Post API Element Dictionary
Field Name | Field Type |
Response Description |
---|---|---|
Form_Status |
Text | This is the final result of the ID Validation and Face Matching processes. For a full list of values, please refer to ID Validation / Form Status and State Codes section. |
Form_Id |
Text | Form ID that was generated by IDmission and provided in the original API response. |
Product_Id |
Text | Product ID for the environment, echo back from the request. |
Form_Key |
Text | Form_Key from the original request. |
Form_Data Node
Note: These are all of the values that are extracted from the ID images themselves or are result fields from the ID Validation process.
Important: If a value is not present for a particular field for a request, it will not be included in this JSON response.
Field Name | Field Type |
Response Description |
---|---|---|
ID_Type |
Text | In most cases, this is an echo back from the request, unless it was updated by the ID Verification Team because it was incorrect. |
ID_Country |
Text | In most cases, this is an echo back from the request, unless it was updated by the ID Verification Team because it was incorrect. |
ID_State |
Text | In most cases, this is an echo back from the request, unless it was added/updated by the ID Verification Team because it was not provided or incorrect. |
Name |
Text | Full Name extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. |
First_Name |
Text | First Name extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. |
Middle_Name |
Text | Middle Name extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. |
Last_Name |
Text | Last Name extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present |
Last_Name_2 |
Text | If there is a secondary last name, it will display as extracted from either the barcode, MRZ, or front of the ID when MRZ/barcode are not present. |
Address |
Text | Full Address extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. |
Address1 |
Text | Address Line 1 (usually the Street Number and Street Name) extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not presen. |
Address2 |
Text | Address Line 2 (e.g. Suite Number, Unit) extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. |
Country |
Text | City parsed from a barcode or MRZ, only when a one is present. In most cases the address will be in AddressLine1 / 2. |
ID_Number |
Text | ID Number extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. |
IDNumber1 |
Text | Additional IDNumber 1, extracted from barcode/MRZ data, or if neither are present, from the front of the ID. This will only be present if this additional ID Number component is defined in the matching ID template. |
IDNumber2 |
Text | Additional IDNumber 2, extracted from barcode/MRZ data, or if neither are present, from the front of the ID. This will only be present if this additional ID Number 2 component is defined in the matching ID template. |
IDNumber3 |
Text | Additional IDNumber 3, extracted from barcode/MRZ data, or if neither are present, from the front of the ID. This will only be present if this additional ID Number 3 component is defined in the matching ID template. |
Valid_ID_Number |
Text | Flag that indicates of the format of the ID number matches what is defined in the matching ID template. - Flag = Y if the ID Number extracts correctly and matches the format. - Flag = N if the ID Number does not match the format. - Flag = NA If there is no specific format defined - Flag = D if it cannot be clearly determined (D = Doubtful) |
Date_of_Birth |
Text | Date of Birth extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. This is the text that is extracted directly, not always a formatted date. |
Date_of_Birth_Formatted |
Date | Date of Birth extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. If the date cannot be formatted based on extraction (e.g. Odd format, not present in the MRZ and not corrected by manual review) then this field would be blank. Format: DD/MM/YYYY |
Expiration_Date |
Text | Expiration Date extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. This is the text that is extracted directly, not always a formatted date. |
Expiration_Date_Formatted |
Date | Expiration Date extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. If the date cannot be formatted based on extraction (e.g. Odd format, not present in the MRZ and not corrected by manual review) then this field would be blank. Format: DD/MM/YYYY |
Issue_Date |
Text | Issue Date extracted from either barcode, MRZ, or front of the ID when MRZ/barcode are not present. In most cases this is not present in a machine-readable portion of the ID, so we often see many variations of formats. This will be sent as a Text field. |
IssuingCountry |
Text | This is the 3-digit ISO country code in which the identity document was issued, either extracted from the barcode/MRZ or as defined in the template. |
Face_Detected |
Text | This flag indicates whether or not a clear/visible face is found on the identity document. If a ‘Photo’ component is captured for the specific ID template matched, and a face is clearly detected, this flag will = Y. If a face is expected and is NOT clearly detected, this flag will = N. If there is no ‘Photo’ component captured for the template, this flag will be blank. |
MRZ_Data |
Text | This is the raw data extracted from the MRZ. There is a parsing tool (in the back-office portal) where you can copy and paste the extracted MRZ string, compare it to the image, and correct any errors that may have resulted during OCR. This way you can determine the validity of the MRZ without having to ask the customer to resubmit their identity documents. |
MRZValid |
Text | This flag indicates the validity of the MRZ data, this will = Y if it is valid (passes all of the check digits), otherwise this will = N. When flag = N, there are usually MRZ Error Messages associated with. When there is not an MRZ detected (MRZ Detected = N), this flag will be blank. NA when there is a template matched, but no MRZ expected. |
FaceVerificationStatus |
Text | This is the result of the Face Match – ‘Verified’ or ‘Not Verified’ will be the values. A verified face must have a score that equates to a 62% or higher match. |
Manual_Review_Executed |
Text | If a request was submitted with the ‘Manual_Review_Required’ parameter = Y, and a manual review was actually executed, this field will = Y. If not, it will = N or Blank. |
NameNonEng |
Text | This field is extracted from the front or back of the ID |
FirstNameNonEng |
Text | This field is extracted from the front or back of the ID |
LastNameNonEng |
Text | This field is extracted from the front or back of the ID |
MiddleNameNonEng |
Text | This field is extracted from the front or back of the ID |
LastName2 |
Text | This field is extracted from: - The barcode or MRZ (if present) - The front or back of the ID, if both the MRZ and barcode are not present. |
AddressNonEng |
Text | This field is extracted from the front or back of the ID |
AddressLine1NonEng |
Text | This field is extracted from the front or back of the ID |
AddressLine2NonEng |
Text | This field is extracted from the front or back of the ID |
IDNumberNonEng |
Text | This field is extracted from the front or back of the ID |
IDNumber2NonEng |
Text | This field is extracted from the front or back of the ID |
DateofBirthNonEng |
Text | This field is extracted from the front or back of the ID |
ExpiryDateNonEng |
Text | This field is extracted from the front or back of the ID |
IssueDateNonEng |
Text | This field is extracted from the front or back of the ID |
Gender |
Text | This field is extracted from: - The barcode or MRZ - The front or back of the ID, if both the MRZ and barcode are not present. |
Unique_Customer_Number |
Text | This field is an echo back from what is submitted in the request. This is not extracted from the ID or generated by IDmission. It is for the client to use to define a unique number associated with their customer. |
API_resultCount_NM |
Text | This field returns a count of matches found using the customer or employee name against a Negative Media database. |
API_resultCount_PEP |
Text | This field returns a count of matches found using the customer or employee name against Politically Exposed Persons (PEPs) lists. |
API_resultCount_WLS |
Text | This field returns a count of matches found using the customer or employee name against Global watchlists. |
Client_Customer_Number |
Text | This field contains the unique client customer number associated with the customer record from the original enrollment. This is also used for ongoing verification. |
Customer_AddressLine1 |
Text | This field contains Address Line 1 for the customer that was submitted as part of the request. |
Customer_AddressLine2 |
Text | This field contains Address Line 2 for the customer that was submitted as part of the request. |
Customer_City |
Text | This field contains the city for the customer that was submitted as part of the request. |
Customer_Country |
Text | This field contains the country code or country name for the customer that was submitted as part of the request. |
Customer_DateOfBirth |
Text | This field contains the date of birth for the customer that was submitted as part of the request. |
Customer_District |
Text | This field contains the district for the customer that was submitted as part of the request. |
Customer_Email |
Text | This field contains the email address for the customer that was submitted as part of the request. |
Customer_Enrolled_Date |
Date | This field indicates the date the customer was enrolled. Format: YYYY-MM-DD |
Customer_FP_Data |
Image BLOB | This field returns the fingerprint data associated with the original enrollment of the Customer that a verification submission is verified against. |
Customer_Gender |
Text | This field contains the gender code that was submitted as part of the request. |
Customer_Name |
Text | This field contains the Customer Name that was submitted as part of the request or the name that was extracted from the ID document if present. |
Customer_PhoneNumber |
Text | This field contains the phone number for the customer that was submitted as part of the request. |
Customer_Search_Status |
Text | This field returns the status of the search results for the Customer based on the biometric data that was sent. The valid values are “SUCCESS” and “FAIL”. |
Customer_Signature |
Image BLOB | This is an image of the customer’s signature that can be optionally collected during any service where customer data is supported. |
Customer_verification_Result |
Text | This field returns the results of the Verify Customer request. The valid values are “Verified” and “Verification Failed”. |
CustomerCode |
Text | This field contains the Customer Code that is auto-generated by the IDmission system during the enrollment process. |
CustomerStatus |
Text | This field is used for Customer Enrollment processing. This field indicates if a customer has been found and returns the current status of that customer. The field can return “SUCCESS” or “FAILED”. |
CustomerVerification_Status |
Text | This field indicates the current status of the customer in the IDmission database. The field can return “Verified” or “Unverified”. |
DeDuplication_Status |
Text | The field indicates the overall status of Deduplication processing. This field can return “SUCCESS” or “FAIL”. |
Employee_AddresLine1 |
Text | This field contains Address Line 1 for the employee that was submitted as part of the request. |
Employee_AddresLine2 |
Text | This field contains Address Line 2 for the employee that was submitted as part of the request. |
Employee_City |
Text | This field contains the city associated with the address of the employee submitted as part of the request. |
EMPLOYEE_CODE |
Text | This field contains the employee code submitted as part of the request. |
Employee_Country |
Text | This field contains the country associated with the address for the employee submitted as part of the request. |
Employee_Email |
Text | This field contains the email associated with the employee submitted as part of the request. |
Employee_Gender |
Text | This field contains the gender code that was submitted as part of the request. |
Employee_ID |
Text | The field contains the employee ID that was provided during the employee enrollment process as part of the request. |
Employee_ID_State |
Text | This field contains the State associated with the ID of the employee submitted as part of the original request. |
Employee_LoginID |
Text | This field contains the employee Login ID that was submitted as part of the request. |
Employee_Name |
Text | This field contains the name of the employee submitted as part of the request. |
Employee_Phone |
Text | This field contains the phone number associated with the employee submitted as part of the request. |
Employee_PostalCode |
Text | This field contains the postal/zip code associated with the address for the employee submitted as part of the request. |
Employee_Type |
Text | This field contains the type of employee that was specified during the employee enrollment process, as part of the request. |
Employee_verification_Result |
Text | This field returns the results of the Verify Employee request. The valid values are “Verified” and “Verification Failed”. |
EmployeeCreateStatus |
Text | This field indicates whether or not the Employee enrollment was successful. The field can return “SUCCESS” or “FAILED”. |
EmployeeCreateStatusMessage |
Text | This field is the message that is returned based on the employee enrollment processing. For example, “Employee already exists” or “User does not have required privileges.” |
EmployeeID |
Text | This field is the employee ID provided during any employee enrollment services. |
EmployeeSignature |
Image BLOB | This field contains a signature image captured during the original employee enrollment. |
EmployeeVerification_Status |
Text | This field indicates the current status of the employee in the IDmission database. The field can return “Verified” or “Unverified”. |
ENROLLED_FACE_IMAGE |
Image BLOB | This field returns the photograph associated with the original enrollment of the Customer or Employee that a verification submission is verified against. |
FullName |
Text | This field is the full name of the customer, with the First,Middle, and Last names combined into one field. |
HOST_URL |
Text | This field is the URL that is provided to IDmission to return the POST API to. |
ID_Number_Match_Result |
Text | This field indicates if the ID Number that was extracted from the ID matches the ID Number that was read from the MRZ or Barcode when applicable. |
Name_Match_Result |
Text | This field returns the result of the name submitted in request matches the name extracted from the ID during processing. |
ServiceID |
Text | This is an echo back of the ServiceID sent in the request for the SDK, or utilized when using the Swagger API. The ServiceID is associated with the service being performed (e.g., ID Validation, Customer Enrollment, Verification, etc.) |
CompanyCode |
Text | This is an echo back of the CompanyCode submitted in the original request that the form is processed under. |
CustomerIDExpiryDate |
Date | This is the expiration date from an ID document that has been enrolled for a customer. This will be provided back based on input parameters in the Verification requests. Format: dd/mm/yyyy. |
DocumentType |
Text | This is ID Type that is determined based on the template it was matched against. This will be the same list of values are in the input ID Type. |
PlaceOfBirth |
Text | This is a text-based field that will contain the place of birth if specified on the ID. (Currently only available for Italy IDs) |
PlaceofIssue |
Text | This is a text-based field that will contain the place in which the ID was issued if specified on the ID. (Currently only available for Italy IDs) |
IssuingAuthority |
Text | This is a text-based field that will contain the issuing authority of the ID. This will only be present if this is a text-based field on the ID, it will not be extracted from a stamp. (Currently only available for Italy IDs) |
OCR_Signature |
Image BLOB | This field is the signature that is extracted from the ID |
PostalCode |
Text | This field contains postal code for the customer that was submitted as part of the request. |
Image_ProcessedFront |
Image BLOB | This image is the processed version of the front image from the server after ID validation processing is completed. It will be cropped and de-skewed and have security features highlighted. |
Image_ProcessedBack |
Image BLOB | This image is the processed version of the back image from the server after ID validation processing is completed. It will be cropped and de-skewed and have security features highlighted. |
Image_Front |
Image BLOB | This image is the front image provided by the client. |
Image_Back |
Image BLOB | This image is the back image provided by the client. |
Customer_Photo |
Image BLOB | This image is the live selfie image provided by the client. |
Form_State_Code |
Single Select | This is the two-digit code associated with the Form_Status. For a full list of values, please refer to the Form Status and State Codes Section of this document. |
Verification_Approval_Code |
Text | 4 digit verification code when biometric verification is done through the IDentity as a Service (IDaaS) Web Application. |
Deduplication fields
Note: These fields will appear if Deduplication_Required = Y and Deduplication processing finds multiple matches. If multiple duplicates are found, the field will repeat with an appended “_1”, “_2”, etc. in the POST.
For example, if the user’s name is found to have multiple matches, then the DeDuplicationData_Name will repeat as follows:
DeDuplicationData_Name
DeDuplicationData_Name_1
Field Name | Field Type |
Response Description |
---|---|---|
DeDuplicationData_Client_Customer_Number |
Text | This field returns the unique customer number associated with a duplicate found during biometric deduplication processing. |
DeDuplicationData_Customer_ID |
Text | This field returns the IDmission-generated customer code associated with a duplicate found during biometric deduplication processing. |
DeDuplicationData_Name |
Text | This field returns the customer or employee name associated with a duplicate found during biometric deduplication processing. |
DeDuplicationData_Person_Type |
Text | This field returns the categorization of the user type associated with any duplicates found during biometric deduplication processing. Valid values are: “Customer”, “Employee”. |
DeDuplicationResult |
Text | This field returns the response if the Deduplication_Required flag is set in the original request. The response will either be “Duplicates Found” or “No Duplicates Found”. |
Duplicate_Employee_Type |
Text | This field indicates the type of employee the system matched against while completing biometric deduplication processing. |
Duplicate_Fingerprint_Data |
Image BLOB | This field returns the fingerprint data that is associated with a duplicate found during biometric deduplication processing. |
Duplicate_Found |
Text | This is a Yes/No field that indicates whether or not a duplicate customer or employee has been found when completing biometric deduplication processing. |
Duplicate_Photograph |
Image BLOB | This field returns the photograph that is associated with a duplicate found during biometric deduplication processing. |
Here is an example of Post Data API for Service ID 50, where three matches are found:
{
"Form_Status":"Duplicate Customer",
"Form_Id":"760716",
"Product_Id":"4130",
"Form_Key":"Test7363433222343232323243236323343453334343342e3343443434",
"Form_Data":
{
"Address":"123 Test Street, Anywhere, CA 90001",
"DeDuplicationData_Client_Customer_Number":"AN22G001230",
"DeDuplicationData_Client_Customer_Number_1":"AN22G00123012",
"DeDuplicationData_Client_Customer_Number_2":"AN22G00123012233",
"Client_Customer_Number":"AN22G001230122334455",
"Expiration_Date":"25/06/2023",
"DeDuplicationData_Name":"JOHN DOE",
"DeDuplicationData_Name_1":"JOHN DOE",
"DeDuplicationData_Name_2":"JOHN DOE",
"Gender":"M",
"ID_State":"CA",
"ID_Number":"1234567",
"content":"35309",
"First_Name":"JOHN",
"Valid_ID_Number":"Y",
"MRZValid":"NA",
"DeDuplicationResult":"Duplicates Found",
"Issue_Date":"25/06/2017",
"DeDuplicationData_Customer_ID":"52381",
"DeDuplicationData_Customer_ID_1":"53188",
"DeDuplicationData_Customer_ID_2":"53189",
"Duplicate_Found":"Y",
"PostalCode_Extracted":"9650000",
"CURRENT_FORM_STATE_FOR_CALL":"Duplicate Customer",
"IDNumber2":"04132013631RBBBFD12",
"Date_of_Birth":"12/04/1950",
"Date_of_Birth_Formatted":"12/04/1950",
"Expiration_Date_Formatted":"25/06/2023",
"Address2":"ANYWHERE CA 90001",
"FaceVerificationStatus":"Verified",
"Address1":"123 Test Street",
"ID_Country":"USA",
"Face_Detected":"Y",
"ID_Type":"PP",
"Issuing_Country":"USA",
"DeDuplicationData_Person_Type":"CUSTOMER",
"DeDuplicationData_Person_Type_1":"CUSTOMER",
"DeDuplicationData_Person_Type_2":"CUSTOMER",
"ID_Number_Match_Result":"Matched",
"Unique_Customer_Number":"AN22G001230122334455",
"Last_Name":"DOE",
"FullName":"JOHN DOE",
"Country":"USA",
"Form_State_Code":"00",
"DeDuplication_Status":"SUCCESS",
}
}
Post API Expected Acknowledgement Response
The system that is accepting this POST API from the IDmission server should respond with a simple ‘200’ HTTPS successful acknowledgement response. Example shown below:
HTTPS status code = 200
response json formatted as
{
"status\_code" : 0,
"status\_message" : "Success"
}
Additional JSON Element Dictionary
Additional JSON Elements
Additional Data Element Name |
Description | Valid Values |
---|---|---|
Service_ID |
This is the ID of the service that you wish to execute. *ALWAYS MANDATORY FOR ALL REQUESTS |
Refer to Section 2.1 |
Manual_Review_Required |
If the ID validation that is performed on the ID images submitted doesn’t result in an auto-decision, a manual review can be requested by our back office review team. This does incur an additional processing fee per review. | - Y – Review required if auto-decision results in a ‘Review’ form state. - N – No manual review will be performed. - Blank – default, no manual review will be performed. |
Bypass_Age_Validation |
By default, for ID image validation, our server requires the age (calculated from today’s date – date of birth) be 18 or older. To bypass this validation, this parameter is used. | - Y – Bypass age validation for 18 and older. - N – Age validation will be performed; age must be 18 or older. - Blank – default, age validation will be performed. |
Bypass_Name_Matching |
By default, when a customer or employee name is submitted through additional data, the name submitted will be matched against the name extracted from the ID images. To bypass this name matching feature, this parameter is used. | - Y – Bypass name matching. - N – Name matching is performed. - Blank – default, Name matching is performed. |
Deduplication_Required |
Deduplication check is used for verifying if the input person data is matched with existing records or not. | - Y –It will check whether person data matches with existing record if matched it will return matched person records in response. - N –It will not check for existing record matching. |
ID_Back_Image_Required |
This parameter can be used to bypass ID validation logic for the Back of the ID. No data matching will be done between the front and back of the ID when “N” is submitted in the request. Only the front of the ID will be considered in ID validation logic. | - Y – ID Back is mandatory for all ID types where Back is present and will be processed along with the front of the ID. - N – ID Back is not required and will not be considered in ID validation processing when not provided. - Blank – default, ID back is mandatory for all ID types where Back is present and will be processed along with the front of the ID. |
POST_Data_API_Required |
The POST Data API is used to accept the results and extracted data from the service. This requires a URL to be specified for the POST to be sent to. | - Y – POST_API call will get triggered. - N – POST_API Data will not be posted to the host. - Blank – POST_API will not be triggered and no data will be posted to the host. |
Send_Input_Images_in_POST |
Used only when the POST_DATA API flag = Y. | - Y – We will send the input images (ID Front/ID Back/Customer Selfie) in the POST_API. - N – No input images will be sent in the POST_API. - Blank – No input images will be sent in the POST_API. |
Send_Processed_Images_in_POST |
Used only when the POST_DATA API flag = Y. | - Y – We will send the processed images (ID front/ID back which have been cropped/marked up with security features, etc.) in POST_API. - N – No processed images will be sent in the POST_API. - Blank – No processed images will be sent in the POST_API. |
Need_Immediate_Response |
This flag is used to get response Asynchronously or Synchronously. Used only when the POST_DATA API flag = Y. | - Y – Response will be received immediately, and actual process will execute Asynchronously. - N – Process will execute synchronously, and response will be returned once process complete. |
|
This flag is used to capture secondary ID Documents and supports ID Validation, Face Matching. | - Y - When Capture Secondary ID =Y and information is captured, need to execute ID Validation and Face match calls and apply the business rules to move forms into respective states. - N - When Capture Secondary ID=N then exiting flow will work. No need to capture secondary ID documents. |
|
This flag is used to request a synchronous Deduplication check. A Deduplication check verifies if the input person’s data is matched with existing records. | - Y – Process will execute synchronously, and response will be returned once the process is complete. - N – Response will be received immediately, and the actual process will execute Asynchronously. |
|
This flag is used to request a manual review of suspected duplicate submissions. A Deduplication check verifies if the input person’s data is matched with existing records. This does incur an additional processing fee per review. | - Y – Manual Review is required for this process, and consequently will be performed through our back office. - N – Manual Review is not required for this process, and consequently the deduplication check will be processed automatically. |
|
This flag indicates if the third-party verification services should be triggered such as Government ID database check and KYC/AML watchlists. | - Y – It will verify the customer data with the data returned back from the host. - N – It will not verify the customer data with host data. |
|
This flag is used to validate liveness for documents and/or the person's selfie submitted in request. Liveness detection is expected to reject screen-to-screen captures and/or images of printed photocopies. | - Y – Liveness will validate submitted document(s) and/or selfie are not screen-to-screen captures and/or images of printed photocopies. - N – Liveness will not be performed on form submission. |
Unique_Customer_Number |
Unique ID assigned by the client to associate with a customer. This will be required for verification services. | Alphanum |
Old_Client_Customer_Number |
Unique ID assigned by the client to associate with a customer. This will be required for update services. | Alphanum |
Customer_Name |
Name of the Customer that will be stored with the request. | String |
Customer_Type |
Type of Customer that will be stored with the request | String |
Customer_Phone |
Customer’s phone number that will be stored with the request. | Numeric |
Customer_Email |
Customer’s email that will be stored with the request. | Must be a valid email format with @ and extension. |
Unique_Merchant_Number |
Unique ID for a store or location that an employee or customer is to be associated with. | String |
Unique_Employee_Code |
Unique ID assigned by the client to associate with an employee. This will be required for verification services. | String |
Gender |
Customer’s gender that will be stored with the request | M, F |
Address_Line_1 |
Line 1 of the Customer’s Address that will be stored with the request. | String |
Address_Line_2 |
Line 2 of the Customer’s Address that will be stored with the request. | String |
Country |
3-digit ISO Country Code of the Customers Address that will be stored with the request. | 3-digit ISO Country Code |
State |
State of the Customer’s Address that will be stored with the request. | String (State Name is used here, not a code value). |
City |
City of the Customer’s Address that will be stored with the request. | String |
Postal_Code |
Postal Code of the Customer’s Address that will be stored with the request. | String |
EmpJSON Element Dictionary
EmpJSON Elements
Element |
Description | Valid Values |
---|---|---|
Employee_Code |
Unique ID assigned by the client to associate with the employee. This will be required for verification services. | String |
Employee_Type |
Associated role for the employee that will align with access rights. | Admin Agent Manager Operator |
Login_ID |
Login ID to associate with an Employee. | String (if not provided this will be copied from the Employee_Code ) |
Employee_Email |
Email address associated with the employee. | Must be a valid email format with @ and extension. |
Employee_Name |
Name to be associated with the employee. | String |
Employee_Mobile_Number |
Phone number to be associated with the employee. | Numeric |
Employee_ID_Number |
ID Number to be associated with the employee. | String |
Employee_Gender |
Gender of the employee. | M, F |
Employee_AddressLine1 |
Line 1 of the Employee’s Address that will be stored with the request. | String |
Employee_AddressLine2 |
Line 2 of the Employee’s Address that will be stored with the request. | String |
Employee_City |
City of the Employee’s Address that will be stored with the request. | |
Employee_State |
State of the Employee’s Address that will be stored with the request. | String (State Name is used here, not a code value). |
Employee_ZipCode |
Zip or Postal Code of the Employee’s Address that will be stored with the request. | |
Employee_Country |
3-digit ISO Country Code of the Employee’s Address that will be stored with the request. | 3-digit ISO Country Code |
Version History
9.6.21.1.03 (7 October 2024)
- Added payload encryption and decryption to the SDK requests.
- An additional security layer has been added for selfie and ID images, including image tag data.
- Restrict N number of spoof selfie capture from same device for additional security
- Update new Signature capture library.
- Update Shared Preferences to Encrypted Shared Preferences
- Bug fixes and performance improvements.
9.6.17.1.9 (23 August 2024)
- Added support for the Urdu (UR) language.
- Updated the SDK API level version to 34.
9.6.10.1.10 (31 July 2024)
- Added support for configurable ID and Selfie preview screen on retry and confirm button.
9.6.10.1.3 (21 June 2024)
- Enhanced user experience during ID capture.
- Bug fixes and performance improvements.
9.6.10.1.1 (17 May 2024)
- Updated Language support messaging for the “not in focus” on screen message for Tamil, Bengali, Burmese, Hindi, Bahasa, Thai, Vietnamese
- Enhanced the user experience during ID capture to use multiple models in parallel.
- Bug fixes and performance improvements.
- Updated all default AI models to the latest versions.
9.6.9.1.1 (May 2024)
- Bug fixes and performance improvements.
- Updated all default AI models to the latest versions.
9.6.6.1.2 (March 2024)
- Extended language support for Simplified Chinese
v9.6.4.1.11 (February 2024)
- Updated Open CV version 4.9.0
- Fixed issue full screen appears for selfie capture when switched to back camera.
- Model download information callback function should always be executed after SDK initialization.
- Fixed supported Languages translations issues.
- Fixed duplicate groups added in request for service ID 360.
- Model download information callback function should always be executed after SDK initialization.
v9.6.2.1.3 (January 2024)
- Video conference supported with new kurento server
- Added support for new Languages Bengali, Hindi, Indonesia, Tamil, Chinese zh_HK & Vietnamese
- Updated all default AI models to the latest versions.
v9.5.18.1.5 (December 2023)
- Included glare detection as part of the ID capture process.
- Added new functionality that supports the ability to understand the progress of model downloads required for SDK functionality.
- Updated various burmese language translations.
- Updated all default AI models to the latest versions.
v9.5.16.1.4 (November 2023)
- Enhanced Android SDK to support Burmese language and bug fixes
- Added new SDK flavour ID validation and Face matching without models
v9.5.15.1.8 (November 2023)
- Enhanced the video conference STUN protocol to support a configurable URL.
- Enhanced Android SDK to include a revision to the language code for Khmer to KM (originally it was set to KH).
- Enhanced the 4 Finger capture instruction screen to support new default instruction text and make it configurable..
- Enhanced Android SDK to ensure retry attempts for the front / back of ID documents are logged properly for audit purposes.
- Updated all default AI models to the latest versions.
v9.5.12.1.2
- Android API 33
- Updated language from KH to KM for Khmer
v9.5.11.1.4
- Added Face Focus Model
- Fixed issue of big screen white bar appears while ID capture
v9.5.10.1.1
- Fixed an issue with the language translations for Burmese
- Added support for Thai (TH) and Khmer (KH) languages
- Added a new response code for Video conferencing to support a disconnected call from the Web Portal.
- Enhanced video conferencing functions to improve overall connection monitoring with the server.
- Updated all default AI models to the latest versions.
v9.5.7.1.11
- ID detection realness improvement
- SDK bug fixes and performance improvements
v9.5.4.1.7
- Updated Spanish labels
- Updated generic document capture cancel error code 2 to 12
- Added metadata support method into the SDK
- Updated Video Conference UI Configuration
v9.5.3.1.5
- User can close Video Conference
- Fixed issue of Fingerprint capture using Fingerprint devices
v9.5.1.1.5
- Default Focus Threshold value updated to 30
v9.5.1.1.4
- Update to the focus model that is automatically downloaded to the device on launch
- Fixed an issue with the Video Conference Call back where cancel and success was received twice
v9.4.8.1.6
- Implemented server side AutoFill request
- Downloaded all models from server
- Added support for Service ID 106
Copyright
Copyright 2024 IDmission LLC. All rights reserved.
NOTICE: All information contained herein is the property of IDmission LLC. No part of this publication (whether in hardcopy or electronic form) may be reproduced or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior written consent of IDmission LLC. The software, which includes information contained in any databases, described in this document is furnished under a license agreement and may be used or copied only in accordance with the terms of that agreement.
This publication and the information herein are furnished AS IS, is subject to change without notice, and should not be construed as a commitment by IDmission LLC. IDmission LLC assumes no responsibility or liability for any errors or inaccuracies, makes no warranty of any kind (express, implied or statutory) with respect to this publication and expressly disclaims any and all warranties of merchantability, fitness for particular purposes and non-infringement of third-party rights.
©2024 IDmission LLC January 2024