Receive and interpret results via API
Understand verification statuses, associated webhooks, and rejection labels.
Verification can either be passed or not passed and marked with a GREEN
or RED
flag, respectively. The results are delivered with the applicantReviewed
webhook expected to arrive at average in 3-5 minutes upon verification, but in some cases can take up to 24 hours.
Tip
We recommend that you wait for the webhook no more than a day, and then send a request to our server for information about the applicant status.
The applicantReviewed
webhook contains the reviewResult
object that includes the reviewAnswer
field, indicating the verification status. If it 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—ifreviewRejectType
isFINAL
—it may also contain some private information which should not be shared with anyone except administrative personnel on the client side.rejectLabels
— enumerates rejection labels.reviewRejectType
— Indicates the type of rejection:FINAL
— indicates a final rejection, e.g. 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, e.g. by uploading an image of better quality.
An example webhook payload with the RED
(final rejection) response:
{
"applicantId": "5cb744200a975a67ed1798a4",
"inspectionId": "5cb744200a975a67ed1798a5",
"correlationId": "req-fa94263f-0b23-42d7-9393-ab10b28ef42d",
"externalUserId": "externalUserId",
"levelName": "basic-kyc-level",
"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": " Suspected fraudulent account.",
"reviewAnswer": "RED",
"rejectLabels": ["UNSATISFACTORY_PHOTOS", "GRAPHIC_EDITOR", "FORGERY"],
"reviewRejectType": "FINAL"
},
"reviewStatus": "completed",
"createdAtMs": "2020-02-21 13:23:19.001"
}
An example webhook payload with the GREEN
response:
{
"applicantId": "5cb56e8e0a975a35f333cb83",
"inspectionId": "5cb56e8e0a975a35f333cb84",
"correlationId": "req-a260b669-4f14-4bb5-a4c5-ac0218acb9a4",
"externalUserId": "externalUserId",
"levelName": "basic-kyc-level",
"type": "applicantReviewed",
"reviewResult": {
"reviewAnswer": "GREEN"
},
"reviewStatus": "completed",
"createdAtMs": "2020-02-21 13:23:19.321"
}
Understand rejection
When applicants are rejected, their profiles are marked with rejection labels. Depending on the reason, applicants might 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 may correct any outstanding issues in accordance with the system instructions and attempt verification again.
The following table lists temporary rejection labels.
Value | Description |
---|---|
APPLICANT_INTERRUPTED_INTERVIEW | On the Video identification call, the applicant refused to finish the interview. |
ADDITIONAL_DOCUMENT_REQUIRED | Additional documents required to pass the check. |
BACK_SIDE_MISSING | Back side of the document is missing. |
BAD_AVATAR | Avatar does not meet the client's requirements. |
BAD_FACE_MATCHING | Face check between document and selfie failed. |
BAD_PROOF_OF_ADDRESS | The applicant uploaded a bad proof of address. |
BAD_PROOF_OF_IDENTITY | The applicant uploaded a bad ID document. |
BAD_PROOF_OF_PAYMENT | The applicant uploaded a bad proof of payment. |
BAD_SELFIE | The applicant uploaded a bad selfie. |
BAD_VIDEO_SELFIE | The applicant uploaded a bad video selfie. |
BLACK_AND_WHITE | The applicant uploaded black and white photos of documents. |
COMPANY_NOT_DEFINED_BENEFICIARIES | Could not identify and duly verify the entity's beneficial owners. |
COMPANY_NOT_DEFINED_REPRESENTATIVES | Representatives are not defined. |
COMPANY_NOT_DEFINED_STRUCTURE | Could not establish the entity control structure. |
COMPANY_NOT_VALIDATED_BENEFICIARIES | Beneficiaries are not validated. |
COMPANY_NOT_VALIDATED_REPRESENTATIVES | Representatives are not validated. |
CONNECTION_INTERRUPTED | Video Ident call connection was interrupted. |
DIGITAL_DOCUMENT | The applicant uploaded a digital version of the document. |
DOCUMENT_DEPRIVED | The applicant has been deprived of the document. |
DOCUMENT_DAMAGED | Document is damaged. |
DOCUMENT_MISSING | On the Video Ident call, the applicant refused to show or did not have required documents. |
DOCUMENT_PAGE_MISSING | Some pages of a document are missing. |
EXPIRATION_DATE | The applicant uploaded expired document. |
FRONT_SIDE_MISSING | Front side of the document is missing. |
GRAPHIC_EDITOR | The document or it's data has been changed in the context of brightness, contrast, contents, etc. |
ID_INVALID | A document that identifies a person (like a passport or an ID card) is not valid. |
INCOMPATIBLE_LANGUAGE | The applicant should upload translation of his document. |
INCOMPLETE_DOCUMENT | Some information is missing from the document, or it's partially visible. |
INCORRECT_SOCIAL_NUMBER | The applicant provided an incorrect social number (SSN, for example). |
PROBLEMATIC_APPLICANT_DATA | Applicant data does not match the data in the documents. |
REQUESTED_DATA_MISMATCH | Provided information does not match with the recognized one taken from the document. |
SELFIE_WITH_PAPER | The applicant should upload a special selfie (e.g. selfie with the paper and date on it). |
LOW_QUALITY | Documents have low-quality that does not allow definitive conclusions to be made. |
NOT_ALL_CHECKS_COMPLETED | All checks have not been completed. |
SCREENSHOTS | The applicant uploaded screenshots. |
UNFILLED_ID | The applicant uploaded the document without signatures and stamps. |
UNSATISFACTORY_PHOTOS | There were problems with the photos, like poor quality or masked information. |
UNSUITABLE_ENV | On Video Ident call, the applicant is either not alone or nor visible. |
WRONG_ADDRESS | The address 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.
Value | Description |
---|---|
ADVERSE_MEDIA | The applicant was found in the adverse media. |
AGE_REQUIREMENT_MISMATCH | Age requirement is not met (e.g. cannot rent a car to a person below 25yo). |
BLACKLIST | Applicant is blocklisted by our side. |
BLOCKLIST | Applicant is blocklisted by your side. |
CHECK_UNAVAILABLE | The database is not available. |
COMPROMISED_PERSONS | The applicant does not correspond to Compromised Person Politics. |
CRIMINAL | The applicant is involved in illegal actions. |
DB_DATA_MISMATCH | Data mismatch; the profile could not be verified. |
DB_DATA_NOT_FOUND | No data was found; the profile could not be verified. |
DOCUMENT_TEMPLATE | Documents supplied are templates downloaded from the internet. |
DUPLICATE | This applicant was already created for this client, and duplicates are not allowed by the regulations. |
EXPERIENCE_REQUIREMENT_MISMATCH | Not enough experience (e.g. driving experience is not enough). |
FORGERY | Forgery attempt has been made. |
FRAUDULENT_LIVENESS | There was an attempt to bypass liveness check. |
FRAUDULENT_PATTERNS | Fraudulent behaviour was detected. |
INCONSISTENT_PROFILE | Data or documents of different persons were uploaded to one applicant. |
PEP | The applicant belongs to the PEP category. |
REGULATIONS_VIOLATIONS | Regulations violations. |
SANCTIONS | The applicant was found on sanction lists. |
SELFIE_MISMATCH | An applicant photo (profile image) does not match a photo on the provided documents. |
SPAM | An applicant has been created by mistake or is just a spam user (irrelevant images were supplied). |
NOT_DOCUMENT | Documents supplied are not relevant for the verification procedure. |
THIRD_PARTY_INVOLVED | The applicant is doing verification from a third party for a fee. |
UNSUPPORTED_LANGUAGE | Unsupported language for video identification. |
WRONG_USER_REGION | When applicants from certain regions/countries are not allowed to be registered. |
Updated 2 months ago