Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 46

Image Capture & Validation

Implementation Guide
For
Android
3.25

IDmission Proprietary and Confidential ©2017 1


Document Information
VERSION HISTORY
Reason of change Revised By Date # Version
Initial draft Mohan 01/May/2016 1.0
Updates for integration Mohan / Suraj 11/May/2016 1.1
Full revision, inclusion of Pranjal 16/May/2016 2.0
various instructions,
response data, and
samples to go along with
the sample SDKs.
Modified and added to Pranjal 19/May/2016 2.1
minimum requirements,
setup and integration.
Removed certain sections.
Applied same font and Pranjal 20/May/2016 2.2
color to all code snippets.
Modified function
parameters.
Modified setup and Pranjal 24/May/2016 2.3
integration section. Added
callback section.
Updated dependencies Pranjal 25/May/2016 2.4
and callback parameters.
Formatting updates Angie 26/May/2016 2.5
Updated parameters, URL, Pranjal 30/May/2016 2.6
types and default values.
Added form status table Pranjal 31/May/2016 2.7
Added face capture and Pranjal 11/July/2016 2.8
verification call details
Added details for input Pranjal 27/July/2016 2.9
and callback parameters.
Changes for configurable Pranjal 24/October/2016 3.0
product.
Additional changes for Suryaprakash 10/November/2016 3.1

IDmission Proprietary and Confidential ©2017 2


making configurable
product
Updated parameters and Pranjal 30/November/2016 3.2
callback values
Added card capture call, Pranjal 25/January/2017 3.3
callback. Updated
parameters and callback
values.
Added Overloaded Suraj 27/January/2017 3.4
method details
Updated default values Pranjal 30/January/2017 3. 5
Updated default values Dipen 09/February/2017 3. 6
and callback method
parameter
Updated face-detection Dipen 16/February/2017 3.7
API call
Added new API call and Dipen 25/February/2017 3.8
update callback method
description.
Removed threshold Dipen 01/March/2017 3.9
parameters from
intialization call and sent
those parameter in
individual call.
Added capture bank- Dipen 10/March/2017 3.10
statement and capture
birth-certificate API and
callback.
Added customer Dipen 11/March/2017 3.11
verification API and
callback, added following
API call with additional
data :
-Card Detection
-Capture POA
-Capture Bank Statement
-Capture Birth Certificate
Added overloaded Dipen 04/May/2017 3.12
initialization API
Added customer name Dipen 05/May/2017 3.13
IDmission Proprietary and Confidential ©2017 3
node (Customer_Name)
in additional data.
Added new face-detection Dipen 05/Oct/2017 3.14
API description to
enable/disable preview
screen.
Added overloaded Dipen 24-Oct-2017 3.15
method with final-submit
flag for following calls:
-Process Image
-Match Face
-Process Image and Match
Face
Updated Dipen 3.16
Integration>Dependencie
s with new dependency
project.
Documented API with Dipen 05-Dec-2017 3.17
clear-form-key parameter
-Process Image
-Match Face
-Process Image and Match
Face
Added API documentation Dipen 11-Jan-2018 3.18
for passing ColorCode
-Face Detection
-Image Capture(Front,
Back, POA, Bank
Statement, Birth
Certificate)
Added “Customize User Dipen 26-Jan-2018 3.19
Interface”
Added overloaded API for Dipen 30-Jan-2018 3.20
“Customize User
Interface”
Added “setImages” API to Dipen 23-Mar-2018 3.21
allow user to pass images
to SDK so that it can be
processed in SDK flow
Face Detection : Returning Dipen 5-Apr-2018 3.22
white oval image and

IDmission Proprietary and Confidential ©2017 4


allowing it to process.

Customize background
color of id capture screen
and face detection screen
on detection.

Id capture and face Dipen 12-Apr-2018 3.23


detection API update for
showing instruction
screen
Added Voice recording Sanket 11-May-2018 3.24
,Capture 4F Fingerprint
,Capture Finger,Clear
Fingerprint,Clear All
Fingerprint ,Fingerprint
Enrolment, Fingerprint
Verification ,Video
Recording, Get GPS
Location.

Signature capture & Monu 18-May-2018 3.25


QR/Barcode Capture ,
Generic document capture

IDmission Proprietary and Confidential ©2017 5


Table of Contents
Document Information 2
1. Document Purpose 5
2. Contact Us 5
3. Minimum Requirements and Setup 5
Accepted ID Types 6
4. Integration 6
Dependencies 6
Initializing the SDK 6
Automatic Image Capture 7
Process Image 7
Process Image with additional data 8

IDmission Proprietary and Confidential ©2017 6


Live Face Capture 10
Face Verification 10
Face Verification with additional data 10
Customer Verification
Process Image and Verify Face 11
Process Image and Verify Face with additional data 11
Card Capture 12
Proof Of Address
Bank Statement
Birth Certificate
Voice Recording 31
Capture 4F Fingerprint 32
Capture Finger 32
Clear Fingerprint 32
Clear All Fingerprint 33
Fingerprint Enrolment 33
Fingerprint Verification 34
Video Recording 35
Get GPS Location 36
Set Images
Complete Operation 36
Delete Image 13
Capture QR/BarCode 37
Capture Signature 37
Capture Generic Document 38
5. Callback 13
Automatic Image Capture 13
Process Image 13
Live Face Capture 14
Face Verification 14
Customer Verification
Process Image and Verify Face 14
Card Capture 15
IDmission Proprietary and Confidential ©2017 7
Proof Of Address
Bank Statement
Birth Certificate
Voice Recording 43
Capture 4F Fingerprint 43
Capture Finger 44
Fingerprint Enrolment 44
Fingerprint Verification 44
Video Recording 44
Get GPS Location
Capture QR/BarCode 45
Capture Signature 45
Capture Generic Document 46

Complete Operation 15

1. Document Purpose
The purpose of this document is to serve as a reference manual and configuration guide for the
IDmission Image Capture & Validation product. This manual includes details for Android devices
only.
This manual will illustrate how to embed the SDK into your host application, retrieve data from an
image and perform image validation.

2. Contact Us
If you have any questions regarding this guide, please contact our Customer Support Team at
implementation@idmission.com or at our 24X7 support line – 1-800-925-8041 X 1.

3. Minimum Requirements and Setup


The minimum requirements for utilizing this SDK are:
● Android 4.0 or higher
● Active internet connection

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" />
IDmission Proprietary and Confidential ©2017 8
<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_FINE_LOCATION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<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"/>

Note: If you are utilizing a device that has an Android Marshmallow (6.0) version, you will need to
acquire android.permissions.CAMERA, android.permission.WRITE_EXTERNAL_STORAGE and
android.permission.READ_EXTERNAL_STORAGE dynamically before initializing the SDK.

Use getRequiredPermissions to get a list of required dangerous permissions.

The SDK requires there to be following declarations in your AndroidManifest.xml.

In Manifest tag,

xmlns:tools="http://schemas.android.com/tools"

In Application tag,

android:theme="@style/AppTheme"
tools:replace="android:icon,android:theme"

Accepted ID Types
Your IDmission Implementation Team will need to configure which ID types from which Countries
you wish to accept. Please contact them at implementation@idmission.com to communicate this
list.

4. Integration
The entire SDK project must be downloaded from the following URL:

http://appstore.idmission.com/Apps/ImageProcessingLib/Android/ImageProcessingSDK.zip

IDmission Proprietary and Confidential ©2017 9


Dependencies
Navigate to File -> Import -> New Module
Click on Import .JAR/.AAR Package
Add AAR file path in File name

Dependency Description
idm-imgproc-#.#.##.#@aar Image Processing Library(Use latest released
(e.g idm-imgproc-1.1.99.15.aar) version)
opencv_#.#@aar OpenCV Library(Use latest released version)
(e.g opencv_3.2.aar)
card.io-#.#.#.aar CardIO Library(Use latest released version)
(e.g card.io-5.4.2.aar)
compile Support library for face-detection
'com.google.android.gms:play-
services-vision:9.2.0'

Add above dependency in build.gradle


of your main project.

Check the Android Studio sample project to learn the most common use.

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(MainActivity.this, url,


loginID, password, merchantID, productID, productName, language);

ImageProcessingSDK imageProcessingSDK = ImageProcessingSDK.initialize(MainActivity.this, url,


loginID, password, merchantID, productID, productName, enableDebug);

Note: Mandatory parameters are highlighted.

Parameter Type Default Range Description


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 Language code, Currently English and
Spanish supported

IDmission Proprietary and Confidential ©2017 10


enableDebug boolean Enable/Disable threshold text
EnableGPS boolean Enable/Disable GPS fetching

Initializing Labels
ImageProcessingSDK.initializeLabels(HashMap<String, String> englishLabelMap, HashMap<String,
String> spanishLabelMap);

Parameter Type Default Description


englishLabelMap HashMa Blank You can add following key with your
p Map 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"

spanishLabelMap HashMa Blank Keys are same as above.


p Map This map is for changing Spanish
labels.

Labels meaning:

Label key Used for Label default value


IDmission Proprietary and Confidential ©2017 11
align_document_img_capture For aligning the ID/Document in the Align document inside the green
frame. corners and wait, we'll take the
photo for you.
subject_is_too_dark_img_capture For letting user know the low light It's too dark to take a good
while ID/Document capture. image. Find a place with better
lighting.
out_of_focus_img_capture For letting user know out of focus Tap screen to focus or move
while ID/Document capture. camera closer/away
too_much_glare_img_capture For letting user know of too much Too much light, move document
glare while ID/Document capture. away from direct light
subject_is_too_dark_fc_detect For letting user know the low light It's too dark to take a good
while Live face capture. image. Find a place with better
lighting.
out_of_focus_fc_detect For letting user know out of focus Tap screen to focus or move
while Live face capture. camera closer/away
move_camera_closer_to_your_face For letting user know if face is too Move camera closer to face and
far behind while Live face capture. look towards light.
camera_movement_fc_detect For letting user know to keep face Hold camera steady.
steady and smile while Live face
capture.
keep_face_steady For letting user know to keep face Keep your face steady
steady and smile while Live face
capture.
smile_please For letting user know to keep face Hold camera steady and smile
steady and smile while Live face please.
capture.
face_detected For letting user know Live face is Face detected
captured.
light For letting user know Light %. (only Light %
visible in debug mode)
focus For letting user know Focus %. (only Focus %
visible in debug mode)
glare For letting user know glare %. (only Glare %
visible in debug mode)
smile For letting user know smile %. (only Smile %
visible in debug mode)
page_title_image_capture For setting title text for Capturing identification
ID/Document capture.
page_title_face_detection For setting title text for ILive face Detecting face
capture.

IDmission Proprietary and Confidential ©2017 12


Customize User Interface
To customize UI component position on id-capture and face-detection screen.

ImageProcessingSDK.customizeUserInterface(boolean faceTitleOnTop, boolean


faceHintMessageOnTop, boolean faceHintIconOnTop, boolean faceTitleImageOnTop,String
idTitleAlignment,String idHintMsgAlignment,String idTitleImgMsgAlignment)

ImageProcessingSDK.customizeUserInterface(boolean faceTitleOnTop, boolean hideFaceTitle,


boolean faceHintMessageOnTop, boolean hideFacehintMsg,
boolean faceHintIconOnTop, boolean hideFacehintIcon,
boolean faceTitleImageOnTop, boolean hideFacetitleImage,
String idTitleAlignment, boolean hideIdCaptureTitle,
String idHintMsgAlignment, boolean hideIdCaptureHintMsg,
String idTitleImgMsgAlignment, boolean hideIdCaptureTitleImg)

Parameter Type Default Description


faceTitleOnTop boolean false Face title message
faceHintMessageOnTop boolean true Hint message
faceHintIconOnTop boolean true Hint icons(Light and Face)
faceTitleImageOnTop boolean true Face title image
idTitleAlignment String(To Top Id capture title
p,
Center,
Bottom)
idHintMsgAlignment String(To Center Hint message
p,
Center,
Bottom)
idTitleImgMsgAlignment String(To Bottom ID capture title image
p,
Center,
Bottom)
hideFaceTitle boolean false Hide face title(Text)
hideFacehintMsg boolean false Hide face hint message(Text)
hideFacehintIcon boolean false Hide face hint icon(Image)
hideFacetitleImage boolean false Hide face title image(Image)
hideIdCaptureTitle boolean false Hide id capture title(Text)
hideIdCaptureHintMsg boolean false Hide id capture hint message(Text)
hideIdCaptureTitleImg boolean false Hide id capture title image(Image)

IDmission Proprietary and Confidential ©2017 13


Automatic Image Capture
To capture an image, use can use following calls. First call will launch camera in portrait mode by
default.

ImageProcessingSDK.autoCapture(activityContext, imageType);

ImageProcessingSDK.autoCapture(activityContext, imageType, capturePortrait);

ImageProcessingSDK.autoCapture(activityContext,imagesTypes,capturePortrait,lightThreshold,minFo
cusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxImageSize,imageH
eight,imageWidth);

ImageProcessingSDK.autoCapture(Activity activityContext, ImageType imagesTypes, boolean


capturePortrait, int lightThreshold, int minFocusThreshold, int maxFocusThreshold, int
glarePercentage, int enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth,
JSONObject additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor)

ImageProcessingSDK.autoCapture(Activity activityContext, ImageType imagesTypes, boolean


capturePortrait, int lightThreshold, int minFocusThreshold, int maxFocusThreshold, int
glarePercentage, int enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth,
JSONObject additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titleImageCaptureBitmap)

ImageProcessingSDK.autoCapture(Activity activityContext, ImageType imagesTypes, boolean


capturePortrait, int lightThreshold, int minFocusThreshold, int maxFocusThreshold, int
glarePercentage, int enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth,
JSONObject additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titleImageCaptureBitmap, boolean showInstruction, int
imageresourceid)

In case we capture front/back multiple times the old image will be deleted.
Note : Front image should be captured before capturing back image as back image(if present) will get
deleted after capturing front image.

Parameter Type Default Range Description


activityContext Context Instance of your activity
imageType Enum ImageType.FRONT or ImageType.BACK

IDmission Proprietary and Confidential ©2017 14


capturePortrait boolean For launching camera in portrait/landscape mode
maxImageSize integer 500 256- Maximum image size in kb
2048
maxFocusThres integer 25 10-50 Minimum focus required
hold
minFocusThres integer 15 5-30 Bare minimum(fallback) focus required
hold
imageHeight integer 830 640- Image Height in pixels
1920
imageWidth integer 1170 480- Image Width in Pixels
1280
lightThreshold integer 60 50-100 Minimum light required
enableCapture integer 15 5-200 No. of seconds after which manual capture is
ButtonTime enabled
glarePercentag integer 1 0-50 Maximum glare in percentage allowed
e
ColorCode Object Hex HexColorCode - Hexcolor string with RRGGBB
ColorCo format without #
idOutlineColor : de,
Color for face Transp Transparency : int value(1-100), where 1 is no
outline arency( transparency and 100 is max transparency.
1-100)
idOutsideOutlin
eColor : Color
for area around
outline

detectedIdOuts
ideOutlineColor
: Color for
detected
screen
titleImageCapt Bitmap null Send a bitmap image to display on screen
ureBitmap
showIntruction boolean false true/fal To show instruction screen
se
imageresourcei Resource Default Custom instruction image
d file id instruct
ion
image

IDmission Proprietary and Confidential ©2017 15


Process Image
To process the image and retrieve data, use the following call.

ImageProcessingSDK.processImage(activityContext, countryCode, stateCode, idType);

The captured image data will be sent to server for processing.

Parameter Type Description


activityContext Context Instance of your activity
idType Enum 3 character ISO country code
countryCode String Refer to ID Type table
stateCode String Refer to States table

ID Type Key ID Type Value


IdType.PASSPORT PP
IdType.NATIONAL_ID NID
IdType.RESIDENCE_CARD RID
IdType.DRIVERS_LICENSE DL
IdType.VOTER_ID_CARD VID
IdType.TAX_ID_CARD TID
IdType.WORK_VISA_PERMIT WV
IdType.STUDENT_VISA_PERMIT SV
IdType.MILITARY_POLICE_GOVERNMENT_ID GID
IdType.BOAT_SHIP_ID_CARD BID
IdType.OTHERS OTH
IdType.GLOBAL_ENTRY_CARD GE

State State Name State State Name State State Name


Code Code Code
AK Alaska LA Louisiana OH Ohio
AL Alabama MA Massachusetts OK Oklahoma
AR Arkansas MD Maryland OR Oregon
AZ Arizona ME Maine PA Pennsylvania
CA California MI Michigan RI Rhode Island
CO Colorado MN Minnesota SC South Carolina
CT Connecticut MO Missouri SD South Dakota
DE Delaware MS Mississippi TN Tennessee
IDmission Proprietary and Confidential ©2017 16
FL Florida MT Montana TX Texas
GA Georgia NC North Carolina UT Utah
HI Hawaii ND North Dakota VA Virginia
IA Iowa NE Nebraska VT Vermont
ID Idaho NH New Hampshire WA Washington
IL Illinois NJ New Jersey WI Wisconsin
IN Indiana NM New Mexico WV West Virginia
KS Kansas NV Nevada WY Wyoming
KY Kentucky NY New York

Process Image with additional data


This is an overloaded API to process the image and retrieve data. Also additional data can be sent in
JSON format.

ImageProcessingSDK.processImage(activityContext, countryCode, stateCode,


idType,additionalJSON);
ImageProcessingSDK.processImage(activityContext, countryCode, stateCode, idType,additionalJSON,
isFinalSubmit);
ImageProcessingSDK.processImage(activityContext, countryCode, stateCode, idType,additionalJSON,
isFinalSubmit, clearFormKey);
The captured image data will be sent to server for processing.

Parameter Type Description


activityContext Context Instance of your activity
idType Enum 3 character ISO country code
countryCode String Refer to ID Type table
stateCode String Refer to States table
additionalJSON JSONObject JSON Object may contain following optional elements
{
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}
IDmission Proprietary and Confidential ©2017 17
isFinalSubmit boolean Set TRUE to execute submit request.
clearFormKey boolean Clear form key once operation is executed successfully

ID Type Key ID Type Value


IdType.PASSPORT PP
IdType.NATIONAL_ID NID
IdType.RESIDENCE_CARD RID
IdType.DRIVERS_LICENSE DL
IdType.VOTER_ID_CARD VID
IdType.TAX_ID_CARD TID
IdType.WORK_VISA_PERMIT WV
IdType.STUDENT_VISA_PERMIT SV
IdType.MILITARY_POLICE_GOVERNMENT_ID GID
IdType.BOAT_SHIP_ID_CARD BID
IdType.OTHERS OTH

State State Name State State Name State State Name


Code Code Code
AK Alaska LA Louisiana OH Ohio
AL Alabama MA Massachusetts OK Oklahoma
AR Arkansas MD Maryland OR Oregon
AZ Arizona ME Maine PA Pennsylvania
CA California MI Michigan RI Rhode Island
CO Colorado MN Minnesota SC South Carolina
CT Connecticut MO Missouri SD South Dakota
DE Delaware MS Mississippi TN Tennessee
FL Florida MT Montana TX Texas
GA Georgia NC North Carolina UT Utah
HI Hawaii ND North Dakota VA Virginia
IA Iowa NE Nebraska VT Vermont
ID Idaho NH New Hampshire WA Washington
IL Illinois NJ New Jersey WI Wisconsin
IN Indiana NM New Mexico WV West Virginia
KS Kansas NV Nevada WY Wyoming
KY Kentucky NY New York

IDmission Proprietary and Confidential ©2017 18


Live Face Capture
To detect live face and capture an image, use the following calls.

ImageProcessingSDK.setImageProcessingResponseListener(activityContext);
imageProcessingSDK.detectFace(activityContext, lightThreshold, focusThreshold,
detectionThreshold, launchFrontCamera);

imageProcessingSDK.detectFace(MainActivity.this, lightThresholdVal, focusThresholdVal,


detectionThreshold,maxImageSize, launchFrontCamera);

imageProcessingSDK.detectFace(MainActivity.this, lightThresholdVal, focusThresholdVal,


detectionThreshold,maxImageSize, launchFrontCamera, showPreview);

ImageProcessingSDK.detectFace(Activity activityContext, int lightThreshold, int focusThreshold, int


faceDetectionThreshold, int maxImageSize, boolean launchFrontCamera, boolean showPreview,
ColorCode faceOutlineHexColor, ColorCode detectedFaceOutlineHexColor, ColorCode
outsideFaceOutlineColor);

ImageProcessingSDK.detectFace(Activity activityContext, int lightThreshold, int focusThreshold, int


faceDetectionThreshold, int maxImageSize, boolean launchFrontCamera, boolean showPreview,
ColorCode faceOutlineHexColor, ColorCode detectedFaceOutlineHexColor, ColorCode
outsideFaceOutlineColor, Bitmap titleBitmap);

ImageProcessingSDK.detectFace(Activity activityContext, int lightThreshold, int focusThreshold, int


faceDetectionThreshold, int maxImageSize, boolean launchFrontCamera, boolean showPreview,
ColorCode faceOutlineHexColor, ColorCode detectedFaceOutlineHexColor, ColorCode
outsideFaceOutlineColor, Bitmap titleBitmap, boolean showInstruction, int imageresourceid);

Parameter Type Default Range Description


lightThreshold Integer 60 50-100 Light Threshold
focusThreshold Integer 15 10-50 Focus Threshold
detectionThreshold Integer 20 10-50 Detection Threshold
maxImageSize Integer 500 256-2048 Maximum image size
in kb
launchFrontCamera boolean true true-false For launching front
camera by default
showPreview boolean true true-false Enable/Disable
preview screen after
face-detection
ColorCode Object Hex HexColorCode -
IDmission Proprietary and Confidential ©2017 19
ColorCode Hexcolor string with
faceOutlineHexColor , RRGGBB format
: Face outline color Transpare without #
ncy(1-
detectedFaceOutline 100) Transparency : int
HexColor : Detected value(1-100), where 1
face color is no transparency
and 100 is max
outsideFaceOutlineC transparency.
olor : Color outside
face outline
titleBitmap Bitmap null Send a bitmap image
to display on screen
showIntruction boolean false true/false To show instruction
screen
imageresourceid Resourc Default Custom instruction
e file id instructi image
on
image

Face Verification
To match face image, use the following call.

ImageProcessingSDK.matchFaceImage(activityContext, faceImageType, idImageType);

Parameter Type Description

faceImageType String Keyname:


FACE
PROCESSED_FACE
OVAL_FACE
idImageType String Keyname:
INPUT_IMAGE_FRONT
PROCESSED_IMAGE_FRONT

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.

Face Verification with additional data


This is an overloaded API for face matching. Also additional data can be sent in JSON format.
IDmission Proprietary and Confidential ©2017 20
ImageProcessingSDK.matchFaceImage(activityContext, faceImageType,
idImageType,additionalJSON);
ImageProcessingSDK.matchFaceImage(activityContext, faceImageType,
idImageType, additionalJSON, isFinalSubmit);
ImageProcessingSDK.matchFaceImage(activityContext, faceImageType,
idImageType, additionalJSON, isFinalSubmit, clearFormKey);

Result Type Description


Parameter
faceImageType String Keyname:
FACE
PROCESSED_FACE
OVAL_FACE
idImageType String Keyname:
INPUT_IMAGE_FRONT
PROCESSED_IMAGE_FRONT
additionalJSON JSONObject JSON Object may contain following optional
elements
{
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}
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 Verification
To verify customer image, use the following call.(For verifying customer face image should be
capture first)
IDmission Proprietary and Confidential ©2017 21
ImageProcessingSDK.verifyCustomer(activityContext, biometricType);

ImageProcessingSDK.verifyCustomer(activityContext, biometricType, additionalJSON);

Parameter Type Range Description


activityContext Context Context
biometricType String FACE For customer verification only face is supported for
now.

Keyname:
FACE
additionalJSON JSONOb JSON Object may contain following optional elements
ject {
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}

Process Image and Verify Face


To process the image and match face image, use the following call.

ImageProcessingSDK.processImageAndMatchFace(activityContext, countryCode, stateCode, idType,


faceImageType);

The captured image data will be sent to server for processing.

Parameter Type Description


activityContext Context Instance of your activity
idType Enum 3 character ISO country code
IDmission Proprietary and Confidential ©2017 22
countryCode String Refer to ID Type table mentioned above
stateCode String Refer to States table mentioned above
faceImageType String Keyname:
FACE
PROCESSED_FACE
OVAL_FACE

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.

Process Image and Verify Face with additional data


This is an overloaded API to process the image and match face image. Also additional data can be
sent in JSON format

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);
The captured image data will be sent to server for processing.

Parameter Type Description


activityContext Context Instance of your activity
idType Enum 3 character ISO country code
countryCode String Refer to ID Type table mentioned above
stateCode String Refer to States table mentioned above
faceImageType String Keyname:
FACE
PROCESSED_FACE
OVAL_FACE
additionalJSON JSONObject JSON Object may contain following optional
elements
{
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
IDmission Proprietary and Confidential ©2017 23
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}
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.

Card Capture
To capture a card, use the following call.

ImageProcessingSDK.detectCard(activityContext);
ImageProcessingSDK.detectCard(activityContext, JSONObject additionalJSON);

Parameter Type Description


activityContext Context Instance of your activity
additionalJSON JSONOb JSON Object may contain following optional elements
ject {
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}

Proof Of Address Capture


To capture address proof image:

ImageProcessingSDK.captureProofOfAddress(activityContext, capturePortrait);
;

IDmission Proprietary and Confidential ©2017 24


ImageProcessingSDK.captureProofOfAddress(activityContext, capturePortrait);

ImageProcessingSDK.captureProofOfAddress(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth);

ImageProcessingSDK.captureProofOfAddress(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth, additionalJSON);

ImageProcessingSDK.captureProofOfAddress(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold, int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor)

ImageProcessingSDK.captureProofOfAddress(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold, int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titileImage)

ImageProcessingSDK.captureProofOfAddress(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold, int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titileImage, boolean showInstruction, int imageresourceid)

Capture Bank Statement


To capture bank statement image:

ImageProcessingSDK.captureBankStatement(activityContext, capturePortrait)
;

ImageProcessingSDK.captureBankStatement(activityContext, capturePortrait);

ImageProcessingSDK.captureBankStatement(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth);

IDmission Proprietary and Confidential ©2017 25


ImageProcessingSDK.captureBankStatement(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth, additionalJSON);

ImageProcessingSDK.captureBankStatement(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold,int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize,int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor)

ImageProcessingSDK.captureBankStatement(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold,int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize,int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titleImage)

ImageProcessingSDK.captureBankStatement(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold,int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize,int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titleImage, boolean showInstruction, int imageresourceid)

Capture Birth Certificate


To capture birth certificate image:

ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait)
;

ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait);

ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth);

ImageProcessingSDK.captureBirthCertificate(activityContext, capturePortrait,
lightThreshold,minFocusThreshold,maxFocusThreshold,glarePercentage,enableCaptureButtonTime,maxI
mageSize,imageHeight,imageWidth, additionalJSON);

ImageProcessingSDK.captureBirthCertificate(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold, int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth, JSONObject
IDmission Proprietary and Confidential ©2017 26
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor)

ImageProcessingSDK.captureBirthCertificate(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold, int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titleImage)

ImageProcessingSDK.captureBirthCertificate(Activity activityContext, boolean capturePortrait, int


lightThreshold, int minFocusThreshold, int maxFocusThreshold, int glarePercentage, int
enableCaptureButtonTime, int maxImageSize, int imageHeight, int imageWidth, JSONObject
additionalJSON, ColorCode idOutlineColor, ColorCode idOutsideOutlineColor, ColorCode
detectedIdOutsideOutlineColor, Bitmap titleImage, boolean showInstruction, int imageresourceid)

Parameter Type Default Range Description


activityContext Context Instance of your activity
capturePortrait boolean For capturing image in portrait mode
maxImageSize integer 500 256- Maximum image size in kb
2048
maxFocusThres integer 25 10-50 Minimum focus required
hold
minFocusThres integer 15 5-30 Bare minimum(fallback) focus required
hold
imageHeight integer 830 640- Image Height in pixels
1920
imageWidth integer 1170 480- Image Width in Pixels
1280
lightThreshold integer 60 50-100 Minimum light required
enableCapture integer 15 5-200 No. of seconds after which manual capture is
ButtonTime enabled
glarePercentag integer 1 0-50 Maximum glare in percentage allowed
e
maxImageSize integer 500 256- Maximum image size in kb
2048
additionalJSON JSONOb JSON Object may contain following optional
ject elements
{
"Customer_Name": "",
"Unique_Employee_Number": "",

IDmission Proprietary and Confidential ©2017 27


"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}
ColorCode Object Hex HexColorCode - Hexcolor string with RRGGBB
ColorCo format without #
idOutlineColor : de,
Color for face Transpa Transparency : int value(1-100), where 1 is no
outline rency(1- transparency and 100 is max transparency.
100)
idOutsideOutlin
eColor : Color
for area around
outline

outsideFaceOut
lineColor : Color
outside face
outline

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

Parameter Type Default Range Description

IDmission Proprietary and Confidential ©2017 28


activityCont Context Instance of your Activity
ext
recordingTi Integer 10 Voice Recording time
me
recordWithU Boolean 0 Voice Recording voice in
I foreground or background
additionalJS JSONObjec JSON Object may contain
ON t following optional elements
{
"Customer_Name":
"",
"Unique_Employee_
Number": "",
"Service_ID": "",
"Customer_Email":
"",
"Customer_Type": "",
"Customer_Phone":
"",
"Unique_Employee_C
ode": "",
"Unique_Customer_N
umber": "",
"Unique_Merchant_N
umber": "",
"Customer_Attribute
": ""
}

Capture 4F Fingerprint
To capture four fingerprint , use the following call.

ImageProcessingSDK.captureFourFingerprint(Activity activityContext, int fourFingFocusedRatio)

Parameter Type Default Range Description

activityContext Context Instance of your Activity

fourFingFocusedR Integer 15 30 Focus Threshold


atio

IDmission Proprietary and Confidential ©2017 29


Capture Fingerprint
To capture fingerprint, use the following call.

ImageProcessingSDK.captureFingerprint(Activity activityContext, FingerprintDeviceType


fingerprintDeviceType, FingerType fingerType, int minNFIQValue, int deviceTimeout, int
minImageSize)

Parameter Type Default Range Description

activityContext Context Instance of your Activity

fingerprintDevice FingerprintDevice Futronic Fingerprint device to be


Type Type Class with selected.
two parameter
Futronic,IB_Watso
n

fingerType FingerType class Finger to be selected

minNFIQValue Int 3 Minimum nfiq value

deviceTimeOut Int 50 Minimum time out value

minImageSize Int 20 Minimun image size

Clear Fingerprint
To clear fingerprint, use the following call.

ImageProcessingSDK.clearFingerprint(FingerType fingerType)

Parameter Type Default Range Description

fingerType FingerType RTHUMB Finger to be selected


class

Fingerprint Enrolment
To enrol fingerprint, use the following call.
IDmission Proprietary and Confidential ©2017 30
ImageProcessingSDK.enrollFingerprint(Activity activityContext, JSONObject additionalJSON)

ImageProcessingSDK.enrollFingerprint(Activity activityContext, JSONObject additionalJSON,


boolean clearFormKey)

Parameter Type Defaul Range Description


t
activityConte Context Instance of your activity
xt
additionalJSO JSONObject JSON Object may contain following
N optional elements
{
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}

ClearFormKey boolean 0 Clear form key once operation is


executed successfully
Capture 4F Fingerprint or Capture Fingerprint must be performed prior to this call. The captured
fingerprint data will be sent to server for processing.

Fingerprint Veification
To verify fingerprint, use the following call

ImageProcessingSDK.verifyFingerprint(Activity activityContext, JSONObject additionalJSON)

ImageProcessingSDK.verifyFingerprint(Activity activityContext, JSONObject additionalJSON, boolean


clearFormKey)

IDmission Proprietary and Confidential ©2017 31


Parameter Type Default Range Description

activityCont Context Instance of your activity


ext
additionalJS JSONObject JSON Object may contain following
ON optional elements
{
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}

ClearFormK boolean 0 Clear form key once operation is


ey executed successfully

Capture 4F Fingerprint or Capture Fingerprint must be performed prior to this call. The captured
fingerprint data will be sent to server for processing.

Video Recording
To complete operation, use the following call.

ImageProcessingSDK.startVideoRecording(Activity activityContext,int
videoRecordingTime,JSONObject additionalJSON,String textOnVideoScreen)

Parameter Type Default Range Description

activityContext Context Instance of your Activity

videoRecordingT Int 10 Time limit to record a video


ime

IDmission Proprietary and Confidential ©2017 32


additionalJSON JSONObjec JSON Object may contain following
t optional elements
{
"Customer_Name": "",
"Unique_Employee_Number":
"",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number":
"",
"Unique_Merchant_Number":
"",
"Customer_Attribute": ""
}
textOnVideoScre String String data to be seen on video
en recording screen

GPS Capture
To capture GPS, use the following call.

ImageProcessingSDK.completeOperation(activityContext)

Parameter Type Default Range Description

activityCont Context Instance of your Activity


ext

Complete Operation
To complete operation, use the following call.

ImageProcessingSDK.completeOperation(activityContext);

All captured data stored in internal storage will be deleted.

IDmission Proprietary and Confidential ©2017 33


Delete Image
To delete captured image data, use the following call.

ImageProcessingSDK.deleteData();

Set Image
API to allow client app to pass images in hashmap these images will be replaced in SDK and it can be
processed in SDK flow.

ImageProcessingSDK.setImages(HashMap<String, String> images);

Key Value(Base64 image)


FRONT Base64 of front image
BACK Base64 of back image
FACE Base64 of face image
PROCESSED_FACE Base64 of processed face image
OVAL_FACE Base64 of processed face(oval) image
CARD Base64 of card image
POA_IMAGE Base64 of POA image
BANK_STATEMENT Base64 of bank statement
BIRTH_CERTIFICATE Base64 of birth certificate
NOTE : All the keys name are similar to keyname used while image retrieval from SDK.

Capture QR/BarCode
Capture QR/BarCode by using the following call.

ImageProcessingSDK.scanBarcode(Activity activityContext,JSONObject additionalJSON)

Parameter Type Default Range Description

activityContext Context Instance of your Activity

IDmission Proprietary and Confidential ©2017 34


additionalJSON JSONObjec JSON Object may contain following
t optional elements
{
"Customer_Name": "",
"Unique_Employee_Number":
"",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number":
"",
"Unique_Merchant_Number":
"",
"Customer_Attribute": ""
}

Capture Generic Document


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

Parameter Type Default Range Description


activityContext Context Instance of your activity
capturePortrait boolean For capturing image in portrait mode
maxImageSize integer 500 256- Maximum image size in kb
2048
maxFocusThres integer 25 10-50 Minimum focus required
hold
minFocusThres integer 15 5-30 Bare minimum(fallback) focus required
hold
imageHeight integer 830 640- Image Height in pixels
1920
imageWidth integer 1170 480- Image Width in Pixels
IDmission Proprietary and Confidential ©2017 35
1280
lightThreshold integer 60 50-100 Minimum light required
enableCapture integer 15 5-200 No. of seconds after which manual capture is
ButtonTime enabled
glarePercentag integer 1 0-50 Maximum glare in percentage allowed
e
maxImageSize integer 500 256- Maximum image size in kb
2048
additionalJSON JSONOb JSON Object may contain following optional
ject elements
{
"Customer_Name": "",
"Unique_Employee_Number": "",
"Service_ID": "",
"Customer_Email": "",
"Customer_Type": "",
"Customer_Phone": "",
"Unique_Employee_Code": "",
"Unique_Customer_Number": "",
"Unique_Merchant_Number": "",
"Customer_Attribute": ""
}
ColorCode Object Hex HexColorCode - Hexcolor string with RRGGBB
ColorCo format without #
idOutlineColor : de,
Color for face Transpa Transparency : int value(1-100), where 1 is no
outline rency(1- transparency and 100 is max transparency.
100)
idOutsideOutlin
eColor : Color
for area around
outline

outsideFaceOut
lineColor : Color
outside face
outline
FieldName String Generate document according field Name

IDmission Proprietary and Confidential ©2017 36


5. Callback
To receive callbacks, the class should implement ImageProcessingResponseListener interface.

public class YourActivity implements ImageProcessingResponseListener

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

Status Code Status Message


0 Image captured successfully
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.
14 Original call is in process.
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 sometime
504 Error in processing your request. Gateway timeout
404 Resource URL could not found. 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.

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
IDmission Proprietary and Confidential ©2017 37
available in resultMap with key BACK.

Customize User Interface


public void onCustomizeUserInterfaceResultAvailable(Map<String, String> resultMap, Response
response);

Process Image
public void onImageProcessingResultAvailable(Map<String, String> resultMap, Response response);

Result Parameter Description Result Parameter Description


Status_Code Response status Code DocumentType ID type
Status_Message Response status ID_Image_Front Front ID image
message
Valid_Issue_Date Valid issue date flag IssueDate Issue date
Address Address IssuingCountry Country code of issuing
country
Age_Over_18 Age over 18 flag Last_Name Last name
Date_of_Birth Date of birth MRZ_Data Machine readable data
Exception Image processing Java MRZ_Detected Machine readable data
error message flag
Expiration_Date ID Expired flag MRZErrorMessages MRZ check digit error
Face_Detected Face detection flag MRZValid MRZ valid flag
First_Name First name Name Name
ID_Image_Back Back ID image Nationality Nationality
ID_Country 3 character ISO country Processed_Image Base64 of processed front
code ID image
ID_Not_Expired ID Expired flag ProcessedImageID_BA Base64 of processed back
CK ID image
IDNumber ID/Document Number Security_Feature_Mat Security feature matched
ch
IDNumber2 Secondary ID number ID_State Refer to States table

Live Face Capture


public void onFaceDetectionResultAvailable(Map<String, String> resultMap,Response response);

Result Parameter Description


IDmission Proprietary and Confidential ©2017 38
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 Automatic Image Capture callback table mentioned above for Response object
description.

Face Verification
public void onFaceMatchingResultAvailable(Map<String, String> resultMap, Response response);

Result Parameter Description


Status Response status Code
Status_Message Response status message
FormID Form identifier
FaceVerificationStatus Face verification result
FaceMatchingScore Face matching score

Customer Verification
public void onCustomerVerificationResultAvailable(Map<String, String> resultMap, Response
response);

Result Parameter Description


Status Response status Code
Status_Message Response status message
FormID Form identifier
State State
FormState Form State
FaceVerificationStatus Face verification result
CustomerCode Customer code
CustomerStatus Customer status

Process Image and Verify Face


public void onImageProcessingAndFaceMatchingResultAvailable(Map<String, String> resultMap,
IDmission Proprietary and Confidential ©2017 39
Response response);

Result Parameter Description Result Parameter Description


Status_Code Response status Code DocumentType ID type
Status_Message Response status ID_Image_Front Front ID image
message
Valid_Issue_Date Valid issue date flag IssueDate Issue date
Address Address IssuingCountry Country code of issuing
country
Age_Over_18 Age over 18 flag Last_Name Last name
Date_of_Birth Date of birth MRZ_Data Machine readable data
Exception Image processing Java MRZ_Detected Machine readable data
error message flag
Expiration_Date ID Expired flag MRZErrorMessages MRZ check digit error
Face_Detected Face detection flag MRZValid MRZ valid flag
First_Name First name Name Name
ID_Image_Back Back ID image Nationality Nationality
ID_Country 3 character ISO country Processed_Image Base64 of processed
code front ID image
ID_Not_Expired ID Expired flag ProcessedImageID_BAC Base64 of processed
K back ID image
IDNumber ID/Document Number Security_Feature_Match Security feature
matched
IDNumber2 Secondary ID number ID_State Refer to States table
FormID Form identifier FaceVerificationStatus Face verification result

Card Capture
public void onCardDetectionResultAvailable (Map<String, String> resultMap, Response response);

Result Parameter Description


CardType Card type
CardNumber Card number
CardExpiryDate Card expiry date
CARD Redacted card image

Please refer Automatic Image Capture callback table mentioned above for Response object
description.

IDmission Proprietary and Confidential ©2017 40


Proof Of Address:
public void onCardDetectionResultAvailable(Map<String, String> resultMap, Response response);

Result Parameter Description


POA_IMAGE Proof of address image will be available in
resultMap with key POA_IMAGE.

Please refer Automatic Image Capture callback table mentioned above for Response object
description.

Bank Statement:
public void onCaptureBankStatementResultAvailable(Map<String, String> resultMap, Response
response);

Result Parameter Description


BANK_STATEMENT Bank statement image will be available in
resultMap with key BANK_STATEMENT.

Please refer Automatic Image Capture callback table mentioned above for Response object
description.

Birth Certificate:
public void onCaptureBirthCertificateResultAvailable(Map<String, String> resultMap, Response
response);

Result Parameter Description


BIRTH_CERTIFICATE Birth certificate image will be available in
resultMap with key BIRTH_CERTIFICATE.

Please refer Automatic Image Capture callback table mentioned above for Response object
description.

Start Voice Recording


public void onVoiceRecordingFinished(Map<String, String> resultMap, Response response);

IDmission Proprietary and Confidential ©2017 41


Result Parameter Description

VOICE_RECORDING Recorded Voice file path will be available in resultMap


with key FILEPATH.

Capture 4F Fingerprint
public void onFourFingerCaptureFinished(Map<String,String > resultMap, Response response);

Result Parameter Description

CAPTURE_4F_FINGER Finger print images will be available in resultMap with


PRINT keys LRFINGER,LMFINGER
,LIFINGER,LLFINGER,RRFINGER,RMFINGER,
RIFINGER,RLFINGER.

Capture Fingerprint
public void onFingerprintCaptureFinished(Map<String,String > resultMap, Response response);

Result Parameter Description

CAPTURE_FINGERP Finger image ,Finger type,Finger Count will be available


RINT in resultMap with keys
FINGEPRINT,FINGER_TYPE,FINGER_COUNT.

Fingerprint Enrolment
public void onFingerprintEnrolmentFinished(Map<String,String > resultMap, Response response);

IDmission Proprietary and Confidential ©2017 42


Result Parameter Description

FINGERPRINT_ENROL Finger enrolment status message is returned in


MENT response.

Fingerprint Verification
public void onFingerprintVerificationFinished(Map<String,String > resultMap, Response response);

Result Parameter Description

FINGERPRINT_VERIFIC Finger Verification status message is returned in


ATION response.

Video Recording
public void onVideoRecordingFinished(Map<String,String > resultMap, Response response);

Result Parameter Description

VIDEO_RECORDING Recorded Video file path will be available in resultMap


with key FILEPATH.

GPS Capture
public void onGPSCoordinateAvailable(Map<String, String> resultMap, Response response);

Result Parameter Description

GPS_CAPTURE GPS status message is returned in response

Complete Operation
public void onOperationResultAvailable(Map<String, String> resultMap, Response response);

Result Parameter Description

IDmission Proprietary and Confidential ©2017 43


Status_Code Response status Code
Status_Message Response status message
State Refer to Form status table below

Capture QR/BarCode
public void onScanBarcodeFinished(Map<String, String> resultMap, Response response);

Result Parameter Description


SCAN_BARCODE_DA Barcode/QR code Image, Type will be available in
TA resultMap with key SCAN_BARCODE_DATA

Capture Generic Document

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.

Form Status Information

Form Status Description Recommended Actions to be taken


Approved All checks in our system have passed and data was No action required, ID is approved.
extracted with the level of accuracy within our
defined thresholds based on image quality.
Expired ID If an ID has an expiration date that is expired as of The application using this SDK should prompt the user to
today's date. provide an ID that is not expired.
Face Not If a face is not detected on an image. The main The application using this SDK should prompt the user to
Detected reason for this is that the face was not present on provide an clear image of ID that has a photo included.
the ID, however in some cases this could be due to
poor image quality, or if there is a glare
throughout the image.
ID Back Image If the back of an ID is expected to be present and if The application using this SDK should prompt the user to
not found the back image was not sent or a blank image was provide a clear image of the back of the ID.
provided.
ID Front and If the data extracted from the back of the ID image Manual review of the ID in the Back office because the data
Back Mismatch does not belong to the presented front of the ID from the front does match the data extracted from the
IDmission Proprietary and Confidential ©2017 44
image. barcode/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 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.
ID Front Image If the front of an ID is not uploaded or a blank The application using this SDK should prompt the user to
Not Found image was provided. provide a clear image of the front of the ID.
ID Not Accepted If the uploaded ID is configured invalid for the The application using this SDK should prompt the user to
selected country. provide an ID that is in the list of accepted ID Types. (NOTE:
The application should be asking the user to select from a
drop-down list to limit this from occurring).
Invalid ID The format of the ID Number extracted from the Manual Review of the ID Number is required to verify if there
Number ID does not pass the validation rules configured is issue in the OCR or IDNumber is actually invalid format.
for that ID Type.
Low Resolution If either the front or back image that is uploaded The application using this SDK should prompt the user to
has been detected as low resolution or the ID recapture the images in better lighting without glare so the ID
image is not a color/gray scale image. This is based can be processed properly.
on resolution thresholds defined in our system.
MRZ and ID Data If the data extracted from the MRZ does not Manual review of the ID in the Back office because the data
Mismatch match the data extracted from the ID image itself. from the front does match the data extracted from the MRZ.
No Image Found If the ID front and back images are blank or white The application using this SDK should prompt the user to
without any ID Image. recapture the images in better lighting without glare so the ID
can be processed properly.
Pending Review If no other conditions are met that push an ID into Manual review of the ID in the Back office.
the listed states, it will go into Pending Review.
Review Barcode If a barcode is expected to be present, and the The application using this SDK should prompt the user to
barcode data is not detected by our system. recapture the images where the barcode is present in better
lighting without glare so the ID can be processed properly.
Review Facial If a customer photo is captured and does not Manual Review in the Back Office.
Biometric Match biometrically match the photo in the ID document, The Customer Photo would need to be manually compared to
Not Verified the ability to review the images is in the back the photo on the ID. If the person appears to be the same, it
office. would be approved, if not it would be marked as a mis-match.
Review ID Back If the flags that determine a back image is not The application using this SDK should prompt the user to
Image not found found are questionable, then the ability to review provide a clear image of the back of the ID. If this issue occurs
the ID back image is available in the back office. a second time, Manual Review in the Back Office would be
required to review the back image manually.
Review ID Front If the back of an ID is expected to be present and if Manual review of the ID in the Back office because the data
and Back the data extracted from the front of the ID data from the front does match the data extracted from the
Mismatch does not match the data extracted from the barcode. The Back Office user will need to be able to see the
barcode, then the ability to review the data is ID Number field that was extracted from the front of the ID vs
available in the back office. 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.
Review MRZ and If the data extracted from the MRZ does not Manual review of the ID in the Back office because the data
ID Data match the data extracted from the ID image itself. from the front does match the data extracted from the MRZ.
Mismatch 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.
IDmission Proprietary and Confidential ©2017 45
Review MRZ If the MRZ Validation flag (Machine Readable Manual Review in the Back Office. The MRZ String should be
Invalid Zone) is questionable, and MRZ Data is expected provided and an MRZ parsing tool should be present for the
to be present, then the ability to review the MRZ Back Office user to utilize. In most cases, this is due to a glare
is available in the back office. An MRZ parsing tool on the MRZ so the data was extracted improperly. It can be
is provided in the event the MRZ extracted might manually fixed and tested to ensure the MRZ is truly valid.
have a few characters transposed.
Review Template If the image provided does not match any ID Manual Review in the Back Office. This is generally due to
Not Found templates that are configured for a client, it can be poor image quality so a manual check is required to see if it's
reviewed by a back office team to determine if the truly a valid and accepted ID type for the region / customer.
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.
Security Feature If one or more security features defined for the ID Manual Review in the Back Office. This occurs when the ID
Invalid template are detected as not matching with the Template the image is matched against indicates the
image provided. placement of the security feature is off or is not present.

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.
Suspected If an ID has been detected as a sample (logic has The application using this SDK should prompt the user that
Sample been configured to recognize sample ID numbers, the ID they have provided is not valid and to capture image of
names, watermarks and other suspected sample a different ID.
data.)
Suspected If there is any photo editing software (Such as The application using this SDK should prompt the user that
Tampering Paint, Adobe) that has been detected, as well as the ID they have provided is not valid and to capture image of
any dates that have been falsely created or a different ID.
modified in the ID document image.
Template Not If the correct template cannot be matched against Manual Review in the Back Office. This is generally due to
Found those configured for the client, the system will not poor image quality so a manual check is required to see if it's
find a template to associate the image with for truly a valid and accepted ID type for the region / customer.
correct data extraction and validation.
The application using the SDK could also decide to handle this
directly and alert the user that the ID is not accepted and to
capture new images.
Under the age of If the date of birth (extracted from the The Date of Birth indicates that the user is under the Age of
18 barcode/MRZ) calculates the individual as under 18 and SDK can determine if that is already been indicated in
the age of 18. the application, if not SDK should prompt for correct ID.
MRZ Invalid If the MRZ Validation flag (Machine Readable Manual review of the ID in the Back office because the data
Zone) results in determining that the MRZ Data from the front does match the data extracted from the MRZ.
was not correct according to the standards. 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.

IDmission Proprietary and Confidential ©2017 46

You might also like