NAV

iOS SDK Introduction

This document introduces the IDentity iOS 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 iOS 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 SDK packages from below location

SDK Zip URL (All Feature)
SDK Zip URL (Full SDK Without CardIO)
SDK Zip URL (IDValidation, Face Matching & CardIO)
SDK Zip URL (IDValidation & Face Matching Without Models)
SDK Zip URL (IDValidation & Face Matching)
SDK Zip URL (Face Matching)

Download latest SDK packages with XCFramework (Device+Simulator) from below location

SDK Zip URL (All Feature XCFramework)
SDK Zip URL (Full SDK Without CardIO XCFramework)
SDK Zip URL (IDValidation & Face Matching XCFramework)

Overview and Key Features

Overview

The SDK is a comprehensive toolkit that enables the use of any combination of factors of identity to complete digital transformation goals. The goal of this 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 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.

Service IDs

Each of these features are available through various Service IDs. A full list of current available services is provided in the following table. The most commonly used Services from this list are included in Sequence Diagrams Section of this document.

Service ID

Service ID
Service Description Included Features
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.
20 ID Validation Only Capturing ID document(s), validate the ID and extract data from it.
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.
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.
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.
156 Video Id Capturing Selfie, ID Document & Voice.
Additionally Record the Video.
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.
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.
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.
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.
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.
305 Employee Verification Capture of biometric data to verify against a previously enrolled employee.
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 to integrate the SDK are:

Initial Setup

Please refer to the Callback Instructions section of this document for available callback methods.

Initializing the SDK

To create an instance for the SDK, set the following variables:

[AppitSDK initializeAppItSDK:(id)instance url:(NSString*)url loginId:(NSString*)loginId password:(NSString*)password merchantID:(NSString*)merchantID productID:(NSString*)productID productName:(NSString*)productName Language:(NSString*)Language];
[AppitSDK initializeAppItSDK:(id)instance url:(NSString*)url loginId:(NSString*)loginId password:(NSString*)password merchantID:(NSString*)merchantID productID:(NSString*)productID productName:(NSString*)productName Language:(NSString*)Language enableGPS:(bool)enableGPS];

This is the swift method:

AppItSDK.initializeAppItSDK(instance: Any!, url: String!, loginId: String!, password: String!, merchantID: String!, productID: String!, productName: String!, language: String!, enableGPS: Bool)

Note: On the following table, all parameters are mandatory except Language and EnableGPS:

Parameter Type Default Range Description
instance Self - Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
url NSString - IDmission Server URL
loginID NSString - Your Login ID
password NSString - Your Login Password
merchantID NSString - Your Merchant ID
productID NSString - Your Product ID
productName NSString - Your Product Name
Language NSString 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 bool Enable/Disable GPS fetching

Initializing Labels

[AppitSDK initializeLabels:(NSMutableDictionary*)englishLabels spanishLabels:(NSMutableDictionary*)spanishLabels];

Label Parameters

Parameter Type Default Description
englishLabels NSMutableDictionary Blank Dictionary You can add following key with your own message in value to display on UI, this dictionary 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"
"face_detected"
"light"
"focus"
"glare"
"page_title_face_detection"
"page_title_image_capture"
"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"
spanishLabels NSMutableDictionary Blank Dictionary The SpanishLabels dictionary is the same keys as the EnglishLabels (previous example).

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
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 %
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
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.
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!
mrz_not_detected While Capturing ID MRZ Not Detected
mrz_detected_not_valid While Capturing ID Make sure all text on id is visible

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

This is the swift method:

AppItSDK.customizeUserInterface(uiconfiguration: NSMutableDictionary!)

The supported JSON, with description, can be found below:

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": "FFFFFF",
    "id_detected_id_outside_outline_color_alpha": "40",
    "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_type": "Default",
    "id_label_text_style": "Normal",
    "id_label_text_size": "",
    "id_header_text_label_color": "FFFFFF",
    "id_header_text_label_alpha": "1",
    "id_header_text_type": "Default",
    "id_header_text_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": "40",
    "id_capture_success_message_color": "33CC33",
    "id_capture_success_message_color_alpha": "1",
    "id_dummy_image_color": "5CBAEA",
    "id_dummy_image_color_alpha": "1",
    "id_preview_screen": "ENABLE",
    "labels": {
        "light": "Light",
        "focus": "Focus",
        "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",
        "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.",
        "glare":"Glare",
        "align_id_and_mrz_inside_rectangle":"Align document and MRZ inside rectangle",
        "align_barcode_inside_rectangle":"Align BARCODE inside rectangle",
        "mrz_not_detected":"MRZ Not Detected",
        "mrz_detected_not_valid":"Make sure all text on id is visible",
        "barcode_mrz_not_found":"BARCODE or MRZ not found for the selected id.",
        "barcode_detected_error_message":"Barcode is not detected please try again",
        "capturing_id_scanbarcode_pdf_417_msg":"Align PDF 417 barcode inside the rectangle and wait.",
        "capturing_id_scanbarcode_pdf417_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":"Barcode or MRZ is not detected please try again",
        "id_capture_success_message": "Success",
        "id_capture_instruction_continue": "Continue"
    }
  },
  "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": "FFFFFF",
    "id_detected_id_outside_outline_color_alpha": "40",
    "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_type": "Default",
    "id_label_text_style": "Normal",
    "id_label_text_size": "",
    "id_header_text_label_color": "FFFFFF",
    "id_header_text_label_alpha": "1",
    "id_header_text_type": "Default",
    "id_header_text_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": "40",
    "id_capture_success_message_color": "33CC33",
    "id_capture_success_message_color_alpha": "1",
    "id_dummy_image_color": "5CBAEA",
    "id_dummy_image_color_alpha": "1",
    "id_preview_screen": "ENABLE",
    "labels": {
      "light": "Light",
      "focus": "Focus",
      "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",
      "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.",
      "glare":"Glare",
      "align_id_and_mrz_inside_rectangle":"Align document and MRZ inside rectangle",
      "align_barcode_inside_rectangle":"Align BARCODE inside rectangle",
      "mrz_not_detected":"MRZ Not Detected",
      "mrz_detected_not_valid":"Make sure all text on id is visible",
      "barcode_mrz_not_found":"BARCODE or MRZ not found for the selected id.",
      "barcode_detected_error_message":"Barcode is not detected please try again",
      "capturing_id_scanbarcode_pdf_417_msg":"Align PDF 417 barcode inside the rectangle and wait.",
      "capturing_id_scanbarcode_pdf417_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":"Barcode or MRZ 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": "FFFFFF",
    "id_detected_id_outside_outline_color_alpha": "40",
    "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_type": "Default",
    "id_label_text_style": "Normal",
    "id_label_text_size": "",
    "id_header_text_label_color": "FFFFFF",
    "id_header_text_label_alpha": "1",
    "id_header_text_type": "Default",
    "id_header_text_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": "40",
    "id_capture_success_message_color": "33CC33",
    "id_capture_success_message_color_alpha": "1",
    "id_dummy_image_color": "5CBAEA",
    "id_dummy_image_color_alpha": "1",
    "id_preview_screen": "ENABLE",
      "labels": {
         "light": "Light",
          "focus": "Focus",
          "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": "Capturing Front",
          "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.",
          "glare":"Glare",
          "align_id_and_mrz_inside_rectangle":"Align document and MRZ inside rectangle",
          "align_barcode_inside_rectangle":"Align BARCODE inside rectangle",
          "mrz_not_detected":"MRZ Not Detected",
          "mrz_detected_not_valid":"Make sure all text on id is visible",
          "barcode_mrz_not_found":"BARCODE or MRZ not found for the selected id.",
          "barcode_detected_error_message":"Barcode is not detected please try again",
          "capturing_id_scanbarcode_pdf_417_msg":"Align PDF 417 barcode inside the rectangle and wait.",
          "capturing_id_scanbarcode_pdf417_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":"Barcode or MRZ 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": "FFFFFF",
    "id_detected_id_outside_outline_color_alpha": "40",
    "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_type": "Default",
    "id_label_text_style": "Normal",
    "id_label_text_size": "",
    "id_header_text_label_color": "FFFFFF",
    "id_header_text_label_alpha": "1",
    "id_header_text_type": "Default",
    "id_header_text_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": "40",
    "id_capture_success_message_color": "33CC33",
    "id_capture_success_message_color_alpha": "1",
    "id_dummy_image_color": "5CBAEA",
    "id_dummy_image_color_alpha": "1",
    "id_preview_screen": "ENABLE",
      "labels": {
         "light": "Light",
          "focus": "Focus",
          "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": "Capturing Back",
          "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.",
          "glare":"Glare",
          "align_id_and_mrz_inside_rectangle":"Align document and MRZ inside rectangle",
          "align_barcode_inside_rectangle":"Align BARCODE inside rectangle",
          "mrz_not_detected":"MRZ Not Detected",
          "mrz_detected_not_valid":"Make sure all text on id is visible",
          "barcode_mrz_not_found":"BARCODE or MRZ not found for the selected id.",
          "barcode_detected_error_message":"Barcode is not detected please try again",
          "capturing_id_scanbarcode_pdf_417_msg":"Align PDF 417 barcode inside the rectangle and wait.",
          "capturing_id_scanbarcode_pdf417_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":"Barcode or MRZ is not detected please try again",
          "id_capture_success_message": "Success",
          "id_capture_instruction_continue": "Continue"
      }
  },
  "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": "FFFFFF",
    "id_detected_id_outside_outline_color_alpha": "40",
    "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_type": "Default",
    "id_label_text_style": "Normal",
    "id_label_text_size": "",
    "id_header_text_label_color": "FFFFFF",
    "id_header_text_label_alpha": "1",
    "id_header_text_type": "Default",
    "id_header_text_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": "40",
    "id_capture_success_message_color": "33CC33",
    "id_capture_success_message_color_alpha": "1",
    "id_dummy_image_color": "5CBAEA",
    "id_dummy_image_color_alpha": "1",
    "id_preview_screen": "ENABLE",
    "labels": {
     "light": "Light",
      "focus": "Focus",
      "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",
      "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.",
      "glare":"Glare",
      "align_id_and_mrz_inside_rectangle":"Align document and MRZ inside rectangle",
      "align_barcode_inside_rectangle":"Align BARCODE inside rectangle",
      "mrz_not_detected":"MRZ Not Detected",
      "mrz_detected_not_valid":"Make sure all text on id is visible",
      "barcode_mrz_not_found":"BARCODE or MRZ not found for the selected id.",
      "barcode_detected_error_message":"Barcode is not detected please try again",
      "capturing_id_scanbarcode_pdf_417_msg":"Align PDF 417 barcode inside the rectangle and wait.",
      "capturing_id_scanbarcode_pdf417_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":"Barcode or MRZ 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": "FFFFFF",
    "id_detected_id_outside_outline_color_alpha": "40",
    "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_type": "Default",
    "id_label_text_style": "Normal",
    "id_label_text_size": "",
    "id_header_text_label_color": "FFFFFF",
    "id_header_text_label_alpha": "1",
    "id_header_text_type": "Default",
    "id_header_text_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": "40",
    "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",
     "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",
     "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.",
     "glare":"Glare",
     "align_id_and_mrz_inside_rectangle":"Align document and MRZ inside rectangle",
     "align_barcode_inside_rectangle":"Align BARCODE inside rectangle",
     "mrz_not_detected":"MRZ Not Detected",
     "mrz_detected_not_valid":"Make sure all text on id is visible",
     "barcode_mrz_not_found":"BARCODE or MRZ not found for the selected id.",
     "barcode_detected_error_message":"Barcode is not detected please try again",
     "capturing_id_scanbarcode_pdf_417_msg":"Align PDF 417 barcode inside the rectangle and wait.",
     "capturing_id_scanbarcode_pdf417_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":"Barcode or MRZ 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":
    "fd_instruction_button_color": "606060",
    "fd_instruction_button_alpha": "1",
    "fd_instruction_button_txt_color": "FFFFFF",
    "fd_instruction_button_txt_alpha": "1",
    "fd_capture_button_color": "696969",
    "fd_capture_button_color_alpha": "1",
    "fd_label_text_color": "909090",
    "fd_label_text_alpha": "1",
    "fd_label_text_type": "Default",
    "fd_label_text_style": "Normal",
    "fd_label_text_size": "",
    "fd_header_text_label_color": "909090",
    "fd_header_text_label_alpha": "1",
    "fd_header_text_type": "Default",
    "fd_header_text_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_image_bundle_id":"",
    "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_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",
    "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 left",
        "turn_right": "Turn your head right",
        "move_up": "Move your head up",
        "move_down": "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_mask_detected": "Face Mask Detected"
    }
  },
  "camera_finger_capture": {
    "cfc_indexfinger_threshold": "100",
    "cfc_middlefinger_threshold": "100",
    "cfc_ringfinger_threshold": "100",
    "cfc_babyfinger_threshold": "70",
    "cfc_indexfinger_min_threshold": "70",
    "cfc_middlefinger_min_threshold": "70",
    "cfc_ringfinger_min_threshold": "70",
    "cfc_babyfinger_min_threshold": "40",
    "cfc_image_width": "500",
    "cfc_aggressiveness_factor": "1",
    "cfc_zoom_camera": "2",
    "cfc_ridge_width": "45",
    "cfc_process_indexfinger": "Y",
    "cfc_process_middlefinger": "Y",
    "cfc_process_ringfinger": "Y",
    "cfc_process_babyfinger": "Y",
    "cfc_label_text_type": "Default",
    "cfc_label_text_style": "Default",
    "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",
    "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_scan_capture": {
      "barcode_capture_portrait": "N",
      "barcode_max_image_size": "512",
      "labels": {
          "barcode_scan_text_message": "Barcode Scan"
      }
  },
  "signature_capture": {
      "signature_text_color": "000000",
      "signature_text_color_alpha": "1",
      "signature_capture_background": "N",
      "signature_capture_portrait": "N",
      "Enable_Digital_Signature": "Y",
      "labels": {
          "signature_title_label_message": "Sign"
      }
  },
  "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": "12",
      "voice_text_label_size": "12",
      "voice_counter_label_size": "50",
      "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"
      }
    }
}

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

We support the following values for label text style:

DEFAULT, DEFAULT_BOLD, SANS_SARIF, SERIF, MONOSPACE

id_label_text_style

We support the following values for label text style:

Default, Helvetica, Helvetica Bold, Helvetica Bold Oblique, Helvetica Light, Helvetica Light Oblique, Helvetica Neue, Helvetica Neue Bold, Helvetica Neue Bold Italic, Helvetica Neue Condensed Black, Helvetica Neue Condensed Bold, Helvetica Neue Italic, Helvetica Neue Light, Helvetica Neue Light Italic, Helvetica Neue Medium, Helvetica Neue Medium Italic, Helvetica Neue Thin, Helvetica Neue Thin Italic, Helvetica Neue UltraLight, Helvetica Neue UltraLight Italic, Helvetica Oblique

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_style

We support the following values for label text style:

Default, Helvetica, Helvetica Bold, Helvetica Bold Oblique, Helvetica Light, Helvetica Light Oblique, Helvetica Neue, Helvetica Neue Bold, Helvetica Neue Bold Italic, Helvetica Neue Condensed Black, Helvetica Neue Condensed Bold, Helvetica Neue Italic, Helvetica Neue Light, Helvetica Neue Light Italic, Helvetica Neue Medium, Helvetica Neue Medium Italic, Helvetica Neue Thin, Helvetica Neue Thin Italic, Helvetica Neue UltraLight, Helvetica Neue UltraLight Italic, Helvetica Oblique

id_header_text_label_size Header text size.
id_capture_border_style

ID Capture border style supports 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 the image resource ID here.
id_title_label_alignment

ID title label (String) position can be configured using following configuration:

Top, Center, Bottom

id_hint_message_alignment

ID capture hint/instruction message (String) position can be configured using following configuration:

Top, Center, Bottom

id_title_image_alignment

ID title image position can be configured using 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, the following labels are shown on ID-Capture screen:
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
The ID-Capture screen can be customized with your own custom message.

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_style

Following values are supported for label typeface style.

Default, Helvetica, Helvetica Bold, Helvetica Bold Oblique, Helvetica Light, Helvetica Light Oblique, Helvetica Neue, Helvetica Neue Bold, Helvetica Neue Bold Italic, Helvetica Neue Condensed Black, Helvetica Neue Condensed Bold, Helvetica Neue Italic, Helvetica Neue Light, Helvetica Neue Light Italic, Helvetica Neue Medium, Helvetica Neue Medium Italic, Helvetica Neue Thin, Helvetica Neue Thin Italic, Helvetica Neue UltraLight, Helvetica Neue UltraLight Italic, Helvetica Oblique

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_style

Following values are supported for label typeface style.

Default, Helvetica, Helvetica Bold, Helvetica Bold Oblique, Helvetica Light, Helvetica Light Oblique, Helvetica Neue, Helvetica Neue Bold, Helvetica Neue Bold Italic, Helvetica Neue Condensed Black, Helvetica Neue Condensed Bold, Helvetica Neue Italic, Helvetica Neue Light, Helvetica Neue Light Italic, Helvetica Neue Medium, Helvetica Neue Medium Italic, Helvetica Neue Thin, Helvetica Neue Thin Italic, Helvetica Neue UltraLight, Helvetica Neue UltraLight Italic, Helvetica Oblique

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 following configurations:

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 it on the following URL:

Overlay Image Sizes

You can create similar size transparent PNG overlay image and pass it.

fd_image_bundle_id You need to pass bundle id of your app so that SDK can pick image from your bundle.
fd_face_outline_image_id Image name (without .PNG extension) for overlay border image.
fd_outside_face_outline_image_id Image name (without .PNG extension) 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 name (without .PNG extension) in this parameter.
fd_face_outline_progress_images_delay You can customize .gif image delay here.
fd_face_turn_arrow_list

In case you want to customize face turn arrow you need to pass four comma separated image name (without .PNG extension)

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 name (without .PNG extension) here.
fd_passive_text_hint_label_size You can customize passive face hint label text size
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.

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

Custom Camera Fingerprint Capture Configurations

Camera fingerprint capture config
Description
cfc_label_text_style

We support the following values for label typeface style:

Default, Helvetica, Helvetica Bold, Helvetica Bold Oblique, Helvetica Light, Helvetica Light Oblique, Helvetica Neue, Helvetica Neue Bold, Helvetica Neue Bold Italic, Helvetica Neue Condensed Black, Helvetica Neue Condensed Bold, Helvetica Neue Italic, Helvetica Neue Light, Helvetica Neue Light Italic, Helvetica Neue Medium, Helvetica Neue Medium Italic, Helvetica Neue Thin, Helvetica Neue Thin Italic, Helvetica Neue UltraLight, Helvetica Neue UltraLight Italic, Helvetica Oblique

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 SDK Main Functions, Additional SDK Features, and Callback Instructions Sections, 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 (i.e., 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.

ID 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.4 and it is recommended to use this method going forward.

To capture ‘Front’ ID Image use the following APIs:

[AppItSDK captureFrontImage:(id)instance additionalDictionary:(NSMutableDictionary*)additionalDictionary uiConfigDictionary:(NSMutableDictionary*)uiConfigDictionary]

This is the swift method:

AppItSDK.captureFrontImage(instance: Any!, additionalDictionary: NSMutableDictionary!, uiConfigDictionary: NSMutableDictionary!)

To capture ‘Back’ ID Image use the following APIs:

[AppItSDK captureBackImage:(id)instance additionalDictionary:(NSMutableDictionary*)additionalDictionary configDictionary:(NSMutableDictionary*)configDictionary]

This is the swift method:

AppItSDK.captureBackImage(instance: Any!, additionalDictionary: NSMutableDictionary!, uiConfigDictionary: NSMutableDictionary!)

Image Capture Parameters (6.2.6.4 and above)

Parameter Type Description
instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
configDictionary NSMutableDictionary

/*** We can use following config JSON to pass all the configuration parameter; if no value is sent, it will use default value; all the values should be sent as String***/

Note: For customizing UI use “customizeUserInterface” method with JSON string.{
id_capture_portrait : "Y", /***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 : "830",
id_capture_enable : "N", /***supported parameter Y/N ***/
id_generic_doc_fieldname : ""
}
/***Pass the below parameter to enable barcode scanning from given id type***/
country_code: "", // 3-character ISO country code (mandatory parameter)
id_type: "" // Refer to ID Type table (mandatory parameter)
barcode_scan: "N", /***supported parameter Y/N ***/
state_code: "", // 2-character ISO state code
Note: country_code and id_type are mandatory parameters.

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

To capture ‘Selfie’ Image use the following APIs:

[AppItSDK detectFace:(id)instance faceCaptureConfig:(NSMutableDictionary*)faceCaptureConfig additionalDataDictionary:(NSMutableDictionary*)additionalDataDictionary]

This is the swift method:

AppItSDK.detectFace(instance: Any!>, faceCaptureConfig: NSMutableDictionary!, uiConfigDictionary: NSMutableDictionary!)

Live Face Parameters

Parameter Type Description
Instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
commonConfigJSON NSMutableDictionary

/*** We can use following config JSON to pass all the configuration parameter; if no value is sent, it will use default value; all the values 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"
}

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.

[AppItSDK processImage:(id)instance countryCode:(NSString*)countryCode stateCode:(NSString*)stateCode idType:(NSString*)idType, additionalDictionary:(NSMutableDictionary*)additionalDictionary];

[AppItSDK processImage:(id)instance countryCode:(NSString*)countryCode stateCode:(NSString*)stateCode idType:(NSString*)idType, additionalDictionary:(NSMutableDictionary*)additionalDictionary, isFinalSubmit :(bool)isFinalSubmit];

[AppItSDK processImage:(id)instance countryCode:(NSString*)countryCode stateCode:(NSString*)stateCode idType:(NSString*)idType, additionalDictionary:(NSMutableDictionary*)additionalDictionary, isFinalSubmit :(bool)isFinalSubmit clearFormKey :(bool)clearFormKey];

[AppItSDK processImage:(id)instance countryCode:(NSString*)countryCode stateCode:(NSString*)stateCode idType:(NSString*)idType additionalDictionary:(NSMutableDictionary*)additionalDictionary finalSubmit:(bool)finalSubmit clearFormKey:(bool)clearFormKey employeeDictionary:(NSMutableDictionary*)employeeDictionary];

This is the swift method:

AppItSDK.processImage(instance: Any!, countryCode: String!, stateCode: String!, idType: String!, additionalDictionary: NSMutableDictionary!, finalSubmit: Bool, clearFormKey: Bool, employeeDictionary: NSMutableDictionary!)

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

Processing Images Parameters

Parameter Type Description
instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
countryCode String 3-character ISO country code
stateCode String 2-character ISO state code
idType String Refer to Table ID Type
additionalDictionary MutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory. Please refer to the Additional Dictionary Element 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": "",
"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.

employeeDictionary MutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory.

{
"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
Passport PP N
National ID NID Y
Residence Card RID Y
Driving License DL Y
Photo ID PID Y
Voters ID Card VID Y
Tax ID Card TID Y
Work Visa Permit WV Y
Student Visa Permit SV Y
Military Police Government ID GID Y
Boat Ship ID Card BID Y
Others OTH Y
Global Entry Card GE Y
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.

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.

[AppItSDK processImageAndMatchFace:(id)instance countryCode:(NSString*)countryCode stateCode:(NSString*)stateCode idType:(NSString*)idType faceImageType:(NSString*)faceImageType, additionalDictionary:(NSMutableDictionary*)additionalDictionary];

[AppItSDK processImageAndMatchFace:(id)instance countryCode:(NSString*)countryCode stateCode:(NSString*)stateCode idType:(NSString*)idType faceImageType:(NSString*)faceImageType, additionalDictionary:(NSMutableDictionary*)additionalDictionary, isFinalSubmit :(bool)isFinalSubmit];

[AppItSDK processImageAndMatchFace:(id)instance countryCode:(NSString*)countryCode stateCode:(NSString*)stateCode idType:(NSString*)idType faceImageType:(NSString*)faceImageType, additionalDictionary:(NSMutableDictionary*)additionalDictionary isFinalSubmit :(bool)isFinalSubmit clearFormKey :(bool)clearFormKey];

This is the swift method:

AppItSDK.processImageAndMatchFace(instance: Any!, countryCode: String!, stateCode: String!, idType: String!, faceImageType: String!, additionalDictionary: NSMutableDictionary!, finalSubmit: Bool, clearFormKey: Bool, employeeDictionary: NSMutableDictionary!)

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

Process Image and Facial Biometric Verification Parameters

Parameter Type Description
instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
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

FACE_IMAGE

PROCESSED_FACE_IMAGE

additionalDictionary MutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory. Please refer to the Additional Dictionary Element 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.

employeeDictionary MutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory.

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

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 (fingerprint, face, or voice). Also, additional data will be sent in JSON format. This function is used for Service ID: 175.

Objective-C

1.Face API :

[AppItSDK detectFace:(id)instance faceCaptureConfig:(NSMutableDictionary*)uiConfigDictionary];

Face Response :

-(void)faceDetectionResponse:(NSMutableDictionary*)result;

2.Voice API :

[AppItSDK startVoiceRecording:(id)instance recordingTime:(int)recordingTime additionalDictionary:(NSMutableDictionary*)additionalDictionary]

Voice Response :

-(void)voiceRecordingResponse:(NSMutableDictionary* _Nonnull) result;

3.FingerPrint API :

[AppItSDK captureFourFingerprint:(id)instance cameraFingerCaptureConfig:(NSMutableDictionary*)cameraFingerCaptureConfig]

FingerPrint Response :

-(void)fourFingerprintDetectionResponse : (NSMutableDictionary* _Nonnull) result;

4.Generic API :

[AppItSDK genericApiCall:self genericDataDictionary:dictionary];

Generic Response :

-(void)genericApiCallResponse : (NSMutableDictionary * _Nonnull)result;

Swift

  1. Face API :
AppItSDK.detectFace(instance: Any, faceCaptureConfig:NSMutableDictionary)

Face Response :

func faceDetectionResponse(_ result: NSMutableDictionary) { }

2.Voice API :

AppItSDK.startVoiceRecording(instance: Any, recordingTime: int, additionalDictionary: NSMutableDictionary?)

Voice Response :

func voiceRecordingResponse(_ result: NSMutableDictionary) { }

3.FingerPrint API :

AppItSDK.captureFourFingerprint(instance: Any, cameraFingerCaptureConfig:NSMutableDictionary)

FingerPrint Response :

func fourFingerprintDetectionResponse(_ result: NSMutableDictionary) { }

4.Generic API :

AppItSDK.genericApiCall(instance: Any, genericDataDictionary: NSMutableDictionary)

Generic Response :

func genericApiCall(_ result: NSMutableDictionary) { }

Process Image and Facial Biometric Verification Parameters

Parameter Type Description
Instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
additionalDictionary NSMutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory. Please refer to the Additional Dictionary Element at the end of this document for details regarding each of these 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.

[AppItSDK createEmployee:(id)instance employeeDictionary:(NSMutableDictionary*)employeeDictionary additionalDictionary:(NSMutableDictionary*)additionalDictionary finalSubmit:(bool)finalSubmit];

This is the swift method:

AppItSDK.createEmployee(instance: Any!, employeeDictionary: NSMutableDictionary!, additionalDictionary: NSMutableDictionary!, finalSubmit: Bool)

Employee Enrollment with Biometrics Parameters

Parameter Type Description
Instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
additionalDictionary NSMutableDictionary

Dictionary Object may contain following elements; those with a double Asterix** are mandatory.

{
"Service_ID": "",**//
"Unique_Employee_Code": "",
"POST_Data_API_Required" : ""
"Send_Input_Images_in_POST" : ""
"Send_Processed_Images_in_POST" : ""
"Need_Immediate_Response" : ""
}
employeeDictionary MutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory. Please refer to the Additional Dictionary Element at the end of this document for details regarding each of these 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":"",
}

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

Customer Update

Used to update a previously enrolled customer. This function is used for Service ID: 70.

[AppItSDK updateCustomer:(id)instance faceImageType:(NSString*)faceImageType additionalDictionary:(NSMutableDictionary*)additionalDictionary]

This is the swift method:

AppItSDK.updateCustomer(instance: Any!>, faceImageType: String!, additionalDictionary: NSMutableDictionary!)

Customer Update Parameters

Parameter Type Description
faceImageType String

Key name:

FACE
PROCESSED_FACE
OVAL_FACE
additionalDictionary NSMutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory.

{
"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

[AppItSDK createEmployee:(id)instance

employeeDictionary:(NSMutableDictionary*)employeeDictionary

additionalDictionary:(NSMutableDictionary*)additionalDictionary

finalSubmit:(bool)finalSubmit];

This is the swift method:

AppItSDK.createEmployee(instance: Any!, employeeDictionary: NSMutableDictionary!, additionalDictionary: NSMutableDictionary!, finalSubmit: Bool)

Employee Update Parameters

Parameter Type Description
faceImageType String Keyname:

FACE
PROCESSED_FACE
OVAL_FACE
additionalDictionary NSMutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory.

{

"Service_ID": "",**//

}

employeeDictionary MutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory.

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

[AppItSDK verifyCustomer:(id)instance biometricType:(NSString*)biometricType];

[AppItSDK verifyCustomer:(id)instance biometricType:(NSString*)biometricType additionalDictionary:(NSMutableDictionary*)additionalDictionary];

This is the swift method:

AppItSDK.verifyCustomer(instance: Any!, biometricType: String!, additionalDictionary: NSMutableDictionary!)

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.
additionalDictionary NSMutableDictionary

Dictionary Object may contain following elements; those with a double // are mandatory.

{
"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.

[AppItSDK verifyEmployee:(id)instance employeeCode:(NSString*)employeeCode additionalDictionary:(NSMutableDictionary*)additionalDictionary finalSubmit:(bool)finalSubmit];

This is the swift method:

AppItSDK.verifyEmployee(instance: Any!, employeeCode: String!, additionalDictionary: NSMutableDictionary!, finalSubmit: Bool, clearFormKey: Bool)

Employee Verification Parameters

Parameter Type Default Range Description
instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
employeeCode String null Unique code of employee
additionalDictionary NSMutableDictionary

Additional mandatory data keys:

"Service_ID": "",

biometricType String

FACE

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

[AppItSDK genericApiCall:(id)instance genericDataDictionary:(NSMutableDictionary *)genericDataDictionary]

Customer Search Parameter

Parameter Type Description
genericDataDictionary NSMutableDictionary
{
“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":"",
}
}

Used to search an employee with or without biometrics. This function is used for service ID 190 (biometric) and 191 (non-biometric).

[AppItSDK genericApiCall:(id)instance genericDataDictionary:(NSMutableDictionary *)genericDataDictionary]

Employee Search Parameter

Parameter Type Description
genericDataDictionary NSDictionary
{
“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":"",
}

Generic API Call

Below call is the generic implementation of all the above calls. Instead of calling separate function for different service ID we can use the below call and pass the required data with proper service ID.

[AppItSDK genericApiCall:(id)instance genericDataDictionary:(NSMutableDictionary*)genericDataDictionary]

This is the swift method:

AppItSDK.genericApiCall(instance: Any!, genericDataDictionary: NSMutableDictionary!)

Generic API Parameter

Parameter Type Description
GenericDataDictionary NSDictionary

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

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.

For Autofill we have to call the below method with given parameters.

[AppItSDK autoFill:(id)instance idCaptureConfig:(NSMutableDictionary*)idCaptureConfig additionalDictionary:(NSMutableDictionary*)additionalDictionary];

This is the swift method:

AppItSDK.autoFill(instance: Any!, idCaptureConfig: NSMutableDictionary!, additionalDictionary: NSMutableDictionary!)

Autofill Parameters

Parameter Type Description
Instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
idCaptureConfig NSMutableDictionary

/*** We can use following config JSON to pass all the configuration parameter; all the values should be sent as String ***/

{
id_capture_both_side : "N", //Its value can be Y/N
id_side : "FRONT", //Its value can be FRONT/BACK
id_default_request_timeout : "10",
}

After scanning the ID, it will return a response on the below call-back method.

-(void)autoFillResponse : (NSMutableDictionary*) result;

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:

Video Recording

To complete the video recording:

[AppItSDK startVideoRecording:(UIViewController*)instance recordingTime:(int)recordingTime minrecordingTime:(int)minrecordingTime additionalDictionary:(NSMutableDictionary*)additionalDictionary textDatatoScrolled:(NSString*)textDatatoScrolled]

This is the swift method:

AppItSDK.startVideoRecording(instance: UIViewController!, recordingTime: Int32, minrecordingTime: Int32, additionalDictionary: NSMutableDictionary!, textDatatoScrolled: String!)

Video Recording Parameters

Parameter Type Default Description
recordingTime Integer 10 Its maximum Video recording time
minrecordingTime Integer 5 Its minimum Video recording time
textDatatoScrolled NSString Text message to be shown on video recording screen

Video Conferencing

To complete the video conferencing operation, use the following call:

[AppItSDK startVideoConferencing:(UIViewController*)instance videoConferenceData:(NSMutableDictionary*)videoConferenceData]

This is the swift method:

AppItSDK.startVideoConferencing(instance: Any!, videoConferenceData: NSMutableDictionary!)

Video Conferencing Parameters

Parameter Type Description
videoConferenceData Dictionary

"FORM_ID" (Optional)

"vc_text_label_message"

"vc_text_fontName"

"vc_text_label_size"

"vc_text_label_color"

"vc_text_background_color"

"vc_text_label_color_alpha"

"vc_text_background_color_alpha"

"vc_text_position"

or

user can send empty dictionary

Voice Recording

To record voice, use the following call:

[AppItSDK startVoiceRecording:(id)instance recordingTime:(int)recordingTime additionalDictionary (NSMutableDictionary*)additionalDictionary];

This is the swift method:

AppItSDK.startVoiceRecording(instance: Any!, recordingTime: NSMutableDictionary!, additionalDictionary:int!)

Voice Recording Parameters

Parameter Type Default Description
instance ID Instance of view controller
recordingTime Integer 10 Voice Recording time

Signature Capture

To capture a signature, use the following code:

[AppItSDK captureSignature:(id)instance uiConfigDictionary:(NSMutableDictionary*)uiConfigDictionary];

This is the swift method:

AppItSDK.captureSignature(instance: Any!, uiConfigDictionary: NSMutableDictionary!)

Signature Capture Parameters

Parameter Type Description
instance ID Instance of view controller
uiConfigDictionary NSMutableDictionary

{

signature_capture_background: “N”

signature_capture_portrait: “N”

Enable_Digital_Signature: “N”

signature_title_label_message: “Sign”

}

4F Fingerprint Capture

To capture four fingerprints using the device camera, use the following call:

[AppItSDK captureFourFingerprint:(id)instance cameraFingerCaptureConfig:(NSMutableDictionary *)cameraFingerCaptureConfig];

This is the swift method:

AppItSDK.captureFourFingerprint(instance: Any!, cameraFingerCaptureConfig: NSMutableDictionary!)

Fingerprint Capture Parameters

Parameter Type Description
instance ID Instance of view controller
cameraFingerCaptureConfig Integer {

"cfc_indexfinger_min_threshold" = "40"

"cfc_middlefinger_min_threshold" = "40"

"cfc_ringfinger_min_threshold" : "40"

"cfc_babyfinger_min_threshold" : "40"

"cfc_indexfinger_threshold" : "100"

"cfc_middlefinger_threshold" : "100"

"cfc_ringfinger_threshold" : "100"

"cfc_babyfinger_threshold" : "70"

"cfc_process_indexfinger" : "Y"

"cfc_process_middlefinger" : "N"

"cfc_process_ringfinger" : "N"

"cfc_process_babyfinger" : "N"

"cfc_keep_index_finger" : "Y"

"cfc_keep_middle_finger" : "N"

"cfc_keep_ring_finger" : "N"

"cfc_keep_baby_finger" : "N"

"cfc_zoom_camera" : "1"

"cfc_process_4k_image" : "N"

}

Clear All Fingerprints

To clear all fingerprints, use the following call:

[AppItSDK clearSelectedFingerPrint:(id)instance selectedFinger:(NSString *)selectedFinger];

This is the swift method:

AppItSDK.clearAllFingerprints(instance: Any!)

Clear All Fingerprints Parameter

Parameter Type Description
clearFormKey boolean Clear form key once operation is executed successfully

All captured data stored in internal storage will be deleted.

Clear Fingerprint

To clear fingerprint, use the following call:

ImageProcessingSDK.clearFingerprint(FingerType fingerType)

This is the swift method:

AppItSDK.clearSelectedFingerPrint(instance: Any!, selectedFinger: String!)
Parameter Type Default Description
fingerType FingerType class RTHUMB Finger to be selected

Card Capture

To capture a debit/credit card, use the following call:

[AppItSDK detectCard:(id)instance];

[AppItSDK detectCard:(id)instance additionalDictionary:(NSMutableDictionary*)additionalDictionary];

This is the swift method:

AppItSDK.detectCard(instance: Any!, additionalDictionary: NSMutableDictionary!)
Parameter Type Description
instance ID Instance of view controller

All captured data stored in internal storage will be deleted.

Scan Barcode

To capture QR Code or Barcode, use the following call:

[AppItSDK scanBarcode:(id)instance];

This is the swift method:

AppItSDK.scanBarcode(instance: Any!)
Parameter Type Description
instance ID Instance of view controller

Generic Document Capture

To capture a generic document, use the following call:

[AppItSDK captureGenericDocument:(id)instance capturePortrait:(bool)capturePortrait  minimumLightThreshold:(int)minimumLightThreshold minimumFocusThreshold:(int)minimumFocusThreshold GlarePercentage:(int)GlarePercentage     EnableCaptureButtonTime:(int)EnableCaptureButtonTime ImageSize:(int)ImageSize ImageHeight:(int)ImageHeight ImageWidth:(int)ImageWidth additionalDictionary:(NSMutableDictionary *)additionalDictionary idOutlineColor:(NSString*)idOutlineColor idOutlineColorTransparency:(int)idOutlineColorTransparency detectedPOAOutlineColor:(NSString*)detectedPOAOutlineColor detectedPOAColorOutlineTransperency:(int)detectedPOAColorOutlineTransperency idOutsideOutlineColor:(NSString*)idOutsideOutlineColor idOutsideOutlineColorTransparency:(int)idOutsideOutlineColorTransparency detectedColorOutsideOutline:(NSString*)detectedColorOutsideOutline detectedColorOutsideOutlineTransparency:(int)detectedColorOutsideOutlineTransparency titleImage:(UIImage *)titleImage showInstruction:(bool)showInstruction instructionimage:(UIImage *)instructionimage genericFieldName:(NSString*)genericFieldName];

Generic Document Capture Parameters

Parameter Type Default Range Description
instance Self - Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.

Boolean For launching camera in portrait/landscape mode
ImageSize Integer 500 256-2048 Maximum image size in kb
maxFocusThreshold Integer 25 10-50 Minimum focus required
minFocusThreshold Integer 15 5-30 Bare minimum(fallback) focus required
ImageHeight Integer 830 640-1920 Image Height in pixels
ImageWidth Integer 1170 480-1280 Image Width in Pixels
minimumLightThreshold Integer 60 50-100 Minimum light required
EnableCaptureButtonTime Integer 15 5-200 No. of seconds after which manual capture is enabled
GlarePercentage Integer 1 0-50 Maximum glare in percentage allowed
idOutlineColor NSString

6EB24C

Hex color string without #
idOutlineColorTransparency Integer 1 1-100 Transparency from 1-100 where 1 is minimum transparency
idOutsideOutlineColor NSString

487D95

1-100 Hex color string without #
idOutsideOutlineColorTransparency Integer 1 1-100 Transparency from 1-100 where 1 is minimum transparency

detectedOutsideFaceOutlineColor

NSString 487D95 Hex color string without #

detectedOutsideFaceOutlineColorTrans

Integer 1 1-100 Transparency value from 1 to 100 where 1 is min. transparency

titleImageFace

UIImage Title image
showIntruction Boolean false true/false To show instruction screen
imageresourceid UIImage Default instruction image Custom instruction image
genericFieldName NSString Generate document according to field name.

GPS Capture

To capture GPS coordinates, use the following call:

[AppItSDK getGPSCoordinate:(id)instance];

This is the swift method:

AppItSDK.getGPSCoordinate(instance: Any!)
Parameter Type Description
instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
[AppItSDK captureGenericDocument:(id)instance additionalDictionary:(NSMutableDictionary*)additionalDictionary uiConfigDictionary:(NSMutableDictionary*)uiConfigDictionary fieldName:(NSString*)fieldName];

Additional Generic Document Capture Parameters

Parameter Type Default Range Description
instance Self Instance of NSObject which implements “AppItSDKResponse” protocol. It is used for receiving SDK callbacks.
configDictionary NSMutableDictionary

/*** We can use following config JSON to pass all the configuration parameter; if no value is sent, it will use default value; all the values 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 : "830",
id_show_instruction : "N", /***supported parameter Y/N ***/
id_capture_enable : "N", /***supported parameter Y/N ***/
id_generic_doc_fieldname : ""
}

Delete Image

To delete captured image data, use the following call:

[AppItSDK deleteData];

This is the swift method:

AppItSDK.deleteData()

Get Metada

To get metada for captured image, use the following call:

[AppItSDK getMetadata];

This is the swift method:

AppItSDK.getMetadata()

Get Model Downloaded Information

To get Model downloaded information, use the following call:

[AppItSDK getModelDownloadInformation];

This is the swift method:

AppItSDK.getModelDownloadInformation()

Callback Instructions

To receive callbacks, the following functions are required for corresponding operations as listed below:


-(void)initializeSDKResponse : (NSMutableDictionary*) result;
-(void)modelDownloadResponse : (NSMutableDictionary*) result;
-(void)faceDetectionResponse : (NSMutableDictionary*) result;
-(void)captureImageResponse : (NSMutableDictionary*) result;
-(void)voiceRecordingResponse : (NSMutableDictionary*) result;
-(void)videoRecordingResponse : (NSMutableDictionary*) result;
-(void)videoConferencingResponse : (NSMutableDictionary*) result;
-(void)captureSignatureResponse : (NSMutableDictionary*) result;
-(void)fourFingerprintDetectionResponse : (NSMutableDictionary*) result;
-(void)cardDetectionResponse : (NSMutableDictionary*) result;
-(void)scanBarcodeResponse : (NSMutableDictionary*) result;
-(void)genericDocumentResponse : (NSMutableDictionary*) result;
-(void)gpsCoordinateResponse : (NSMutableDictionary*) result;
-(void)snippetCaptureResponse : (NSMutableDictionary*)result;
-(void)autoFillResponse : (NSMutableDictionary*) result;
-(void)genericApiCallResponse : (NSMutableDictionary*)result;
-(void)fingerprintEnrolmentResponse : (NSMutableDictionary*) result;
-(void)fingerprintVerificationResponse : (NSMutableDictionary*) result;
-(void)processImageResponse : (NSMutableDictionary*) result;
-(void)proofOfAddressDetectionResponse : (NSMutableDictionary*) result;
-(void)bankStatementDetectionResponse : (NSMutableDictionary*) result;
-(void)birthCertificateDetectionResponse : (NSMutableDictionary*) result;
-(void)faceMatchingResponse : (NSMutableDictionary*) result;
-(void)processImageAndFaceMatchingResponse : (NSMutableDictionary*) result;
-(void)completeOperationResponse : (NSMutableDictionary*) result;
-(void)verifyCustomerResponse : (NSMutableDictionary*) result;
-(void)verifyPOAResponse : (NSMutableDictionary*)result;
-(void)createEmployeeResponse : (NSMutableDictionary*)result;
-(void)verifyEmployeeResponse : (NSMutableDictionary*)result;
-(void)generateTokenResponse : (NSMutableDictionary*)result;
-(void)verifyTokenResponse : (NSMutableDictionary*)result;
-(void)updateCustomerResponse : (NSMutableDictionary*)result;
-(void)generateOTPResponse : (NSMutableDictionary*)result;
-(void)verifyOTPResponse : (NSMutableDictionary*)result;
-(void)executeGenericResponse : (NSMutableDictionary*)result;
-(void)idValidationAndVideoMatchingResponse : (NSMutableDictionary*)result;
-(void)updateGenericResponse : (NSMutableDictionary*)result;
-(void)updateEmployeeResponse : (NSMutableDictionary*)result;
-(void)downloadXsltResultResponse : (NSMutableDictionary*) result;

The result dictionary object will contain all the callback data.

Result Parameter
Result Format
result

{

Result = {

"Status_Code" = ;

"Status_Message" = "";

};

StatusCode = ;

statusCode = ;

statusMessage = ;

}

Result node in the dictionary will contain the response from the server.

Result node will be returned in the callback when any server call is executed else SDK response will be returned in main dictionary object.

Status Codes

The callback dictionary object will consist of statusCode and statusMessage. They can contain the following values:

Status Codes and Status Messages

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
9 Card not detected
10 Microphone permission required
11 Camera permission required
12 Operation cancel
13 SDK required minimum iOS-13
14 Original call is in process.
16 Need minimum 1 MegaPixel Selfie Camera!
18 Real ID not detected, please try again.
19 Error: IDType & IDCountry not present
23 Autofill data extraction error
24 Not all models downloaded
25 Call disconnected
26 Location failed Localized error
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.
404 Resource URL could not be found. Please correct URL
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

SDK Initialization Callback

To receive callbacks from SDK Initialization user needs to use below method in his Viewcontroller.

-(void)initializeSDKResponse : (NSMutableDictionary*) result;

SDK Initialization Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
Result Its result dictionary with valid login status
Status Code Description
0 Success
1 SDK not initialized
3 internet_error
404 Resource URL could not be found. Please correct URL
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

Model Downloaded Callback

To receive callbacks when all models are downloaded user needs to use below method in his Viewcontroller.

-(void)modelDownloadResponse : (NSMutableDictionary*) result;

Model Downloaded Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
Result Its result dictionary with valid login status
Status Code Description
0 All models downloaded
24 Not all model downloaded

Live Face Detection Callback

To receive callbacks from Live Face Detection user needs to use below method in his Viewcontroller.

-(void)faceDetectionResponse : (NSMutableDictionary*) result;

Live Face Detection Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
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.
Is_Auto_Capture Posssible values will be Y/N
Status Code Description
0 Success
1 SDK not initialized
5 Live face not detected
11 Camera permission required
12 Operation cancel.
24 Not all models downloaded

ID Capture Callback

To receive callbacks from ID Capture user needs to use below method in his Viewcontroller.

-(void)captureImageResponse : (NSMutableDictionary*) result;

ID Capture Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
FRONT Base64String for Front side of Image
BACK Base64String for Back side of Image
Status Code Description
0 Success
1 SDK not initialized
2 Image not captured
11 Camera permission required
12 Operation cancel.
18 Real ID not detected, please try again.
24 Not all models downloaded

Autofill Callback

To receive callbacks from ID Autofill user needs to use below method in his Viewcontroller.

-(void)autoFillResponse : (NSMutableDictionary*) result;

Autofill Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
Image Base64String for Front/Back side of Image
Result Extracted data dictionary
Status Code Description
0 Success
1 SDK not initialized
2 Image not captured
3 internet_error
11 Camera permission required
12 Operation cancel.
23 Autofill data extraction error
24 Not all models downloaded
101 Request timeout
103 Empty response.
104 Error in processing your request. Unknown Host Exception.

Voice Recording Callback

To receive callbacks from Voice Recording user needs to use below method in his Viewcontroller.

-(void)voiceRecordingResponse : (NSMutableDictionary*) result;

Voice Recording Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
VOICE_DATA VoiceData local file path
Status Code Description
0 Success
1 SDK not initialized
10 Microphone permission required
12 Operation cancel.

Video Recording Callback

To receive callbacks from Video Recording user needs to use below method in his Viewcontroller.

-(void)videoRecordingResponse : (NSMutableDictionary*) result;

Video Recording Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
VIDEO_DATA VideoData local file path
Status Code Description
0 Success
1 SDK not initialized
3 No internet connection
10 Microphone permission required
11 Camera permission required
12 Operation cancel.

Video Conferencing Callback

To receive callbacks from Video Conferencing user needs to use below method in his Viewcontroller.

-(void)videoConferencingResponse : (NSMutableDictionary*) result;

Video Conferencing Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
Status Code Description
0 Success
1 SDK not initialized
3 No internet connection
10 Microphone permission required
11 Camera permission required
12 Operation cancel.
25 Call disconnected
100 Socket connection exception. {connect timeout}

Signature Capture Callback

To receive callbacks from Signature Capture user needs to use below method in his Viewcontroller.

-(void)captureSignatureResponse : (NSMutableDictionary*) result;

Signature Capture Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
signatureImage Base64String for Captured Signature
signature_X_Cordinate Array of Y-Cordinates for signature
signature_Y_Cordinate Array of X-Cordinates for signature points
signature_cordinate_TimeStamp Array of ordinates timestamp for signature points
Status Code Description
0 Success
1 SDK not initialized
2 Image not captured
12 Operation cancel.

4F Fingerprint Capture Callback

To receive callbacks from 4F Fingerprint Capture user needs to use below method in his Viewcontroller.

-(void)fourFingerprintDetectionResponse : (NSMutableDictionary*) result;

4F Fingerprint Capture Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
LIFINGER Base64String for Left Index Finger
LMFINGER Base64String for Left Middle Finger
LRFINGER Base64String for Left Ring Finger
LLFINGER Base64String for Left Little Finger
RIFINGER Base64String for Right Index Finger
RMFINGER Base64String for Right Middle Finger
RRFINGER Base64String for Right Ring Finger
RLFINGER Base64String for Right Little Finger
Status Code Description
0 Success
1 SDK not initialized
11 Camera permission required
12 Operation cancel.
24 Not all models downloaded

Card Capture Callback

To receive callbacks from Card Capture user needs to use below method in his Viewcontroller.

-(void)cardDetectionResponse : (NSMutableDictionary*) result;

Card Capture Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
CardType Card type
CardNumber Card number
CardExpiryDate Card expiry date
CARD Redacted card image
Status Code Description
0 Success
1 SDK not initialized
3 No internet connection
11 Camera permission required
12 Operation cancel.

Scan Barcode Callback

To receive callbacks from Scan Barcode user needs to use below method in his Viewcontroller.

-(void)scanBarcodeResponse : (NSMutableDictionary*) result;

Scan Barcode Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
format Barcode Format type
content Barcode data Content
defaultBarcodeImage Barcode Image data
Status Code Description
0 Success
1 SDK not initialized
11 Camera permission required
12 Operation cancel.

Generic Document Capture Callback

To receive callbacks from Generic Document Capture user needs to use below method in his Viewcontroller.

-(void)genericDocumentResponse : (NSMutableDictionary*) result;

Generic Document Capture Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
GENERIC_DOCUMENT Captured document Image
Status Code Description
0 Success
1 SDK not initialized
11 Camera permission required
12 Operation cancel.
24 Not all models downloaded

GPS Capture Callback

To receive callbacks from GPS Capture user needs to use below method in his Viewcontroller.

-(void)gpsCoordinateResponse : (NSMutableDictionary*) result;

GPS Capture Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
latitude Latitude
longitude Longitude
Status Code Description
0 Success
1 SDK not initialized
12 Operation cancel.

Snippet Capture Callback

To receive callbacks from Snippet Capture user needs to use below method in his Viewcontroller.

-(void)snippetCaptureResponse : (NSMutableDictionary*)result;

Snippet Capture Result Parameters

Result Parameter Description
statusCode Response status Code
statusMessage Response status message
resultImage Base64String of captured image
SnippetDictionary Dictionary which content selected snippet data
Status Code Description
0 Success
1 SDK not initialized
12 Operation cancel.

Generic API Callback

To receive callbacks from Generic API user needs to use below method in his Viewcontroller.

-(void)genericApiCallResponse : (NSMutableDictionary*)result;

Generic API Result Parameters

Result Parameter Description
statusCode Response status Code
StatusCode Response status Code
statusMessage Response status message
Result Its final result dictionary contains actual response from the server in key-value format
keyArray It contais only the keys which are available in result dictionary
Status Code Description
0 Success
1 SDK not initialized
3 No internet connection
8 Some error occurred
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.
404 Resource URL could not be found. Please correct URL
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

Processing the Image

The callback will contain statusCode, statusMessage and Result dictionary object. The Result dictionary object can contain the following values:

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). For all available Form States, please refer to the ID Validation / Form Status and State Codes section of this document.

Process Image and Facial Biometric Verification

The Result dictionary object can contain the following values:

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 quality of the image is high enough
Age_Over_18 Age over 18 flags 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 State please refer to the ID Validation / Form Status and State Codes section of this document.

Customer Enrollment

-(void)fingerprintEnrolmentResponse : (NSMutableDictionary*) result;

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

For all available Form States, please refer to the ID Validation / Form Status and State Codes section of this document.

Employee Enrollment

-(void)createEmployeeResponse : (NSMutableDictionary*) result;

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

For all available Form States, please refer to the ID Validation / Form Status and State Codes section of this document.

Customer Update

-(void)updateCustomerResponse : (NSMutableDictionary*) result;

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

For all available Form State please refer to the ID Validation / Form Status and State Codes section of this document.

Employee Update

-(void)updateEmployeeResponse : (NSMutableDictionary*) result;

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

For all available Form States, please refer to the ID Validation / Form Status and State Codes section of this document.

Customer Verification

The callback will contain statusCode, statusMessage and Result dictionary object. The Result dictionary object can contain the following values.

Customer Verification Result Parameters

Result Parameter Description
Status_Code Response status Code
Status_Message Response status message
FormID Form ID generated for this request
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

Employee Verification Result Parameters

Result Parameter Description
Status_Code 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

-(void)genericApiCallResponse : (NSMutableDictionary*)result;

Customer Search Result Parameters

Result Parameter Description
Status_Code 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.

For all available Form States, please refer to the ID Validation / Form Status and State Codes section of this document.

Employee Search

-(void)genericApiCallResponse : (NSMutableDictionary*)result;

Employee Search Result Parameters

Result Parameter Description
Status_Code 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.

For all available Form States, please refer to the ID Validation / Form Status and State Codes section of this document.

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 can 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’. 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":"01/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 who 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 Dictionary Element

Additional Data 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 Service IDs
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 for Government ID database check and KYC/AML watchlists. There are additional fees associated with these requests, please contact your Account Manager for details.

- Y - It will verify the customer/employee data using Third Party verification vendors.

- N - It will not verify the customer/employee data using Third Party verification vendors.

Detect_Liveness This flag is used to indicate if liveness checks should be performed against the submitted selfie or ID document included in the request. This is used only for submissions through the API

- Y - Liveness will validate submitted document(s) and/or selfies.

- 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

Employee Dictionary Element

Employee 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

Troubleshooting

This section includes general SDK troubleshooting information.

AppItFramework

To setup AppItFramework, perform the following steps:

  1. Add AppItFramework.framework into your project
  2. Select Project target & navigate to General tab & make AppItFramework.framework as a Embed & Sign
  3. If you are running the latest XCODE version continue to step 4. If you are using a previous version, skip to step 5
  4. Remove duplicate entry from Linked Framework and Libraries
  5. Add podfile and insert the following dependencies in the podfile:

pod 'WebRTC
pod 'CocoaLumberjack'
pod 'SocketRocket'
pod 'IdmEncryption', '8.0.0'
pod 'TensorFlowLiteObjC', '2.7.0'
pod 'GoogleMLKit/TextRecognition', '0.64.0'
pod 'GoogleMLKit/FaceDetection', '0.64.0'

Version History

v9.6.21.1.1 : (7 October 2024)

v9.6.19.1.4 : (6 September 2024)

v9.6.17.1.6 : (23 August 2024)

v9.6.10.1.11 : (16 August 2024)

v9.6.10.1.10 : (31 July 2024)

v9.6.10.1.8 : (21 June 2024)

v9.6.10.1.7 : (28 May 2024)

v9.6.10.1.6 : (17 May 2024)

v9.6.9.1.1 : (2 May 2024)

v9.6.6.1.1 : (25 March 2024)

v9.6.4.1.6 : (26 February 2024)

v9.6.2.1.4 : (22 January 2024)

v9.5.18.1.4 : (18 December 2023)

v9.5.15.1.4 : (6 November 2023)

v9.5.12.1.4

v9.5.11.1.7

v9.5.10.1.1

v9.5.7.1.10

v9.5.4.1.5

v9.5.3.1.11

v9.5.2.1.2

v9.5.1.1.1

v9.4.8.1.8

v9.4.6.1.2

Copyright

Copyright 2023 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.

©2023 IDmission LLC January 2023