Receive results via API

Understand verification statuses, associated webhooks, and rejection labels.

After applicant verification is complete, we send you the results via the applicantReviewed webhook.

In this webhook, you can find the reviewResult object with the reviewAnswer field that indicates the verification status. If the status is GREEN, it means verification went well. If it is RED, additional fields are added:

  • moderationComment — a human-readable comment that can be shown to your applicants. Note that some images may also contain additional document-specific comments, in which case the field might be empty. To get the additional comments, use this method.
  • clientComment — a human-readable comment that should not be shown to your applicants. This field will contain applicant top-level comments and—if reviewRejectType is FINAL—it may also contain some private information which should not be shared with anyone except administrative personnel on the client side.
  • reviewAnswer — explains the review result: GREEN — approved, RED — rejected.
  • rejectLabels — enumerates rejection labels.
  • reviewRejectType — Indicates the type of rejection:
    • FINAL — indicates a final rejection, for example, when the applicant is considered to be a fraudster or a client does not want to accept such types of clients.
    • RETRY — applicants are allowed to resubmit their documents, for example, by uploading an image of better quality.
  • buttonIds — specific identifiers that are automatically assigned to each rejection of an applicant or a document. For more details, see Temporary rejection and Final rejection.

An example webhook payload with a GREEN response:

{
  "applicantId": "5cb56e8e0a975a35f333cb83",
  "inspectionId": "5cb56e8e0a975a35f333cb84",
  "correlationId": "req-a260b669-4f14-4bb5-a4c5-ac0218acb9a4",
  "externalUserId": "externalUserId",
  "levelName": "id-and-liveness",
  "type": "applicantReviewed",
  "reviewResult": {
    "reviewAnswer": "GREEN"
  },
  "reviewStatus": "completed",
  "createdAtMs": "2020-02-21 13:23:19.321"
}

An example webhook payload with a RED (final rejection) response:

{
  "applicantId": "5cb744200a975a67ed1798a4",
  "inspectionId": "5cb744200a975a67ed1798a5",
  "correlationId": "req-fa94263f-0b23-42d7-9393-ab10b28ef42d",
  "externalUserId": "externalUserId",
  "levelName": "id-and-liveness",
  "type": "applicantReviewed",
  "reviewResult": {
    "moderationComment": "We could not verify your profile. If you have any questions, please contact the Company where you try to verify your profile ${clientSupportEmail}",
    "clientComment": "Verification rejected due to excessive file uploads.",
    "reviewAnswer": "RED",
    "rejectLabels": [
      "UNSATISFACTORY_PHOTOS",
      "GRAPHIC_EDITOR",
      "FORGERY"
    ],
    "reviewRejectType": "FINAL",
    "buttonIds": [
      "selfie_badFaceComparison",
      "badPhoto",
      "additionalPages",
      "badDocument",
      "additionalPages_anotherSide",
      "badDocument_withoutFace",
      "badPhoto_screenshot",
      "selfie",
      "spam",
      "badPhoto_dataNotVisible"
    ]
  },
  "reviewStatus": "completed",
  "createdAtMs": "2020-02-21 13:23:19.001"
}

Understand rejection

When applicants are rejected, their profiles are marked with rejection labels. Depending on the reason, applicants may be rejected either temporarily or finally.

In addition to the temporary and final rejection labels, we assign specific explanatory buttons clarifying the reason for rejection. Explanatory buttons may have a temporary or final rejection state. To get the list of explanatory buttons by applicantId, use this API method.

Temporary rejection labels

Temporary rejection usually occurs when the required documents are unsuitable or uploaded in poor quality.

Temporarily rejected applicants can correct any outstanding issues in accordance with the system instructions and attempt verification again.

The following table lists temporary rejection labels.

LabelDescription
APPLICANT_INTERRUPTED_INTERVIEWOn the Video identification call, the applicant refused to finish the interview.
ADDITIONAL_DOCUMENT_REQUIREDAdditional documents are required to pass the check.
BACK_SIDE_MISSINGBack side of the document is missing.
BAD_AVATARAvatar does not meet the client's requirements.
BAD_FACE_MATCHINGFace check between document and selfie failed.
BAD_PROOF_OF_ADDRESSApplicant uploaded a bad proof of address.
BAD_PROOF_OF_IDENTITYApplicant uploaded a bad ID document.
BAD_PROOF_OF_PAYMENTApplicant uploaded a bad proof of payment.
BAD_SELFIEApplicant uploaded a bad selfie.
BAD_VIDEO_SELFIEApplicant uploaded a bad video selfie.
BLACK_AND_WHITEApplicant uploaded black and white photos of the documents.
COMPANY_NOT_DEFINED_BENEFICIARIESCould not identify and duly verify the entity's beneficial owners.
COMPANY_NOT_DEFINED_REPRESENTATIVESRepresentatives are not defined.
COMPANY_NOT_DEFINED_STRUCTURECould not establish the entity control structure.
COMPANY_NOT_VALIDATED_BENEFICIARIESBeneficiaries are not validated.
COMPANY_NOT_VALIDATED_REPRESENTATIVESRepresentatives are not validated.
CONNECTION_INTERRUPTEDVideo Ident call connection was interrupted.
DIGITAL_DOCUMENTApplicant uploaded a digital version of the document.
DOCUMENT_DEPRIVEDApplicant has been deprived of the document.
DOCUMENT_DAMAGEDDocument is damaged.
DOCUMENT_MISSINGOn the Video Ident call, the applicant refused to show or did not have the required documents.
DOCUMENT_PAGE_MISSINGSome pages of a document are missing.
EXPIRATION_DATEApplicant uploaded an expired document.
FRONT_SIDE_MISSINGFront side of the document is missing.
GRAPHIC_EDITORDocument or its data has been changed in the context of brightness, contrast, contents, or other editor traces.
ID_INVALIDDocument that identifies a person (like a passport or an ID card) is not valid.
INCOMPATIBLE_LANGUAGEApplicant should upload a translation of his document.
INCOMPLETE_DOCUMENTSome information is missing from the document, or it's partially visible.
INCORRECT_SOCIAL_NUMBERApplicant provided an incorrect social number (SSN, for example).
PROBLEMATIC_APPLICANT_DATAApplicant data does not match the data in the documents.
REQUESTED_DATA_MISMATCHProvided information does not match the recognized one taken from the document.
SELFIE_WITH_PAPERApplicant should upload a special selfie (for example, a selfie with the paper and date on it).
LOW_QUALITYDocuments have low-quality that does not allow definitive conclusions to be made.
NOT_ALL_CHECKS_COMPLETEDAll checks have not been completed.
SCREENSHOTSApplicant uploaded screenshots.
UNFILLED_IDApplicant uploaded the document without signatures and stamps.
UNSATISFACTORY_PHOTOSThere were problems with the photos, like poor quality or masked information.
UNSUITABLE_ENVOn Video Ident call, the applicant is either not alone or not visible.
WRONG_ADDRESSAddress from the documents doesn't match the address that the applicant entered.

Final rejection labels

Final rejections are due to major violations of the verification rules, such as fraud attempts.

Finally rejected applicants are blocked and cannot attempt verification again.

The following table lists final rejection labels.

LabelDescription
ADVERSE_MEDIAApplicant was found in the adverse media.
AGE_REQUIREMENT_MISMATCHAge requirement is not met (for example, cannot rent a car to a person below 25yo).
BLACKLISTApplicant is blocklisted by our side.
BLOCKLISTApplicant is blocklisted by your side.
CHECK_UNAVAILABLEDatabase is not available.
COMPROMISED_PERSONSApplicant does not correspond to Compromised Person Politics.
CRIMINALApplicant is involved in illegal actions.
DB_DATA_MISMATCHData mismatch; the profile could not be verified.
DB_DATA_NOT_FOUNDNo data was found; the profile could not be verified.
DOCUMENT_TEMPLATEDocuments supplied are templates downloaded from the internet.
DUPLICATEThis applicant was already created for this client, and duplicates are not allowed by the regulations.
EXPERIENCE_REQUIREMENT_MISMATCHNot enough experience (for example, driving experience is not enough).
FORGERYForgery attempt has been made.
FRAUDULENT_LIVENESSThere was an attempt to bypass the liveness check.
FRAUDULENT_PATTERNSFraudulent behaviour was detected.
INCONSISTENT_PROFILEData or documents of different persons were uploaded to one applicant.
PEPApplicant belongs to the PEP category.
REGULATIONS_VIOLATIONSRegulations violations.
SANCTIONSApplicant was found on sanction lists.
SELFIE_MISMATCHApplicant photo (profile image) does not match a photo on the provided documents.
SPAMApplicant has been created by mistake or is just a spam user (irrelevant images were supplied).
NOT_DOCUMENTDocuments supplied are not relevant for the verification procedure.
THIRD_PARTY_INVOLVEDApplicant is doing verification from a third party for a fee.
UNSUPPORTED_LANGUAGEUnsupported language for video identification.
WRONG_USER_REGIONWhen applicants from certain regions/countries are not allowed to be registered.