POST/Submission/Step 1
Request URL
KYC submission process is divided into 2 steps, Step1 -> Step 2.
Step 1 is the process where we extract text from the ID and get confirmation from users.
For Step 1 process, data should be submitted in 'form-data' format.
If a submission ID is not created at Step 1, Step 2 can not proceed.
For Step 1, issuingCountry/email/idType/dImage must be submitted.
The recommended standard for 'idImage' and 'idBackImage' is 640 x 480 pixels.
userid, cf1, cf2, cf3 are options. Please refer to the Input Data table for detail.
Refer to Retry & Error Codes page for retry codes and error codes.
Input Data
* means required parameters.
Parameter | Type | Description |
---|---|---|
*issuingCountry | string (ISO alpha3) | ISO alpha 3 format of the country the ID card is issued. |
string | email address of the KYC applicant | |
*idType | string | passport, government_id, drivers_license, residence_permit, visa, vehicle_registration_certificate, aadhaar, pancard, universal |
*idImage | file | jpg, jpeg, png file format of the ID front image (recommendation: 1mb, limit: 2mb) |
idBackImage | file | jpg, jpeg, png file format of the ID back image (recommendation: 1mb, limit: 2mb) |
submissionId | string | Unique veirifying ID needed for further steps, it is valid for 4 hours. |
userid | string | custom optional unique identifier of the user |
cf1 | string | custom optional field |
cf2 | string | custom optional field |
cf3 | string | custom optional field |
customOptions | serialized JSON object in string | Regardless of project options, an object to apply options for each submission. Convert to string and transmit. |
customOptions. blacklistCountries | boolean | Turn OFF options for blacklisted countries for the respective submission ('false' only possible). |
customOptions. approvePeriod | boolean | Turn OFF options for the approved duplicate submission prevention period for the respective submission ('false' only possible). |
customOptions. rejectPeriod | boolean | Turn OFF options for the rejected duplicate submission prevention period for the respective submission ('false' only possible). |
customOptions. ageLimit | boolean | Turn OFF options for age restrictions for the respective submission ('false' only possible). |
customOptions. rejectDuplicateUser | boolean | Turn ON/OFF options for duplicate submission prevention for the respective submission ('true' and 'false' both possible). |
Detailed explanation of 'customOptions':
'customOptions' itself is an object containing a boolean property indicating the use of options internally.
However, the entire object must be converted to a string for transmission.
It can only be submitted in Step 1 and also referenced in Step 2.
Only 'rejectDuplicateUser' can be toggled ON/OFF.
Example
For 'issuingCountry', 'idType' and rear side collection, please check the file at ID Type & Rearside Collection page.
Sample Request 1
Sample Request 2
Output Data
When Step 1 is successfully completed, documnt_fields, missing_fields, reviewOCRData, SubmissionId, idImage will be returned.
'document_fields' for confirmable data from the submitted ID, 'missing_fields' for data that exist on the ID but failed to read, 'reviewOCRData' for data extracted from the ID.
Response | Description |
---|---|
Submissionid | submission의 ID. *It will be needed at Step 1 retry and Step 2 |
reviewOCRData | OCR object that contains ID card information. If OCR fails, this parameter is not returned. |
reviewOCRData.ocr_birthDate | YYYY-MM-DD format date of birth |
reviewOCRData.accepted_ocr_birthDate | Birthdate recognition: true/false |
reviewOCRData.ocr_issueDate | Issued date |
reviewOCRData.accepted_ocr_issueDate | Issue date recognition: true/false |
reviewOCRData.ocr_expireDate | Expiary date |
reviewOCRData.accepted_ocr_expireDate | Expiary date recognition: true/false |
reviewOCRData.ocr_lastName | Last name |
reviewOCRData.accepted_ocr_lastName | Last name recognition: true/false |
reviewOCRData.ocr_firstName | First name |
reviewOCRData.accepted_ocr_firstName | First name recognition: true/false |
reviewOCRData.ocr_name | Full name |
reviewOCRData.accepted_ocr_name | Name recognition: true/false |
reviewOCRData.ocr_gender | Gender |
reviewOCRData.accepted_ocr_gender | Gender recognition: true/false |
reviewOCRData.ocr_nationality | ISO3 code format of nationality if available |
reviewOCRData.accepted_ocr_nationality | Nationality recognition: true/false |
reviewOCRData.ocr_identityNumber | Identity number |
reviewOCRData.accepted_ocr_identityNumber | Identity number recognition: true/false |
reviewOCRData.ocr_licenseNumber | License number(Korean only) |
reviewOCRData.accepted_ocr_licenseNumber | License numbe recognition: true/false |
idImage | Path of ID front image |
idBackImage | Path of ID back image |
file_upload | "true" if the ID card front image is successfully received. "false" otherwise. |
file_back_upload | "true" if the ID card back image is successfully received. "false" otherwise. |
document_fields | Whether the ID has specific information or not. documentnumber, expireDate, gender, identityNumber, issueDate, nationality: true/false 1) When using Universal Mode, Array format when OCR recognition fails 2) Others, single object type |
document_fields.expireDate | true/false |
document_fields.idNumber | true/false |
document_fields.identityNumber | true/false |
document_fields.gender | true/false |
document_fields.issueDate | true/false |
document_fields.nationality | true/false |
document_fields.number | true/false |
document_fields.name | true/false |
document_fields.birthDate | true/false |
document_fields.serialNumber | true/false |
document_fields.documentNumber | true/false |
missing_fields | It should be in the ID, but the returned data due to OCR recognition fail. ex) [gender, documentNumber, identityNumber] |
retry | retryCode + retryMsg format text explaining the reason for being 'incomplete' |
kycStatus | <pending, approved, rejected, incomplete> incomplete: Due to insufficient KYC data, failed to get final result. We provide 3 chances in total, and recommend not to stop in the middle |
retryCount | Tried count for Step 1, when it becomes 3 the KYC submission will be rejected. |
Sample Response
Retry & Error Codes
Refer to Retry & Error Codes page for retry codes and error codes.
Step 1 Sample
Request URL
Sample Request
Sample Response
Caution
For OCR engine to well-function, it needs to recognize a rectangle ID in the image. To do this, it's better that the image has a little bit of padding around the ID. With an image without any buffer, there might be no OCR response.
ID Backside Collection
For the IDs with 'ID Card Back' column 'True', we collect the back of the ID. It will be saved depending on the detailed type. Please check the file at ID Type & Rearside Collection.
Last updated