NAV Navbar
Python NodeJS GoLang Java GraphQL REST

Introduction

The Vouched Verification SDK is a set of tools that you can use to submit, access and manage verification jobs. You can access Vouched Verification with our client libraries in a wide variety of popular programming languages.

Recognized IDs

Browser Client

In order to use Vouched SDK in a browser, your page must be served using HTTPS. Without it, browser would not allow camera access.

Getting Started

Initialize the Vouched client


<head>
....
<script src="https://static.vouched.id/widget/vouched.js"></script>
<script type='text/javascript'>

(function() {
  var vouched = Vouched({
    appId: "<PUBLIC_KEY>",
    onSubmit: ({ stage, attempts, job }) => {
          console.log('submit', { stage, attempts, job });
    },
    onCamera: ({ hasCamera, hasPermission }) => {
      console.log('onCamera', { hasCamera, hasPermission });
    },
    onInit: ({token}) => {
      // if crossDevice is true, a web token is created during initialization for
      // session handoffs to other devices
      console.log('initialization');
    },
    onDone: (job)=> {
      // token used to query jobs
      console.log("Scanning complete", { token: job.token });
      // query the job with the token
      fetch(`/yourapi/idv?job_token=${job.token}`);
    }

  });
  vouched.mount("#vouched-element");

})();
</script>

</head>
<body>
    <div id='vouched-element' style="height: 100%"/>
</body>

Arguments

Parameter Type Required Description
appId String * public key
type String   defaults to idv, idv - id with selfie verification, id - id only
survey Bool Show an optional survey at the end
token String Time limited session token used to restart a session
crossDevice Bool Provides the ability to maintain the same session across multiple devices using the token retrieved from onInit.
showUploadFirst Bool defaults to true, show the upload first instead of the camera
face String defaults to camera, specify how user can submit their selfie. Valid values are both,camera,upload
id String defaults to both, specify how user can submit their id. Valid values are both,camera,upload
liveness String defaults to mouth, specify how Vouched should check for face liveness. Valid values are mouth,orientation and straight
properties [JobProperty] List of JobProperty - Arbitrary properties to add to the job, i.e. application ids
content Object
Content changes
Property Type Required Description
success String successful submission
review String the user disputes the results
verifyPass String verification passed
verifyFail String verification failed
verification Object
optional verification properties
Property Type Required Description
showResults Bool show the review results page. defaults to false if verification fields are included
firstName String
lastName String
birthDate String
email String Used for crosschecking identity
phone String Used for crosschecking identity
callbackURL String Called when a verification is completed
stepTitles Object
Property Type Required Description
FrontId String * Front ID breadcrumb text
Face String * Face breadcrumb text
Done String * "Done verificating" breadcrumb text
content Object
Property Type Required Description
success String Success message
review String Review message
verifyPass String Message for successful verification
verifyFail String Message for an unsuccessful verification
upperSuccess String Success message at the top
lowerSuccess String Success message at the bottom
upperFailure String Failure message at the top
lowerFailure String Failure message at the bottom
theme Object
Property Type Required Description
baseColor String Main color
bgColor String Background color
font String Font Family
navigationDisabledBackground String Background of disabled breadcrumbs
navigationDisabledText String Text color on disabled breadcrumbs
onSubmit Function Javascript callback when a user submits a photo
onCamera Function Javascript callback when camera initialization is complete
onInit Function Javascript callback during initialization of the webapp
onDone Function Javascript callback when a verification is complete

Initialize the Vouched client for sending Vouched Now invites


<head>
....
<script src="https://static.vouched.id/widget/vouched.js"></script>
<script type='text/javascript'>

(function() {
  var vouched = Vouched({
    appId: "<PUBLIC_KEY>",
    type: "invite"
  });
  vouched.mount("#vouched-element");
})();
</script>

</head>
<body>
    <div id='vouched-element' style="height: 500px; width:800px;"/>
</body>

Arguments

Parameter Type Required Description
appId String * public key
type String * invite

Unmount the Client

    vouched.unmount('#vouched-element')

Layout considerations

When integrating Vouched component into your site design, consider that Vouched component occupies 100% height of the parent container (it has CSS rule height: 100% applied). That means that parent container should be given height. Height should be given, for example, by setting height value (height: 100%) on the container or by using flex constraints (flex-grow: 1 in vertical flex-box).

SDK Client API

Getting Started


- Obtain the FURY_AUTH token
- Obtain the private key
- Obtain the Client version, currently (0.0.5b18)
- Obtain the version number and FURY_AUTH token.

Update `requirements.txt` for:

--index-url https://${FURY_AUTH}@pypi.fury.io/woollylabs/
--extra-index-url https://pypi.org/simple/ private-package=0.0.1

vouched-client==<CLIENT_VERSION>

Install with pip:

FURY_AUTH=<FURY_AUTH_TOKEN> pip install --no-cache-dir -r ./requirements.txt

Some OSes does not allow the reading of environment variables in `requirements.txt`.
In this case, replace `${FURY_AUTH}` in `requirements.txt` with the actual token.

- Obtain the FURY_AUTH token
- Obtain the private key

lipvips is used to compress images. Installation instructions
for libvips found at https://github.com/lovell/sharp-libvips.

Obtain the Client version, currently (0.0.1-beta.15)

Update `package.json` for:

{
  "dependencies": {
    "@vouched/client": "<CLIENT_VERSION>"
  }
}

Append the following to the project's `.npmrc`,
for details refer to https://docs.npmjs.com/files/npmrc:

@vouched:registry=https://npm.fury.io/woollylabs/
//npm.fury.io/woollylabs/:_authToken=${FURY_AUTH}

Run:
FURY_AUTH=<FURY_AUTH_TOKEN> npm install

Some OSes does not allow the reading of environment variables in `.npmrc`.
In this case, replace `${FURY_AUTH}` in `.npmrc` with the actual token.


go get github.com/vouched/vouched-golang

export PRIVATE_KEY=<your private Vouched key>

Include Maven dependency:
      <groupId>com.vouched.sdk</groupId>
      <artifactId>vouched-java</artifactId>

The header parameter `X-Api-Key` is required for all
GraphQL requests.

headers['X-Api-Key']=<private_key>
headers['Content-Type']='application/json'

The graphql endpoint is https://verify.vouched.id/graphql


The header parameter `X-Api-Key` is required for all
REST requests.

headers['X-Api-Key']=<private_key>
headers['Content-Type']='application/json'

The rest endpoint is https://verify.vouched.id/api

Create the Vouched client

const Client = require('@vouched/client').default;

const client = Client(private_key);
from vouched.api import Client

client = Client(private_key)

import (
  client "github.com/vouched/vouched-golang"
)
c := client.New(private_key)

import com.vouched.sdk.Client;
import com.vouched.sdk.Config;

Client client = new Client(Config.get().getPrivateKey());

Arguments

Parameter Type Required Description
key String * Private Key

Returns

Parameter Type Required Description
client Client * Vouched client

Errors:

Update client key

secret_client_key = <SECRET>
data = client.update_secret_client_key(secret_client_key=secret_client_key)


params := map[string]interface{}{
  "secretClientKey": "SECRET_KEY"}
if resp, err := c.UpdateSecretClientKey(params); err != nil {
  fmt.Printf("Error: %+v\n", err)
} else {
  fmt.Printf(" %+v\n", resp)
}

client.updateSecretClientKey("newKey");
const secretClientKey = <SECRET>
const data = client.updateSecretClientKey(secretClientKey);

  mutation updateSecretClientKey($secretClientKey: String) {
    updateSecretClientKey(secretClientKey: $secretClientKey) {
      secretClientKey
    }
  }


  POST api/account/secret-client-key

  payload:
  {
    "secretClientKey": "your secret client key"
  }

Arguments

Parameter Type Required Description
secretClientKey String The secret key to be included in the header X-Api-Key of the webhook call.

Returns

Parameter Type Required Description
secretClientKey String The updated secretClientKey

Errors:

Submit a verification job


var idPhotoBase64 = client.ReadImage("./tests/oh-license.jpeg")
var userPhotoBase64 = client.ReadImage("./tests/oh-selfie.jpeg")
params := map[string]interface{}{
  "userPhoto":   userPhotoBase64,
  "idPhoto":     idPhotoBase64,
  "callbackURL": "https://www.google.com",
  "type":        "id-verification",
  "firstName":   "Janice",
  "dob":         "06/22/1990", "lastName": "Way"}
if resp, err := c.Submit(params); err != nil {
  fmt.Printf("Error: %+v\n", err)
} else {
  fmt.Printf("Job: %+v\n", resp)
}


from vouched.utils import image_to_base64

user_photo_base64 = image_to_base64('/opt/app/tests/data/selfie.png')
id_photo_base64 = image_to_base64('/opt/app/tests/data/id.jpg')
job = client.submit(
    user_photo=user_photo_base64,
    id_photo=id_photo_base64,
    properties=[
      dict(name='internal_id',value='iid'),
      dict(name='internal_username',value='bob'),
    ],
    type='id-verification',
    first_name='Janice',
    dob='06/22/1990',
    last_name='Way'
)


const utils = require('@vouched/client').utils;

const userPhotoBase64 = await utils.imageToBase64(
    '/opt/app/tests/data/selfie.png'
);
const idPhotoBase64 = await utils.imageToBase64(
    '/opt/app/tests/data/id.jpg'
);
const job = await client.submit({
    userPhoto:userPhotoBase64,
    idPhoto:idPhotoBase64,
    type:'id-verification',
    firstName:'Janice',
    properties:[
      {name:'internal_id',value:'iid'},
      {name:'internal_username',value:'bob'}
    ],
    dob:'06/22/1990',
    lastName:'Way'
})


# X-Signature Algorithm

return crypto
.createHmac('sha1', private_key)
.update(Buffer.from(data, 'utf-8'))
.digest('base64');

String img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA" +
        "AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO" +
        "9TXL0Y4OHwAAAABJRU5ErkJggg==";

JobRequest jobRequest = new JobRequest();
jobRequest.parameters.userPhoto = img;
jobRequest.parameters.idPhoto = img;
jobRequest.parameters.firstName = "Thor Thunder";
jobRequest.parameters.lastName = "odinson";
jobRequest.parameters.dob = "06/22/1970";

Job job = client.submitJob(jobRequest);
  fragment Job on Job {
    id
    status
    request {
      type
      callbackURL
      parameters {
        idPhoto
        userPhoto
        firstName
        lastName
        dob
      }
      properties{
        name
        value
      }
    }
    result {
      success
      successWithSuggestion
      type
      country
      state
      id
      firstName
      lastName
      expireDate
      class
      endorsements
      motorcycle
      birthDate
      confidences {
        id
        selfie
        idMatch
        faceMatch
      }
    }
    errors {
      type
      message
      suggestion
    }
    submitted
  }
  input JobParams {
    userPhoto: String
    idPhoto: String
    id: String
    firstName: String
    lastName: String
    dob: String
  }
  input JobPropertyParam {
    name: String!
    value: String!
  }
  mutation submitJob(
    $type: String!
    $callbackURL: String
    $pr: String
    $params: JobParams
    $properties: [JobPropertyParam]
  ) {
    submitJob(
      type: $type
      callbackURL: $callbackURL
      params: $params
      properties: $properties
    ) {
      ...Job
    }
  }

POST api/jobs

payload:
{
  "type": "id-verification",
  "callbackURL": "https://yourwebsite.com",
  "properties": [{
    "name": "propertiesName",
    "value": "propertiesValue"
  }],
  "params": {
    "userPhoto": "data:image/png;base64,iVBRw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
    "idPhoto": "data:image/png;base64,iVBRw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
  }
}

Arguments

Parameter Type Required Description
type String * Type of AI job ("id-verification")
callbackURL String

Upon the job's completion, Vouched will POST the job results to the webhook. If the callbackURL is not given, Vouch will process the job in realtime. All callbackURL requests contain X-Signature in request headers. The X-Signature was created using HMAC-SHA1 using your private key as the key. To validate webhook response, perform the same signature procedure and compare if your generated signature and the sent signature match.

properties [JobProperty] List of JobProperty - Arbitrary properties to add to the job, i.e. application ids
parameters Object *
Object for verification
Property Type Required Description
userPhoto String, Buffer   The user's id comparison photo. Supported types include image/png, image/jpeg
idPhoto String, Buffer * The user's official identification photo. Supported types include image/png, image/jpeg
firstName String   The user's first name.
lastName String   The user's last name.
dob String   Date in the format MM/DD/YYYY.
email String   Used for crosschecking identity
phone String   Used for crosschecking identity

Returns

Parameter Type Required Description
job Job * The newly created job.

Errors:

Remove a job


job = client.remove_job(
    id='USkjk33'
)

if resp, err := c.RemoveJob("ZicnypPn"); err != nil {
  fmt.Printf("Error: %+v\n", err)
} else {
  fmt.Printf(" %+v\n", resp)
}
Job job = client.removeJob("someJobId");

const job = await client.remove({ id: 'ofm1k9xF' })


  fragment Job on Job {
    .... Refer to submitJob
  }
  mutation removeJob(
  $id: ID!
  ) {
    removeJob(
      id: $id
    ) {
      ...Job
    }
  }

  DELETE api/jobs/:id

Arguments

Parameter Type Required Description

Returns

Parameter Type Required Description
job Job * The removed job.

Errors:

Provide results on jobs

const jobs = client.jobs({
    page:1,
    pageSize:2,
    type:'id-verification',
    status:'active',
    token:<TOKEN_FROM_WEB_CLIENT>,
    sortBy:'submitted',
    sortOrder:'desc',
    withPhotos:true,
    fromDate:'2017-01-24T04:44:00+00:00',
    toDate:'2020-12-24T04:44:00+00:00'
})


params := map[string]interface{}{
  "page":       1,
  "sortBy":     "submitted",
  "sortOrder":  "desc",
  "from":       "1990-12-24T04:44:00+00:00",
  "to":         "2020-12-24T04:44:00+00:00",
  "type":       "id-verification",
  "token":       "SESSION_TOKEN",
  "status":     "active",
  "withPhotos": false,
  "pageSize":   2,
}
if resp, err := c.Jobs(params); err != nil {
  fmt.Printf("Error: %+v\n", err)
} else {
  fmt.Printf("Jobs: %+v\n", resp)
}

    JobsFilter f = new JobsFilter();
    f.id = "someJobId";

    Jobs jobs = client.getJobs(f);
jobs = client.jobs(
    page=1,
    page_size=2,
    type='id-verification',
    token=<TOKEN_FROM_WEB_CLIENT>,
    status='active',
    sort_by='date',
    sort_order='desc',
    with_photos=True,
    from_date='2017-01-24T04:44:00+00:00',
    to_date='2020-12-24T04:44:00+00:00'
 )

  query jobs(
    $id: ID
    $token: String
    $ids: [ID]
    $type: String
    $status: String
    $to: String
    $from: String
    $withPhotos: Boolean
    $sortOrder: String
    $sortBy: String
    $page: Int
    $pageSize: Int
  ) {
    jobs(
      withPhotos: $withPhotos
      id: $id
      ids: $ids
      status: $status
      token: $token
      type: $type
      to: $to
      from: $from
      sortOrder: $sortOrder
      sortBy: $sortBy
      page: $page
      pageSize: $pageSize
    ) {
      total
      totalPages
      pageSize
      page
      items {
        ...Job
      }
    }
  }
  GET api/jobs?ids=["1","2"]&type=id-verification&page=1&pageSize=101&sortBy=submitted&sortOrder=asc&status=completed&from=2011-10-05T14:48:00.000Z&to=2019-10-05T14:48:00.000Z&withPhotos=true

  or

  GET api/jobs?id=1

Arguments:

Parameter Type Required Description
id ID Filter by job ID.
type String Type of job ("id-verification")
ids [ID] Filter by a list of job IDs.
token String The time limited session token from the web client.
page Int Paginate list by page where the page starts at 1, defaults to 1.
pageSize Int The number of items for a page, max 1000, defaults to 100
sortBy String Sort the list from ("submitted","updated", "status").
sortOrder String Order the sort from ("asc", "desc").
status String Filter by status from ("active","completed")
from String Filter by submitted/updatedAt from ISO8601 date.
to String Filter by submitted/updatedAt to ISO8601 date.
toFrom String Defaults to submitted. Filter to and from by ("submitted","updatedAt")
withPhotos Boolean Defaults to False. Job will contain idPhoto and userPhoto photos. Max pageSize will be 100.
withPhotoUrls Boolean Defaults to False. Job will contain idPhotoUrl and userPhotoUrl signed. Max pageSize will be 100.

Returns

Parameter Type Required Description
jobs [Job] * List of paginated jobs
totalPages Int * Total number of pages of jobs.
pageSize Int * The requested page size.
page Int * The requested page.
total Int * Total number of filtered jobs.

Errors:

Update job with verified reviews


PUT api/jobs/:id/review

payload:
{
  "idValid": true,
  "selfieValid": true,
  "faceMatch": null,
  "nameMatch": null,
  "birthDateMatch": null,
  "firstName": "John",
  "lastName": "Bao",
  "docId": null,
  "idType": null,
  "birthDate": null,
  "expireDate": null,
  "state": null,
  "country": null,
}

Arguments:

Parameter Type Required Description
idValid Boolean Is the id valid.
selfieValid Boolean Is the selfie valid.
faceMatch Boolean Is the face match valid.
birthDateMatch Boolean Does the birthdate match.
nameMatch Boolean Does the name match.
firstName String The first name.
lastName String The last name.
docId String The document id number.
idType String The id type from ('passport', 'commercial-license', 'global-entry', 'identification', 'residence', 'employment', 'drivers-license', 'drivers-license-permit').
state String The state/province/territory ISO 3166-2 code
country String The country ISO 3166-1 code.

Returns

Parameter Type Required Description
job Job *

Errors:

Get a list of supported id documents

  query identityDocuments
   {
    identityDocuments
    {
      documents: {
        ...IdentityDocument
      }
    }
  }
`;

GET api/identity/documents


Arguments:

Returns

Parameter Type Required Description
documents [IdentityDocuments] * List of identity documents.

Errors:

Send a Vouched Now invite

  mutation sendInvite(
    $firstName: String!
    $lastName: String!
    $phone: String
    $email: String
    $contact: String!
  ) {
    sendInvite(
      firstName: $firstName
      lastName: $lastName
      phone: $phone
      email: $email
      contact: $contact
    ) {
      ...Invite
    }
  }
`;

POST api/invites

payload:
{
  "email": "test@test.com",
  "firstName": "John",
  "lastName": "Bao",
  "phone": "0004007007",
  "contact": "email"

}

Arguments:

Parameter Type Required Description
type String defaults to idv, idv - id with selfie verification, id - id only
email String Email address to send to
phone String 10 digit phone number, US only
contact String * Contact method to use(email,phone)
firstName String * First Name
lastName String * Last Name
templateEmail String The template to use for emails with variables $FIRST_NAME $LINK
titleEmail String The title of the email
templateText String The template to use for text messages with variables $FIRST_NAME $LINK
send Boolean Defaults to true, send an message via the contact method
internalId ID Application Internal Id

Returns

Parameter Type Required Description
invite Invite * The newly created invite.

Errors:

Submit an identity crosscheck

Provides a crosscheck of matching identities based on provided name, email, phone number, address, and IP address. The crosscheck is performed across a network of enriched data sources.


POST api/identity/crosscheck

payload:
{
  firstName: 'John',
  lastName: 'Bao',
  email: 'baoman@mail.com',
  phone: '917-343-3433',
  ipAddress: '73.19.102.110',
  address: {
    streetAddress: '1 Main St',
    city: 'Seattle',
    postalCode: '98031',
    state: 'WA',
    country: 'US'
  }
}



Arguments:

Parameter Type Required Description
email String Email address
phone String Phone number
firstName String * First Name
lastName String * Last Name
ipAddress String IP Address
address CrossCheckAddress Address

Returns

Parameter Type Required Description
id ID * ID of the request
request CrossCheckRequest *
result CrossCheckResult *

Errors:

Resend a Vouched Now invites

  mutation resendInvite($id: ID!) {
    resendInvite(id: $id) {
      ...Invite
    }
  }

`;

POST api/invites/UUIKJw4kj/resend

Arguments:

Parameter Type Required Description
id ID * The invite id to resend.

Returns

Parameter Type Required Description
invite [Invite] * The resent invite.

Errors:

List of Vouched Now invites

  query smsInvites($id: ID, $page: Int, $pageSize: Int) {
    smsInvites(id: $id, page: $page, pageSize: $pageSize) {
      total
      totalPages
      page
      items {
        ...Invite
      }
    }
  }
`;

GET api/invites?pageSize=10&page=1

Arguments:

Parameter Type Required Description
id ID The invite id
page Int Paginate list by page where the page starts at 1, defaults to 1.
pageSize Int The number of items for a page, defaults to 50

Returns

Parameter Type Required Description
invites [Invite] * List of paginated invites.
totalPages Int * Total number of pages.
pageSize Int * The requested page size.
page Int * The requested page.
total Int * Total number of filtered jobs.

Errors:

Types

Address

Property Type Required Description
unit String unit number
streetNumber String
street String
city String
state String ISO 3166-2 state/province/territory code
postalCode String
postalCodeSuffix string
country String ISO 3166-1 country code

Confidences

Property Type Description
id Float Confidence score for an id photo, 0-1.0
idQuality Float Confidence score for image quality of the id, 0-1.0
idGlareQuality Float Confidence score for image quality of the id, 0-1.0
selfie Float Confidence score for a selfie photo, 0-1.0
idMatch Float Confidence score for matching data on the id, 0-1.0
idExpired Float Confidence score for id expiration date, 0-1.0
faceMatch Float Confidence score for matching faces, 0-1.0
birthDateMatch Float Confidence score for matching birth dates, 0-1.0
nameMatch Float Confidence score for matching names, 0-1.0
selfieSunglasses Float Confidence score for selfie with sunglasses, 0-1.0
selfieEyeglasses Float Confidence score for selfie with eyeglasses, 0-1.0

CrossCheckAddress

Property Type Required Description
unit String
streetAddress String *
city String *
state String * state/province/territory ISO 3166-2 code
postalCode String *
country String * ISO 3166-1 country code

CrossCheckAgeRange

Parameter Type Required Description
from Int * From age
to Int * To age

CrossCheckConfidences

Parameter Type Required Description
identity Float * Overall identity risk confidence, 0-1.0, low: >= 0.50, medium: > 0.2, high: > 0.1, critical: <= 0.1
activity Float * Overall activity risk confidence, high: <= 0.1

CrossCheckIdentityAddress

Parameter Type Required Description
errors [Error] *
warnings [Error] *
isValid Boolean * The address is a verified address
isMatch Boolean * The name on the address matches the user
name String The recorded name of the identity
ageRange CrossCheckAgeRange The age range of the name on the address
isForwarder Boolean The address is a freight forwarding address
isCommercial Boolean The address is associated with a business
type String 'incomplete-address', 'po-box', 'multi-unit', 'single-unit', 'commercial-mail-drop', 'po-box-forward' ,'other'

CrossCheckIdentityEmail

Parameter Type Required Description
errors [Error] *
warnings [Error] *
isValid Boolean * The email is a valid email address
isMatch Boolean * The name associated with the email address matches the user
name String The recorded name of the identity
ageRange CrossCheckAgeRange The age range of the name on the email address
isAutoGenerated Boolean The email address could be autogenerated
isDisposable Boolean The email address is disposable
daysFirstSeen Int The number of days since the email address was first seen in the data network

CrossCheckIdentityPhone

Parameter Type Required Description
errors [Error] *
warnings [Error] *
isValid Boolean * The phone number is valid
isMatch Boolean * The name associated with the phone number matches the user
name String The recorded name of the identity
type String 'fixed-voip', 'landline', 'mobile','non-fixed-voip', 'premium-rate', 'tollfree', 'voicemail', 'other'
ageRange CrossCheckAgeRange The age range of the name on the phone number
carrier String The phone provider
isPrepaid Boolean The phone number is on a prepaid plan
isDisposable Boolean The phone number is disposable
isCommercial Boolean The phone number is associated with a business

CrossCheckRequest

Parameter Type Required Description
email String Email address
phone String Phone number
firstName String * First Name
lastName String * Last Name
address CrossCheckAddress
ipAddress String

CrossCheckResult

Parameter Type Required Description
address CrossCheckIdentityAddress
email CrossCheckIdentityEmail
phone CrossCheckIdentityPhone
ageRange CrossCheckAgeRange
ipAddress IPAddress
confidences CrossCheckConfidences *

Dimension

Parameter Type Required Description
width Int *
height Int *

Error

Property Type Required Description
type String *
  • InvalidRequestError - The request is invalid.
  • FaceMatchError - Face match felled below the threshold
  • NameMatchError - Name match felled below the threshold
  • BirthDateMatchError - Birth date match felled below the threshold
  • ExpiredIdError - The ID’s expiration date has passed
  • InvalidIdPhotoError - The ID is invalid
  • InvalidUserPhotoError - The user photo (selfie) is invalid
  • UNAUTHENTICATED/AuthenticationError - The request could not be authenticated
  • ConnectionError - A connection error occurred while communicating to the Vouched service
  • UnknownSystemError - A unknown system error occurred
  • InvalidIdError - The ID is invalid
message String * Details on the occurring error.
suggestion String A suggestion for matching name, John Smith, Jon Smith.
errors [Error] InvalidRequestError contains a sub list of errors

Location

Property Type Required Description
latitude Float
longitude Float

Invite

Property Type Required Description
id ID * Invite id.
phone String Phone number with the country code
email String Email address
send Boolean * Defaults to true, send an message via the contact method
link String * The verification link sent to the user
contact String * The contact used to send the invite
jobId ID * The associated job id if the status is active or completed
firstName String * The contact's first name
lastName String * The contact's last name
updatedAt String * ISO8601 date
createdAt String * ISO8601 date
status String *
  • accepted
  • queued
  • sending
  • sent
  • failed
  • delivered
  • undelivered
  • receiving
  • received
  • read (WhatsApp only)
  • completed
  • active

IdentityDocument

Property Type Required Description
type String * The id type.
country String * Issuing country in ISO 3166-1 2 code
state String Issuing state/province/territory in ISO 3166-2 2 code
properties [String] * Recognized extraction properties

IPAddress

Property Type Required Description
city String Originating City
state String Originating State/Province/Territory in ISO 3166-2 code
country String Originating Country in ISO 3166-1 2 code
postalCode String postal code
location Location
isp String Name of the isp
organization Boolean Name of the organization associated with the IP address
isAnonymous Boolean Is the IP address part of an anonymous network
isAnonymousVpn Boolean Is the IP address part of an anonymous vpn network
isAnonymousHosting Boolean Is the IP address part of an anonymous hosting network
userType String
  • business - the IP address belongs to a business ISP or a corporation.
  • cafe - an internet cafe or similar location.
  • cellular - the IP address is used to route traffic from devices connected to a cellular network.
  • college - the IP address belongs to a college, university, or similar institute of higher education.
  • content_delivery_network - belongs to a CDN (Akamai, Cloudflare, Google Cloud, etc.).
  • dialup - belongs to a dial-up ISP.
  • government - the IP address belongs to a government organization.
  • hosting -- a commercial hosting provider.
  • library - used in a library.
  • military - used on a military base or similar.
  • residential - the IP address belongs to a residential ISP or is otherwise primarily used by home users.
  • router - a backbone or infrastructure router.
  • school - primary or secondary education.
  • search_engine_spider - a crawler or indexer for a search engine (Google, Bing, Yahoo, etc.).
  • traveler - the IP address is used at an airport, hotel, or similar location where the users are generally traveling from their primary residence.

Job

Property Type Required Description
id ID * Job ID
status String * Job status from ("active","completed")
submitted String * The submitted date ISO8601 date
updatedAt String * The last updated date ISO8601 date
surveyPoll Int User survey rating 1-5
surveyMessage String User survey message
surveyAt String ISO8601 date
request Object * Object for 'id-verification'.
Property Type Required Description
type String * Job type
callbackURL String POST enabled webhook
requestInfo RequestInfo User request information
parameters JobParameters * Object for 'id-verification'
result Object *

Object For 'id-verification'

Property Type Required Description
success Boolean * Did the id verification completed successfully?
successWithSuggestion Boolean * The verification passed successfully with name suggested errors.
type String The id type
state String The issuing state/province/territory of the id as a ISO 3166-2 code
country String The issuing country of the id
id String The verified id number of the id
expireDate String The verified expired date in the format MM/DD/YYYY.
issueDate String The verified issued date in the format MM/DD/YYYY.
idAddress Address The ID address
crosscheck CrossCheckResult The crosscheck result
ipAddress IPAddress The IP address
class String The ID class value
endorsements String The id endorsements
motorcycle String The motorcycle property
birthDate String The verified date in the format MM/DD/YYYY.
firstName String The user's verified first name.
middleName String The user's verified middle name.
lastName String The user's verified last name.
confidences Confidences Confidence scores
errors [Error] List of errors for unsuccessful completed jobs.

RequestInfo

Property Type Required Description
ipaddress String The user's IP address.
useragent String The user's browser agent.
referer String The refering browser location.

JobProperty

Property Type Required Description
name String * Property name
value String * Property value

JobParameters

Property Type Required Description
idPhoto String The user's official identification photo in base64.
idPhotoUrl String The user's id photo as a timed (15 min) signed url
idPhotoDetect String A cropped aligned version of the id photo in base64
idPhotoDetectUrl String A cropped aligned version of the id photo as timed (15 min) signed url
idPhotoDetectDimensions Dimension
idPhotoDimensions Dimension
userPhoto String The user's selfie photo in base64.
userPhotoUrl String The user's selfie photo as a timed (15 min) signed url
userPhotoDetect String A cropped aligned version of the selfie photo in base64
userPhotoDetectUrl String A cropped aligned version of the selfie photo as timed (15 min) signed url
userPhotoDetectDimensions Dimension
userPhotoDimensions Dimension
email String Used for crosschecking identity
phone String Used for crosschecking identity
dob String Date in the format MM/DD/YYYY.
firstName String The user's first name.
lastName String The user's last name.