# Document Verification

# Verify your customer's government issued identity document for your KYC compliance obligations.

# Getting started

We try our best to make document verification as easy and straight forward as possible. We try to limit verifications to a single request as opposed to to the regular multiple steps that are required by many KYC providers. Document verification is available to every account type ( with certain restrictions).

# Accepted documents and coverage

We accept and verify identity documents from over 190 countries world wide. Some of the documents we support include; Driver's License, Employment Authorization Document, National ID, Green Card, International Passport.

Coverage

# Endpoint

/verification/documentPOST

# Request Body Structure

ParameterRequiredDescription
apiKEYYESYour Verifiedly API Key
frontYESFormData image of the front of the document
backNORequired if idType is id or drivers_license. FormData image of the back of the document
faceYESFormData image of a selfie of the document owner
idTypeYESType of ID to be verified. Options are id, drivers_license, ead, green_card

# Sample Request

# Drivers License / National ID

var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('front', fs.createReadStream('IMAGE_PATH'));
data.append('apiKEY', 'your_API_Key');
data.append('face', fs.createReadStream('IMAGE_PATH'));
data.append('idType', 'drivers_license'); // or id
data.append('back', fs.createReadStream('IMAGE_PATH'));

var config = {
  method: 'post',
  url: 'https://api.verified.ly/v1/verification/document',
  headers: { 
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});


# Passport / EAD / Green card

var axios = require('axios');
var FormData = require('form-data');
var fs = require('fs');
var data = new FormData();
data.append('front', fs.createReadStream('IMAGE_PATH'));
data.append('apiKEY', 'your_API_Key');
data.append('face', fs.createReadStream('IMAGE_PATH'));
data.append('idType', 'drivers_license'); // or ead or green_card
data.append('back', fs.createReadStream('IMAGE_PATH'));

var config = {
  method: 'post',
  url: 'https://api.verified.ly/v1/verification/document',
  headers: { 
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});


# Sample Response

{
    "status": "completed",
    "result": {
        "first_name": "JENNIFER",
        "middle_name": "AMY",
        "last_name": "SAMPLE",
        "gender": "F",
        "adddress": {
            "street": "4802 SHEBOYGAN AVE",
            "city": "MADISON, WI",
            "state": "Wisconsin",
            "zip": "53705"
        },
        "date_of_birth": {
            "day": 14,
            "month": 3,
            "year": 1976,
            "age": 45
        },
        "has_document_Expired": false,
        "is_real": false
    }
}

# What just hapened?

In order to verify the authenticity of an identity document, we rely on a number of public and private sources in addition to machine learning and artificial intelligence. We analize the document for flaws that may be easy to miss with regular eyes. With this process, we are able to verify with an accuracy of > 92%, the authenticity of an identity document.

# Things to look out for

TIP

There are only two objects to consider are : has_document_Expired and is_real

# has_document_Expired

A true has_document_Expired status means that the identity document has expired and should not be accepted for that reason.

# is_real

A false is_real status means that our system has determined that the identity document does not appear to be authentic and should not be accepted for that reason.

# Status Codes

Congratulations 🎉 🎉 , you have verified your first document successfully. Here are some status codes to take note of.

Status codeMeaningReason
401No accessYou are trying to access an endpoint you don't have access to
401APIKey issueYou are trying to make a request with an invalid api key
200SuccessYour request was successful
400Request errorThere was an error in your request
Last Updated: 9/23/2021, 5:28:58 AM