NAV

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

IDentity Developer APK

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:

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

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:

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)

card.io-#.#.#.aar

(e.g. card.io-5.4.2.aar)

CardIO Library (Use latest released version)

compile 'com.google.android.gms:play-services-vision:16.2.0'

compile 'com.google.android.gms:play-services-location:17.1.0'

Add above dependency in build.gradle of your main project.

compile 'com.google.firebase:firebase-ml-vision:18.0.1'
compile 'com.google.firebase:firebase-ml-vision-face-model:17.0.2'

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: 'com.google.gms.google-services'

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: 'com.google.gms.google-services'

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.

compile 'com.neovisionaries:nv-websocket-client:1.30'

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)

NOTE: 6.4.4.2 and above support AndroidX

Recommended IDE version and gradle plugins:

Android studio 3.2.1

Gradle:

classpath 'com.android.tools.build:gradle:3.2.0'

distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip

Recommended IDE version and gradle plugins:

Android studio 4.0.1 and above

classpath 'com.android.tools.build:gradle:4.1.1'

distributionUrl=https://services.gradle.org/distributions/gradle-6.5-all.zip

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 {

noCompress "tflite"

}

compileOptions {

sourceCompatibility = '1.8'

targetCompatibility = '1.8'

}

}

Additionally, you need to add the following dependencies.

implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
implementation 'com.google.firebase:firebase-storage:19.1.0'

Also, we suggest you update the existing dependencies with the following version:

implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
implementation 'com.google.firebase:firebase-ml-vision-face-model:19.0.0'
implementation 'com.google.firebase:firebase-core:17.2.1'

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.

implementation 'org.apache.commons:commons-lang3:3.11'

Apache Commons Lang library

implementation 'com.jakewharton.threetenabp:threetenabp:1.3.1'

This library is required for SDK.

implementation 'androidx.security:security-crypto:1.1.0-alpha06'

This library is required for SDK.

implementation 'com.scottyab:rootbeer-lib:0.1.0'

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"
"subject_is_too_dark_img_capture"
"out_of_focus_img_capture"
"too_much_glare_img_capture"
"subject_is_too_dark_fc_detect"
"out_of_focus_fc_detect"
"move_camera_closer_to_your_face"
"camera_movement_fc_detect"
"keep_face_steady"
"smile_please"
"face_detected"
"light"
"focus"
"glare"
"smile"
"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"
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_outline_color

id_outline_color_alpha

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).


Note:
Above color and Alpha value definition is same for another color/alpha as well

id_detected_id_outline_color

id_detected_id_outline_color_alpha

Outline (Border) color and transparency to be shown when ID is detected.

id_outside_outline_color

id_outside_outline_color_aplha

Background color and transparency of ID capture screen.

id_detected_id_outside_outline_color

id_detected_id_outside_outline_color_alpha

Background color and transparency to be shown when ID is detected.

id_back_button_color

id_back_button_color_alpha

Back/Exit button color and transparency (ID capture)

id_retry_button_color

id_retry_button_color_alpha

Retry button color and transparency (Preview screen)

id_retry_button_border_color

id_retry_button_border_color_alpha

Retry button border color and transparency (Preview screen)

id_confirm_button_color

id_confirm_button_color_alpha

Confirm/Done button color and transparency (Preview screen)

id_confirm_button_background_color

id_confirm_button_background_color_alpha

Confirm/Done background color and transparency (Preview screen)

id_instruction_button_color

id_instruction_button_alpha

Continue button color and transparency (Instruction screen)

id_instruction_button_txt_color

id_instruction_button_txt_alpha

Continue button text color and transparency (Instruction screen)

id_label_text_color

id_label_text_alpha

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.

id_header_text_label_color

id_header_text_label_alpha

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_alignment

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.

fd_outline_color

fd_outline_color_alpha

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).


Note:
Above color and Alpha value definition is same for another color/alpha as well

fd_detected_face_outline_color

fd_detected_face_outline_color_alpha

Outline (Border) color and transparency to be shown when face is detected.

fd_outside_face_outline_color

fd_outside_face_outline_color_alpha

Background color and transparency of face capture screen.

fd_detected_outside_face_outline_color

fd_detected_outside_face_outline_color_alpha

Background color and transparency to be shown when face is detected.

fd_back_button_color

fd_back_button_color_alpha

Back/Exit button color and transparency (Face capture)

fd_retry_button_color

fd_retry_button_color_alpha

Retry button color and transparency (Preview screen)

fd_retry_button_border_color

fd_retry_button_border_color_alpha

Retry button border color and transparency (Preview screen)

fd_confirm_button_color

fd_confirm_button_color_alpha

Confirm/Done button color and transparency (Preview screen)

fd_confirm_button_background_color

fd_confirm_button_background_color_alpha

Confirm/Done background color and transparency (Preview screen)

fd_instruction_button_color

fd_instruction_button_alpha

Continue button color and transparency (Instruction screen)

fd_instruction_button_txt_color

fd_instruction_button_txt_alpha

Continue button text color and transparency (Instruction screen)

fd_label_text_color

fd_label_text_alpha

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.

fd_header_text_label_color

fd_header_text_label_alpha

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:

Overlay Image Sizes

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

cfc_label_text_color

cfc_label_text_color_alpha

Color and Transparency of label text on instruction screen.

cfc_instruction_button_color

cfc_instruction_button_alpha

Color and Transparency of instruction screen continue button.

cfc_instruction_button_txt_color

cfc_instruction_button_txt_alpha

Color and Transparency of instruction screen continue button text.
id_enable_label_shadow Enable/Disable label shadow

id_capture_button_color

id_capture_button_alpha

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
move_closer
move_away
incorrect_hand
hold_steady
capturing_detail
finger_too_close
finger_too_far

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
clear_pad
done

Custom Voice Recording Configurations

Voice Recording Description color

voice_button_color

voice_button_color_alpha

Button color of voice recording screen

voice_background_color

voice_background_color_alpha

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

voice_text_label_color

voice_text_label_color_alpha

Label color on voice recording screen

voice_title_label_color

voice_title_label_color_alpha

Title label color on voice recording screen

voice_title_label_size

voice_text_label_size

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
voice_start
voice_play
voice_pause
voice_stop
voice_delete
voice_save
voice_retry
voice_resume
voice_record
voice_recording

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:
For customizing UI use “customizeUserInterface” method with JSON string.
{
id_capture_portrait : "N",
/***supported parameter Y/N ***/
id_light_threshold : "70",
id_min_focus : "12",
id_max_focus : "35",
id_glare_percentage : "5",
id_enable_capture_button_time : "60",
id_max_image_size : "500",
id_image_height : "1170",
id_image_width : "800",
id_capture_enable : "N",
/***supported parameter Y/N ***/
id_generic_doc_fieldname : "",
/***Pass the below parameter to enable barcode scanning from given ID type***/
id_country : "", //3 character ISO country code (mandatory parameter)
id_type : "" //Refer to ID Type table (mandatory parameter)
id_state : "", //2 character ISO state code
fd_preview_screen: "" //This parameter supports the following values:
ENABLE: To enable preview screen
DISABLE: To disable preview screen
ENABLE_WHEN_FAILED: To enable preview screen only when face capture is failed
}
Note: id_country and id_type are mandatory parameters.

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:
{
"Service_ID": "",//Mandatory
"Manual_Review_Required" : ""
"Bypass_Age_Validation" : ""
"Bypass_Name_Matching" : ""
"Deduplication_Required" : ""
"Deduplication_Synchronous" : ""
"Deduplication_Manual_Review_Required" : ""
"ID_Back_Image_Required" : ""
"POST_Data_API_Required" : ""
"Send_Input_Images_in_POST" : ""
"Send_Processed_Images_in_POST" : ""
"Need_Immediate_Response" : ""
"Capture_Secondary_ID" : ""
"Verify_Data_With_Host" : ""
"Detect Liveness" : ""
"Unique_Customer_Number": "",
"Old_Client_Customer_Number": "",
"Customer_Name": "",
"Customer_Type": "",
"Customer_Phone": "",
"Customer_Email": "",
"Unique_Merchant_Number": "",
"Unique_Employee_Number": "",
"Unique_Employee_Code": "",
"Gender": "",
"Address_Line_1": "",
"Address_Line_2": "",
"Country": "",
"State": "",
"City": "",
"Postal_Code": "",
"Customer_Attribute": "",
"AddressLine1": "",
"AddressLine2": "",
"Customer_Gender": "",
"AgentCountry": "",
"Encrypted_Data": "",
"PreviousFormId": "",
}
Note: When performing a service that includes customer enrollment, the Unique_Customer_Number is mandatory.

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:
{
"Employee_Code":"", /Conditional
"Employee_Type":"", /Conditional
"Login_ID": "",
"Employee_Email": "",/Conditional
"Employee_Name":"",/Conditional
"Employee_Mobile_Number":"",
"Employee_ID_Number":"",
" Employee_Gender ":"",
"Employee_Email ":"",
" Employee_Gender ":"",
" Employee_AddressLine1 ":"",
" Employee_AddressLine2 ":"",
" Employee_City":"",
"Employee_State":"",
"Employee_Country":"",
}
NOTE: When performing a service that includes employee enrollment the Employee_Code, Employee_Type, Employee_Email, and Employee_Name elements are all mandatory.

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.
{
fd_light_threshold : "60",
fd_focus_threshold : "15",
fd_detection_threshold : "20",
fd_max_image_size : "500",
fd_launch_front_camera : "Y",
fd_toggle_camera : "N",
fd_enable_passive_face_detection : "Y"
}

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:


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 at the end of this document for details regarding each of these elements:
{
"Service_ID": "",//Mandatory
"Manual_Review_Required" : ""
"Bypass_Age_Validation" : ""
"Bypass_Name_Matching" : ""
"Deduplication_Required" : ""
"Deduplication_Synchronous" : ""
"Deduplication_Manual_Review_Required" : ""
"ID_Back_Image_Required" : ""
"POST_Data_API_Required" : ""
"Send_Input_Images_in_POST" : ""
"Send_Processed_Images_in_POST" : ""
"Need_Immediate_Response" : ""
"Capture_Secondary_ID" : ""
"Verify_Data_With_Host" : ""
"Detect Liveness" : ""
"Unique_Customer_Number": "", /Conditional
"Old_Client_Customer_Number": "", /Conditional
"Customer_Name": "",
"Customer_Type": "",
"Customer_Phone": "",
"Customer_Email": "",
"Unique_Merchant_Number": "",
"Unique_Employee_Number": "",
"Unique_Employee_Code": "",
"Gender": "",
"Address_Line_1": "",
"Address_Line_2": "",
"Country": "",
"State": "",
"City": "",
"Postal_Code": "",
"Customer_Attribute": "",
"AddressLine1": "",
"AddressLine2": "",
"Customer_Gender": "",
"AgentCountry": "",
"Encrypted_Data": "",
"PreviousFormId": "",
}
Note: When performing a service that includes customer enrollment, the Unique_Customer_Number is mandatory.

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:
{
"Employee_Code":"",
"Employee_T
"Login_ID": "",
"Employee_Email": "",
"Employee_Name":"",
"Employee_Mobile_Number":"",
"Employee_ID_Number":"",
"Employee_Gender ":"",
"Employee_Email ":"",
"Employee_Gender ":"",
"Employee_AddressLine1 ":"",
"Employee_AddressLine2 ":"",
"Employee_City":"",
"Employee_State":"",
"Employee_Country":"",
}
Note: When performing a service that includes employee enrollment the Employee_Code, Employee_Type, Employee_Email, and Employee_Name elements are all mandatory.

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:
{
"Service_ID": "",//
"Unique_Customer_Number": "", //
"Customer_Name": "",
"Customer_Type": "",
"Customer_Phone": "",
"Customer_Email": "",
"Gender": "",
"Address_Line_1": "",
"Address_Line_2": "",
"Country": "",
"State": "",
"City": "",
"Postal_Code": "",
"POST_Data_API_Required" : ""
"Send_Input_Images_in_POST" : ""
"Send_Processed_Images_in_POST" : ""
"Need_Immediate_Response" : ""
"Deduplication_Required" : ""
"Deduplication_Synchronous" : ""
"Deduplication_Manual_Review_Required" : ""
}

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
{
"Service_ID": "",**//
"Unique_Employee_Code": "",
}

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":"", //
"Employee_Type":"", //
"Login_ID": "",
"Employee_Email": "", //
"Employee_Name": "", //
"Employee_Mobile_Number": "",
"Employee_ID_Number": "",
"Employee_Gender": "",
"Employee_Email": "",
"Employee_Gender": "",
"Employee_AddressLine1": "",
"Employee_AddressLine2": "",
"Employee_City" :"",
"Employee_State": "",
"Employee_Country" :"",
"POST_Data_API_Required" : ""
"Send_Input_Images_in_POST" : ""
"Send_Processed_Images_in_POST" : ""
"Need_Immediate_Response" : ""
}

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:
{
"Service_ID": "",//Mandatory
"Unique_Customer_Number": "", /Conditional
"Old_Client_Customer_Number": "", //
"Customer_Name": "",
"Customer_Type": "",
"Customer_Phone": "",
"Customer_Email": "",
"Gender": "",
"Address_Line_1": "",
"Address_Line_2": "",
"Country": "",
"State": "",
"City": "",
"Postal_Code": "",
}

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:

{
"Service_ID": "",**//
}

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
{
"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":"",
}

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:
{
"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": "",
}

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
{
"Service_ID": "",//
"Unique_Employee_Code": "",//

}

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

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.

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 MRZ
BACK : “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

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.
{
"cfc_indexfinger_threshold": "60",
"cfc_middlefinger_threshold": "60",
"cfc_ringfinger_threshold": "60",
"cfc_babyfinger_threshold": "30",
"cfc_indexfinger_min_threshold": "20",
"cfc_middlefinger_min_threshold": "20",
"cfc_ringfinger_min_threshold": "20",
"cfc_babyfinger_min_threshold": "15",
"cfc_image_width": "450",
"cfc_sharp_threshold": "20",
"cfc_process_indexfinger": "Y",
"cfc_process_middlefinger": "N",
"cfc_process_ringfinger": "N",
"cfc_process_babyfinger": "N" ,
"cfc_capture_left_hand": "Y" ,
"cfc_keep_index_finger": "Y" ,
"cfc_keep_middle_finger": "N" ,
"cfc_keep_ring_finger": "N" ,
"cfc_keep_baby_finger": "N" }

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.
{
id_capture_portrait : "N",
/***supported parameter Y/N ***/
id_light_threshold : "70",
id_min_focus : "12",
id_max_focus : "35",
id_glare_percentage : "5",
id_enable_capture_button_time : "60",
id_max_image_size : "500",
id_image_height : "1170",
id_image_width : "800",
id_show_instruction : "Y",
/***supported parameter Y/N ***/
id_capture_enable : "F",
/***supported parameter Y/N ***/
id_generic_doc_fieldname : ""
}

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.

Capture_Secondary_ID

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.

Deduplication_Synchronous

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.

Deduplication_Manual_Review_Required

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.

Verify_Data_With_Host

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.

Detect_Liveness

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)

9.6.17.1.9 (23 August 2024)

9.6.10.1.10 (31 July 2024)

9.6.10.1.3 (21 June 2024)

9.6.10.1.1 (17 May 2024)

9.6.9.1.1 (May 2024)

9.6.6.1.2 (March 2024)

v9.6.4.1.11 (February 2024)

v9.6.2.1.3 (January 2024)

v9.5.18.1.5 (December 2023)

v9.5.16.1.4 (November 2023)

v9.5.15.1.8 (November 2023)

v9.5.12.1.2

v9.5.11.1.4

v9.5.10.1.1

v9.5.7.1.11

v9.5.4.1.7

v9.5.3.1.5

v9.5.1.1.5

v9.5.1.1.4

v9.4.8.1.6

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