API Guide
You can submit your customer's KYC form data using the Argos API and check the progress of KYC.
The Argos API uses RESTful Endpoints and the default HTTP Method.
The response data contains the status of the request and possible error codes.
All response data is provided as JSON format.
Use token authentication.
All requests must be made in HTTPS. HTTP requests will fail.
1. Getting Started
To get started using API you need a valid API key. To obtain an API key, please contact Argos HELPDESK.
2. Authentication
The API uses Token-based authentication.
The API must be provided by Argos in order to use the API.
Authenticate with HTTP Headers
You can send your API key with your query as a HTTP header
The API Key should be included in the method request header as 'x-api-key: {yourAPIKey}'
Errors
Respond with a generic HTTP response code. At success, it is represented by 2xx code. 4xx occurs when there is an error in the information transmitted on the Client. 5xx occurs when there is an error on the Argos server.
Error Codes
Invalid Query String parameters
Client error
(e.g. malformed request syntax, invalid request message framing)
403
Forbidden
API KEY is not provided or something is wrong with the API KEY.
413
Request Entity Too Large
The request is larger than the server is willing or able to process.
500
Internal Server Error
It might be Argos server error. Please contact Argos team.
502
Bad Gateway
The server received an invalid response from the upstream server.
3. GET /submission
Get a list of submissions.
The KYC / AML status can be checked by the GET request.
You can either check for the KYC status of a specific submission or get a list of KYC submissions with GET request.
If no parameter is provided, a list of all submissions is returned.
If a parameter is provided, filter the list by the given parameter.
To get a submission data of a specific submission, submission ID must be provided as a parameter.
Request URL
Input Data
submission_id
optional
Submission ID. A single submission data matching the submission ID is returned.
userid
optional
A list of submissions matching the userid is returned. The userid is an optional parameter that is inserted into submission data when posting a submission.
optional
A list of submissions matching the email address is returned.
count
optional
The number of data to be transmitted when requesting a list output (maximum of 2,000). When requesting a list without a count parameter, up to 2,000 will be output by default.
nextpage_id
optional
If 'nextpageKey' is returned to the response when requesting list output, it means that there is a next page. To call the next page, 'nextpage_id(nextpageKey.id)' and 'nextpage_date(nextpageKey.created_at) should be included to the request parameter.
nextpage_date
optional
If 'nextpageKey' is returned to the response when requesting list output, it means that there is a next page. To call the next page, 'nextpage_id(nextpageKey.id)' and 'nextpage_date(nextpageKey.created_at) should be included to the request parameter.
Output Data
data
KYC applicant data
data.name
name
data.gender
<male, female>
data.nationality
Three letter format (ISO alpha3 format) of nationality.
data.date_of_birth
YYYY-MM-DD format of date of birth
data.idType
ID card type <passport, government_id, drivers_license>
data.idcard_issuingCountry
ISO alpha 3 format country code where ID card is issued.
data.idcard_issueDate
YYYY-MM-DD format of ID card issue date
data.idcard_expireDate
YYYY-MM-DD format of ID card expiry date
data.identityNumber
Personal Identity Number
data.documentNumber
Documnet number
data.address_city
City
data.address_country
Country
data.address_state
State
data.address_street
Street
data.address_zipcode
Zip code (postal code)
data.address_globalCode
Detailed code from the address (ex. 87C4VXX7+39)
data.address_compoundCode
Detailed code, city and country from the address (ex. VXX7+39 Washington, DC, USA)
data.address_formatted
Transformed address from detailed code
data.address_input
User input address
data.address_detail
User input detailed address
data.cf1
Optional parameter that is inserted into submission data when posting a submission.
data.cf2
Optional parameter that is inserted into submission data when posting a submission.
data.cf3
Optional parameter that is inserted into submission data when posting a submission.
email address
submission_id
Identifier given to each submission
applicant_id
Identifier given to each applicant
created_at
KYC submitted date and time.
userid
Optional parameter that is inserted into submission data when posting a submission.
kyc
kyc data object
kyc.result
<incomplete, pending, approved, rejected> incomplete: KYC submission is incomplete. It happens when ID card is submitted but selfie is not.
pending: the submission is under manual review
approved: submission is approved
rejected: submission is rejected. Reject comment can be found at kyc.comment
kyc.comment
KYC reject comment is returned only when KYC result is 'rejected'
kyc.commentCode
Code for KYC reject comment
kyc.attempts
Object of Liveness, Detect face, Face compare
kyc.attempts[i].error
Liveness, Detect face, Face compare error message
kyc.attempts[i].retryMsg
Cause of rejection on Liveness, Detect face, Face compare
kyc.attempts[i].livenessScore
Liveness score on attempt [i]
kyc.attempts[i].faceSimilarityScore
Face similarity score on attempt [i]
aml
aml screening result data object
aml.risk_level_summary
<Not Screened, High, Medium, Low>
aml.currentstatus
<Not Screened, Red Flag>
aml.matches
Detailed AML screening result. Only available when aml.currentstatus is 'Red Flag'.
aml.matches[i].resource_id
Returned only when AML screening has matches. Resource ID is used to request and download the AML report for the specific match.
nextpageKey
Key-value object delivered when there is a next page.
nextpageKey.id
The last inquired submission ID which is needed to call the next page.
nextpageKey.created_at
'created_at' value of the last inquired submission ID which is needed to call the next page.
Sample Response1. Get one
Sample Response 2. Get List
3-1. GET /submission/applicant
Get a list of approved submissions submitted by the same person.
If there are multiple submissions from people with the same name, date of birth, nationality, gender, and face, it is judged as a duplicate submission, and you can check the duplicate submissions.
For a typical applicant that doesn't have duplicate submissions, only a single approved submission is pulled..
Since the search is based on applicant_id, applicant_id must be obtained from submission information..
Request URL
Input data
applicant_id
required
Unique identifier for each person
Output data
submission_id
Unique value of submission confirmed as duplicate submission
Email address recorded in submission identified as a duplicate submission
4. POST /submission/step1
Request URL
Input data
issuingCountry
string (ISO3)
*required
ISO alpha 3 format of the country the ID card is issued.
string
*required
email address of the KYC applicant
idType
string
*required
<passport, government_id, drivers_license>
idImage
file
*required
jpg, jpeg, png file format of the ID image (size limit: 3mb)
userid
string
optional
custom optional unique identifier of the user
cf1
string
optional
custom optional field
cf2
string
optional
custom optional field
cf3
string
optional
custom optional field
Output Data
submissionId
The unique submission ID of this submission. This ID is required for step 2.
reviewOCRData
OCR object that contains ID card information. If OCR fails, this parameter is not returned.
reviewOCRData.ocr_birthDate
birth date in YYYY-MM-DD format
reviewOCRData.ocr_issueDate
issue date if available
reviewOCRData.ocr_expireDate
expire date if available
reviewOCRData.ocr_lastName
last name if available
reviewOCRData.ocr_firstName
first name if available
reviewOCRData.ocr_name
name if available
reviewOCRData.ocr_gender
gender if available
reviewOCRData.ocr_nationality
ISO3 code format of nationality if available
reviewOCRData.ocr_identityNumber
(KOREAN ID ONLY) Unique personal identity number
reviewOCRData.ocr_licenseNumber
(KOREAN DRIVER LICENSE ONLY) driver license number
file_upload
"true" if the ID card image is successfully received. "false" otherwise.
Sample Response
5. POST /submission/step2
Request URL
Input data
submissionId
string
*required
The unique submission ID received from step 1.
faceImage
file
*required
A selfie image that has only one face. If multiple faces are detected, it will respond with retry. (size limit: 3mb)
name
string
*required
The format of the name can either be:
• “Lastnames, Firstnames Middlenames” (e.g., “Trump, Donald John”). This is the preferred format for when you know the explicit lastname of the individual.
• “Firstname Middlenames Lastnames” (e.g., “Donald John Trump”). Use this format when you do not explicitly know the lastname of the profile. The algorithm will determine this automatically.
date_of_birth
string
*required
YYYY-MM-DD
gender
string
optional
<male, female>
nationality
string
optional
ISO alpha 3 format of nationality. The nationality is not necessarily same as the ID issued country.
identity_number
string
optional
(KOREAN ID ONLY) This is unique identity number for Korean photo IDs.
license_number
string
optional
(KOREAN DRIVER LICENSE ONLY) license number for ID verification
serial_number
string
optional
(KOREAN DRIVER LICENSE ONLY) 6 letter unique serial number in Korean driver's license
date_of_issue
string
optional
YYYY-MM-DD format of photo ID issue date.
addressImage
file
optional
Address document image to verify the address information. (size limit: 3mb)
address_street
string
optional
street
address_city
string
optional
city
address_state
string
optional
state
address_country
string
optional
country code in ISO 3 format
address_zipcode
string
optional
zip-code (postal code)
globalCode
string
optional
Detailed code from the address (ex. 87C4VXX7+39)
compoundCode
string
optional
Detailed code, city and country from the address (ex. VXX7+39 Washington, DC, USA)
formatted_address
string
optional
Transformed address from detailed code
address_input
string
optional
User input address
address_detail
string
optional
User input detailed address
Output Data
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 photo ID and the selfie face image. The score is ranged from 0 to 100. The closer the socre is to 100, it is more likely that the two faces are matched.
livenessScore
The liveness score evaluates whether the face in the selfie image is a live person or not. The score is ranged from 0 to 100. The closer the score is to 100, it is more likely that the image is a picture of a live person.
verificationResult
<success, fail>
retryCount
Retry count of step 2. If step 2 is attempted more than 3 times, the KYC is rejected.
message
If the kycStatus is "incomplete", message is shown to explain why the KYC application is not accepted.
Notice kycStatus is "incomplete" and retryCount is increased in case of following:
No face detected in the face image
More than two faces detected in the face image
Face compare score is below 85
Liveness fraud check score is below 50
(Korean Only) ID verification fails
Sample Response
{
"verificationResult":"success",
"faceSimilarityScore":99,
"livenessScore":91,
"kycStatus":"pending",
"retryCount":0
}
5-1. POST /address_code
Only available to the projects with address 'collection' option.
Request URL
Sample Request 1
Sample Request 2
Sample Response
Input Data
address
string
Required
You can search by entering one of the following:
Address
Global code
Compound code
Latitude and longitude (Separate by comma, ex. 38.897,77.036)
language
string
optional
Output Data
formatted_address
Transformed address from detailed code
compound_code
Detailed code, city and country from the address (ex. VXX7+39 Washington, DC, USA)
global_code
Detailed code from the address (ex. 87C4VXX7+39)
6. DELETE /submission
Delete a single submission data.
It will completely delete the submission data and the image files associated with the submission.
Caution!! Deleted submission cannot be restored.
Sample Request
Input Data
submission_id
Submission ID. Unique ID for a specific submission
Sample Response
7. GET /report/aml
Returns an application/pdf report of AML screening result.
AML report is provided for each 'resourceId'. 'resourceId' is required to download AML report.
Request URL
Input Data
resourceId
'resourceId' is a unique number of a person screened as a result of AML screening.
'resourceId' can be found if a submission is screened for AML Red-Flag.
Each matching AML screening result has a unique 'resourceId'.
One submission may have multiple matches; therefore, multiple 'resourceId'.
Output Data
As a response, application/pdf file format of the report is downloaded.
8. GET /image
Request URL
Input Data
submission_id
required
unique submission Id.
type
required
<idImage, selfieImage, addressImage>
idImage: downloads the image of photo ID
selfieImage: downloads the face image
addressImage: downloads the address document if the submission has such file.
Output Data
As a response, document file is downloaded.
Last updated