Skip to main content
Version: 1.7.0 (latest)

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 image120058
400Multiple faces foundThere are several faces in the image120059
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
400
  • Endeavor id is null when required
  • Endeavor liveness reflection info obtain error
  • Endeavor external link not equal to applicant
  • Endeavor liveness reflection confidence info is null
  • Endeavor liveness reflection confidence value is null
  • Endeavor from LRS contains invalid data120044
    400Applicant profile not foundProfile from the applicant was not found in the platform120043

    Registration by selfie

    Endpoint: POST /publicapi/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:

    • All enabled optional checks have been successfully passed.
    • Face photo quality above the threshold in the settings.
    • Liveness of face from photo above threshold in settings.
    • There are no similar applicants in the base, the score of comparison with which is above the threshold in the settings.

    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,
    "livenessReflectionIsValid": true,
    "hasBeenBlackListed": false
    },
    "invalidDataErrors": [
    {
    "code": null,
    "message": "Multiple faces or strong face movement spotted when recording liveness reflection video",
    "description": null
    }
    ],
    "validations": {
    "liveness": {
    "verdict": true,
    "details": [
    {
    "name": "FaceLiveness",
    "verdict": true,
    "score": 0.99
    }
    ]
    },
    "quality": {
    "verdict": true,
    "details": [
    {
    "name": "FaceQuality",
    "verdict": true,
    "score": 0.53
    }
    ]
    },
    "matching": {
    "verdict": true,
    "details": [
    {
    "name": "FaceMatching",
    "verdict": true,
    "score": 0.0
    }
    ]
    },
    "motionControl": {
    "verdict": false,
    "motionControlInfo": [
    {
    "pattern": "up",
    "result": true
    },
    {
    "pattern": "left",
    "result": false
    }
    ]
    }
    },
    "faceSuccess": true,
    "documentSuccess": null,
    "documentHasNotExpired": null,
    "hasRiskEvents": false,
    "riskEvents": [
    {
    "created": "2024-08-14T09:21:08.2064762Z",
    "riskNumber": 8,
    "riskName": "MissingMetadata",
    "isActive": false
    }
    ],
    "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 /publicapi/api​/v2​/public​/Validation

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

    User authorization is considered successful if:

    • All enabled optional checks have been successfully passed.
    • Face photo quality above the threshold in the settings.
    • Liveness of face from photo above threshold in settings.
    • Score of comparing face from photo on authorization with face from photo on registration above threshold in settings.

    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,
    "livenessReflectionIsValid": true,
    "hasBeenBlackListed": false
    },
    "invalidDataErrors": [],
    "validations": {
    "liveness": {
    "verdict": true,
    "details": [
    {
    "name": "FaceLiveness",
    "verdict": true,
    "score": 99
    }
    ]
    },
    "quality": {
    "verdict": true,
    "details": [
    {
    "name": "FaceQuality",
    "verdict": true,
    "score": 53
    }
    ]
    },
    "matching": {
    "verdict": true,
    "details": [
    {
    "name": "FaceMatching",
    "verdict": true,
    "score": 0
    }
    ]
    },
    "motionControl": {
    "verdict": false,
    "motionControlInfo": [
    {
    "pattern": "up",
    "result": true
    },
    {
    "pattern": "left",
    "result": false
    }
    ]
    }
    },
    "faceSuccess": true,
    "documentSuccess": null,
    "documentHasNotExpired": null,
    "hasRiskEvents": false,
    "riskEvents": [
    {
    "created": "2024-08-14T09:21:08.2064762Z",
    "riskNumber": 8,
    "riskName": "MissingMetadata",
    "isActive": false
    }
    ],
    "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.