This API is particularly useful for migrating user data from existing systems to the ARGOS system or in special cases where direct user ID verification data submission is necessary. It can also assist in testing various scenarios during development.

Submissions created using this API do not undergo ARGOS’s standard verification process. The accuracy and validity of submitted data is entirely the client’s responsibility. Therefore, this API should not replace the regular ID verification process and is recommended only for exceptional use cases.

1. Endpoint

POST https://rest-api.argosidentity.com/v3/submission/migration

2. Authentication

Include the API key in the x-api-key header:

x-api-key
x-api-key: {yourAPIKey}

3. Request Body

The request body must be in JSON format. Below are the field descriptions:

admin
string
required

Email of the project administrator (must be registered in the dashboard).

email
string
required

Email address of the KYC submitter.

fullName
string
required

Full name of the KYC submitter.

birthDate
string
required

Birthdate of the KYC submitter.

kycStatus
string
required

KYC result: approved or rejected.

idType
string
required

ID type ID Card Codes.

issuingCountry
string
required

Issuing country of the ID Country Codes.

nationality
string

Nationality of the KYC submitter Country Codes.

gender
string

female or male.

issueDate
string

Issue date of the ID in YYYY-MM-DD format.

expireDate
string

Expiry date of the ID in YYYY-MM-DD format.

ipAddress
string

IP address of the KYC submitter.

identityNumber
string

Identity number of the KYC submitter.

documentNumber
string

Document number of the KYC submitter.

address_city
string

City of residence.

address_country
string

Country of residence.

address_state
string

State/Province of residence.

address_street
string

Street address.

address_full
string

Full address.

cf1
string

Custom field #1.

cf2
string

Custom field #2.

cf3
string

Custom field #3.

userid
string

Unique user ID.

4. Request Example

POST/Submission
curl --location 'https://rest-api.argosidentity.com/v3/submission/migration' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {yourAPIKey}' \
--data-raw '{
  "admin": "{admin}",
  "email": "{email}",
  "fullName": "{fullName}",
  "birthDate": "{birthDate}",
  "kycStatus": "approved",
  "idType": "drvlic",
  "issuingCountry": "USA",
  ...
}'

5. Response

5-1. Success Response

result.json
{
    "message": "success",
    "submissionId": "submissionId123"
}

5-2. Error Response

If an error occurs, a 400 status code is returned with details in the response body:

error.json
{
    "errorCode": "invalid_payload",
    "message": "Invalid payload."
}

5-3. Error Codes

Error CodeMessageDescription
invalid_payloadInvalid payloadUnable to parse the request body
missing_dataRequired input data is missingOne or more required fields are missing
invalid_projectInvalid projectThe project ID is not valid
invalid_adminInvalid adminAdministrator account lacks permissions for this project
invalid_parameterinvalid parameter: {parameter}Unexpected parameter submitted
invalid_formatinvalid format: ${parameter}Parameter does not match the expected format
processing_errorFailed to complete migrationUnknown error occurred during processing

6. Encryption Options

To enhance security, the request body can be encrypted. When using encryption:

  • The entire request body object is encrypted.
  • The encrypted string is sent as the body parameter.

6-1. Encrypted Request Example

result.json
body : encrypt({
		email : 'string',
		fullName : 'string',
		issuingCountry : 'string',
		birthDate: 'string'
		...
	})

6-2. Encrypted Response

The response includes an isEncrypted flag and the encrypted data:

result.json
response : {
   body : {
    "data": "encrypted-string",
    "isEncrypted": true
   }
}