Skip to main content
Version: 1.2.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

Possible errors

List of common registration and authorization errors

HTTP CodeMessageDescriptionCode
400Request "validationRequest.Id" was already completedAttempted registration on completed request120036
400All available attempts were used for requestId "validationRequest.Id"All attempts to register have been expended120037
400Face image is emptyPassed image is empty120038
400Graphql error: "error message"Platform returned errors in response to a graphql query120029
400Profile search is missingAn attempt to search profiles in the platform failed120039
400No faces foundThere are no faces in the image120038
400Multiple faces foundThere are several faces in the image120038
400Quality calculation failedAn attempt to calculate quality in platform failed120039
400Liveness calculation failedAn attempt to calculate liveness in platform failed120039
400Request is closedAttempted registration by closed applicant120040
400This document type is not supportedBAF has the "Save Face Profile" feature turned off120041
400Face image is requiredThe image was not transmitted120042
400Applicant doesn't have verified faceAttempt to authorize by appliсant without a linked profile120043
400Invalid endeavor infoEndeavor from LRS contains invalid data120044
400Applicant profile not foundProfile from the applicant was not found in the platform120043

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.

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).

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).

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.