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 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 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
email 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 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 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 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 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 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 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
}