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’ 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
ID type ID Card Codes.
issuingCountry
string
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
   }
}