# POST Submission(s)
Argos KYC (a.k.a. Know Your Customer) verifies your customer's information with their provided documents. You have options to choose from two different tiers of KYC depending on whether you need to verify the customer's address information.
# KYC Level 1
KYC Level 1 is to verify the customer's ID document and identity using ID verification and face verification. For KYC level 1 verification, you must first upload ID image and Selfie image then include their filehash in submission form data.
# Step 1. Upload ID image
Upload an image with type value of "passport" "drivers_license" or "government_id".
Copy "filehash" value from response object and store it for later use. **This value is required when submitting the form data in Step 3.
Request Type | Request URL |
---|---|
POST | https://api2.argos-solutions.io/f1/submissions/upload |
Request Headers
headers = {
'x-api-key' : 'your_api_key'
'Content-Type' : 'multipart/form-data; boundary=<your_file_boundary>'
}
Sample Code
Caution : If you would like to send a cURL POST request to API directly, image files need to be base64-encoded and boundary should be included in the headers. cURL
curl --location --request POST 'https://api2.argos-solutions.io/f1/submissions/upload' \
--header 'x-api-key: <your_api_key_here>' \
--header ‘Content-Type’: 'multipart/form-data; boundary= <file_boundary>’ \
--form 'file=@/<your_file_path_here>' \
--form 'type=passport'
Node.js - Request
var request = require('request');
var fs = require('fs');
var options = {
'method': 'POST',
'url': 'api2.argos-solutions.io/f1/submissions/upload',
'headers': {
'x-api-key': '<your_api_key_here>'
'Content-Type': 'multipart/form-data;boundary=<file_boundary>'
},
formData: {
'file': {
'value': fs.createReadStream('<your_file_path_here>'),
'options': {
'filename': '<file_name_here>',
'contentType': null
}
},
'type': 'passport'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Arguments
Argument | Description | Required |
---|---|---|
file | The file which needs to be uploaded ( multipart form ) | Yes |
type | Possible document types: passport, drivers_license, government_id, selfie, address, other | Yes |
"other" value in "type" refers to any additional image to store in Submission object (jpeg, png, pdf).
Response Object
Parameter | Description | Format |
---|---|---|
id | Document ID | text |
created_at | Created date time | ISO8601 |
filehash | The file hash id that has been uploaded to Argos systemWhen you submit the form data, this value used for photoid_res, selfie_res, address_res fields | text |
filetype | Possible document types: <passport, drivers_license, government_id, selfie, address> | text |
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc" -F "type=passport" -F "file=@localfile.png;type=image/png" https://api2.argos-solutions.io/f1/submissions/upload
SAMPLE RESPONSE
{
"id": "3um227kbkkdqmu",
"created_at": "2020-06-18T09:10:44.502Z",
"filehash": "685vw362ba/passport_3um227kb511qmu",
"filetype": "passport",
"fileFormat": "image/jpeg"
}
# Step 2. Upload Selfie image
Repeat Step 1 with type value of "selfie"
Copy "filehash" value from response object and store it for later use.
"filehash" value is required when submitting the form data in Step 3.
# Step 3. Submit KYC formdata
Set "kyc_level" as "L1"
Set "photoid_res" as the filehash value received in Step 1.
Set "selfie_res" as the filehash value received in Step 2.
Fill in other required arguments as described below:
Request Type | Request URL |
---|---|
POST | https://api2.argos-solutions.io/f1/submissions |
Request Headers
headers = {
'x-api-key' : "your_api_key",
'Content-Type' : "application/x-www-form-urlencoded"
}
Request Body
{
'email': 'test@test.me',
'first_name': 'John',
'middle_name': 'Avg',
'last_name': 'Doe',
'nationality': 'United States, USA',
'date_of_birth': '1980-10-10',
'gender': 'male',
'id_type': 'passport',
'kyc_level': 'L1',
'photoid_res': '686v3v91ba/passport_cemt81k51r2k6o',
'selfie_res': '686v3v91ba/selfie_ceoihsdwe1r234i',
'userid': '112'
}
Response
SAMPLE RESPONSE
{
"date_of_birth": "1980-10-10",
"email": "test@test.me",
"first_name": "John",
"gender": "male",
"id_type": "passport",
"kyc_level": "L1",
"last_name": "Joe",
"middle_name": "Avg",
"nationality": "United States, USA",
"photoid_res": "686v3v91ba/passport_cemt81k51r2k6o",
"selfie_res": "686v3v91ba/passport_ceoihsdwe1r234i",
"userid": "112",
"id": "1ettd8kbkkm4om",
"created_at": "2020-06-18T09:17:16.024Z"
}
Sample Code
cURL
curl --location --request POST 'https://api2.argos-solutions.io/f1/submissions' \
--header 'x-api-key: your_api_key' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'email=test@test.me' \
--data-urlencode 'first_name=John' \
--data-urlencode 'last_name=Joe' \
--data-urlencode 'nationality=United States, USA' \
--data-urlencode 'date_of_birth=1980-10-10' \
--data-urlencode 'gender=male' \
--data-urlencode 'id_type=governmentid' \
--data-urlencode 'kyc_level=L1' \
--data-urlencode 'photoid_res=686v3v91ba/passport_cemt81k51r2k6o' \
--data-urlencode 'selfie_res=686v3v91ba/passport_ceoihsdwe1r234i'
Node.js - Request
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api2.argos-solutions.io/f1/submissions',
'headers': {
'x-api-key': 'your_api_key',
'Content-Type': 'application/x-www-form-urlencoded'
},
form: {
'email': 'test@test.me',
'first_name': 'John',
'last_name': 'Joe',
'nationality': 'United States, USA',
'date_of_birth': '1980-10-10',
'gender': 'male',
'id_type': 'governmentid',
'kyc_level': 'L1',
'photoid_res': '686v3v91ba/passport_cemt81k51r2k6o',
'selfie_res': '686v3v91ba/passport_ceoihsdwe1r234i'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Arguments
Argument | Description | Required |
---|---|---|
Must be a valid email address format | YES | |
first_name | First Name | YES |
middle_name | Middle Name | NO |
last_name | Last Name | YES |
nationality | Nationality code in ISO3 or Argos format. | YES |
date_of_birth | (YYYY-MM-DD) format | YES |
gender | Gender <male / female> | YES |
id_type | ID Type <passport, drivers_license, government_id> | YES |
id_number | ID number or passport number | NO |
kyc_level | KYC Level <L1 / L2> | YES |
photoid_res | The hash id from the uploaded id image APIEg. 885vw362ba/passport_3um227kb511qmu | YES |
selfie_res | The hash id from the uploaded selfie image APIEg. 885vw362ba/selfie_3um227skdlfilqmu | YES |
userid | Unique custom ID (String) for each KYC applicant. | NO |
# KYC Level 2
KYC Level 2 verifies the customer’s address information in addition to KYC Level 1 ID and selfie identity verification. For KYC level 2 verification, you must first upload ID image and Selfie image, and address document image then include their filehash in submission form data along with address information.
# Step 1. Upload ID image
Upload an image with type value of "passport" "drivers_license" or "government_id".
Copy "filehash" value from response object and store it for later use. **This value is required when submitting the form data in Step 4.
Request Type | Request URL |
---|---|
POST | https://api2.argos-solutions.io/f1/submissions/upload |
Request Headers
headers = {
'x-api-key' : "your_api_key",
'Content-Type' : 'multipart/form-data; boundary=<file_boundary>'
}
Sample Code
Caution : If you would like to send a cURL POST request to API directly, image files need to be base64-encoded and boundary should be included in the headers.
cURL
curl --location --request POST 'https://api2.argos-solutions.io/f1/submissions/upload' \
--header 'x-api-key: <your_api_key_here>' \
--header ‘Content-Type’: “multipart/form-data; boundary= <file_boundary>’ \
--form 'file=@/<your_file_path_here>' \
--form 'type=passport'
Node.js - Request
var request = require('request');
var fs = require('fs');
var options = {
'method': 'POST',
'url': 'api2.argos-solutions.io/f1/submissions/upload',
'headers': {
'x-api-key': '<your_api_key_here>',
'Content-Type': 'multipart/form-data; boundary=<file_boundary>'
},
formData: {
'file': {
'value': fs.createReadStream('<your_file_path_here>'),
'options': {
'filename': '<file_name_here>',
'contentType': null
}
},
'type': 'passport'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Arguments
Argument | Description | Required |
---|---|---|
file | The file which needs to be uploaded ( multipart form ) | Yes |
type | Possible document types: passport, drivers_license, government_id, selfie, address, other | Yes |
"other" value in "type" refers to any additional image to store in Submission object (jpeg, png, pdf).
Response Object
Parameter | Description | Format |
---|---|---|
id | Document ID | text |
created_at | Created date time | ISO8601 |
filehash | The file hash id that has been uploaded to Argos systemWhen you submit the form data, this value used for photoid_res, selfie_res, address_res fields | text |
filetype | Possible document types: <passport, drivers_license, government_id, selfie, address> | text |
Example curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc" -F "type=passport" -F "file=@localfile.png;type=image/png" https://api2.argos-solutions.io/f1/submissions/upload
SAMPLE RESPONSE
{
"id": "3um227kbkkdqmu",
"created_at": "2020-06-18T09:10:44.502Z",
"filehash": "685vw362ba/passport_3um227kb511qmu",
"filetype": "passport",
"fileFormat": "image/jpeg"
}
# Step 2. Upload Selfie image
Repeat Step 1 with type value of “selfie”
Copy “filehash” value from response object and store it for later use.
”filehash” value is required when submitting the form data in Step 4.
# Step 3. Upload address document image
Repeat Step 1 with type value of “address”
Copy “filehash” value from response object and store it for later use. **This value is required when submitting the form data in Step 4.
# Step 4. Submit KYC formdata
Set “kyc_level” as “L2”
Set “photoid_res” as the filehash value received in Step 1.
Set “selfie_res” as the filehash value received in Step 2.
Set “address_res” as the file has value received in Step 3.
Fill in other required arguments as described below:
Request Type | Request URL |
---|---|
POST | https://api2.argos-solutions.io/f1/submissions |
Request Headers
headers = {
'x-api-key' : "your_api_key",
'Content-Type' : "application/x-www-form-urlencoded"
}
Request Body
Sample Request Body
{
'email': 'test@test.me',
'first_name': 'John',
'middle_name': 'Avg',
'last_name': 'Doe',
'nationality': 'United States, USA',
'date_of_birth': '1980-10-10',
'gender': 'male',
'id_type': 'passport',
'kyc_level': 'L1',
'photoid_res': '686v3v91ba/passport_cemt81k51r2k6o',
'selfie_res': '686v3v91ba/selfie_ceoihsdwe1r234i',
'address_res': '686v3v91ba/address_hrtytyhsdw19c234i',
'userid': '112',
'address_street': '5000 Forbes Ave',
'address_city': 'Pittsburgh',
'address_state': 'PA',
'address_zipcode': '15213',
'address_country': 'United States, USA'
}
Response
SAMPLE RESPONSE
{
"address_city": "Pittsburgh",
"address_country": "United States, USA",
"address_res": "686v3v91ba/address_hrtytyhsdw19c234i",
"address_state": "PA",
"address_street": "5000 Forbes Ave",
"address_zipcode": "15213",
"date_of_birth": "1980-10-10",
"email": "test@test.me",
"first_name": "John",
"gender": "male",
"id_type": "passport",
"kyc_level": "L1",
"last_name": "Joe",
"middle_name": "Avg",
"nationality": "United States, USA",
"photoid_res": "686v3v91ba/passport_cemt81k51r2k6o",
"selfie_res": "686v3v91ba/passport_ceoihsdwe1r234i",
"userid": "112",
"id": "1ettd8kbkkm4om",
"created_at": "2020-06-18T09:17:16.024Z"
}
Sample Code cURL
curl --location --request POST 'https://api2.argos-solutions.io/f1/submissions' \
--header 'x-api-key: your_api_key' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'address_street=5000 Forbes Ave' \
--data-urlencode 'address_city=Pittsburgh' \
--data-urlencode 'address_state=PA' \
--data-urlencode 'address_zipcode=15213' \
--data-urlencode 'address_country=United States, USA' \
--data-urlencode 'email=test@test.me' \
--data-urlencode 'first_name=John' \
--data-urlencode 'last_name=Joe' \
--data-urlencode 'nationality=United States, USA' \
--data-urlencode 'date_of_birth=1980-10-10' \
--data-urlencode 'gender=male' \
--data-urlencode 'id_type=governmentid' \
--data-urlencode 'kyc_level=L1' \
--data-urlencode 'photoid_res=686v3v91ba/passport_cemt81k51r2k6o' \
--data-urlencode 'selfie_res=686v3v91ba/passport_ceoihsdwe1r234i' \
--data-urlencode 'address_res=686v3v91ba/address_hrtytyhsdw19c234i'
Node.js - Request
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api2.argos-solutions.io/f1/submissions',
'headers': {
'x-api-key': 'your_api_key',
'Content-Type': 'application/x-www-form-urlencoded'
},
form: {
'email': 'test@test.me',
'first_name': 'John',
'last_name': 'Joe',
'nationality': 'United States, USA',
'date_of_birth': '1980-10-10',
'gender': 'male',
'id_type': 'governmentid',
'kyc_level': 'L1',
'photoid_res': '686v3v91ba/passport_cemt81k51r2k6o',
'selfie_res': '686v3v91ba/passport_ceoihsdwe1r234i',
'address_res': '686v3v91ba/address_hrtytyhsdw19c234i',
'address_street': '5000 Forbes Ave',
'address_city': 'Pittsburgh',
'address_state': 'PA',
'address_zipcode': '15213',
'address_country': 'United States, USA'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
# Arguments
Argument | Description | Required |
---|---|---|
Must be a valid email address format | YES | |
first_name | First Name | YES |
middle_name | Middle Name | NO |
last_name | Last Name | YES |
nationality | Nationality code in ISO3 or Argos format. | YES |
date_of_birth | (YYYY-MM-DD) format | YES |
gender | Gender (male/female) | YES |
id_type | ID Type (passport / government_id) | YES |
id_number | ID number or passport number | NO |
kyc_level | KYC Level (L1 / L2) | YES |
photoid_res | The hash id from the uploaded id image API ex) 885vw362ba/passport_3um227kb511qmu | YES |
selfie_res | The hash id from the uploaded selfie image API ex) 885vw362ba/selfie_3um227skdlfilqmu | YES |
userid | Unique ID (String) for each KYC applicant. | NO |
address_street | Address - Street | YES |
address_city | Address - City | YES |
address_state | Address - State | YES |
address_zipcode | Address - Zip(postal) Code | YES |
address_country | Address - Country | YES |
address_res | The hash id from the uploaded proof of residence image API ex) shz28vkee7/address_4e2koq1jn04vtms | YES |
# Additional Arguments (Optional)
In case you want to pass in additional information when submitting the KYC, you can use below arguments. Any other unrecognized arguments will be ignored.
# Arguments
Argument | Description |
---|---|
userid | Unique ID for each KYC applicant. |
id_number | Unique ID number issued on Photo ID (ex. Passport number) |
contribution_type | Currency type (ex. USD, KRW, BTC, ETH…) |
estimated_amount | Estimated investment amount |
wallet_address | Cryptocurrency wallet address.If a wallet address is submitted, the wallet address is checked against the cryptocurrency blacklist for Crypto AML Screening. |
wallet_address1 | Additional wallet address for Crypto AML Screening. |
wallet_address2 | Additional wallet address for Crypto AML Screening. |
wallet_address3 | Additional wallet address for Crypto AML Screening. |
image_res1 | Any additional image to store in Submission object (jpeg, png, pdf). Enter "other" for type when uploading image. |
image_res2 | Any additional image to store in Submission object (jpeg, png, pdf) Enter "other" for type when uploading image. |
image_res3 | Any additional image to store in Submission object (jpeg, png, pdf) Enter "other" for type when uploading image. |
image_res4 | Any additional image to store in Submission object (jpeg, png, pdf) Enter "other" for type when uploading image. |
cf1 | Any additional information to store in Submission object (String) |
cf2 | Any additional information to store in Submission object (String) |
cf3 | Any additional information to store in Submission object (String) |
ip_address | IP Address V4 format (ex. 123.123.123.123). This IP address is used to find the IP location of the user. |