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:
3. Request Body
The request body must be in JSON format. Below are the field descriptions:
Email of the project administrator (must be registered in the dashboard).
Email address of the KYC submitter.
Full name of the KYC submitter.
First name of the submitter.
Last name (family name) of the submitter.
Birthdate of the KYC submitter.
KYC result: approved or rejected.
Issue date of the ID in YYYY-MM-DD format.
Expiry date of the ID in YYYY-MM-DD format.
IP address of the KYC submitter.
Identity number of the KYC submitter.
Document number of the KYC submitter.
State/Province of residence.
4. Request Example
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}",
"firstName": "{firstName}",
"lastName": "{lastName}",
"birthDate": "{birthDate}",
"kycStatus": "approved",
"idType": "drvlic",
"issuingCountry": "USA",
...
}'
5. Response
5-1. Success Response
{
"message": "success",
"submissionId": "submissionId123"
}
5-2. Error Response
If an error occurs, a 400 status code is returned with details in the response body:
{
"errorCode": "invalid_payload",
"message": "Invalid payload."
}
5-3. Error Codes
| Error Code | Message | Description |
|---|
invalid_payload | Invalid payload | Unable to parse the request body |
missing_data | Required input data is missing | One or more required fields are missing |
invalid_project | Invalid project | The project ID is not valid |
invalid_admin | Invalid admin | Administrator account lacks permissions for this project |
invalid_parameter | invalid parameter: {parameter} | Unexpected parameter submitted |
invalid_format | invalid format: ${parameter} | Parameter does not match the expected format |
processing_error | Failed to complete migration | Unknown error occurred during processing |
6. Encryption Options
To enhance security, the request body can be encrypted. When using encryption:
- Encrypt the entire request body object.
- Send the encrypted string as the
data parameter (not as a body field).
6-1. Encrypted Request Example
encryption = Encryption(api_key, mode='ECB')
payload_data = {
"admin": "yourAdmin@sample.com",
"email": "user@example.com",
"fullName": "hong kil dong",
"firstName": "kil dong",
"lastName": "hong"
"birthDate": "1999-11-31",
"kycStatus": "approved",
"idType": "drivers_license",
"issuingCountry": "KOR"
}
# Encrypt the entire payload
payload_encrypted = encryption.encrypt(payload_data)
# Send the encrypted data as the data parameter
response = requests.post(
url,
headers=headers,
data=payload_encrypted
)
POST/Submission (Encrypted)
curl --location 'https://rest-api.argosidentity.com/v3/submission/migration' \
--header 'x-api-key: {yourAPIKey}' \
--header 'Content-Type: application/json' \
--data 'N34SNtWaavEfgtg1g%2Bo%2B9JhQ9rp9dGUbyFNxAsHKKGH24aVQTRXYfNpFDHIGJU6Wo0RVpOupAubiDvFDuFyTkw%3D%3D'
6-2. Encrypted Response
The response includes an isEncrypted flag and the encrypted data:
response : {
body : {
"data": "encrypted-string",
"isEncrypted": true
}
}