POST/Submission/Step 2

Request URL

curl -X POST "https://rest-api.argoskyc.com/v3/submission/step2"
-H "x-api-key: {yourAPIKey}"
-form ...
  • At Step 2, data should be transmitted based on the Step 1 response.

  • Step 2 is where we compare face, compare OCR data and user-confirmed data and get address information or address image.

  • For Step 2 process, data should be submitted in 'form-data' format.

  • For Step 2, you can send the selfies 3 times maximum(1st try + 2 retries). If 1st try of Step 2 is processed, KYC submission should be done in 24 hours from Step 1 start time. (Because 'Step 2 processed but no KYC result yet' submission will be rejected after 24 hours.)

  • You can check the submitted data at Dashboard or get it by Get/Submission API.

  • When collect-address option is on, globalCode, compoundCode, formatted_address, address_input, addressdetail are required. Get these information through Post/Address_code API.

  • Any of globalCode, compoundCode, formatted_address must be submitted.

  • 'address_input' is the user-typed address, 'address_detail' is detailed address. Both are optional.

  • Submission ID created at Step 1 process must be included.

  • SubmissionId, faceimage, name, date_of_birth are required parameters.

  • Refer to Retry & Error Codes page for retry codes and error codes.

  • The recommended standard for 'faceImage' is 960 x 720 pixels.

Input Data

* means required parameters.

ParameterTypeDescription

*submissionId

string

The unique submission ID received from step 1.

*faceImage

file

A selfie image that has only one face. If multiple faces are detected, it will respond with retry.

(Recommended size: 1mb, limit: 2mb)

*name

string

The name should be in 'Fullname' format. (First_Name & Last_Name)

*date_of_birth

string

YYYY-MM-DD

gender

string

<male, female>

nationality

string

ISO alpha 3 format of nationality. The nationality is not necessarily same as the ID issued country.

identity_number

string

This is unique identity number for Korean photo IDs.

license_number

string

(KOREAN DRIVER LICENSE ONLY) 12 code license number for ID verification ex) 12 Digit (12-34-567890-12 ) or

2 Korean characters & 10 Digit (서울-12-345678-90)

document_number

string

Document number of ID(Passport number, License number etc...)

serial_number

string

(Korean Driver's License Only)6 letter unique serial number in Korean driver's license.

date_of_issue

string

YYYY-MM-DD format of ID issue date.

date_of_expiry

string

YYYY-MM-DD format of ID expiry date.

addressImage

file

Address document image to verify the address information.

(Recommended size: 1mb, limit: 2mb)

address_street

string

street

address_city

string

city

address_state

string

state

address_country

string

country code in ISO 3 format

address_zipcode

string

zip-code (postal code)

globalCode

string

Detailed code from the address (ex. 87C4VXX7+39)

compoundCode

string

Detailed code, city and country from the address (ex. VXX7+39 Washington, DC, USA)

formatted_address

string

Transformed address from detailed code

address_input

string

User input address(When user input address data is needed)

address_detail

string

User input detailed address(When user input detail address data is needed)

userOccupancyCode

string

3-digit verification code received with 1 won when using 'Account Occupancy' option. (ex. 123test)

userOccupancyName

string

Account holder's name acquired from 'Account Occupancy' process.

idType

string

(When using the Universal mode option) If idType is returned as ‘any’ due to OCR recognition failure in Step 1, idType is required to be submitted when proceeding with Step 2. Valid values: passport, government_id, drivers_license, residence_permit, vehicle_registration certificate, visa, aadhaar, pancard

Authentication Input Data

Required parameters for authentication differs to issuing country of the ID and type of ID.

Issuing CountryID TypeRequired Parameters

KOR

government_id

name, date_of_birth, identity_number

KOR

drivers_license

date_of_birth, license_number, serial_number

KOR

passport

name, date_of_birth, document_number, date_of_issue, date_of_expiry

KOR

residence permit

identitiy_number, date_of_issue

USA, CAN, MEX

drivers_license

name, date_of_birth, gender, date_of_expiry, date_of_issue, dcoument_number

Sample Request 1

curl --location --request POST 'https://rest-api.argoskyc.com/v3/submission/step2' \
--header 'x-api-key: {yourAPIKey}' \
--form 'faceImage=@"/C:/Users/face.jpg"' \
--form 'name="Jhon Smith"' \
--form 'nationality="USA"' \
--form 'date_of_birth="1998-11-11"' \
--form 'date_of_issue="2016-11-11"' \
--form 'submissionId="d76h19l46m****"' \
--form 'identity_number="981112-1******"' \
--form 'gender="male"'

Sample Request 2

var myHeaders = new Headers();
myHeaders.append("x-api-key", "{YOUR_API_KEY}");

var formdata = new FormData();
formdata.append("faceImage", fileInput.files[0], "/C:/Users/face.jpg");
formdata.append("name", "Jhon Smith");
formdata.append("nationality", "USA");
formdata.append("date_of_birth", "1998-11-11");
formdata.append("date_of_issue", "2016-11-11");
formdata.append("submissionId", "d76h19l46m****");
formdata.append("identity_number", "981112-1******");
formdata.append("gender", "male");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: formdata,
  redirect: 'follow'
};

fetch("https://rest-api.argoskyc.com/v3/submission/step2", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Output Data

ResponseDescription

kycStatus

<pending, approved, rejected, incomplete>

If kycStatus is 'pending', the kyc submission is completed, but it will be manually reviewed to finalize whether the submission is approved or rejected.

*If kycStatus is 'incomplete', the KYC is not accepted due to invalid KYC data and step 2 retry is recommended until kycStatus returns 'pending', 'approved' or 'rejected'.

faceSimilarityScore

The face similarity score between the face in the ID and the selfie image. The closer the score is to 100, it is more likely that the two faces are matched(0~100).

livenessScore

The liveness score evaluates whether the face in the selfie image is a live person or not. The closer the score is to 100, it is more likely that the image is a picture of a live person(1~100).

verificationResult

<success, fail>

retryCount

Retry count of Step 2. If Step 2 fails at retry count 2, the KYC is rejected.

retry

If the kycStatus is "incomplete", message is shown to explain why the KYC application is not accepted.

recognized_IdType

When using universal mode, idType defined when OCR recognition is successful in Step 1

Sample Response - Approved

{
    "faceSimilarityScore": 99,
    "livenessScore": 74,
    "kycStatus": "approved",
    "retryCount": 0
}

Sample Response - Rejected

{
    "livenessScore": 74,
    "kycStatus": "rejected",
    "retryCount": 3
}

Sample Response - Pending

{
    "faceSimilarityScore": 99,
    "livenessScore": 74,
    "kycStatus": "pending",
    "retryCount": 0
}

Sample Response - Incomplete

{
    "retry": [
        {
            "retryCode": "face_compare_fail",
            "retryMsg": "Face compare failed: no matching face"
        }
    ],
    "kycStatus": "incomplete",
    "retryCount": 1
}

Retry & Error Codes

Caution

To compare the faces fluently the ratio of a face should be appropriate in the image. When it's too large or small, face comparison might fail. Below image is the guideline for Argos Liveform and examples of selfie images.

Last updated