Identity Verification

What it Does

Sikoia's secure identity verification solution enables you to verify a person’s identity using a live selfie and government issued documents. This acts as a robust defense against fraudulent activities.

Through a unified API, Sikoia provides access to providers such as Veriff and Au10tix ensuring you receive verified information in a standardised API response format.

How it Works

  1. Create a Case & Add a Person: Create a case and add a person to the case.
  2. Initiate a Request: Create an identity verification request via Sikoia's request IDV endpoint. This generates a unique URL which you share with the person undergoing verification.
  3. User Input: The person clicks on the URL on their preferred device and platform and follows a series of prompts to capture images of their government-issued ID and record a simple selfie. After completion, Sikoia redirects them back to your platform.
  4. Automated Liveliness Check and Face Matching: AI-powered technology conducts liveliness checks, face matching, verifies document authenticity, ensures image integrity, and delivers a swift result.
  5. Review Decision: Sikoia promptly provides the result to you via the retrieve IDV result endpoint within seconds.

This white-labeled flow seamlessly integrates into any application.

See the image below for additional details.

Possible Results

The possible results of an identity verification request are as follows:

ResultDescription
ApprovedThe identity verification has been successful. The document is authentic and matches the person.
DeclinedThe identity verification has been declined. The document may not be authentic or may not match the person. Details on the reason are provided in the response message.
Resubmission RequestedIt was not possible to make a decision based on the images and videos provided. (For example, an image may have been blurry.) The user will need to complete the process again.
Not CompletedThe identity verification process has either not been started or was abandoned.

In addition to the overall identity verification result shown in the table above we also try to surface as much meta data as possible to indicate why a verification request was approved or declined. The amount of information available depends on the underlying provider but using the truncated example below our API will return the following structure:

{
  "request_id": "5b410d0b-bddc-4a14-9837-80520f4831f2",
  "status": "Complete",
  "data": {
    "verification_status": "Declined",
    "media": [],
    "meta_data": {
      "status_codes": [
        {
          "value": "0",
          "type": "Simple.Example",
          "description": "Request rejected by the server due to incorrect file size or type. Please resubmit the request with the correct file size or type (png, jpg, etc.)."
        }
      ]
    }
  }
}

🚧

Important

If the provider does not support the extraction of additional meta data then the meta_data object will be null in our response.

Provider: Au10tix

We will surface meta data for the Au10tix provider for all result codes. You can use this to confirm information and / or warning level remarks for "Approved" submissions as well as find detailed error explanations for why something was "Declined". There are five main "result" status code types that may be present here and a number of remarks.

As a general rule a "result" represents an overall status value for a portion of the IDV check (such as whether a provided document is authentic), and a "remark" represents supplementary information that further qualifies the reason for a "result". For example, a document status may be 0 (success), with a document remark 400 informing that the IDV went through the manual approval "Double Check" process.

Currently supported type values:

  • DocumentAuthenticity.Result
  • CompletionStatus.Result
  • DocumentStatusReport2.Result
  • DocumentStatusReport2.Remark
  • FaceComparisonReport.Result
  • RiskManagementReport.EffectiveConclusion.Result
  • RiskManagementReport.EffectiveConclusion.Processing.Remark
  • RiskManagementReport.EffectiveConclusion.Risk.Remark

DocumentAuthenticity.Result

This value may be represented in either a text, or numeric form. Only one will be returned and they should be considered equivalent in your consuming application.

Value (Text)Value (Numeric)Description
NotApplicable0The result of the document authenticity check is: 'Not Applicable'.
Authentic20The result of the document authenticity check is: 'Authentic'.
Forged60The result of the document authenticity check is: 'Forged'.
Indecisive80The result of the document authenticity check is: 'Indecisive'.
NotCompleted100The result of the document authenticity check is: 'NotCompleted'.
NotRelevant120The result of the document authenticity check is: 'NotRelevant'.
NotRequested140The result of the document authenticity check is: 'NotRequested'.

CompletionStatus.Result

This value may be represented in either a text, or numeric form. Only one will be returned and they should be considered equivalent in your consuming application.

Value (Text)Value (Numeric)Description
UnrecognizableDocument0Document images could not be recognized as a supported document type.
ImageLowQuality20Document images are low quality because of blur or poor lighting etc.
Ok40Document images have acceptable quality, are recognized as supported document types, and are successfully processed. This status alone does not mean that the document itself is OK. The document may still be forged, and or some data cannot be extracted. See other statuses for more information.
PagesTreatedAsSeparateDocuments50Pages have been treated as separate documents.
RequestRejected60The processing request was rejected, the document does not meet the minimum requirements for file size and format.

DocumentStatusReport2.Result

This value will only ever be numeric.

ValueDescription
0The request passed OK.
20The request is conditional.
40The request failed. Please resubmit the request.
60The document is recognized, its data is extracted but no authentication tests were executed.
70Request rejected by the server due to incorrect file size or type. Please resubmit the request with the correct file size or type (png, jpg, etc.).
80Document not recognized.
100Extremely low quality or NonID image. Please submit a higher quality image or an ID image.
120The request was forwarded to DoubleCheck.

DocumentStatusReport2.Remark

This value will only ever be numeric.

ValueDescription
0The authentication tests passed.
20At least one authentication test failed.
40At least one authentication test was indecisive.
50Authentication tests were done only on a single side.
55The back side is classified due to barcode recognition.
60Because of no authentication tests are applicable for the detected document type
80Data extraction only by client request.
100The document is expired.
120Quality of the document image is low.
130Some authenticity checks were not performed.
140The pages of the multi-page document do not match.
160The processing request was rejected.
180The document was not recognized.
200Multiple quality issues prevent data extraction and authentication.
220Non ID document.
230The request has been denied due to poor image quality.
250The document is in block-list.
260The document is in flagged list.
280The second side is expected to this supported ID.
300The second side is not supported on this ID.
320The second side was ignored due to irrelevancy.
340Barcode was expected for this document but could not be extracted due to quality issues.
360Barcode was expected for this document but could not be decoded.
380DoubleCheck is triggered due to a predefined customer rule.
400Document was processed by DoubleCheck.
420DoubleCheck detected two images on the same file.
440DoubleCheck detected incomplete document.
460DoubleCheck failed to recognize document or language.
480DoubleCheck detected black and white image.
500Missing page or pages mismatch.
520DoubleCheck detected destroyed language or document.
540Document recognized
550Double check request failed.
560Double check service is not available.
580Double check service timeout exceeded.
600Double check daily quota exceeded.
620Face compare request is forwarded to DoubleCheck.
640Face compare request processed by DoubleCheck.
700The declared Country and ID Type do not match with the uploaded ID.
720BOS results only - DoubleCheck SLA has been exceeded.
740DoubleCheck detected the document is not allowed by customer.
760The ID document is recognized as 'Digital'. No authentication tests were executed.
780Personal information field(s) have been masked per request.
800Front side missing.
820No authenticity tests defined for the document.
840Manual Inspection detected Document Replay Screen.
860Manual Inspection detected Document Replay Paper.
880Manual Inspection detected Document Replay Digital.
144Enhanced checks were done by face comparison service.
1580The digital signature is expired.
1600The digital signature is validated.
1620The digital signature is found to be from a trusted source.
1640The digital signature validation is found to be bad or broken.
1660The digital signature validation is found to be unsupported.
1680The digital signature validation is found to be from untrusted vendor.
1700The document was identified as a digital identity but was not validated by digital signature.
1720The digital document data was extracted successfully by external provider.
1740The digital document data extraction by external provider failed.
1760The digital document forged

FaceComparisonReport.Result

This value will only ever be numeric.

ValueDescription
0Faces Match - Comparison result: passed.
7Faces Do not Match - Comparison result: failed.
14Completed. Comparison result: indecisive.
20Some technical issue prevents performing face comparison, for example, unrecognizable document, bad photo, bad cropped photo etc.
40Photo was not detected on the document image.
41Face was not detected on the Selfie image.
42Face was not detected on the document image.
60Input file size is larger than allowed maximum size.
80Input file size is smaller than allowed minimum size.
100Internal error.
120Request to perform face comparison was received, but the customer has no license for this operation.
140Faces OverMatch - Checks that the photo image on the ID card is unalike the selfie.
160Faces to face comparison request rejected.

RiskManagementReport.EffectiveConclusion.Result

This value will only ever be numeric.

ValueDescription
0The request passed OK.
20The request is conditional.
40The request failed. Please resubmit the request.
60The document is recognized, its data is extracted but no authentication tests were executed.
70Request rejected by the server due to incorrect file size or type. Please resubmit the request with the correct file size or type (png, jpg, etc.).
80Document not recognized.
100Extremely low quality or NonID image. Please submit a higher quality image or an ID image.
120The request was forwarded to DoubleCheck.

RiskManagementReport.EffectiveConclusion.Processing.Remark

This value will only ever be numeric.

ValueDescription
0The authentication tests passed.
20At least one authentication test failed.
40At least one authentication test was indecisive.
50Authentication tests were done only on a single side.
60Because of no authentication tests are applicable for the detected document type, only document data was extracted.
80Data extraction only by client request.
100The document is expired.
120Quality of the document image is low.
130Some authenticity checks were not performed.
140The pages of the multi-page document do not match.
160The processing request was rejected.
180The document was not recognized.
200Multiple quality issues prevent data extraction and authentication.
220Non ID document.
230The request has been denied due to poor image quality.
250The document is in block-list.
260The document is in flagged list.
280The second side is expected to this supported ID.
300The second side is not supported on this ID.
320The second side was ignored due to irrelevancy.
340Barcode was expected for this document but could not be extracted due to quality issues.
360Barcode was expected for this document but could not be decoded.
380DoubleCheck is triggered due to a predefined customer rule.
400Document was processed by DoubleCheck.
420DoubleCheck detected two images on the same file.
440DoubleCheck detected incomplete document.
460DoubleCheck failed to recognize document or language.
480DoubleCheck detected black and white image.
500Primary result was altered due to the mandatory second side rule.
520DoubleCheck detected destroyed language or document.
540Document recognized, but data is not extracted and no authentication tests were executed.
560Double check service is not available.
580Double check service timeout exceeded.
600Double check daily quota exceeded.
620Face compare request is forwarded to DoubleCheck.
640Face compare request processed by DoubleCheck.
700The declared Country and ID Type do not match with the uploaded ID.
720BOS results only - DoubleCheck SLA has been exceeded.
740DoubleCheck detected the document is not allowed by customer.
760The ID document is recognized as 'Digital'. No authentication tests were executed.
780Personal information field(s) have been masked per request.

RiskManagementReport.EffectiveConclusion.Risk.Remark

This value will only ever be numeric.

ValueDescription
0The authentication tests passed.
20At least one authentication test failed.
40At least one authentication test was indecisive.
50Authentication tests were done only on a single side.
55The back side is classified due to barcode recognition.
60Because of no authentication tests are applicable for the detected document type, only document data was extracted.
80Data extraction only by client request.
100The document is expired.
120Quality of the document image is low.
130Some authenticity checks were not performed.
140The pages of the multi-page document do not match.
160The processing request was rejected.
180The document was not recognized.
200Multiple quality issues prevent data extraction and authentication.
220Non ID document.
230The request has been denied due to poor image quality.
250The document is in block-list.
260The document is in flagged list.
280The second side is expected to this supported ID.
300The second side is not supported on this ID.
320The second side was ignored due to irrelevancy.
340Barcode was expected for this document but could not be extracted due to quality issues.
360Barcode was expected for this document but could not be decoded.
380DoubleCheck is triggered due to a predefined customer rule.
400Document was processed by DoubleCheck.
420DoubleCheck detected two images on the same file.
440DoubleCheck detected incomplete document.
460DoubleCheck failed to recognize document or language.
480DoubleCheck detected black and white image.
500Missing page or pages mismatch.
520DoubleCheck detected destroyed language or document.
540Document recognized, but data is not extracted and no authentication tests were executed.
550Double check request failed.
560Double check service is not available.
580Double check service timeout exceeded.
600Double check daily quota exceeded.
620Face compare request is forwarded to DoubleCheck.
640Face compare request processed by DoubleCheck.
700The declared Country and ID Type do not match with the uploaded ID.
720BOS results only - DoubleCheck SLA has been exceeded.
740DoubleCheck detected the document is not allowed by customer.
760The ID document is recognized as 'Digital'. No authentication tests were executed.
780Personal information field(s) have been masked per request.
800Front side missing.
820No authenticity tests defined for the document.
840Manual Inspection detected Document Replay Screen.
860Manual Inspection detected Document Replay Paper.
880Manual Inspection detected Document Replay Digital.
1440Enhanced checks were done by face comparison service.
1580The digital signature is expired.
1600The digital signature is validated.
1620The digital signature is found to be from a trusted source.
1640The digital signature validation is found to be bad or broken.
1660The digital signature validation is found to be unsupported.
1680The digital signature validation is found to be from untrusted vendor.
1700The document was identified as a digital identity but was not validated by digital signature.
1720The digital document data was extracted successfully by external provider.
1740The digital document data extraction by external provider failed.
1760The digital document forged.

Provider: Veriff

Additional meta data not currently supported.

Supported Countries

This solution is available for all countries.

Supported Documents

The user-provided ID documents must meet the following criteria:

  • Document must be a government issued driver's license, passport, residence permit, or standard ID.
  • Document must be an original – photos of government issued documents are not accepted.
  • Document is valid, not scratched, stained, or torn.
  • Applicant’s full name, date of birth, MRZ (Machine Readable Zone), and other essential information is present and readable.

Webhook Events

If you have configured any webhooks that reference one of the Identity Verification events you will receive one of:

  • IdentityVerification.Completed - sent when a user completes the identity verification successfully or unsuccessfully. It will contain the verification result from the table above
  • IdentityVerification.Expired - sent only when a verification process has been requested for a user but they never completed it before the link expired

Both events will contain links for retrieving the Requests List and full IDV Result.

Recipe & Endpoints

Check out this recipe for more information on how to use Sikoia's API for identity verification.

📘

Start exploring Sikoia's identity verification endpoints here.