Skip to main content
Version: 1.1.0

Verification

Registration

User registration can be performed in two ways:

  • Through document verification with face matching
  • Through saving a face image without document verification

Registration by a selfie and a document with matching of selfie face with document face

Endpoint: POST ​/api​/v2​/public​/Validation

  1. Create a verification request with the mandatory face matching

  2. Upload the user's document image in base64

  3. Upload the user's face image in base64

  4. Specify the type of uploaded document

Possible errors

CodeMessageDescription
404Validation Request {applicantId} not foundSpecified verification request is not found
400Request {applicantId} was already completedThe verification request has already been completed (previous successful user registration is not guaranteed)
400All available attempts were used for requestId {applicantId}Verification attempts run out

Verification results

Verification consists of the following checks:

  • Document authentication
  • Document check for expiry date
  • User search in the database to avoid repeated registrations
  • Anti-spoofing check

The verification result can have the following statuses:

CodeStatusDescription
0SuccessAll verification checks have been successfully completed
1FailOne or more verification checks failed
2InvalidDataThe verification request contained incorrect or missing data
3ErrorInternal error when trying to verify

Registration is considered successful if:

  • All checks have been successfully completed
  • The user's face image is saved to the specified database
  • ProfileId of the user's face is saved

Request example:

{
"model": {
"faceImageBase64": "insert face image in base64 here",
"frontImageBase64": "insert document image in base64 here",
"documentType": 2
},
"applicantId": "insert applicantId here",
"endeavorId": "insert endeavorId here (only when LRS enabled)"
}

Response example:

Status Code200
{
"applicantId": "05fcd***",
"attemptId": 1,
"documentType": 1,
"document": {
"privateName": "JOHN SAMPLE",
"abbr3Country": "USA",
"abbrCountry": null,
"address": "111 N 5TH ST",
"city": "COLUMBUS",
"class": "D",
"country": "United States of America",
"dob": "1999-01-12",
"expires": "2024-01-12",
"eyes": "BLUE",
"familyName": null,
"firstName": "JOHN",
"fullName": "JOHN SAMPLE",
"gender": "MALE",
"hair": "BLONDE",
"height": "70",
"id": "12345678",
"idType": "DL",
"issued": "2020-12-30",
"middleName": "SAMPLE",
"postalBox": null,
"state": "OH",
"issuedBy": "OH",
"template": "09",
"weight": "159",
"zip": "12345-6789"
},
"attemptsCount": 5,
"attemptsLeft": 0,
"status": 0,
"validationStatus": {
"expired": false,
"documentIsValid": true,
"faceIsValid": true,
"antiSpoofingIsValid": null,
"qualityIsValid": true
},
"invalidDataErrors": [],
"faceSuccess": true,
"documentSuccess": true,
"documentHasNotExpired": true,
"documentValidationTests": [
{
"displayName": "AddressValidation",
"name": "AddressValidation",
"status": 2,
"statusString": "Skipped",
"reason": "Integration was skipped by flow"
},
{
"displayName": "DMV",
"name": "DMVValidation",
"status": -1,
"statusString": "Disabled",
"reason": "Integration was turned off"
},
{
"displayName": "IdentiFraud",
"name": "IdentiFraudValidation",
"status": -1,
"statusString": "Disabled",
"reason": "Integration was turned off"
}
],
"callBackUrl": null
}

Registration by selfie without document verification

Endpoint: POST ​/api​/v2​/public​/Validation

  1. Create a verification request
  2. Upload the user's face image
  3. Specify DocumentType: 10 (face registration/authorization)

Possible errors:

CodeMessageDescription
400Face image is requiredThe request doesn't contain a face image
404Validation Request {applicantId} not foundThe specified verification request is not found

Registration is considered successful if:

  • The user's face image is saved to the specified database
  • ProfileId of the user's face is saved

Request example:

{
"model": {
"faceImageBase64": "insert face image in base64 here",
"documentType": 10
},
"applicantId": "insert applicantId here",
"endeavorId": "insert endeavorId here (only when LRS enabled)"

}

Response example:

Status Code200
{
"applicantId": "05fcd***",
"attemptId": 1,
"documentType": 10,
"document": null,
"attemptsCount": 5,
"attemptsLeft": 0,
"status": 0,
"validationStatus": {
"expired": null,
"documentIsValid": null,
"faceIsValid": true,
"antiSpoofingIsValid": null,
"qualityIsValid": true
},
"invalidDataErrors": [],
"faceSuccess": true,
"documentSuccess": null,
"documentHasNotExpired": null,
"documentValidationTests": [],
"callBackUrl": null
}

If registration is successful, the user will be informed with a system message Status Code 200.

When the first registration attempt is not successful, you can try again to upload the document image and/or selfie: the number of registration attempts can be configured in the range from 1 to 5.

If all registration attempts fail, the user will receive a Status Code 400 message.

Authorization

Endpoint: POST ​/api​/v2​/public​/Validation

  1. Enter the applicant ID
  2. Upload the user's face image
  3. Specify DocumentType: 10 (registration/authorization by face)

Possible errors:

CodeMessageDescription
404Validation Request {applicantId} not foundThe specified verification request is not found
400Request doesn't have a verified facecheck for face matching wasn't performed, or this check did not confirm matching
404Face profiles not foundNo faces were found that passed the user's face match confidence threshold
400Found faces don't belong to the applicantNone of the face images found in the database, that passed the face match confidence threshold, doesn't belong to the user

Face search in the database will start if:

  • The specified verification request was created and completed successfully
  • The result of the verification request contains the ProfileId of the user’s face

The search will return a list of faces that meet the face match confidence threshold.

Default values:

  • Face match confidence threshold - 90%
  • The maximum number of received faces is 50

User authorization is considered successful if among the faces found in the database, that passed the face match confidence threshold, there was one whose ProfileId matched the user's ProfileId.

Request example:

{
"model": {
"faceImageBase64": "insert face image in base64 here",
"documentType": 10
},
"applicantId": "insert applicantId here",
"endeavorId": "insert endeavorId here (only when LRS enabled)"
}

Response example:

Status Code200
{
"applicantId": "05fcd***",
"attemptId": 1,
"documentType": 10,
"document": null,
"attemptsCount": 5,
"attemptsLeft": 0,
"status": 0,
"validationStatus": {
"expired": null,
"documentIsValid": null,
"faceIsValid": true,
"antiSpoofingIsValid": null,
"qualityIsValid": true
},
"invalidDataErrors": [],
"faceSuccess": true,
"documentSuccess": null,
"documentHasNotExpired": null,
"documentValidationTests": [],
"callBackUrl": null
}

The user will be informed about successful authorization by a system message. After verification is completed, the user gets access to the closed part of the customer's app (site).

Authorization/registration by applicantId

TBC.