# 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/document POST

# Request Body Structure

Parameter Required Description
apiKEY YES Your Verifiedly API Key
front YES FormData image of the front of the document
back NO Required if idType is id or drivers_license. FormData image of the back of the document
face YES FormData image of a selfie of the document owner
idType YES Type 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 code Meaning Reason
401 No access You are trying to access an endpoint you don't have access to
401 APIKey issue You are trying to make a request with an invalid api key
200 Success Your request was successful
400 Request error There was an error in your request
Last Updated: 2/27/2022, 10:10:50 PM