NAV

Atlas Overview

Atlas is a unified, paperless and instant digital KYC (Know Your Customer) platform. You can imagine Atlas as building blocks to create a seamless KYC process. Atlas building blocks comes as SDKs and APIs that can be quickly integrated into your mobile or web applications. The Atlas APIs are built around REST principles and uses standard HTTP response codes, endpoints and authentication. Atlas APIs accepts request bodies and returns JSON responses.

Features

Atlas software in general allows you to OCR ID documents, verify ID documents against issuing authorities, capture KYC compliant photo, verify identity through a short video and spoken code and complete pre issuance video verification and do basic fraud checks using demographic and photo matches. The detailed features (building blocks) are presented here.

No ATLAS KYC - FEATURE LIST SDK WEB
1 OCR ID SCAN (ALL SUPPORTED DOCUMENTS) Y Y
2 DOC SCAN (NON OCR - CAPTURE/CROPPING/COMPRESSION) Y -
3 FACE CAPTURE WITH BLINK/SMILE (BLUR/EXPOSURE/COMPRESSION) Y -
4 FACE MATCHING (IMAGE TO IMAGE/IMAGE TO DOCUMENT) - Y
5 FACE IMAGE CROP FROM ID/CAF/DOCUMENT Y Y
6 AADHAAR IMAGE MASKING Y Y
7 AADHAAR OFFLINE (UIDAI XML/ENCRYPTED QR) Y Y
8 VIDEO CAPTURE (OSV/IPV/PIV/VOICE TOKEN/SCREEN RECORDING) Y Y
9 LIVE TWO WAY VIDEO VERIFICATION (BETA) Y Y
10 VIDEO LIVENESS VERIFICATION (VOICE TOKEN CHECK) _ Y
11 GOVT ID VERIFICATION (PAN, VOTER ID, DL) - Y
12 PENNY DROP - BANK ACCOUNT CHECK - Y
13 GSTIN VERIFICATION - Y
14 DATA CHECK - MATCH/NO-MATCH NAME AND ADDRESS (BETA) - Y
15 SIGNATURE CROPPING (FROM BLANK SHEET/FIXED POISTION) - Y
16 FRAUD CHECK - IMAGE MATCHING (1:N)
17 AADHAAR VIDEO MASKING (BATCH PROCESS - BETA) - Y

Authentication

Atlas API uses API keys to authenticate requests. You can view and manage your API keys in the Atlas Dashboard.

All server-side API requests need to be authenticated using the unique API Keys provided to the user. The API key is a combination of Key ID (as username) and Key Secret (as password). The keys must be stored securely as it carries many privileges and must not be shared in publicly accessible areas such as client-side code. All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

You should use a Content-Type: application/json header with all PUT and POST requests except when uploading documents or photos. For these requests, use a Content-Type: multipart/form-data header. API credentials must be included in the header of all requests made to the API. A sample header format and its details are given below.

Authorization:key_id=abeb3372xxxxaf530,api_key= (KEY_ID|KEY_SECRET|TIMESTAMP), timestamp=yyyMMddHHmmssSSS Request_id:“useridyyyyMMddHHmmssSSS”

AUTHORIZATION consists of the key_id, api_key and the timestamp

KEY_ID: This is unique ID issued to identify the client application

KEY_SECRET: A unique string only known to the creator of the client ID

TIMESTAMP: Timestamp in yyyyMMddHHmmssSSS format API_KEY is the encrypted value of key_id, key_secret and timestamp. You can get the sample code for AES256 encryption algorithm for the api_key by writing to support@frslabs.com.

REQUEST_ID is any unique ID for the request. You can use a unique customer_id and timestamp in milliseconds to make each request unique. No special characters are allowed as part of the request_id.

Response Status Code: 200 OK
Content-Type: application/json

Error

Atlas uses conventional HTTP response codes to indicate the success or failure of an API request.

In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted). Codes in the 5xx range indicate an error with Atlas servers (rare cases).

Error Code Message What to do
200 Success
400 Invalid request - missing parameters. Please,check API response for missing parameters.
401 Access denied. Make sure you have entered your API token correctly.If issue persists then contact support at support@frslabs.com.
403 Access forbidden. Client does not have the necessary permissions for the resource.Please contact support at support@frslabs.com
404 URL not found. Make sure you have formatted the url correctly.
405 Invalid request-WRONG API REQUEST METHOD TYPE Get method is not supported for this request. Make sure post method is selected for your request.
408 Request Timeout error. Requests are not connected to atlas services. Please contact support at support@frslabs.com
413 Request entity too large. Make sure, size limit of your request does not exceed 100 mb.if issue persists then contact support at support@frslabs.com.
414 Request URL too large. URL for your request is longer than the server is willing to interpret. Please check url.
415 Invalid request, unsupported media type. Make sure format of your request is as per defined resource’s content-type or content-encoding headers.
429 Invalid request, too many requests. The user has sent too many requests in a given amount of time.Please retry after specified time.
500 Internal server error. The server encountered an error. Please, try again.If issue persists then contact support at support@frslabs.com.
502 Bad gateway error. The server has received an invalid response. If issue persists then contact support at support@frslabs.com.
503 Service unavailable. The server is currently unable to handle your request due to a temporary overloading or maintenance of the server. Please, try again.If issue persists then contact support at support@frslabs.com.
505 HTTP version not supported. The server can’t handle the http version used in the request. We support http 2.0 and http 1.0 version. Please, contact support at support@frslabs.com.

ID type

The document ID types are given below. The full list of countries and the IDs supported can be found here.

ID Abbreviation Type
PPT Passport String
PAN Permanent Account Number String
NID National Identity Card String
DRV Driving License String
SSN Social Security Number String
VID Voter Identity String
ADR Aadhaar Card (India) String

Core Resources

Face

Face enrol

Example Response-Success

{
     status: success,
     response_timestamp:310590123509,
     data:{ 
               face_id: 1ed8ade0-2fd4-4236-a9ad-b616cc2c886c 
            },
     error: null
}

https://<BASE_URL>/<ENV>/face/<VER>/enrol

Note: Replace BASE_URL with the URL provided to you for POC/Production.

Body Parameter(s)

Attributes Type Description
face_image Multipart file Image of the face to be enrolled. Valid file type: jpeg. The image size should not exceed 500 KB. If you use the Atlas SDK, it will automatically compress to <50KB.

Face verify

Example Response

{
    status: success,
    response_timestamp:1533206719656,
    data:{ 
              score: 99
            },
    error: null
}

https://<BASE_URL>/<ENV>/face/<VER>/verify

Query Parameter(s)

face_id String Unique ID returned for an enrolled face.

Body Parameter(s)

face_image Multipart file Image of the face to be verified. Valid file type are jpeg. The image size should not exceed 500 KB. If you use the Atlas SDK, it will automatically compress to <50KB.

Face Identify

Example Response

{
   status: success,
   response_timestamp: 1533130468789,
   data: {
           matched_face_ids: [
           d79d044b19cf456bba1d5e9e89164ee5,
           d36c6c87bb74434fab69db637ba694e8,
           57d7488ace564f5ab583c2eb873a1ddb,
           74ee0e89be67460caeadef639f328120,
                               ],
       scores: [
           100,
           100,
           100,
           100,
                 ]
   },
   error: null
}

https://<BASE_URL>/<ENV>/face/<VER>/identify

Query Parameter(s)

threshold Number The minimum value to consider a comparison as a pass. For e.g. if a score of 60 is set, then five matches above 60 will be returned.

Body Parameter(s)

face_image Multipart file Image of the face to be enrolled and searched. Valid file type are jpeg.The image size should not exceed 500 KB. If you use the Atlas SDK, it will automatically compress to <50KB.

Face compare

Example Response

{
    status: success,
     response_timestamp:1537270746594,
     data: {
       face_id:00b85b02_61de05bb-b095-4cb3-ab24-       
         fedffd98a83b|00b85b02_07188d71-0bdc-46b9-83f6-e4bc2d9b9447,
       score:100
    },
   error: null
}

https://<BASE_URL>/<ENV>/face/<VER>/compare

Body Parameter(s)

face_image_1 Multipart file Image of the face to be compared. Valid file type are jpeg. The image size should not exceed 500 KB. If you use the Atlas SDK, it will automatically compress to <50KB.
face_image_2 Multipart file Image of the face to be compared. Valid file type are jpeg. The image size should not exceed 500 KB. If you use the Atlas SDK, it will automatically compress to <50KB.

Face image quality

Example Response

{
    status: success,
    response_timestamp: 1542786294732,
    data: {
        face_id: b7405d22_a3109b9f-7d7d-4e44-9f5b-d67aeaeaf42e,
        image_score: 23.06,
        face_detection: Yes,
        blurness: No Blur,
        exposure: Exposure in rang,
        under_exposure: 14.1,
        over_exposure: 0.09,
        orientation_yaw: 49.6,
        orientation_pitch: 33.9,
        orientation_roll: 23.4,
        eye_position: Open,
        mouth_position: Close
    },
    error: null
}

https://<BASE_URL>/<ENV>/face/<VER>/image_quality

Body Parameter(s)

face_image Multipart file The image of the id document in JPG.

Face crop

Example Response

{
    status: success,
    response_timestamp: 1542870551587,
    data: {
            face_id: b7405d22_ca087ce4-fd43-4df2-9870-4a68d0cee79a, 
            cropped_face_data: BASE64_DATA
         }
}

To pass a large size photo or a photo embedded in a document or ID, this API can be used for cropping the image from such documents.

https://<BASE_URL>/<ENV>/face/<VER>/face_crop

Body Parameter(s)

image Multipart file The image will be cropped from the upload ID

Face fetch

Example Response

{
<<JPEG Image>> // The face image against the face_id passed.
}

https://<BASE_URL>/<ENV>/face/<VER>/fetch

Query Parameter(s)

face_id String Unique ID of an enrolled face

Face delete

Example Response

{
    status: success,
    response_timestamp:1125597855987
            data:{  
                message:Image Deleted
                  },
      error: null
}

https://<BASE_URL>/<ENV>/face/<VER>/delete

Query Parameter(s)

face_id String Unique ID of an enrolled face

Video

Video challenge request

Example Response

{
   status: success,
   response_timestamp: 1533293344890,
   data: {
       challenges: [
           What is your name?,
           What is your dob?,
           Secret code? 6895
                     ]
           },
   error: null
}

https://<BASE_URL>/<ENV>/video/<VER>/challenge

Query Parameter(s)

Attributes Type Description
no_of_challenges String Number of challenges for the customer to respond in the video. The order of the challenge is by default random. There should at least be one challenge to respond by the customer (e.g. secret code is the default challenge).

Video upload

Example Response

{
    status: success,
    response_timestamp: 1542282204048,
    data: {
        video_id: “”,
        verification_id: “”,
        challenge_code: EIGHT ZERO FIVE ONE,
        challenge_spoken: FIVE ONE EIGHT,
        challenge_status: failed
    },
    error: null
}

This is for uploading the image to the Atlas server. Please note that in most on-premises scenarios this will not be applicable as the video will be uploaded onto the Client’s internal database before the API call is made to the Atlas server. If the calling Application requires both an upload and verify in the same call, then the verify_video parameter should be set to ‘Y’.

https://<BASE_URL>/<ENV>/video/<VER>/upload

Query Parameter(s)

challenge_id String This is will be passed by SDK

Body Parameter(s)

video_file Multipart file Video file to be uploaded in MP4 format. Video size should not exceed 2 MB.
verify_video String Pass Y or N
video_breakpoints String Video break points { ss, ss}

Video face match

Example Response

{
   status: success,
   response_timestamp: 1533207994249,
   data: {
    score: 32
   },

   error: null
}

This will compare the images from the uploaded video against enrolled image ID (e.g. images taken from an ID document or a selfie). Note that this API call assumes that the video and the image has already been uploaded onto the server as only the uploaded ID are passed instead of the video and the image.

https://<BASE_URL>/<ENV>/video/<VER>/verify_enrolled_image

Query Parameter(s)

video_id String The unique ID assigned to an uploaded video
face_id String Unique ID of an enrolled face

Video face compare

Example Response

{
   status: success,
   response_timestamp: 1533207994249,
   data: {
    score: 32
   },
   error: null
}

This will compare the images from the uploaded video against a new face image which has not been previously enrolled (e.g. a selfie image or a previously stored image of the customer on file).

https://<BASE_URL>/<ENV>/video/<VER>/verify_new_image

Query Parameter(s)

video_id String The unique ID assigned to an uploaded video.

Body Parameter(s)

face_image Multipart file Image of the face to be compared. Valid file type are jpeg.

Video face verify

Example Response

{
   status: success,
   response_timestamp: 1533207994249,
   data: {
    score: 32
   },
   error: null
}

This will compare the best image from the video against the face image which has not been previously enrolled (e.g. a selfie image or a previously stored image of the customer on file that is passed for verifying against the video face image). Please note that this is similar to the video face compare; the only difference being that the calling application will pass the Video and Image (as multipart file) instead of passing the video ID.

https://<BASE_URL>/<ENV>/video/<VER>/verify/video_face

Body Parameter(s)

video_file Multipart file The actual video from which the face needs to be verified against.
face_image Multipart file Image of the face to be compared. Valid file type are jpeg.

Video face crop

Example Response

{
    status: success,
    response_timestamp: 1549265042150,
    data: {
        video_id: 00b85b02_307e4da5-6c3b-46fc-9464-364e617a5a43,
        cropped_face_data:  BASE64_DATA 
    },
    error: null
}

This will crop the face from the video file.

https://<BASE_URL>/<ENV>/video/<VER>/face/crop

Body Parameter(s)

video_file Multipart file The actual video from which the face needs to be cropped.

Video extract code

Example Response

{
    status: success,
    response_timestamp: 1549263668966,
    data: {
        challenge_code: 0-0-0-0
    },
    error: null
}

This will extract the challenge code (voice token) from the recorded video.

https://<BASE_URL>/<ENV>/video/<VER>/extract/code

Query Parameter(s)

video_breakpoints String ss,ss

Body Parameter(s)

video_file Multipart file File format mp4

Video verify challenge

Example Response

{
    status: success,
    response_timestamp: 1549267741541,
    data: {
        challenge_code: ONE TWO THREE THREE,
        challenge_spoken: ONE TWO THREE THREE ,
        challenge_status: success
    },
    error: null
}

This will compare the text spoken by the customer against the screen secret code to see if there is a match.

https://<BASE_URL>/<ENV>/video/<VER>/verify/challenge

Query Parameter(s)

challenge_id String Challenge id
challenge_code String Challenge code
video_breakpoints String Video break points { ss,ss}

Body Parameter(s)

video_file Multipart file File format mp4

Image to video comparison

Example Response

{
    status: success,
    response_timestamp: 1849267741541,
    data: {
        face_match: pass,
    },
    error: null
}

To compare the video with the captured ID proof like PAN, AADHAAR, PASSPORT etc.

https://<BASE_URL>/<ENV>/video/<VER>/validate/face_verify

Query Parameter(s)

num_frames String This should be between 5 and 29.
match_threshold String 40- for images or video with age difference. 50-for recent images and video

Body Parameter(s)

video_file Multipart file File format mp4.The actual video from which the face needs to be compared.
face_image Multipart file Image of the face to be compared. Valid file type is jpeg

Video validate

Example Response

{
    status: success,
    response_timestamp: 1549268677219,
    data: {
        face_crop_data: {
            cropped_face_data: BASE64_DATA
        },
        verify_face_data: {
            is_face_found: Y,
            verify_face_score: 32
        },
        verify_challenge_data: {
            challenge_code: NINE ONE ZERO NINE TWO,
            challenge_spoken: NINE ONE ZERO NINE TWO,
            challenge_status: success
        }
    },
    error: null
}

This will validate the video and complete a number of tasks in a single API call (e.g. there are individual API calls for video crop face and video verify face; instead the developer can complete multiple tasks in a single API call by passing the video file once.

https://<BASE_URL>/<ENV>/video/<VER>/validate

Query Parameter(s)

crop_face String ‘Y’ for performing video cropping from the video file.
verify_face String ‘Y’ for performing video verify from the video file.
verify_challenge String ‘Y’ for performing verify challenge from the video file.
challenge_id String The number of challenges posed to the User.
challenge_code String The actual challenge code spoken by the User
video_breakpoints String Video break points {ss,ss}

Body Parameter(s)

video_file Multipart file File format mp4. The actual video from which the face needs to be cropped.
face_image Multipart file Image of the face to be compared. Valid file type are jpeg

Video fetch

Example Response

{
Video MP4 format
}

https://<BASE_URL>/<ENV>/video/<VER>/fetch

Query Parameter(s)

video_id String The unique ID assigned to an uploaded video

Video delete

Example Response

{
   status: success,
   response_timestamp: 1550843581485,
   data: {
        message: video deleted.
    },
    error: null
 }

https://<BASE_URL>/<ENV>/video/<VER>/delete

Query Parameter(s)

video_id String The unique ID assigned to an uploaded video

Video extract text

Example Response

{
   status: success,
   response_timestamp: 1550843858986,
   data: {
        text: {\“code\”: \“SEVEN THREE SEVEN FOUR \”}
    },
    error: null   
}

https://<BASE_URL>/<ENV>/video/<VER>/extract_text

Query Parameter(s)

video_id String The unique ID assigned to an uploaded video

PIVC data download

Example Response

{
   ZIP file 
}

This will download video and images as a zip file. It will include video in .mp4 format and images in pdf.

https://<BASE_URL>/<ENV>/piv/<VER>/customer/data/download

Note: <ver>=v1

Query Parameter(s)

reference_id String Unique ID generated for each transaction in SDK

ID Scan

Upload document

Example Response

{
   status: success,
   response_timestamp: 1533276368528,
   data: {
       document_id: 00b85b02_c8fd7dd0-b0bf-42c1-8435-e0c25e04758f
   },
   error: null
}

https://<BASE_URL>/<ENV>/ocr/<VER>/upload

Query Parameter(s)

Attributes Type Description
id_country String Please enter 3 digit ISO CODE (e.g. IND, USA,GBR,AUS).Please find the list in Appendix.
id_type String Passport, National ID, PAN, Aadhaar etc. Please select the exact id_type from the list (e.g. PAN, PPT, NID). Please find the list in Appendix
id_sides Number Number of sides to the selected id type. The sides can be found in the ID list in Appendix

Body Parameter(s)

Attributes Type Description
id_front_image Multipart file The front image of the id document in JPG
id_back_image Multipart_file The back image of the id document in JPG. This is optional if there is only one side to scan

Fetch document data

Example Response (Passport 2 Sides - India)

{
  status: success,
  response_timestamp: 1550821102510,
  data: {
       quality_check: {
            front_image: {
                image_aspect_ratio: FAIL,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            },
            back_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        },       
        ocr_data: {
           card_type: PASSPORT,
           passport_number: XXXXXXXXX,
           first_name: XXXXXXX,
           last_name: XXXXXXX,
           date_of_birth: -,
           gender: Male,
           country: 152,
           expiry_date: -,
           mother_name: XXXXXX XXXXXX,
           father_or_guardian_name: XXXX XXXXX,
           address: 40/16, XXXX NAGAR , 2ND STREET, XX NAGAR,  XXXX,  XXXX, Tamil Nadu, 620XXX,
           spouse_name: -
       }
   },
   error: null
}

Example Response (Aadhaar 2 Sides)

{
  status: success,
    response_timestamp: 1583146664471,
    data: {
        ocr_data: {
            card_type: AADHAAR,
            source_data: 0,
            aadhaar_no: XXXXXXXX7986,
            first_name: XXXXXXX,
            last_name: -,
            date_of_birth: DD:XX,MM:XX,YYYY:XXXX,
            gender: Male
            address: S/O,XXXX XXXXXXXXXXXX
            aadhaar_photo: -,
            reference_id: -
        },
        quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: HIGH,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            },
            back_image: {
                image_aspect_ratio: PASS,
                image_exposure: HIGH,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        }
    },
    error: null

}

//Note:
//“source_data” will be 1 when API response is read from QR code on Aadhaar card.
//“source_data” will be 0 when API response is read by OCR of Aadhaar card

Example Response (Aadhaar 2 Sides with secure QR)

{
  status: success,
    response_timestamp: 1583146664467,
    data: {
        ocr_data: {
            card_type: AADHAAR,
            source_data: 1,
            aadhaar_no: XXXXXXXX3995,
            first_name: XXXXXXX,
            last_name: -,
            date_of_birth: DD:XX,MM:XX,YYYY:XXXX,
            gender: M
            address: C/O S/O,XXXX XXXXXXXXXXXX
            aadhaar_photo: Base 64 Format output,
            reference_id: 399520200228165358503
        },
        quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: HIGH,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            },
            back_image: {
                image_aspect_ratio: PASS,
                image_exposure: HIGH,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        }
    },
    error: null

}

//Note:
//“source_data” will be 1 when API response is read from QR code on Aadhaar card.
//“source_data” will be 0 when API response is read by OCR of Aadhaar card

Example Response (Pan Card)

{
  status: success,
  response_timestamp: 1550820453792,
  data: {
       quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: YES
            }
        },       
        ocr_data: {
           card_type: PAN,
           pan_number: AZXXX9XXXX,
           first_name: JAMES KUMAR,
           last_name: KUMAR JAMES,
           date_of_birth: DD:01,MM:02,YYYY:1960
       }
   },
   error: null
}

Example Response (Voter ID 2 Sides - India)

{
  status: success,
  response_timestamp: 1550821017430,
  data: {
       quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: YES
            },
            back_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        },       
        ocr_data: {
           card_type: VOTERID,
           id_number: WRC0XXXXXX,
           first_name: Gandhi,
           last_name: Raman,
           gender: Male,
           date_of_birth: DD:01,MM:11,YYYY:1960,
           address: 40/16, XXXX NAGAR , 2ND STREET, XX NAGAR,  XXXX,  XXXX, Tamil Nadu, 620XXX
       }
   },
   error: null
} 

Example Response (Registration Card 2 Sides)

{
  status: success,
  response_timestamp: 1550820453792,
  data: {
	ocr_data: {
            primary_fields: {
                card_type: REGISTRATION CARD,
                registration_number: KA*****34,
                registration_name1: FRS ********** LTD,
                registration_name2: NA,
                registration_address: “#3**5, 2ND FLOOR 2ND MAIN ********** BANGALORE K A 560108,
                registartion_start_date: DD:25,MM:10,YYYY:2007,
                registration_expiry_date: DD:24,MM:10,YYYY:2020,
                vehicle_manufacturer: Maruti AUTO INDIA PVT LTD,
                vehicle_mfg_date: MM:05,YYYY:2019,
                vehicle_engine_no: CJS****855,
                vehicle_chassis_no: TMBB************11,
                vehicle_model: OCTAVIA L 8 K - AT(132KW,TSI),
                vehcile_colour: QUARTZ GREY,
                vehcile_class: MOTOR CAR,
                vehicle_weight: 001376,
                vehicle_cylinder: 04,
                vehicle_fuel: PETROL,
                vehicle_seating: 005,
                vehicle_cc: -
            },
            secondary_fields: {
                vehicle_body_type: PASSENGER ,
                vehicle_wheelbase: 002688,
                vehicle_stdg_stpr: 00
            }
        },
        quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO,
                image_size: PASS
            },
            back_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO,
                image_size: PASS
            }
        }
   },
   error: null
}

Example Response (Driving Licence - Philippines)

{
  status: success,
  response_timestamp: 1580110714085,
  data: {
       quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: HIGH,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        },
        ocr_data: {
            card_type: DRIVING LICENCE,
            dl_number: C**-**-00**75,
            address: PRK ** SAN PEDRO CUTUD SAN FERNANDO PAMPANGA,
            agency_code: C*9,
            date_of_birth: DD:02,MM:07,YYYY:1998,
            expiry_date: DD:02,MM:07,YYYY:2022,
            gender: M,
            name1: DANIEL, RHEY JOHN DAVILA,
            nationality: PHL
        }
   },
   error: null
}

Example Response (Passport - Philippines)

{
  status: success,
  response_timestamp: 1550720453792,
  data: {
       ocr_data: {
            card_type: P,
            passport_number: P*******1A,
            first_name: JOHN ME SMITH,
            last_name: JAVAN,
            date_of_birth: DD:**,MM:**,YYYY:1994,
            gender: Female,
            country: PHL,
            expiry_date: DD:**,MM:**,YYYY:2028,
            ppt_checksum: true
        },
        quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        }
   },
   error: null
}

Example Response (VoterID - Philippines)

{
  status: success,
  response_timestamp: 1550820453259,
  data: {
      quality_check: {
            front_image: {
                image_aspect_ratio: FAIL,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        },
       ocr_data: {
            card_type: VOTERID,
            number: 7XX1-XXXXA-G037XXXM200XX-X,
            address: 19. LUNAR XXXX MOONWALK XXXX TALON SINGKO,
            dob: DD:XX,MM:XX,YYYY:1971,
            name1: MANZANO,
            name2: GEOE,
            name3: GUZMAN,
            citizenship: Filipino,
            precinct: 0563A,
            status: Married
        }
   },
   error: null
}

Example Response (UMID - Philippines)

{
  status: success,
  response_timestamp: 1550820453134,
  data: {
       quality_check: {
            front_image: {
                image_aspect_ratio: FAIL,
                image_exposure: HIGH,
                image_blur: NO,
                image_colour: YES,
                image_reflection: NO
            }
        },
        ocr_data: {
            card_type: UMID,
            number: CXN01XX-XX00XX2-X,
            address: ADBRES 203 MOJON-XXXXXXX BATANGAS PHL 4227,
            dob: DD:XX,MM:XX,YYYY:1994,
            name1: UMA,
            name2: KRISE,
            name3: MAKAAANTAL,
            nationality: PHL,
            gender: F
        }
   },
   error: null
}

Example Response (TIN - Philippines)

{
  status: success,
  response_timestamp: 1550820453290,
  data: {
      quality_check: {
            front_image: {
                image_aspect_ratio: PASS,
                image_exposure: MEDIUM,
                image_blur: NO,
                image_colour: YES,
                image_reflection: YES
            }
        },
        ocr_data: {
            card_type: TIN,
            number: X39-XXX-5X6-XXX,
            address: BLK 31 XXXXXXXXXXXXXXXXXXXX VILLAGE LAS PInAS CITY,
            dob: DD:XX,MM:XX,YYYY:1956,
            name: JOHN , EDNA MARTIN,
            issue_date: DD:01,MM:03,YYYY:2019
        }
   },
   error: null
}

https://<BASE_URL>/<ENV>/ocr/<VER>/fetch/id_data

Query Parameter(s)

id_type String Passport, National ID, PAN, Aadhaar ,Regiatration Card etc. Please select the exact id_type from the list (e.g. PAN, PPT, NID,RC,DRV). Please find the list in Appendix
id_sides Number Number of sides to the selected id type. The sides can be found in the ID list in Appendix
id_country String Please enter 3 digit ISO CODE (e.g. IND, USA,GBR,AUS,PHL).Please find the list in Appendix.

Body Parameter(s)

id_front_image Multi part file Image of the ID card front. Valid file type are jpeg. The image size should not exceed 500 KB.
id_back_image Multi part file Image of the ID card back. Valid file type are jpeg. The image size should not exceed 500 KB.

Fetch ocr document image

Example Response

{
Image of the selected document type
}

https://<BASE_URL>/<ENV>/ocr/<VER>/fetch

Query Parameter(s)

document_id String The unique ID assigned to an uploaded ID document
image_side String Side of the selected document type (FRONT,BACK)

Delete document

Example Response

{
   status: success,
   response_timestamp: 1550835710941,
   data: {
        message: document deleted.
    },
    error: null
} 

https://<BASE_URL>/<ENV>/ocr/<VER>/delete

Query Parameter(s)

document_id String The unique ID assigned to an uploaded ID document

Fetch digi locker data

Example Response (Pan Card)

{
   status: success,
   response_timestamp: 1544435171967,
   data: {
         document_type: PAN,
         document_data: {
                          pan_number: XXXXXXX6M,
                          name: XXXXXXXX,
                          date_of_birth: XX/XX/1976,
                          gender: MALE
       }
   },
   error: null
}

Example Response (AADHAAR CARD)

{
   status: success,
   response_timestamp: 1544435171967,
   data: {
         document_type: AADHAAR,
         document_data: {
                          image_data: BASE64_IMAGE_DATA,
                          aadhaar_number: 819323103995,
                          name: Karthikeyan Periyasamy,
                          father_name: null,
                          date_of_birth: 19**-11-**,
                          vid: null,
                          gender: Male,
                          address: ** , 2ND STREET, S/O:**, 40/16, **, ***, ***, ***, Tamil Nadu, 620021
       }
   },
   error: null
}

Example Response (DRIVING LICENSE)

{
   status: success,
   response_timestamp: 1544435171967,
   data: {
         document_type:  DRIVING_LICENCE,
         document_data: {
                          image_data: BASE64_IMAGE_DATA,
                          license_number: TN59 20150007432,
                          name: *** KUMAR V,
                          second_name: *** P,
                          date_of_birth: **-03-19**,
                          permanent_address: 73 *** *** STREET,  **, MADURAI, 625002,
                          present_address: 73 *** *** STREET, ***,,MADURAI,625002
       }
   },
   error: null
}

https://<BASE_URL>/<ENV>/digi_locker/<VER>/fetch_data

Body Parameter(s)

document_file Multipart File File needs to be PDF format.

Note: Digi Locker documents supported: PAN, Aadhaar and Driving License.

Signature_crop

Example Response

{
    status: success,
    response_timestamp: 1598955302140,
    data: {
            cropped_image: Base64data for cropped signature image
            },
        error: null
}

Note: The aspect ratio of the output image is set to 16:9. This cannot be changed in the current version of the API. The input should have only one signature. Multiple signatures in the same page are not supported in this version. https://<BASE_URL>/<ENV>/ocr/<VER>/signature_crop

Query Parameter(s)

resize_image String [Optional parameter] This will define size of the outout image.’no’ will not resize output image . ‘yes’ will resize output image to 300 pixel width. The default value is ‘no’

Body Parameter(s)

signature_image Image file File needs to be in jpg or png or tiff format

Aadhaar_offline_XML

Example Response

{
    status: success,
    response_timestamp: 1558955302144,
    data: {
        aadhaar_ref_id: aox-XXXXXXXXXXXXXXXXXXXXXXXb33333395f,
        aadhaar_data: {
            aadhaar_version 0,
            aadhaar_name: Srinath Kumar,
            aadhaar_gender: M,
            aadhaar_dob: 01-01-1970,
            aadhaar_address: 33, 34th B cross,HSR Layout 1st sector,Bengaluru,Karnataka,560106,
            aadhaar_photo: base64 format
	        aadhaar_last_four_digits: 8900,
            aadhaar_mobile: -,
            aadhaar_email: -
                 }
            },
        error: null
}

https://<BASE_URL>/<ENV>/aadhaar/<VER>/offline_xml

Body Parameter(s)

aadhaar_offline_file zip File Valid offline Aadhaar zip file downloaded from UIDAI website
aadhaar_share_code String 4 digit security code set for offline Aadhaar file
mobile_number String Optional - 10-digit mobile number linked to Aadhaar number
email_address String Optional - Email address linked to Aadhaar number

Aadhaar_masking

Example Response

{
    status: success,
    response_timestamp: 1558955302140,
    data: {
            masked_status: 0/1/2/3,
            masked_document: base 64 data for masked image
            },
        error: null
}

// Note: masked_status: 0 - pass, 1 - fail, 2 - fail, 3 - partial

https://<BASE_URL>/<ENV>/aadhaar/<VER>/mask_aadhaar

Body Parameter(s)

aadhaar_document Multipart File File needs to be in jpg or png or pdf format
mask_qr String Pass this parameter as ‘Y’ or ‘N’
rotation String Pass this parameter as ‘Y’ or ‘N’

Aadhaar_masking_s3

Example Response

{
    status: success,
    response_timestamp: 1586511808655,
    data: {
            aadhaar_ref_id: adr-mask-00b85b0264-586f4d32-8367-43fe-82f8-f9e9b3a,
            output_file_path: files/Aadhaar-back-Mani-output.jpg
            },
        error: null
}

https://<BASE_URL>/<ENV>/aadhaar/<VER>/mask_aadhaar/s3

Query Parameter(s)

bucket_name String Bucket name in S3
input_file_path Location of input file in S3 bucket
output_file_path Location of output file in S3 bucket
s3_direct_access String Pass this parameter as ‘Y’ or ‘N’

ID Verify

Verify bank account

Example Response

{
    status: success,
    response_timestamp: 1541157971674,
    data: {
        reference_id: 00b85b02_f9a59bcd-5919-49cd-be27-e619dbc2383a,
        bank_beneficiary_name:  Mr KARTHIKEYAN  P,
        bank_reference: ********,
        bank_status: VERIFIED
    },
    error: null
}

https://<BASE_URL>/<ENV>/bank/<VER>/verify_bank

Query Parameter(s)

Attributes Type Description
bank_ifsc String IFSC code of Bank required for verification of customer’s name.
bank_account_number String Customer’s bank account number required to verify customer’s name against provided details.

Bank verify status

Example Response

{
    status: success,
    response_timestamp: 1541157971636,
    data: {
        reference_id: 00b85b02_f9a59bcd-5919-49cd-be27-e619dbc2383a,
        bank_status: SUCCESS,
        reference_no: -NA-,
        beneficiary_name:  - 
    },
    error: null
}

https://<BASE_URL>/<ENV>/bank/<VER>/verify_status

Query Parameter(s)

uniq_reference_id String Unique reference id

Verify pan card

Example Response

{
    status: success,
    response_timestamp: 1541161100309,
    data: {
        reference_id: 00b85b02_803f536d-08d6-4076-b4ee-f2bb6dfced4d,
        pan_number: CXXXXXXX94C,
        pan_status: VALID,
        last_name: KARTHIKEYAN,
        first_name: ““,
        middle_name: ““,
        pan_holder_title: Shri,
        pan_last_updated: 31/07/2017
    },
    error: null
}

https://<BASE_URL>/<ENV>/pan/<VER>/verify_pan

Query Parameter(s)

pan_number String Pan number required to verify customer’s name against provided details.

Verify driving license

Example Response

{
  status: success,
  response_timestamp: 1556622637041,
  data: {
       dl_reference_id: DL_VERIFY_REF_00b85b02_ca1db986-de2a-478d-b113-c9fedb54aeb1,
       issue_date: xx-05-xxxx,
       name: xxxxx xxx,
       date_of_birth: xxxx-04-xx,
       father_or_husband_name: xxxx,
       blood_group: A+,
       validity: {
            non-transport: 16-05-2018 to 15-05-2038,
            transport: “”
        },
       cov_details: [
           {
               issue_date: xxx,xxxx CITY,
               cov: LMV
           }
       ],
       address: xxxxxxxxxxxxxxxx,
       image: BASE64_IMAGE
   },
   error: null
}

https://<BASE_URL>/<ENV>/driving_licence/<VER>/verify_dl

Query Parameter(s)

driving_licence_number String Driving Licence number required to verify customer’s details against provided Details.
date_of_birth String Birthdate of customer in format: yyyy-mm-dd

Verify VoterID

Example Response

{
    status: success,
    response_timestamp: 1576146555943,
    data: {
        vid_verification_id: b7405d22-***************040609a7bd73,
        vid_data: {
            id: b24402c3-***************57d0ee204df,
            env: 2,
            request_timestamp: 2019-12-12 15:59:14:722 +05:30,
            response_timestamp: 2019-12-12 15:59:15:936 +05:30,
            transaction_status: 1,
            result: {
                ps_lat_long: 10.7573,78.7082,
                rln_name_v1: ??????????????????????????? -,
                rln_name_v2: ““,
                rln_name_v3: ““,
                part_no: 208,
                rln_type: F,
                section_no: 2,
                id: WRC******9,
                epic_no: WRC******9,
                rln_name: “####### -,
                district: TIRUCHIRAPPALLI,
                last_update: 11-01-2019,
                state: TamilNadu,
                ac_no: 191,
                slno_inpart: 292,
                ps_name: Corporation Ele. School,Mannarpuram Tiruchy, South block west portion rcc building,
                pc_name: TIRUCHIRAPPALLI,
                house_no: P-5,
                name: Ramnath -,
                part_name: Corporation Middle School, Subramaniapuram , Airport Road,
                st_code: S22,
                gender: M,
                age: 35,
                ac_name: Tiruchirappalli (East),
                name_v1: ??????????????????????????????????????? -,
                dob: 29-11-1984,
                name_v3: ““,
                name_v2: ““
            },
            response_msg: Success,
            response_code: 101
        }
    },
    error: null
}

https://<BASE_URL>/<ENV>/voter_id/<VER>/verify_vid

Query Parameter(s)

vid_number String VoterID number required to verify customer’s details against provided details.

Verify gstin

Example Response

{
   status: success,
   response_timestamp: 1550640754200,
   data: {
        gst_verification_id: 00b85b02_afe9a56f-f62a-4feb-8374-55f1b2563a44,
        gst_data: {
            business_gstin_number: 29AABCF4714XXXXXX,
            business_legal_name: ABCDXXXXXXXXXX,
            business_registration_date: XX/YY/XXXX,
            business_activity: [
                Service Provision
            ],
            business_gstin_status: Active,
            business_trade_name: FRSLABS RESEARCH SYSTEMS PRIVATE LIMITED,
            business_address_primary_building: ANNAI ILLAM,
            business_address_primary_street1: 2ND CROSS, 8TH MAIN,
            business_address_primary_location: SRIRAMAPURAM,
            business_address_primary_number: 28/1,
            business_address_primary_street2: Karnataka,
            business_address_primary_floor: ““,
            business_address_primary_latt: ““,
            business_address_primary_long: ““,
            business_address_primary_pincode: 560021,
            business_address_secondary_building: ““,
            business_address_secondary_street1: 5th Main, 14-B Cross,
            business_address_secondary_location: HSR Layout, 6th Sector,
            business_address_secondary_number: 355,
            business_address_secondary_street2: Karnataka,
            business_address_secondary_floor: 2nd,
            business_address_secondary_latt: ““,
            business_address_secondary_long: ““,
            business_address_secondary_pincode: 560102
        }
    },
    error: null
}

https://<BASE_URL>/<ENV>/gst/<VER>/verify_gst

Query Parameter(s)

gst_number String Gst number required to verify customer’s details against provided details.

Country codes

A sample of the ISO country codes supported are provided below. The full list can be found here.

Error Code Meaning
Australia AUS
Austria AUT
Bahrain BHR
Belgium BEL
Canada CAN
Denmark DNK
Egypt EGY
Finland FIN
France FRA
Germany DEU
Greece GRC
Greenland GRL
Hungary HUN
Iceland ISL
India IND
Indonesia IDN
Ireland IRL
Israel ISR
Italy ITA
Japan JPN
Philippines PHL
Poland POL
Portugal PRT
United Arab Emirates ARE
United Kingdom GBR
United States USA