Endpoints
Upload documents image
You need to submit the images of applicant's proof of identification, self-identification, and proof of residence prior to casting applicants’ information for KYC/AML verification.
For Level1 KYC, both of passport (or government-issued ID) and selfie must be uploaded.
Level2 KYC requires three files to be uploaded: passport (or government-issued ID), selfie, and proof of address.
Document must be submitted in multipart form.
Acceptable image file formats are "jpg", "png".
Endpoint : submissions/upload
POST
https://api.argos-solutions.io/v2/submissions/upload
Arguments
Argument | Description | Remark |
---|---|---|
file | The file which needs to be uploaded ( multipart form ) | Required |
type | Document type <passport, selfie, address, governmentid> | Required |
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 system When you submit the form data, it will be used for photoid_res, selfie_res, address_res fields | text |
filetype | Document types <passport, selfie, address, governmentid> | text |
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc" -F "type=passport" -F "file=@localfile.png;type=image/png" https://api.argos-solutions.io/v2/submissions/upload
SAMPLE RESPONSE
{
"id": "4e2koq1jn04vtms",
"created_at": "2018-10-08T10:08:35.710Z",
"filehash": "shz28vkee7/passport_4e2koq1jn04vtms",
"filetype": "passport"
}
POST form data : Form Submission
You can submit information of the participant for KYC / AML processing.
If the required information is not included, the Form will not be submitted. (It responds with a 4xx error code.) If you do not want to put not required information such as Middle Name, the data should not be blank. Please exclude them.
For accurate AML data screening, the country code must be delivered with the Country Code containing the ISO Alpha3 code with reference to the Country code.
The type of the required Arguments depends on whether the KYC Level is L1 or L2. If the required fields are not filled, the request may fail.
KYC Level L1 : In case of making a decision to get both of ID information and Selfie information. KYC Level L2 : In case of making a decision to get Address information additionally with above KYC L1 information. (L1 required field is also required in L2.)
Endpoint : submissions
POST
https://api.argos-solutions.io/v2/submissions
Arguments
Argument | Description | Required |
---|---|---|
userid | Unique ID for each participant | |
Email address | L1, L2 required | |
first_name | First Name | L1 required |
middle_name | Middle Name | |
last_name | Last Name | L1 required |
nationality | Nationality | L1 required |
date_of_birth | Date of Birth (YYYY-MM-DD) | L1 required |
gender | Gender <male/female> | L1 required |
id_type | ID Type <passport, government_id> | L1 required |
id_number | ID Number | |
address_street | Address - Street | L2 required |
address_city | Address - City | L2 required |
address_state | Address - State | L2 required |
address_zipcode | Address - Zip(postal) Code | L2 required |
address_country | Address - Country | L2 required |
contribution_type | Contribute Type | |
wallet_address | Wallet address | |
estimated_amount | Estimated Contribution Amount | |
kyc_level | KYC Level <L1,L2> (Capital Letter L and Number 1 or 2) | L1 L2 required |
photoid_res | The hash id from the uploaded id image API ex) shz28vkee7/passport_4e2koq1jn04vtms | L1 L2 required |
selfie_res | The hash id from the uploaded selfie image API ex) shz28vkee7/selfie_4e2koq1jn04vtms | L1 L2 required |
address_res | The hash id from the uploaded proof of residence image API ex) shz28vkee7/address_4e2koq1jn04vtms | L2 required |
Response Object
Parameter | Description |
---|---|
id | Submission ID |
created_at | Submitted Date Time |
Email address | |
first_name | First name |
middle_name | Middle Name |
last_name | Last Name |
nationality | Nationality |
date_of_birth | Date of Birth (YYYY-MM-DD) |
gender | Gender <male/female> |
id_type | ID Type <passport, government_id> |
id_number | ID Number |
address_street | Address - Street |
address_city | Address - City |
address_state | Address- State |
address_zipcode | Address - Zip(postal) Code |
address_country | Address - Country |
contribution_type | Contribute Type (ex: eth,btc) |
wallet_address | Wallet Address |
estimated_amount | Estimated Contribution Amount |
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc" -d "email=john@gmail.com"
-d "first_name=John"
-d "last_name=Smith"
-d "nationality=China, CHN"
-d "date_of_birth=1980-01-01"
-d "id_type=passport"
-d "id_number=123123123123123"
-d "address_street=500 Forbes Street"
-d "address_city=Pittsburgh"
-d "address_state=PA"
-d "address_country=USA"
-d "address_zipcode=15213"
-d "kyc_level=L1"
-d "photoid_res=shz28vkee7/passport_4e2koq1jn04vtms"
-d "selfie_res=shz28vkee7/selfie_4e2koq1jn04vtms"
-d "address_res=shz28vkee7/address_4e2koq1jn04vtms"
https://api.argos-solutions.io/v2/submissions
SAMPLE RESPONSE
{
"id": "123123123123",
"created_at": "2014-05-23T13:50:33Z",
"first_name": "John",
"middle_name": null,
"last_name": "Smith",
"nationality": "China, CHN",
"gender": "male",
"date_of_birth": "2013-02-17",
"id_type": "passport",
"address_street" : "500 Forbes Street",
"address_city" : "Pittsburgh",
"address_state" : "PA",
"address_zipcode" : "15213",
"address_country" : "USA",
"contribution_type" : null,
"wallet_address" : null,
"estimated_amount" : null
}
GET status: Check submission status
The KYC / AML status can be checked by the GET request. You can also check the status of all Form information submitted.
Since it is information about a specific user, you must include an email address so that you can distinguish the user.
If a request is made only to an email address, users with duplicate submissions return the KYC status value for the most recent submission based on the submission time. The values are returned in the order of Approved, Pending, and Rejected. (For example, if the status is Rejected entry already, then Pending is re-submitted, Pending will be returned. And, Pending is submitted again, then Approved will be returned.) Also, if the Status is same, the the most recent submission is returned.
If an additional submission ID is requested, the result that corresponding to that submission ID will be returned.
Endpoint : submissions/{email}
GET
* When using email only
https://api.argos-solutions.io/v2/submissions/{email}
or
https://api.argos-solutions.io/v2/submissions/{email}/{submission_id}
* When using email and userid
https://api.argos-solutions.io/v2/submissions/{email}?userid=xyzid
or
https://api.argos-solutions.io/v2/submissions/{email}/{submission_id}?userid=xyzid
Arguments
Argument | Description |
---|---|
KYC participant email address | |
submission_id | submission id in response from the submission |
userid | As QueryString Parameter, you can use it to query exact data |
Response Object
Parameter | Description | Remark |
---|---|---|
id | Submission ID | |
submission_result | Form data submission status | |
submission_result.status | <complete,incomplete> | complete : all required data is submitted. |
submission_result.{d1,d2,d3} | true/false | (Refer to below "Result Code") |
submission_result.type | <L1,L2> There are two types: Level1 and Level2. | |
kyc_result | KYC status | When submission result status is "complete" |
kyc_result.status | <pending, approved, rejected> | If status is "rejected", explanation is expressed as ‘result code’. |
kyc_result.comment | Rejection comment by inspector from Argos. This is additional comment to result code. | Comment in English only. |
kyc_result.updated_at | update date that KYC is reviewed and finalized. | ISO8601 format. |
kyc_result.id_expired_date | Photo ID expiration date | ex) Passport expiration date |
kyc_result.address_expired_date | Address document expiration date | Address document expires 3 months from when the document is issued |
aml_result | AML search screening result | AML screening is processed only if kyc_result status is "approved". |
aml_result.score | AML risk level determined in 4 categories <n/a, low, medium, high> | Score value “-” means AML is not processed yet. |
data.name | Full Name | |
data.nationality | nationality | |
data.date_of_birth | date_of_birth | YYYY-MM-DD format. |
data.gender | gender | <male, female> |
data.userid | userid | Only when value exists |
data.cf1 | Custom Field 1 | Only when value exists |
data.cf2 | Custom Field 2 | Only when value exists |
data.cf3 | Custom Field 3 | Only when value exists |
dupeApplicants | Duplicate applicant | Submission from different email addresses with the same name, date of birth, gender, and nationality. |
checked_at | Time responded to check status API (UTC time zone) | ISO8601 format |
Result Code
Comment field is entered by KYC inspector only when kyc_result status is "Rejected".
Refer to below table for submission and KYC result code.
d1 : ID document submitted, False when Photo ID is not submitted
d2 : Selfie submitted, False when Selfie is not submitted
d3 : Address document submitted, False when address document is not submitted. Null when address document is not required and is not entered in the form.
dupeApplicants : Submission from different email addresses with the same name, date of birth, gender, and nationality. (Multiple emails show in an array)
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc" https://api.argos-solutions.io/v2/submissions/john@gmail.com/24b31jj51a871a
SAMPLE RESPONSE
{
id: "81208370780455",
submission_result:{
status:"complete",
type:"L2",
d1:true,
d2:true,
d3:true
},
kyc_result:{
status:"rejected",
comment:"First name is tampered.",
updated_at: 2018-06-06T12:12:!2Z,
id_expired_date: 2020-01-03,
address_expired_date: 2018-10-10
},
aml_result:{
score:"low"
},
data:{
name: "Andy Lee",
nationality: "China, CHN",
date_of_birth:"1980-10-10",
gender:"male",
userid: "12345",
cf1: "eth"
cf2: "s33gidbdifibidfiibbdfiooo88bdf",
cf3: 10
},
dupeApplicants: {
[
email: "sample@email.com",
id: "hash"
],
[
email: "sample2@email.com",
id: "hash2"
]
},
checked_at: 2018-05-02T12:12:12Z
}
GET data: Check submission data
Get formdata that a specific applicant has filled in.
To get form data of a a specific applicant, an email address of the applicant must be included as an argument when using this GET data api.
If there are multiple submissions with same email address, the latest submission data is returned.
If Submission ID is included in the argument, submission data with matching submission id is returned.
The data is returned in alphabetical order following id and created_at fields.
Endpoint : submissions/{email}/result
GET
https://api.argos-solutions.io/v2/submissions/{email}/result
또는
https://api.argos-solutions.io/v2/submissions/{email}/{submission_id}/result
Arguments
Argument | Description |
---|---|
Email address of KYC applicant to check submission data | |
submission_id | Submission id received in response to POST submission data. |
Response Object
Parameter | Description |
---|---|
id | Submission ID |
created_at | Submitted Date Time |
Email address | |
first_name | First name |
middle_name | Middle Name |
last_name | Last Name |
nationality | Nationality |
date_of_birth | Date of Birth (YYYY-MM-DD) |
gender | Gender <male/female> |
id_type | ID Type <passport, government_id> |
id_number | ID Number |
address_street | Address - Street |
address_city | Address - City |
address_state | Address- State |
address_zipcode | Address - Zip(postal) Code |
address_country | Address - Country |
contribution_type | Contribute Type (ex: eth,btc) |
wallet_address | Wallet Address |
estimated_amount | Estimated Contribution Amount |
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc"
https://api.argos-solutions.io/v2/submissions/john@gmail.com/24b31jj51a871a/result
SAMPLE RESPONSE
{
"id": "24b31jj51a871a",
"created_at": "2014-05-23T13:50:33Z",
"address_city" : "Pittsburgh",
"address_country" : "USA",
"address_state" : "PA",
"address_street" : "500 Forbes Street",
"address_zipcode" : "15213",
"contribution_type" : "eth",
"date_of_birth": "2013-02-17",
"email":"john@gmail.com",
"estimated_amount" : "1000",
"first_name": "John",
"gender": "male",
"id_type": "passport",
"last_name": "Smith",
"middle_name": null,
"nationality": "China, CHN",
"wallet_address" : "hx547d0d0ca25eec2773bec50ab8cc63c124c5e7e5",
}
GET submissions list: Check all submissions
This api is to get list of all submissions and their formdata.
There is a limitation in number of submissions that a single api call can return.
If there are too many submissions to return in a single api call, a pagination key will be returned to call next page in the list of submissions.
Endpoint : submissions/resultall
GET
https://api.argos-solutions.io/v2/submissions/resultall
https://api.argos-solutions.io/v2/submissions/resultall?nextpageKeyemail=test@test.io&nextpageKeyid=abdcdef
Arguments
Argument | Description |
---|---|
nextpageKeyemail | Next page key {email} if there is more data |
nextpageKeyid | Next page key {id} if there is more data |
Response Object
- Along the pagekey, the "data" array will be the displayed
Parameter | Description |
---|---|
nextpageKey.email | Refer to below |
nextpageKey.id | Refer to below |
data.id | Submission ID |
data.created_at | Submitted Date Time |
data.email | Email address |
data.first_name | First name |
data.middle_name | Middle Name |
data.last_name | Last Name |
data.nationality | Nationality |
data.date_of_birth | Date of Birth (YYYY-MM-DD) |
data.gender | Gender <male/female> |
data.id_type | ID Type <passport, government_id> |
data.id_number | ID Number |
data.address_street | Address - Street |
data.address_city | Address - City |
data.address_state | Address- State |
data.address_zipcode | Address - Zip(postal) Code |
data.address_country | Address - Country |
data.contribution_type | Contribute Type (ex: eth,btc) |
data.wallet_address | Wallet Address |
data.estimated_amount | Estimated Contribution Amount |
- nextpageKey object : Key for pagination. If the response body of this GET request exceeds 1MB in size, nextpagekey is generated and is returned in the response object. If nextpageKey exist, use this key to call next page of the submission list. If there is no next page, the value ‘NA’ is returned for nextpageKey. If there is next page in the submission list, email and ID of last submission of the page is returned in {email:’test@test.io’,id’abdcdef’} format. To call next page of submissions, make another GET request with following parameter:
?nextpageKeyemail=test@test.io&nextpageKeyid=abdcdef
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc"
https://api.argos-solutions.io/v2/submissions/resultall
SAMPLE RESPONSE
"nextpageKey": {
"email": "NA",
"id": "NA"
},
“data: [
{
"nationality": "Saint Barthelemy, BLM",
"created_at": "2018-08-08T05:59:57.953Z",
"last_name": "Loo",
"id_number": "ABCD",
"wallet_address": "0xAaaa",
"first_name": "Jane",
"id_type": "Passport",
"estimated_amount": "2",
"date_of_birth": "2018-08-01",
"email": "jane@gmail.com",
"id": "i1c3y1jkkq5536",
"gender": "Female"
},
{
"nationality": "Bahrain, BHR",
"created_at": "2018-08-08T06:05:27.018Z",
"last_name": "John",
"id_number": "1234",
"wallet_address": "0Xaaaaaa",
"first_name": "Doe",
"id_type": "Passport",
"estimated_amount": "2",
"date_of_birth": "2018-08-01",
"email": "johndoe@argos-solutions.io",
"id": "i1c3y1jkkqc6zu",
"gender": "Male"
}
]
When query next page
https://api.argos-solutions.io/v2/submissions/resultall?nextpageKeyemail=test@test.io&nextpageKeyid=abdcdef
}
POST form (AML-only): Submit KYC pre-approved form for AML screening
This api is to submit a single KYC pre-approved formdata for AML screening purpose. It takes about 10 seconds to 1 minutes. To retrieve AML data. Thus, you will need to use GET api from section 2.2.3. to see AML result.
Form will not be submitted if any of required data is missing. If form is not submitted, 4xx error code is returned.
For proper AML search, nationality need to be in ISO Alpha3 format with Country code.
Endpoint : amlonly
POST
https://api.argos-solutions.io/v2/amlonly
Arguments
Argument | Description | Required |
---|---|---|
userid | userid | |
email (must valid) | required | |
first_name | First name | required |
middle_name | Middle name | |
last_name | Last name | required |
nationality | Nationality | required |
date_of_birth | Date of birth | required |
gender | Gender <male/female> | required |
Response Object
Parameter | Description |
---|---|
id | SSubmission ID |
created_at | Submitted Date Time |
Email address | |
first_name | First name |
middle_name | Middle name |
last_name | Last name |
nationality | Nationality |
date_of_birth | Date of Birth (YYYY-MM-DD) |
gender | Gender <male, female> |
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc" -d "email=john@gmail.com"
-d "first_name=John"
-d "last_name=Smith"
-d "nationality=China, CHN"
-d "date_of_birth=1980-01-01"
https://api.argos-solutions.io/v2/amlonly
SAMPLE RESPONSE
{
"id": "123123123123",
"created_at": "2014-05-23T13:50:33Z",
"first_name": "John",
"middle_name": null,
"nationality": "China, CHN",
"gender": "male",
"date_of_birth": "2013-02-17"
}
AML Renew
The purpose of this API is to renew AML status for outdated applicants. For continuous use of user verification data in financial transactions, it is recommended to renew AML every 3 months.
To renew AML result for an applicant, the applicant’s submission must be in ‘approved’ status.
After AML screening, a newly generated submission ID is returned along with submission formdata.
Endpoint : submissions/renewaml/{email}/{submission_id}
POST
https://api.argos-solutions.io/v2/submissions/renewaml/{email}/{submission_id}
Arguments
Argument | Description | Required |
---|---|---|
Email address of an applicant to renew AML result | required | |
submission_id | Submission id received in response to POST submission data | required |
Response Object
Parameter | Description |
---|---|
id | New submission ID |
created_at | Submitted Date Time |
Email address | |
first_name | First name |
middle_name | Middle Name |
last_name | Last Name |
nationality | Nationality |
date_of_birth | Date of Birth (YYYY-MM-DD) |
gender | Gender <male/female> |
id_type | ID Type <passport, government_id> |
id_number | ID Number |
address_street | Address - Street |
address_city | Address - City |
address_state | Address- State |
address_zipcode | Address - Zip(postal) Code |
address_country | Address - Country |
contribution_type | Contribute Type (ex: eth,btc) |
wallet_address | Wallet Address |
estimated_amount | Estimated Contribution Amount |
Example
curl -H "x-api-key:hTRgZTc6UR2FLgIh5tKLsyjO89xBsiWG3pz3eYvc"
https://api.argos-solutions.io/v2/submissions/renewaml/john@gmail.com/x4fxydhse
SAMPLE RESPONSE
{
"id": "123123123123",
"created_at": "2014-05-23T13:50:33Z",
"first_name": "John",
"middle_name": null,
"last_name": "Smith",
"nationality": "China, CHN",
"gender": "male",
"date_of_birth": "2013-02-17",
"id_type": "passport",
"address_street" : "500 Forbes Street",
"address_city" : "Pittsburgh",
"address_state" : "PA",
"address_zipcode" : "15213",
"address_country" : "USA",
"contribution_type" : null,
"wallet_address" : null,
"estimated_amount" : null
}