NAV Navbar
Logo
cURL

Introduction

Authenticating is a verification platform that helps verify individuals through a variety of tests; the SDK allows companies to develop custom applications that utilize these various tests. Currently we offer solutions for iOS and Android platforms via an SDK as well as an open API.

How The Process Works

Authenticating is very modular and allows you to only have users test what you need verified.

Step 1: Create the User

To start the Authenticating process, you first want to create a user; let’s call this user Liam. Whether Liam is taking the tests or you as the developer are sending in data to verify Liam is irrelevant, but for this example, I will explain it as if Liam is taking the tests.

You first make a call to the Create User endpoint; this will return a user object with the user’s “userAccessCode”. This access code is used in every call and should be given to the prospective testee (Liam) to use.

You must capture Liam’s consent in order to test him. Once you have captured Liam’s consent, he can now start taking the respective tests you want. Without providing the user’s consent, any subsequent identity verification call will throw an error.

Once you have recorded Liam’s consent, he can now start taking the respective tests you want.

Step 3: Take Tests

Liam can now start taking the tests you want him to take. You, as the developer, should limit his ability to only take the tests you want him to. For example, if you only want Liam to do the SMS verification test, only send them to a page where that test is available.

If you are running tests that run asynchronously, IE Upload ID, or Upload Passport it may take some time to confirm that they were successful. To check the status on the upload id endpoint, you can make a call to Check Upload ID or Check Upload Passport to check the status on the background process and whether or not it requires (or allows) a retry.

Once all of the tests have been completed, it is time to move on to the test results.

Step 4: Get Test Results

Make a call to the Get Test Result endpoint to return the results for the user. If the user still has time in their test window, a ‘note’ key string will indicate such, but bear in mind that if you call this endpoint and attempt to use the results of Liam’s tests before the test window has expired, Liam may not have had time to complete all of the tests and it may give a false negative. We therefore recommend you wait until the test window has expired before calling this (Unless running test operations).

Getting Started

Verify UI™

Verify UI™ is a React application provided by Authenticating.com to offer clients a single button which redirects a user within the client's application or website to complete an identity verification.

This hosted UI allows a user to securely capture images of their photo ID, passport and themselves to verify their identity with a forensic, forgery and biometric analysis of the document. Or the user can choose to take a knowledge based authentication (KBA) quiz.

Verify UI™ is equipped with state-of-the-art auto-image capture to ensure that the images taken of a photo ID or passport are clear enough to be analyzed and verified.

Verify UI™ also offers a facial recognition comparison score and a passive liveness check with anti-spoofing technology using the camera on a mobile device to ensure that the person authenticating this identity is the actual individual that identity belongs to.

The JS file to enable the button can be included using the following script tag.

Production: <script src="https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/client.js"></script>

Staging: <script src="https://authenticating-documentation-staging.s3.amazonaws.com/client.js"></script>

Note: Staging credentials are issued on request basis.

The sample code for the button is to your right. When the user clicks the button it will generate a JSON web token to associate the user with that particular verification flow.

<script src="https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/client.js"></script>
<button
   onclick="identify('COMPANY_ACCESS_CODE', {
   email: 'johndoe@email.com',
   firstName: 'John',
   middleName: 'Smith',
   lastName: 'Doe',
   dob: '11-02-1976',
   verificationOption:'BOTH/EITHER',
   redirectURL:'https://www.google.com'
   })"
   >
Verify
</button>

If you don't have your COMPANY_ACCESS_CODE, please contact support.

verificationOption is "EITHER" by default and lets the user Upload their ID/Passport or answer the Identity Proof Quiz, if specified as "BOTH", it will ask the user to Upload their ID/Passport and answer the Identity Proof Quiz.

redirectURL has to be a valid SSL Secured URL.

To see how the user experience works for yourself, click here.

Android Developer App

Click here to download our Android Developer APK.

React Web App

Head to the app.authenticating.com to check it out. It will require an API key for authorization, if you don’t have one request one now.

System Status

Realtime overview of Authenticating.com Services Status is listed here.

Mock APIs

Mock APIs are supposed to mimic the working of the production APIs with dummy data. All the mock APIs contain one or more scenarios which are differentiated by inputs provided to the respective API.

All mock APIs contain /mock immediately after the base URL.

Mock Create User

This mimics the user creation in authenticating.com and returns a userAccessCode in the response.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/create' \
--header 'Content-Type: application/json' \
--data-raw '{
    "firstName":"Jonathan",
    "middleName":"Gob",
    "lastName":"Zinx",
    "dob":"22-05-1990",
    "email":"jonathan@authenticating.com",
    "houseNumber":"504",
    "streetName":"121, 9th ST",
    "address":"121, 9th ST, APT 12111",
    "city":"Santa Monica",
    "state":"CA",
    "zipCode":"90411"
}'

There are 2 preset responses - If the name is sent as Jonathan, it will return the userAccessCode associated with this name, otherwise the other preset user will be created.

The userAccessCode returned are 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd

This mimics the Submit User Consent API in authenticating.com.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/consent' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "GLBPurposeAndDPPAPurpose":1,
    "FCRAPurpose":1,
    "isBackgroundDisclosureAccepted":1,
    "fullName":"Jonathan Doe"
}'

The two mock users are named Jonathan Doe and Michael Gary Scott.

Based on the userAccessCode, the name in this API has to match the name in the User Object respectively.

The userAccessCodes permissible for this API are 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd

Mock Update User

This mimics the Update User Object.

curl --location --request PUT 'https://api-v3-stage.authenticating.com/mock/user/update' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "firstName":"Michael"
}'

This API requires only the userAccessCode and parameters which have to be updated along with it.

If the SSN is also provided in this API, it has to be either last 4 or complete 9 digits.

Mock Verify Phone

This mimics the Verify Phone.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verifyPhone' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are two possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd respectively.

Mock Verify Phone Code

This mimics the Verify Phone Code.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verifyPhoneCode' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "code":"1"
}'

There are two possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd respectively.

code in the API can only be Numeric.

Mock Verify Email

This mimics the Verify Email.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verifyPhone' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There is one possible scenario which is covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd respectively.

Mock Verify Email Code

This mimics the Verify Email Code.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verifyEmailCode' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "code":"1"
}'

There are two possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd respectively.

code in the API can only be Numeric.

Mock Compare Photos

This mimics the Compare Photos.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/comparePhotos' \
--header 'Content-Type: application/json' \
--header 'cache-control: no-cache' \
--data-raw '{
    "userAccessCode" : "USER_ACCESS_CODE",
    "img1" : "BASE_64_ENCODED_IMAGE_STRING_GOES_HERE",
    "img2" : "BASE_64_ENCODED_IMAGE_STRING_GOES_HERE"
}'

This API will almost always return a success response. The result of this will be accessible in the getTestResults API.

Mock Verify Quiz

This mimics the Verify Quiz.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/kba' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are five possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first 3 of the above accessCodes return error messsages and the former two send back a Quiz Object.

Mock Get Identity Proof Quiz

This mimics the Get Identity Proof Quiz.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/kba' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are five possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first three of the above accessCodes return error messages, and the former two send back a Quiz Object.

Mock Verify Quiz

This mimics the Verify Quiz.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/kba-verification' \
--header 'Content-Type: application/json' \
--data-raw '{
  "IDMSessionId": "80e3bad826se1e6f",
  "userAccessCode":"USER_ACCESS_CODE",
  "questionAnswers": [
    {
      "QuestionId": 1,
      "AnswerId": 2
    },{
      "QuestionId": 2,
      "AnswerId": 3
    },{
      "QuestionId": 3,
      "AnswerId": 3
    },{
      "QuestionId": 4,
      "AnswerId": 5
    },{
      "QuestionId": 5,
      "AnswerId": 5
    }
  ]
}'

There are three possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first of the above accessCodes return an error message and the former two send back failure and success responses.

Mock Upload ID

This mimics the Upload ID.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/document/scan/' \
--header 'Content-Type: application/json' \

--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "idFront":"BASE_64_STRING",
    "idBack":"BASE_64_STRING",
    "country":0
}'

There are 2 possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first one of the above accessCodes returns error message, and the former sends back a success response.

This API accepts real images in the specified format.

Mock Upload ID Enhanced (Review ID)

This mimics the Upload ID Enhanced.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/document/scan/enhanced' \
--header 'Content-Type: application/json' \

--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "idFront":"BASE_64_STRING",
    "idBack":"BASE_64_STRING",
    "countryCode":"US"
}'

There are 2 possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first one of the above accessCodes returns error message, and the former sends back a success response.

This API accepts real images in the specified format.

Mock Check Upload ID

This mimics the Check Upload ID.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/document/scan/status' \
--header 'Content-Type: application/json' \

--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

There are four possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The second, third and forth of the above accessCodes return possible error messages, and the former sends back a success response.

Mock Verify Upload ID

This mimics the Verify Upload ID.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/document/scan/data' \
--header 'Content-Type: application/json' \

--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are five possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first four of the above accessCodes return error messages and the former sends back a Quiz Object.

Mock Upload Passport

This mimics the Upload Passport.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/passport/scan' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "idFront":"BASE_64_STRING",
    "country":0
}'

There are three possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first two of the above accessCodes return error messages and the former sends back a success response.

Mock Upload Passport Enhanced

This mimics the Upload Passport Enhanced.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/passport/scan/enhanced' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "idFront":"BASE_64_STRING",
    "country":0
}'

There are three possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first two of the above accessCodes return error messages and the former sends back a success response.

Mock Check Upload Passport

This mimics the Check Upload Passport.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/passport/scan/status' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

There are five possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The first four of the above accessCodes return error messages and the former sends back a Quiz Object.

Mock Verify Upload Passport

This mimics the Verify Upload Passport.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/passport/scan/data' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

There are four possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The second, third and forth of the above accessCodes return possible error messages, and the former sends back a success response.

Mock Generate Criminal Background Report

This mimics the Generate Criminal Background Report.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/generateCriminalReport' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are 2 possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

This mimics the Global Watch List Search.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/request/watchlist/global' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

There are 2 possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock Global Watch List Report

This mimics the Global Watch List Report.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/request/watchlist/global/report' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There is only one possible scenario which is covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

Mock 7 Year Criminal History

This mimics the 7 Year Criminal History.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/request/criminal/report/seven' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are two possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

Mock Verify SSN

This mimics the SSN Verification

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/ssn' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are three possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd and 26682cb8-d672-4e0a-a26d-3b9a7cafab64.

Mock Manually Verify Identity

This mimics the Manually Verify Identity.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/identity/override' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are four possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The second, third and forth of the above accessCodes return possible error messages, and the former sends back a success response.

Mock Get Test Result

This mimics the Get Test Result.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/getTestResult' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
}'

There are five possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd, 26682cb8-d672-4e0a-a26d-3b9a7cafab64, a423efc3-f12d-4f85-92a6-2a35129c5285 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

The aim of these five different user Access Code is to provide an idea of multiple possibilities and combinations of the user's verification process.

Mock Employment Verification Request

This mimics the Employment Verification Request.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/employment/verify' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "employmentList": [
        {
            "employerName": "Enterprise One",
            "employerPhone": "0000000000",
            "employerAddress": "221B Baker Street",
            "employerAddressTown": "London",
            "employerAddressCountry": "Great Britain",
            "employerAddressStateProvince": "PRO",
            "employerAddressPostalCode": "112223",
            "jobTitle": "Manager",
            "dateEmployedFrom": "28-06-2018",
            "dateEmployedTo": "28-06-2019",
            "supervisorName": "Mr. Steve Rogers",
            "supervisorContactInfo": "9000000001",
            "currentEmployment": "1",
            "contractType": "EMPLOYMENT",
            "manualVerification": false,
            "uniqueIdentifier":"fa49a8fa-aae9-4461-8a40-840139b3bd7c"
        }
    ]
}'

There are two possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

Mock Education Verification Request

This mimics the Education Verification Request.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/education/verify' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "educationList": [
        {
            "schoolName": "VS - HOMETOWN UNIVERSITY",
            "schoolType": "University",
            "institutionCampusName": "HOME TOWN",
            "institutionPhone": "9102901219",
            "institutionAddress": "221B Baker Street",
            "institutionAddressTown": "London",
            "institutionAddressCountry": "USA",
            "institutionAddressStateProvince": "CA",
            "institutionAddressPostalCode": "21211",
            "startDate": "31-07-2011",
            "endDate": "31-07-2016",
            "degreeTitle": "HighLander",
            "currentlyAttending": "0",
            "completedSuccessfully": "1",
            "majors": [
                "Biodiversity in Reality"
            ],
            "minors": [
                "Biology"
            ],
            "honors": "Magna Cum Laude",
            "manualVerification": false,
            "uniqueIdentifier":"fa49a8fa-aae9-4461-8a40-840139b3bd7c"
        }
    ]
}'

There are two possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

Mock Professional License Request

This mimics the Professional License Verification Request.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/professional/license' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "licenseList": [{
        "license_title":"ACCOUNTANT",
        "license_organization": "PA",
        "license_number":"CA030209L",
        "startDate":"24-03-1992",
        "endDate":"31-12-2019",
        "state":"PA",
        "country":"USA",
        "manualVerification":0,
        "uniqueIdentifier":"11"
    }]
}'

There are two possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.

Mock Verify Business

This mimics the FEIN Verification.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/business/verification' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "businessList": [
        {
            "FEINumber": "461122122",
            "businessName": "Stark Industries Inc.",
            "DUNSNumber": "901219219",
            "isUserABusinessContact": true
        },
        {
            "FEINumber": "461122123",
            "businessName": "Acme Inc.",
            "DUNSNumber": "901219217",
            "isUserABusinessContact": false
        }
    ]
}'

This API can accept any of the five userAccessCodes of the mock APIs. The verification result will be available in the getTestResult for the userAccessCode -9cg686b3-ccb3-497c-a298-3830ea8a1c96

Mock Motor Vehicle Record Verification

This mimics the Motor Vehicle Record Verification.

curl --location --request POST 'https://api-v3-stage.authenticating.com/identity/mvr' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "license_number": "LICENSE_NUMBER",
    "state_abbr": "TWO_LETTER_STATE_CODE",
    "issue_date": "19-12-2012",
    "class_description": "REGULAR OPERATOR",
    "expiration_date": "12-11-2021",
    "class_code": "E",
    "previous_license": "PREVIOUS_LICENSE_NUMBER_IF_ANY",
}'

There are three possible scenarios which are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 9cg686b3-ccb3-497c-a298-3830ea8a1c96 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock County History

This mimics the County History API.

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/user/search/counties' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock County Criminal Records

This mimics the County Criminal Records

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/criminal/county' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock Criminal Federal Records

This mimics the Federal Criminal Records

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/criminal/federal' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock County Civil Records

This mimics the County Civil Records

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/civil/county' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock Federal Civil Records

This mimics the Federal Civil Records

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/civil/federal' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock County Criminal Records Result

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/criminal/county/report' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock County Criminal Records for user county history

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/criminal/counties' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock Retrieve Results of All Asyncronous Criminal Requests

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/user/verify/criminal/counties/reports' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21 and 2d91a19f-d07b-48f0-912f-886ed67009dd.

Mock Full Business Search Request

curl --location --request POST 'https://api-v3-stage.authenticating.com/mock/identity/business/verification/comprehensive' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "businessUUID": "ANY_VALID_UUID",
    "status": "Active",
    "businessNames": [
        "Acme Inc.",
        "Stark Industries Inc."
    ],
    "addresses": [
        {
            "line1": "2 AA 200",   
            "city": "New York", 
            "state": "NY", 
            "zip": "10001"
        },
        {
            "line1": "1234 PAL BLVD STE 123-123",
            "city": "PALM BEACH",
            "state": "FL",
            "zip": "33418"
        }
    ],
    "dateOfIncorporation": "12-12-2009",
    "corporationType": "Corportation"
}'

The possible scenarios are covered in the mock APIs with userAccessCodes 100385a1-4308-49db-889f-9a898fa88c21, 2d91a19f-d07b-48f0-912f-886ed67009dd and 9cg686b3-ccb3-497c-a298-3830ea8a1c96.





For more information, please feel free to Contact us:

info@authenticating.com

Toll Free (833) 2-VERIFY

730 Arizona Avenue, 302, Santa Monica, CA 90401

Important Notes

V2 End of Life

As previously stated, V2 was deprecated as of 05-20-2019 and support was sunset on 12-31-2019. The link to the old docs, can be found here.

Supported Countries

Below is a list of all supported countries, territories, or regions with the Authenticating platform and their respective Country codes to be used when calling Create User.

API Response Status Codes

Status Codes Description
200 OK
400 BAD REQUEST
401 UNAUTHORIZED
403 FORBIDDEN
404 NOT FOUND
417 EXPECTATION FAILED
500 INTERNAL SERVER ERROR

All the 4xx status codes will be accompanied by an error message.

For the 5xx status codes, please contact the Authenticating.com Team at info@authenticating.com.

All Platforms

A few important details that apply to all using the SDK:

Object Types

The following objects are found within the Authenticating SDK. These objects will be used in the various methods called throughout your workflow.

Below is a listing of the object, its description, and a JSON Sample of it.

User Object

{
    "userAccessCode": "d348165c-d942-4eac-b219-3e12132ae7dc",
    "firstName": "Pat",
    "middleName": "M",
    "lastName": "Stevens",
    "dob": "21-05-1990",
    "email": "pat@gmail.com",
    "phone": 9000000001,
    "houseNumber": "123",
    "streetName": "Hollywood Boulevard",
    "address": "123, Hollywood Boulevard",
    "city": "Santa Monica",
    "state": "CA",
    "zipCode": "90401",
    "country": "USA"
}

This is the user object that is returned after a new user is created.

The userAccessCode in the data object is what is given to the individual taking the respective tests.

For the data which was not provided the fields will come as null.

Note that the date mentioned for the expiration is in the DD-MM-YYYY format.

Please see JSON sample to the right.

Check Upload Id Results

{
    "success": false,
    "result": "parsing_failed",
    "description": "Unable to detect the image. This can be caused by poor quality photos, bad lighting, glares, or other things that interfere with the image. Please try again and make sure that the id is on a contrasted surface (i.e. a white ID on a black background or a black id on a white background)."
}
{
    "success": true,
    "result": "complete",
    "description": "The id was received and successfully parsed."
}

This response object is used to check the status on the asynchronous process running after calling the uploadId endpoint.

In the response, the “result” string is an enum value that can be any of the following:

These results indicate the current status of the images being processed and the description will mirror the ones listed above as well.

Please see JSON sample to the right.

Simple Response

{
    "success": true
}
{
    "success": false
}

This simple response object is used in many places in the sdk. It simply indicates whether or not the call was a success.

Please see JSON sample to the right.

Initiate Identity Verification Response

{
    "success": true,
    "attempt":"1"
}
{
    "success": false,
    "attempt":"1"
}

This Initiate Identity Verification Response is used in many places in the sdk. It simply indicates whether or not the call was a success and how many times this API has been called yet.

Once the attempts variable reaches the limit set by the respective company, the user will no longer be permitted to upload images to the uploadId or uploadIdEnhanced endpoints and also will no longet be able to try the VerifyQuiz.

Please see JSON sample to the right.

7 Year Criminal History Object

{
    "result": {
        "Candidates": {
            "Message": "No Criminal Records Found"
        }
    },
    "message": "Request Results"
}
{
    "result": {
        "Candidates": {
            "Candidate": [
                {
                    "Subject": {
                        "FullName": "JONATHAN DOE",
                        "DOB": 19510000,
                        "Image": "https://www.securecontinfo.com/user/images/sampleoffender.jpg",
                        "Category": "SEX OFFENDER",
                        "Source": "WI SEX OFFENDER REGISTRY",
                        "Sex": "MALE",
                        "Race": "BROWN",
                        "HairColor": "BROWN",
                        "EyeColor": "BROWN",
                        "Weight": "199 LBS",
                        "Height": "5 FEET 10 INCHES",
                        "Age": 64,
                        "CaseNumber": 123456789,
                        "State": "CA",
                        "Address": "123 CONSUMER RD, ca 95555",
                        "Comments": "PHOTO DATE:  12/20/2010; CUSTODY/SUPERVISION:  TERMINATED; REGISTRATION END DATE:  LIFE REGISTRATION; COMPLIANCE STATUS:  COMPLIANT; PROGRAM INFORMATION:  DOC SORP ADMINISTRATION 3099 E WASHINGTON AVENUE MADISON WI 53704 (608)240-5830;ID NUMBERS: DEPARTMENT OF CORRECTIONS NUMBER:00223018;  OFFENDER REGISTER DATE: 19901127",
                        "Alias": "GREGORY CONSUMER"
                    },
                    "Offenses": {
                        "Offense": {
                            "Description": "SEXUAL ASSAULT OF A CHILD",
                            "Statute": "948.02(1)",
                            "ConvictionDate": "11/27/1990",
                            "ConvictionLocation": "ROCK, WI"
                        }
                    }
                },
                {
                    "Subject": {
                        "FullName": "JONATHAN DOE",
                        "DOB": "12/04/1951",
                        "Category": "CRIMINAL",
                        "Source": "FL DEPT OF CORRECTIONS- INMATE",
                        "Sex": "MALE",
                        "Race": "BLACK",
                        "HairColor": "BLACK",
                        "EyeColor": "BROWN",
                        "Weight": "240 LBS",
                        "Height": "5 FEET 10 INCHES",
                        "Age": 64,
                        "ScarsMarks": "GLASSES",
                        "CaseNumber": 1550682,
                        "State": "FL",
                        "Comments": "SENTENCE LENGTH: 13Y 0M 0D",
                        "Alias": "JONATHAN CONSUMER,JONATHAN QUINCY CONSUMER,JOSEPH QUINCY CONSUMER"
                    },
                    "Offenses": {
                        "Offense": [
                            {
                                "Description": "ROBB. GUN/DEADLY WPN(CONSPIRACY TO COMMIT)",
                                "Disposition": "NOT PROVIDED BY SOURCE",
                                "DispositionDate": "02-17-2012",
                                "OffenseDate": "07-26-2010",
                                "CommitmentDate": "03-12-2012",
                                "ReleaseDate": "07-26-2023"
                            },
                            {
                                "Description": "2ND DEG.MURD,DANGEROUS ACT",
                                "Disposition": "NOT PROVIDED BY SOURCE",
                                "DispositionDate": "02-17-2012",
                                "OffenseDate": "07-26-2010",
                                "CommitmentDate": "03-12-2012",
                                "ReleaseDate": "07-26-2023"
                            },
                            {
                                "Description": "ROBB. GUN/DEADLY WPN",
                                "Disposition": "NOT PROVIDED BY SOURCE",
                                "DispositionDate": "02-17-2012",
                                "OffenseDate": "07-26-2010",
                                "CommitmentDate": "03-12-2012",
                                "ReleaseDate": "07-26-2023"
                            }
                        ]
                    }
                }
            ]
        }
    },
    "message": "Request Results"
}

This is the response returned for 7 Year Criminal History check.

This specific response shows when there is more than one individual for the user details submitted, with multiple offenses found.

The date in this report are in the format MM-DD-YYYY.

Please see JSON sample to the right.

Employment Status Result

[
    {
        "employer_name": "Enterprise Two",
        "employer_name_verified": true,
        "employer_address": "221B Baker Street",
        "employer_address_verified": true,
        "employer_town": "London",
        "employer_town_verified": true,
        "employer_country": "Great Britain",
        "employer_country_verified": true,
        "job_title": "Temp-2",
        "job_title_verified": true,
        "start_date": "2016-06-27",
        "start_date_verified": true,
        "end_date": "2018-06-27",
        "end_date_verified": true,
        "current_employment": "1",
        "current_employment_verified": true,
        "contract_type": "EMPLOYMENT",
        "contract_type_verified": true,
        "status": "Completed"
    },
    {
        "employer_name": "Enterprise THREE",
        "employer_name_verified": false,
        "employer_address": "221B Baker Street",
        "employer_address_verified": false,
        "employer_town": "London",
        "employer_town_verified": false,
        "employer_country": "Great Britain",
        "employer_country_verified": false,
        "job_title": "Social Media Manager",
        "job_title_verified": false,
        "start_date": "2012-06-27",
        "start_date_verified": false,
        "end_date": "2014-06-27",
        "end_date_verified": false,
        "current_employment": "0",
        "current_employment_verified": false,
        "contract_type": "Contract",
        "contract_type_verified": false,
        "status": "Pending"
    }
]

Please see JSON sample to the right.

Education Status Result

[
    {
        "institution_name": "VS - HOMETOWN UNIVERSITY",
        "institution_name_verified": true,
        "institution_type": "University",
        "institution_campus_name": "",
        "institution_phone": "9102901219",
        "institution_address": "221B Baker Street",
        "institution_address_verified": true,
        "institution_town": "London",
        "institution_town_verified": true,
        "institution_country": "USA",
        "institution_country_verified": true,
        "institution_postal_code": "21211",
        "degree": "Bachelors in Engineering",
        "degree_verified": true,
        "start_date": "2011-07-31",
        "start_date_verified": true,
        "end_date": "2014-07-31",
        "end_date_verified": true,
        "majors": "Software Engineering",
        "majors_verified": true,
        "minors": "Biology",
        "minors_verified": true,
        "honors": "Magna Cum Laude",
        "honors_verified": true,
        "currently_attending": 0,
        "currently_attending_verified": true,
        "completed_successfully": 1,
        "completed_successfully_verified": true,
        "status": "Completed"
    },
    {
        "institution_name": "VS - HOMETOWN UNIVERSITY",
        "institution_name_verified": false,
        "institution_type": "University",
        "institution_campus_name": null,
        "institution_phone": "9102901219",
        "institution_address": "221B Baker Street",
        "institution_address_verified": false,
        "institution_town": "London",
        "institution_town_verified": false,
        "institution_country": "USA",
        "institution_country_verified": false,
        "institution_postal_code": "21211",
        "degree": "Masters in Computer Engineering",
        "degree_verified": false,
        "start_date": "2015-07-31",
        "start_date_verified": false,
        "end_date": "2017-07-31",
        "end_date_verified": false,
        "majors": "Computer Design",
        "majors_verified": false,
        "minors": "Data Analytics",
        "minors_verified": false,
        "honors": "Magna Cum Laude",
        "honors_verified": false,
        "currently_attending": 0,
        "currently_attending_verified": false,
        "completed_successfully": 1,
        "completed_successfully_verified": false,
        "status": "Pending"
    }
]

Please see JSON sample to the right.

Professional License Result

[
    {
        "license_title": "L1",
        "license_title_verified": true,
        "license_organization": "CERN",
        "license_organization_verified": true,
        "license_number": "xyz129",
        "license_number_verified": true,
        "start_date": "2013-09-18",
        "start_date_verified": true,
        "end_date": "2031-10-18",
        "end_date_verified": true,
        "state": "CA",
        "country": "USA",
        "status": "Completed"
    },
    {
        "license_title": "L2",
        "license_title_verified": false,
        "license_organization": "CERN",
        "license_organization_verified": false,
        "license_number": "xyz129",
        "license_number_verified": false,
        "start_date": "2018-09-18",
        "start_date_verified": false,
        "end_date": "2031-10-18",
        "end_date_verified": false,
        "state": "CA",
        "country": "USA",
        "status": "Pending"
    }
]

Please see JSON sample to the right.

Test Result

{
    "user": {
        "userAccessCode": "11370asd-fe53-4585-b2d3-a7438e5a9dad",
        "firstName": "Patrick",
        "middleName": "Steven",
        "lastName": "Middleton",
        "birthday": "1980-11-11T00:00:00.000Z",
        "year": "1980",
        "month": "11",
        "day": "11",
        "email": "email@domain.com",
        "phone": 5625555555,
        "houseNumber": "123",
        "streetName": "Hollywood Boulevard",
        "address": "720 N Alta Dr",
        "city": "Baverly Hills",
        "state": "CA",
        "zipCode": "90121",
        "country": "USA",
        "street": null,
        "province": null,
        "buildingNumber": null
    },
    "contactProof": {
        "verifiedPhone": true,
        "verifiedEmail": false
    },
    "socialProof": {
        "successfulLogin": true
    },
    "photoProof": {
        "score": 40
    },
    "identityProof": {
        "numQuestions": "4",
        "score": 75,
        "status": true
    },
    "backgroundCheck": {
        "hasCriminalRecord": false,
        "hasGlobalWatchlistRecord": false
    },
    "idVerification": {
      "status": "PASS",
      "description": "The data from the front and the back match strongly."
    },
    "SSNVerification": {
        "isSSNVerified": false
    },
    "FEINVerification": [
        {
            "uuid": "string",
            "FEINMatchFound": true,
            "FEINumber": 461122122,
            "isCorrectFEINumber": true,
            "DUNSumber": 901219219,
            "isCorrectDUNSNumber": true,
            "businessName": "Stark Industries Inc.",
            "isCorrectBusinessName": true,
            "isBusinessContact": true
        },
        {
            "uuid": "string",
            "FEINMatchFound": false,
            "FEINumber": 461122123,
            "isCorrectFEINumber": null,
            "DUNSumber": 607477367,
            "isCorrectDUNSNumber": null,
            "businessName": "Acme Inc.",
            "isCorrectBusinessName": null,
            "isBusinessContact": null
        }
    ],
    "company": {
        "companyName": "BOCS Software",
        "companyId": "9e9a1ec0-4606-12d4-b965-fb0b69bb2984"
    },
    "scannedUser": {
      "Address": "720 N Alta Dr",
      "Audit": "",
      "CSC": "",
      "City": "Beverly Hills",
      "Class": "C",
      "CountryShort": "USA",
      "County": "",
      "DateOfBirth": "12-31-85",
      "DateOfBirth4": "12-31-1985",
      "Endorsements": "NONE",
      "ExpirationDate": "12-31-25",
      "ExpirationDate4": "12-31-2025",
      "Eyes": "BRN",
      "FatherName": "",
      "Fee": "",
      "Hair": "BRN",
      "Height": "069 IN",
      "Id": "A1234567",
      "IdCountry": "United States",
      "IssueDate": "12-31-17",
      "IssueDate4": "12-31-2017",
      "IssueDateLocal": "",
      "MotherName": "",
      "NameFirst": "PAT",
      "NameLast": "LASTNAMESON",
      "NameLast1": "",
      "NameLast2": "",
      "NameMiddle": "WAITFORIT",
      "NameSuffix": "",
      "Nationality": "",
      "Original": "",
      "PlaceOfBirth": "",
      "PlaceOfIssue": "",
      "Restriction": "NONE",
      "Sex": "M",
      "SigNum": "",
      "SocialSecurity": "",
      "State": "CA",
      "Text1": "",
      "Text2": "",
      "Text3": "",
      "Type": "",
      "Weight": "155",
      "Zip": "90210",
      "license": "A1234567",
      "CardType": "DRIVER LICENSE",
      "TemplateType": "DL",
      "IsAddressCorrected": false,
      "IsAddressVerified": false,
      "IsBarcodeRead": true,
      "IsIDVerified": true,
      "IsOcrRead": true,
      "DocumentDetectedName": "California",
      "DocumentDetectedNameShort": "CA",
      "DocumentVerificationConfidenceRating": 100,
      "AuthenticationObject": null,
      "AuthenticationResult": "Passed",
      "AuthenticationResultSummary": []
    },
    "passportData": {
        "Address2": "P<LASTNAMESON<<PATRICK<<<<<<<<<<<<<<<<<<<<<<<<<<",
        "Address3": "WG30004036UTO6007078M0511014<<<<<<<<<<<<<<06",
        "Country": "USA",
        "CountryLong": "",
        "DateOfBirth": "07-07-60",
        "DateOfBirth4": "07-07-1960",
        "End_POB": "S OB ZOOO",
        "ExpirationDate": "11-01-05",
        "ExpirationDate4": "11-01-2005",
        "IssueDate": "11-01-05",
        "IssueDate4": "11-01-2005",
        "NameFirst": "PATRICK",
        "NameFirst_NonMRZ": "PATRICK",
        "NameLast": "LASTNAMESON",
        "NameLast_NonMRZ": "LASTNAMESON",
        "NameMiddle": "",
        "Nationality": "UTO",
        "NationalityLong": "",
        "PassportNumber": "WG3000403",
        "PersonalNumber": "",
        "Sex": "M",
        "AuthenticationObject": null,
        "AuthenticationResult": "Attention",
        "AuthenticationResultSummary": ["Document Expired"],
        "SignImage": null
    },
    "verifyUI": {
        "passport": {
            "attempts": 1,
            "result": "complete",
            "authentication_result": "Passed",
            "firstname": "Partick",
            "middlename": "",
            "lastname": "LASTNAMESON",
            "address": "P<LASTNAMESON<<PATRICK<<<<<<<<<<<<<<<<<<<<<<<<<<WG30004036UTO6007078M0511014<<<<<<<<<<<<<<06",
            "dob": "1980-11-13",
            "gender": "M",
            "passport_number": "612299112",
            "id_issued_date": "2015-05-22",
            "id_expiration_date": "2035-05-21",
            "nationality": "USA",
            "web_response_code": null,
            "liveness_result": {
                "score": 90,
                "livenessAssessment": "Live"
            },
            "liveness_error": null,
            "liveness_error_code": null,
            "face_match_score": 95,
            "method": "verifyUI"
        },
        "scannedUser": {
            "attempts": 1,
            "result": "complete",
            "confidence_rating": "99",
            "id_class": null,
            "id_type": "DRIVER LICENSE",
            "first_name": "Patrick",
            "middle_name": "",
            "last_name": "LASTNAMESON",
            "address": "123 Hollywood Boulevard, CA 90121",
            "city": "Baverly Hills",
            "state": "CA",
            "zip": "90121",
            "dob": "1980-11-13",
            "gender": "M",
            "height": null,
            "weight": null,
            "id_number": "A1234567",
            "id_issued_date": "1994-01-21",
            "id_expiration_date": "2024-11-19",
            "is_barcode_read": null,
            "is_ocr_read": null,
            "liveness_result": {
                "score": 0,
                "livenessAssessment": "NotLive"
            },
            "liveness_error": null,
            "liveness_error_code": null,
            "face_match_score": 95,
            "method": "verifyUI"
        }
    },
    "professionalLicense": [
        {
            "license_title": "Professional Certificate in Accounting",
            "license_title_verified": true,
            "license_organization": "PCALC",
            "license_organization_verified": false,
            "license_number": "xyz129",
            "license_number_verified": true,
            "start_date": "09-09-2011",
            "start_date_verified": true,
            "end_date": "09-09-2019",
            "end_date_verified": true,
            "state": "CA",
            "country": "USA",
            "status": "Completed"
        }
    ],
    "education": [
        {
            "institution_name": "VS - HOMETOWN UNIVERSITY",
            "institution_name_verified": true,
            "institution_type": "University",
            "institution_campus_name": "",
            "institution_phone": "9102901219",
            "institution_address": "221B Baker Street",
            "institution_address_verified": true,
            "institution_town": "London",
            "institution_town_verified": true,
            "institution_country": "USA",
            "institution_country_verified": true,
            "institution_postal_code": "21211",
            "degree": "Bachelors in Engineering",
            "degree_verified": true,
            "start_date": "2011-07-31",
            "start_date_verified": true,
            "end_date": "2014-07-31",
            "end_date_verified": true,
            "majors": "Software Engineering",
            "majors_verified": true,
            "minors": "Biology",
            "minors_verified": true,
            "honors": "Magna Cum Laude",
            "honors_verified": true,
            "currently_attending": 0,
            "currently_attending_verified": true,
            "completed_successfully": 1,
            "completed_successfully_verified": true,
            "status": "Completed"

        }
    ],
    "employment": [
        {
            "employer_name": "Enterprise Two",
            "employer_name_verified": true,
            "employer_address": "221B Baker Street",
            "employer_address_verified": true,
            "employer_town": "London",
            "employer_town_verified": true,
            "employer_country": "Great Britain",
            "employer_country_verified": true,
            "job_title": "Temp-2",
            "job_title_verified": true,
            "start_date": "2016-06-27",
            "start_date_verified": true,
            "end_date": "2018-06-27",
            "end_date_verified": true,
            "current_employment": "1",
            "current_employment_verified": true,
            "contract_type": "EMPLOYMENT",
            "contract_type_verified": true,
            "status": "Completed"
        }
    ],
    "consent": {
        "is_report_checked": 1,
        "background_check_disclosure_accepted": null
    }
}

This response is the result received after a user has completed their tests and the Get Test Result API call is made.

A few important notes here:

First, if a user was not required to take a test (i.e. they were not intended to take a backgroundCheck test), then the results of that test will be null within the JSON response.

Second, the “note” key indicates whether a user still has time on their test. It is recommended that you give the user time to finish their test before confirming their results if they are within their designated test window.

Third, some test results, identifyProof for example, will change omit fields that are not relevant to the country of origin in which this call is being made. For example, Canadian customers would not see the “score” or “numQuestions” key / values as they are not used in that country. Also, on the identifyProof object, the status field can be one of the following: true, false, or null. Pass means they successfully passed the test, Fail means they failed, and null means they have not yet taken the test or were not required to.

Fourth, the “scannedUser” object is the data as read from the barcode on their Photo ID. If the barcode cannot be read after multiple attempts, the data fields will be filled by attempting to parse the OCR data from the front of the Photo ID sent. Please note here that the “idVerification” object is the determination as to whether or not they passed the uploadId test while the “scannedUser” object is the parsed fields placed into the object; consequently a user could have a “scannedUser” object with data and still have failed the “idVerification” test.

Fifth, If liveness_error and liveness_error_code is NULL, then liveness_result will be populated otherwise NULL.

Please see JSON sample to the right.

Standard Error Response

{
    "errorMessage": "access has expired or does not exist"
}
{
    "errorMessage": "Not authorized [Missing authKey]"
}

This is the standard error response that will be sent back upon a failure with the respective error code. Note that this will be returned upon a 400 status code to indicate an error via the error body and other error codes respectively for other error types. The errorMessage will change the value text accordingly.

Please see JSON sample to the right.

Verify Quiz Obj

{
  "IDMSessionId": "IDM_SESSION_ID",
  "userAccessCode":"USER_ACCESS_CODE",
  "questionAnswers": [
    {
      "QuestionId": 1,
      "AnswerId": 5
    },{
      "QuestionId": 2,
      "AnswerId": 5
    },{
      "QuestionId": 3,
      "AnswerId": 5
    },{
      "QuestionId": 4,
      "AnswerId": 5
    },{
      "QuestionId": 5,
      "AnswerId": 5
    }
  ]
}

This Verify Quiz Object is used whenever sending responses to questions for quizzes.

Please see JSON sample to the right.

Verify Quiz Response

{
    "data": {
        "IDMSessionId": "06re601ecd98f50e",
        "IDMKBAResponse": {
            "KBAQuestion": [
                {
                    "QuestionId": 1,
                    "Question": "Which of the following addresses have you lived at?",
                    "QuestionType": "StreetAddress",
                    "Options": [
                        {
                            "id": 1,
                            "option": "1906 N MARIANNA AVE"
                        },
                        {
                            "id": 2,
                            "option": "465 BRICKELL AVE"
                        },
                        {
                            "id": 3,
                            "option": "882 N MONTANA ST"
                        },
                        {
                            "id": 4,
                            "option": "1619 E TYROL AVE"
                        },
                        {
                            "id": 5,
                            "option": "NONE OF THE ABOVE"
                        }
                    ]
                },
                {
                    "QuestionId": 2,
                    "Question": "Which of the following streets have you lived in?",
                    "QuestionType": "StreetName",
                    "Options": [
                        {
                            "id": 1,
                            "option": "LINCOYA BAY DR"
                        },
                        {
                            "id": 2,
                            "option": "20TH ST"
                        },
                        {
                            "id": 3,
                            "option": "W JOHNNY LYTLE AVE"
                        },
                        {
                            "id": 4,
                            "option": "RUSHMORE"
                        },
                        {
                            "id": 5,
                            "option": "NONE OF THE ABOVE"
                        }
                    ]
                },
                {
                    "QuestionId": 3,
                    "Question": "Which of these cities are you associated with?",
                    "QuestionType": "Cities",
                    "Options": [
                        {
                            "id": 1,
                            "option": ":LONDON"
                        },
                        {
                            "id": 2,
                            "option": "NEW YORK"
                        },
                        {
                            "id": 3,
                            "option": "SANTA MONICA"
                        },
                        {
                            "id": 4,
                            "option": "COLORADO"
                        },
                        {
                            "id": 5,
                            "option": "NONE OF THE ABOVE"
                        }
                    ]
                },
                {
                    "QuestionId": 4,
                    "Question": "Which of these phone numbers have you ever used previously?",
                    "QuestionType": "PhoneNumbers",
                    "Options": [
                        {
                            "id": 1,
                            "option": "(917) 914-9870"
                        },
                        {
                            "id": 2,
                            "option": "(234) 310-8490"
                        },
                        {
                            "id": 3,
                            "option": "(843) 514-3543"
                        },
                        {
                            "id": 4,
                            "option": "(865) 981-0265"
                        },
                        {
                            "id": 5,
                            "option": "NONE OF THE ABOVE"
                        }
                    ]
                },
                {
                    "QuestionId": 5,
                    "Question": "Which of these businesses are you associated with?",
                    "QuestionType": "Businesses",
                    "Options": [
                        {
                            "id": 1,
                            "option": "DELL INC"
                        },
                        {
                            "id": 2,
                            "option": "MARIE D APPLYRS"
                        },
                        {
                            "id": 3,
                            "option": "AMAZON INC"
                        },
                        {
                            "id": 4,
                            "option": "ACME INC"
                        },
                        {
                            "id": 5,
                            "option": "NONE OF THE ABOVE"
                        }
                    ]
                },
                {
                    "QuestionId": 6,
                    "Question": "What are the last four digits of your social security number?",
                    "QuestionType": "SSN",
                    "Options": [
                        {
                            "id": 1,
                            "option": "1324"
                        },
                        {
                            "id": 2,
                            "option": "4253"
                        },
                        {
                            "id": 3,
                            "option": "4562"
                        },
                        {
                            "id": 4,
                            "option": "5643"
                        },
                        {
                            "id": 5,
                            "option": "NONE OF THE ABOVE"
                        }
                    ]
                }
            ],
            "KBAStatus": {
                "QuestionsAnswered": 0,
                "NoOfQuestions": 6
            },
            "IsKbaEnabled": "1"
        }
    },
    "success": true
}

This object is the structure of quiz questions returned to users to answer utilizing the Verify Quiz endpoint.

Please see JSON sample to the right.

Global Watch List

{
    "NumberOfRecordsFound": 2,
    "WatchListRecords": {
        "WatchListRecord": [
            {
                "Score": 100,
                "FullName": "ROBERT WILLIAM FISHER",
                "Name": {
                    "FirstName": "ROBERT",
                    "MiddleName": "WILLIAM",
                    "LastName": "FISHER",
                    "NameSuffix": "",
                    "Title": ""
                },
                "PlaceOfBirth": "BROOKLYN, NEW YORK",
                "DateOfBirth": "13-APR-61",
                "PageURL": "https://www.fbi.gov/wanted/topten/robert-william-fisher",
                "Source": "FBI Most wanted",
                "Type": "INDIVIDUAL",
                "ListingDate": "",
                "Remarks": "ROBERT WILLIAM FISHER IS WANTED FOR ALLEGEDLY KILLING HIS WIFE AND TWO YOUNG CHILDREN AND THEN BLOWING UP THE HOUSE IN WHICH THEY ALL LIVED IN SCOTTSDALE, ARIZONA, IN APRIL OF 2001."
            },
            {
                "Score": 100,
                "FullName": "ROBERT WILLIAM FISHER",
                "Name": {
                    "FirstName": "ROBERT",
                    "MiddleName": "WILLIAM",
                    "LastName": "FISHER",
                    "NameSuffix": "",
                    "Title": ""
                },
                "Eyes": "BLUE",
                "Hair": "BROWN",
                "Weight": "190 LBS",
                "Height": "6'0",
                "Marks": "FISHER HAS SURGICAL SCARS ON HIS LOWER BACK.",
                "Sex": "MALE",
                "PlaceOfBirth": "BROOKLYN, NEW YORK",
                "DateOfBirth": "4/13/1961",
                "Citizenship": "WHITE AMERICAN",
                "PageURL": "https://www.fbi.gov/wanted/topten/robert-william-fisher",
                "Source": "FBI Most Wanted",
                "Offense": "UNLAWFUL FLIGHT TO AVOID PROSECUTION - FIRST DEGREE MURDER (3 COUNTS), ARSON OF AN OCCUPIED STRUCTURE",
                "ListingDate": "",
                "Remarks": "FISHER IS PHYSICALLY FIT AND IS AN AVID OUTDOORSMAN, HUNTER, AND FISHERMAN. HE HAS A NOTICEABLE GOLD CROWN ON HIS UPPER LEFT FIRST BICUSPID TOOTH. HE MAY WALK WITH AN EXAGGERATED ERECT POSTURE AND HIS CHEST PUSHED OUT DUE TO A LOWER BACK INJURY. FISHER IS KNOWN TO CHEW TOBACCO HEAVILY. HE HAS TIES TO NEW MEXICO AND FLORIDA. FISHER IS BELIEVED TO BE IN POSSESSION OF SEVERAL WEAPONS, INCLUDING A HIGH-POWERED RIFLE.ROBERT WILLIAM FISHER IS WANTED FOR ALLEGEDLY KILLING HIS WIFE AND TWO YOUNG CHILDREN AND THEN BLOWING UP THE HOUSE IN WHICH THEY ALL LIVED IN SCOTTSDALE, ARIZONA, IN APRIL OF 2001.THE FBI IS OFFERING A REWARD OF UP TO $100,000 FOR INFORMATION LEADING DIRECTLY TO THE ARREST OF ROBERT WILLIAM FISHER.",
                "AliasName": "ROBERT W. FISHER"
            }
        ]
    }
}

This object is the sample response to the Request Global Watch List Report.

Please see JSON sample to the right.

Motor Vehicle Records Result

{
  "state": "FL",
  "record_type": "THREE YEAR",
  "product": "DL",
  "first_name": "JOHN",
  "last_name": "DOE",
  "birth_date": "1960-01-30T00:00:00.000Z",
  "is_clear": "N",
  "valid": "Y",
  "returned_date": "31-10-2020",
  "current_license": {
    "license_number": "W544781114100",
    "license_number_verified": true,
    "issue_date": "11-12-2000",
    "issue_date_verified": true,
    "expiration_date": "10-12-2010",
    "expiration_date_verified": true,
    "class_description": "REGULAR OPERATOR",
    "class_description_verified": true,
    "class_code": "E",
    "class_code_verified": true,
    "has_driver_training": null,
    "status": "REVOKED"
  },
  "violations": [
    {
      "common": {
        "subtype": "VIOL",
        "state": {
          "abbrev": "AK",
          "full": "ALASKA"
        },
        "date": {
          "year": 2005,
          "month": 9,
          "day": 10
        },
        "location": "FAIRBANKS",
        "iscommercial": "N",
        "docketnumber": "B1220012"
      },
      "descriptionlist": {
        "descriptionitem": {
          "adrlargedescription": "IMP/NO SAFETY BELT",
          "adrsmalldescription": "IMP/NO SAFETY BELT",
          "statedescription": "IMP/NO SAFETY BELT",
          "acd": "F04",
          "avd1": "EB02",
          "avd2": "EB02"
        }
      },
      "violation": {
        "convictiondate": {
          "year": 2005,
          "month": 9,
          "day": 26
        },
        "courttype": "DISTRICT COURT",
        "fineamount": "$15"
      }
    },
    {
      "common": {
        "subtype": "VIOL",
        "state": {
          "abbrev": "AK",
          "full": "ALASKA"
        },
        "date": {
          "year": 2006,
          "month": 1,
          "day": 22
        },
        "iscommercial": "N",
        "docketnumber": "A0000221"
      },
      "descriptionlist": {
        "descriptionitem": {
          "adrlargedescription": "RECKLESS DRIVING",
          "adrsmalldescription": "RECKLESS DRIVING",
          "statedescription": "RECKLESS DRIVING",
          "acd": "M84",
          "avd1": "MK05",
          "avd2": "MK05"
        }
      },
      "violation": {
        "convictiondate": {
          "year": 2006,
          "month": 6,
          "day": 2
        },
        "courttype": "DISTRICT COURT",
        "fineamount": "$500"
      }
    },
    {
      "common": {
        "subtype": "REVOCATION",
        "state": {
          "abbrev": "AK",
          "full": "ALASKA"
        },
        "date": {
          "year": 2003,
          "month": 12,
          "day": 5
        },
        "location": "NORTH POLE"
      },
      "descriptionlist": {
        "descriptionitem": {
          "adrlargedescription": "ADMIN PER SE .08",
          "adrsmalldescription": "ADMIN PER SE .08",
          "statedescription": "ADMIN PER SE .08",
          "acd": "A90",
          "avd1": "CB10",
          "avd2": "CB10"
        }
      },
      "action": {
        "cleardate": {
          "year": 2004,
          "month": 3,
          "day": 3
        },
        "offensedate": {
          "year": 2003,
          "month": 8,
          "day": 23
        }
      }
    },
    {
      "common": {
        "subtype": "REVOCATION",
        "state": {
          "abbrev": "AK",
          "full": "ALASKA"
        },
        "date": {
          "year": 2006,
          "month": 5,
          "day": 27
        }
      },
      "descriptionlist": {
        "descriptionitem": {
          "adrlargedescription": "ADMIN PER SE .08",
          "adrsmalldescription": "ADMIN PER SE .08",
          "statedescription": "ADMIN PER SE .08",
          "acd": "A90",
          "avd1": "CB10",
          "avd2": "CB10"
        }
      },
      "action": {
        "cleardate": {
          "year": 2006,
          "month": 8,
          "day": 24
        },
        "offensedate": {
          "year": 2006,
          "month": 1,
          "day": 22
        }
      }
    },
    {
      "common": {
        "subtype": "REVOCATION",
        "state": {
          "abbrev": "AK",
          "full": "ALASKA"
        },
        "date": {
          "year": 2006,
          "month": 5,
          "day": 27
        },
        "docketnumber": "A0000221"
      },
      "descriptionlist": {
        "descriptionitem": {
          "adrlargedescription": "RECKLESS DRIVING",
          "adrsmalldescription": "RECKLESS DRIVING",
          "statedescription": "RECKLESS DRIVING",
          "acd": "M84",
          "avd1": "MK05",
          "avd2": "MK05"
        }
      },
      "action": {
        "cleardate": {
          "year": 2006,
          "month": 8,
          "day": 24
        },
        "offensedate": {
          "year": 2006,
          "month": 1,
          "day": 22
        }
      }
    },
    {
      "common": {
        "subtype": "WARNING",
        "state": {
          "abbrev": "AK",
          "full": "ALASKA"
        },
        "date": {
          "year": 2006,
          "month": 8,
          "day": 5
        }
      },
      "descriptionlist": {
        "descriptionitem": {
          "adrlargedescription": "POINT SYS WARNING",
          "adrsmalldescription": "POINT SYS WARNING",
          "statedescription": "POINT SYS WARNING",
          "acd": "W01",
          "avd1": "UH19",
          "avd2": "UH24"
        }
      }
    }
  ]
}

This object is the sample response to the Motor Vehicle Record Verification.

Note: Violation Object in the response does not have a definite structure as the information that populates depends on where it is sourced. The sources themselves have their own codes and fields that they use when creating a record and varies from place to place.

Please see JSON sample to the right.

SSN Verification Result

{
    "isSSNValid": true,
    "userCounties": [
        {
            "State": "CA",
            "County": "LOS ANGELES",
            "DateFirstSeen": {
                "Day": 21,
                "Month": 12,
                "Year": 2016
            },
            "DateLastSeen": {
                "Day": 7,
                "Month": 12,
                "Year": 2020
            },
            "Price": {
                "search_fee": 3.44,
                "court_fee": 5,
                "ten_year_plus_surcharge_fee": 3,
                "access_fee": 5
            }
        },
        {
            "State": "NJ",
            "County": "OCEAN",
            "DateFirstSeen": {
                "Day": 20,
                "Month": 1,
                "Year": 2010
            },
            "DateLastSeen": {
                "Month": 12,
                "Year": 2016
            },
            "Price": {
                "search_fee": 2.88,
                "court_fee": null,
                "ten_year_plus_surcharge_fee": 3,
                "access_fee": null
            }
        },
        {
            "State": "PA",
            "County": "PHILADELPHIA",
            "DateFirstSeen": {
                "Day": 3,
                "Month": 10,
                "Year": 1989
            },
            "DateLastSeen": {
                "Day": 11,
                "Month": 9,
                "Year": 2019
            },
            "Price": {
                "search_fee": 1.88,
                "court_fee": null,
                "ten_year_plus_surcharge_fee": null,
                "access_fee": null
            }
        }
    ]
}

This object is the sample response to the SSN Verification.

Please see JSON sample to the right.

County Criminal Records Response

{
    "success": true,
    "uniqueIdentifier": "f9c55a94-280c-44de-9ed1-6e0eab6ec605"
}

Response to County Criminal Records API

This call returns an object indicating if the request was successfully submitted and the order was placed. A uniqueIdentifier will be provided which can be used to receive the data corresponding to this particular order.

Federal Criminal Records Response

{
    "success": true,
    "uniqueIdentifier": "f9c55a94-280c-44de-9ed1-6e0eab6ec605"
}

Response to Federal Criminal Records API

This call returns an object indicating if the request was successfully submitted and the order was placed. A uniqueIdentifier will be provided which can be used to receive the data corresponding to this particular order.

Federal Civil Records Response

{
    "success": true,
    "uniqueIdentifier": "f9c55a94-280c-44de-9ed1-6e0eab6ec605"
}

Response to Federal Civil Records API

This call returns an object indicating if the request was successfully submitted and the order was placed. A uniqueIdentifier will be provided which can be used to receive the data corresponding to this particular order.

County Civil Records Response

{
    "success": true,
    "uniqueIdentifier": "f9c55a94-280c-44de-9ed1-6e0eab6ec605"
}

Response to County Civil Records API

This call returns an object indicating if the request was successfully submitted and the order was placed. A uniqueIdentifier will be provided which can be used to receive the data corresponding to this particular order.

County History Response

{
    "countyWithPrice": [
        {
            "State": "VA",
            "County": "",
            "DateFirstSeen": {
                "Month": 3,
                "Year": 1995
            },
            "DateLastSeen": {
                "Month": 6,
                "Year": 2003
            },
            "Price": null,
            "countyUUID": null
        },
        {
            "State": "AL",
            "County": "SUMTER",
            "DateFirstSeen": {
                "Day": 21,
                "Month": 12,
                "Year": 2016
            },
            "DateLastSeen": {
                "Day": 30,
                "Month": 7,
                "Year": 2020
            },
            "countyUUID": "92d97242-4395-11eb-8ea4-d37f0189acc3",
            "Price": {
                "search_fee": 1.88,
                "court_fee": 1.65,
                "ten_year_plus_surcharge_fee": 0,
                "access_fee": 1.65,
                "total_price": 5.18,
                "note": "This county may impose additional fees such as a 10 year surcharge or a per year look-back."
            }
        },
        {
            "State": "VA",
            "County": "FAIRFAX",
            "DateFirstSeen": {
                "Month": 3,
                "Year": 1995
            },
            "DateLastSeen": {
                "Month": 6,
                "Year": 2003
            },
            "countyUUID": "92e3a424-4395-11eb-8ea4-d37f0189acc3",
            "Price": {
                "search_fee": 2.25,
                "court_fee": 0,
                "ten_year_plus_surcharge_fee": 3,
                "access_fee": 0,
                "total_price": 5.25,
                "note": null
            }
        },
        {
            "State": "PA",
            "County": "MONTGOMERY",
            "DateFirstSeen": {
                "Month": 3,
                "Year": 1995
            },
            "DateLastSeen": {
                "Month": 9,
                "Year": 2009
            },
            "countyUUID": "92e1ab6a-4395-11eb-8ea4-d37f0189acc3",
            "Price": {
                "search_fee": 1.88,
                "court_fee": 0,
                "ten_year_plus_surcharge_fee": 0,
                "access_fee": 0,
                "total_price": 1.88,
                "note": null
            }
        }
    ],
    "priceToRunAllCounties": 12.31
}

This is the response to County History API

County Criminal Records Result Response

{
  "success": true,
  "result": {
    "uuid": "c8fec17b-7c18-4d8f-a476-9bce91cd5f73",
    "type": "CRIMINAL",
    "status": "COMPLETE",
    "sub_status": "RECORD",
    "county": "Baldwin",
    "state": "AL",
    "country": "United States",
    "cases": [
      {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "caseNumber": "string",
        "isCaseNumberUnavailable": true,
        "courtFiledIn": "string",
        "countyFiledIn": "string",
        "chargeDate": "2019-08-24T14:15:22Z",
        "isChargeDateUnavailable": true,
        "sentenceDate": "2019-08-24T14:15:22Z",
        "nextCourtDate": "2019-08-24T14:15:22Z",
        "isNextCourtDateUnavailable": true,
        "offenseDate": "2019-08-24T14:15:22Z",
        "dispositionDate": "2019-08-24T14:15:22Z",
        "hasActiveWarrant": true,
        "plaintiff": "string",
        "defendant": "string",
        "cannotComplete": true,
        "caseIdentifiers": {},
        "charges": []
      }
    ],
    "court_copies": [
      {
        "caseNumber": "string",
        "status": "PENDING",
        "requestCertified": true,
        "requestAllAvailable": true,
        "requestComplaintCharge": true,
        "requestJudgmentDisposition": true,
        "requestIdPage": true,
        "requestApplicantDispute": true,
        "document": {
          "id": 0,
          "name": "string",
          "base64EncodedContents": "string",
          "category": "RECORD",
          "sequenceNumber": 0,
          "caseNumber": "string",
          "accessUrl": "string"
        }
      }
    ]
  }
}

This is the response to County Criminal Records Result

All County Criminal Record Response

{
    "success": true,
    "result": [
        {
            "success": true,
            "uniqueIdentifier": "1b358b2e-e299-4558-8bb7-9434e9a6db41",
            "county": {
                "uuid": "92d9355c-4395-11eb-8ea4-d37f0189acc3",
                "name": "Autauga",
                "state": "AL"
            }
        },
        {
            "success": true,
            "uniqueIdentifier": "cc6b3f70-74f2-43a2-9d20-c189219c590e",
            "county": {
                "uuid": "92d93fac-4395-11eb-8ea4-d37f0189acc3",
                "name": "Barbour",
                "state": "AL"
            }
        },
        {
            "success": true,
            "uniqueIdentifier": "0e968605-59cf-45fc-b826-4af23c17c50e",
            "county": {
                "uuid": "92d943e4-4395-11eb-8ea4-d37f0189acc3",
                "name": "Bullock",
                "state": "AL"
            }
        }
    ]
}

This is a response to County Criminal Records for user county history.

Users County Criminal Results

{
  "success": true,
  "result": [
    {
      "uuid": "f9c55a94-280c-44de-9ed1-6e0eab6ec605",
      "type": "CRIMINAL",
      "status": "COMPLETE",
      "sub_status": "RECORD",
      "county": "Palm Beach County",
      "state": "FL",
      "country": "United States",
      "cases": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "caseNumber": "string",
          "isCaseNumberUnavailable": true,
          "courtFiledIn": "string",
          "countyFiledIn": "string",
          "chargeDate": "2019-08-24T14:15:22Z",
          "isChargeDateUnavailable": true,
          "sentenceDate": "2019-08-24T14:15:22Z",
          "nextCourtDate": "2019-08-24T14:15:22Z",
          "isNextCourtDateUnavailable": true,
          "offenseDate": "2019-08-24T14:15:22Z",
          "dispositionDate": "2019-08-24T14:15:22Z",
          "hasActiveWarrant": true,
          "plaintiff": "string",
          "defendant": "string",
          "cannotComplete": true,
          "caseIdentifiers": {},
          "charges": []
        }
      ],
      "court_copies": null
    },
    {
      "uuid": "c8fec17b-7c18-4d8f-a476-9bce91cd5f73",
      "type": "CRIMINAL",
      "status": "PENDING",
      "sub_status": "IN_PROGRESS",
      "county": "Baldwin",
      "state": "AL",
      "country": "United States",
      "cases": null,
      "court_copies": null
    }
  ]
}

This is a response to Retrieve Results of County Criminal Requests.

Full Business Search Results

{
    "status": "active",
    "status_verified": true,
    "corporation_type": "Corportation",
    "corporation_type_verified": false,
    "date_of_incorporation": "17-12-2008",
    "date_of_incorporation_verified": true,
    "business_names": [
        {
            "name": "Acme Inc.",
            "matchPercentage": 100
        },
        {
            "name": "Stark Industries Inc.",
            "matchPercentage": 100
        }
    ],
    "addresses": [
        {
            "address": {
                "line1": "2 AA 200",
                "city": "New York",
                "state": "NY",
                "zip": "10001"
            },
            "matchPercentage": 36,
            "zipMatch": true,
            "stateMatch": false
        },
        {
            "address": {
                "line1": "1234 PAL BLVD STE 123-123",
                "city": "PALM BEACH",
                "state": "FL",
                "zip": "33418"
            },
            "matchPercentage": 100,
            "zipMatch": true,
            "stateMatch": true
        }
    ]
}

This is a response to Full Business Search.

Verify UI™ Response Object

{
    "jwt": "JWT_TOKEN",
    "token": "UUID_TOKEN"
}

This is the response for Get User JWT for Verify UI™.

Both the jwt and the token keys in the response are valid tokens for Verify UI™. It can be appended to the URL as : https://<environment>.authenticating.com?token=<TOKEN>.

Methods

Create User

curl -X POST \
  https://api-v3.authenticating.com/user/create \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "firstName":"Patrick",
    "middleName":"",
    "lastName":"Lastnameson",
    "dob":"29-05-1980",
    "ssn":"123456789",
    "email":"email@email.com",
    "address":"House Number 3, Street Name",
    "houseNumber":"123",
    "streetName":"Hollywood Boulevard",
    "city":"Los Angeles",
    "state":"LA",
    "zipCode":"90210"
}'

This endpoint creates a user. It is designed to be used by admins within the company to create a user account before they are given the access code.

Note, FirstName, LastName, DateOfBirth and Email fields listed here are required and an error will be thrown if one or more is omitted; fields which are not required should be entered as null if not available.

HouseNumber should be only numeric and StreetNumber can be alphanumeric (including dash). These two fields are mandatory in order to complete the Criminal Checks.

The country value matches that of a list of country codes. USA for United States, CAN for Canada, etc. For a full list of supported countries, please see this list.

This call returns a User Object.

Please note that this is not included within the Android and IOS SDKs.

Next step is to call the Submit User Consent API.

curl -X POST \
  https://api-v3.authenticating.com/user/consent \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE",
    "isBackgroundDisclosureAccepted": 1,
    "GLBPurposeAndDPPAPurpose":1,
    "FCRAPurpose":1,
    "fullName":"John Wick"
}'

This endpoint will ensure that the consent is recorded for the created user. In order to utilize our services every user must authorize us as necessary to effect, administer, or enforce a transaction requested or authorized by the consumer. Please contact an administrator for specific language related to the federal Fair Credit Reporting Act, 15 USC 1681 et seq. (FCRA)

BACKGROUND CHECK

In instances where Authenticating.com LLC and its designated agents and representatives may need to conduct research to verify information, pursuant to the federal Fair Credit Reporting Act (“FCRA”) we are required to obtain authorization from the consumer to initiate this investigation. In the User Consent, you must indicate that you have properly displayed to the consumer the Authorization to Obtain a Consumer Report (available here) and captured their consent accordingly.

By adding the isBackgroundDisclosureAccepted as true or 1, you will be agreeing to the aforementioned.

GLBA and DPPA (Gramm-Leach-Bliley Act) and (Driver’s Privacy Protection Act)

Authenticating may return certain data items governed by the Gramm-Leach-Bliley Act, 15 U.S.C. Section 6801 et seq. (“GLBA”) and the Driver’s Privacy Protection Act, 18 U.S.C. Section 2721 et seq., or similar state laws (collectively “DPPA”). You must certify your intended use is permitted by GLBA or DPPA. The only intended use that we permit is as necessary to effect, administer, or enforce a transaction requested or authorized by the consumer to protect against or prevent actual or potential fraud, unauthorized transactions, claims, or other liability, institutional risk control and for resolving consumer disputes or inquiries.

By adding the GLBPurposeAndDPPAPurpose as true or 1, you will be agreeing to the aforementioned.

FCRA (Fair Credit Reporting Act)

I represent and warrant that use of the data obtained hereunder will not be used in whole or in part, as a factor in establishing an individual’s creditworthiness or eligibility for (i) credit or insurance, or (ii) employment, nor for any other purpose under the FCRA.

By adding the FCRAPurpose as true or 1, you will be agreeing to the aforementioned.

Without the consent, any further call intended to verify the user will return a BAD_REQUEST since the consent has not been provided.

Once the consent is recorded successfully it can not be modified.

This call returns a Simple Response Object.

Get User

curl -X POST \
  https://api-v3.authenticating.com/user/summary \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This endpoint pings the server to get the user object. If the access code has expired, no user data will be returned.

This call returns a User Object.

Update User

curl -X PUT \
  https://api-v3.authenticating.com/user/update \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
    "userAccessCode" : "USER_ACCESS_CODE",
    "email" : "email@email.com",
    "firstName" : "Patrick",
    "middleName": "Jacob",
    "lastName" : "Lastnameson",
    "houseNumber":"123",
    "streetName":"Hollywood Boulevard",
    "address" : "123 Fake St",
    "city" : "Los Angeles",
    "state" : "LA",
    "zipCode" : "90210",
    "dob":"10-12-1985",
    "ssn" : "123456789"
}'

This endpoint will update the user object. This is used when taking certain tests that require updated information. An example would be the identity quiz test which requires the user to fill out information like name, address, state, birthday, etc. Update the user and then make the respective call.

This call returns a User Object.

The required param for this call is userAccessCode. You can send any paramater with it which you wish to update, vice-versa you don’t need to send the parameter that should remail the same.

After the user has successfully completed any sort of Identity Verification, this API will reject firstName, middleName, lastName, dob and ssn parameters and update the rest of the parameters if provided.

Of Special Note:

Although this does contain the option to send the Social Security number, please only do so if requested to within a response. Most of the time, we are able to successfully identify a person without need of their ssn. There are times, however, where there is very little information on a person and a social is required in order to properly find them. If the endpoint sends back an error indicating that there is not enough information and everything else has been filled out, then request it from a user.

Get User JWT for Verify UI™

curl --location --request POST 'https://api-v3.authenticating.com/user/jwt' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE",
    "verificationOption":"BOTH/EITHER",
    "redirectURL":"https://www.google.com"
}'

This API can be used after creating a user and providing consent of the respective user.

verificationOption is "EITHER" by default and lets the user Upload their ID/Passport or answer the Identity Proof Quiz, if specified as "BOTH", it will ask the user to Upload their ID/Passport and answer the Identity Proof Quiz.

redirectURL has to be a valid SSL Secured URL.

This call returns a Verify UI™ Response Object.

Verify Phone

curl -X POST \
  https://api-v3.authenticating.com/user/verifyPhone \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
    "userAccessCode" : "USER_ACCESS_CODE"
}'

This is used to start the phone number verification process.

A phone number is included in the call and an SMS is sent to the user. Once they receive the SMS with the code, they enter it into a field and a subsequent call is made to verifyPhoneCode.

This call returns a Simple Response Object.

Verify Phone Code

curl -X POST \
  https://api-v3.authenticating.com/user/verifyPhoneCode \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
    "userAccessCode" : "USER_ACCESS_CODE",
    "code":"12131"
}'

This is used to complete the phone number verification process.

The user receives an SMS with a code. That code is sent on this endpoint and confirms their completion of the test.

This call returns a Simple Response Object.

Verify Email

curl -X POST \
  https://api-v3.authenticating.com/user/verifyEmail \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
    "userAccessCode" : "USER_ACCESS_CODE"
}'

This is used to complete the email verification process.

The user receives an email with an passcode. This code has to be submitted in the subsequent API call - Verify Email Code.

This call returns a Simple Response Object.

Verify Email Code

curl -X POST \
  https://api-v3.authenticating.com/user/verifyEmailCode \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
    "userAccessCode" : "USER_ACCESS_CODE",
    "code":"12131"
}'

This is used to complete the email verification process.

The user receives an email with a code. That code is sent on this endpoint and confirms their completion of the test.

This call returns a Simple Response Object.

Compare Photos

curl -X POST \
  https://api-v3.authenticating.com/user/comparePhotos \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
    "userAccessCode" : "USER_ACCESS_CODE",
    "img1" : "BASE_64_ENCODED_IMAGE_STRING_GOES_HERE",
    "img2" : "BASE_64_ENCODED_IMAGE_STRING_GOES_HERE"
}'

This is used to complete the photo verification process. Note that the endpoint receives 2 base64 encoded Strings as the images.

For Android: please note that this is a Post call and will likely be a lengthy one. There are multiple overloaded methods if you want to utilize your own progress or thread management, however it is recommended that you use the method that runs everything within an asynctask and manages the bitmap to base 64 string conversion on its own background thread. If you want to encode them yourself and send the Strings, the overloaded method will handle this.

The correct implementation is to compare a photo from a user’s library (Local gallery, social media photo, etc) with a selfie taken using the camera on the user’s phone. The proper workflow is to force the end user to select and upload a profile picture from the library on the mobile device and then upload a selfie they just took using their camera.

Important Notes:

1) In this example, we wrote both the first and second photo to be obtained via the camera, which if copied directly will not follow the guidelines mentioned above. Please make sure that the first photo included will be from a source other than the camera.

2) This call does not return an indicator as to whether or not they actually passed the photo verification, this endpoint returns a success if the two images sent were successfully uploaded and saved to the database; the image comparison runs asynchronously.

3) The maximum allowed size of the image uploaded (per image) is capped at 2MB. Please do not send in photos larger than 2MB as an exception will be thrown. If you are using the Android SDK, the overloaded API call will automatically resize the image for you to fit specifications. If you are not using the SDK or using iOS, we recommend using the standard compression techniques to compress the photo before sending it to us.

This call returns a Simple Response Object.

SSN Verification

curl -X POST \
  https://api-v3.authenticating.com/user/verify/ssn \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE" 
}'

This is used to verify the SSN provided in the User Object. This is a standalone check and does not need any other verifcation to be performed prior to this.

In some jurisdictions there are surcharges based on the look back period which cannot be calculated in advance. The price reflected shows the cost for at least a one year look back.

This call returns a SSN Verification Response which contains a flag indicating if SSN was valid and counties a person has lived in, along with the prices to run County Criminal Records for each County.

FEIN Verification

curl -X POST \
  https://api-v3.authenticating.com/identity/business/verification \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE",
    "businessList": [
        {
            "FEINumber": "461122122",
            "businessName": "Stark Industries Inc.",
            "DUNSNumber": "901219219",
            "isUserABusinessContact": true
        },
        {
            "FEINumber": "461122123",
            "businessName": "Acme Inc.",
            "DUNSNumber": "901219217",
            "isUserABusinessContact": false
        }
    ]
}'

This is used to verify details of a business i.e. FEIN, DUNS Number, Business Name and if the user is a Business Contact or not.

All API parameters except DUNSNumber are mandatory.

This call returns a Simple Response Object, which indicates if the API call was successful or not. The result of this API is reflected in the Test Results Object, under the "FEINVerification" JSON key.

curl --location --request POST 'https://api-v3.authenticating.com/identity/business/verification/comprehensive' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "businessUUID": "BUSINESS_UUID",
    "status": "Active",
    "businessNames": [
        "Acme Inc.",
        "Stark Industries Inc."
    ],
    "addresses": [
        {
            "line1": "2 AA 200",
            "city": "New York",
            "state": "NY",
            "zip": "10001"
        },
        {
            "line1": "1234 PAL BLVD STE 123-123",
            "city": "PALM BEACH",
            "state": "FL",
            "zip": "33418"
        }
    ],
    "dateOfIncorporation": "17-12-2008",
    "corporationType": "Corportation"
}'

This API can verify the dateOfIncorporation, addresses, businessNames and status. corporationType is returned true

Full Business Verification API uses the businessUUID from the FEIN Verification.

The corporationType, dateOfIncorporation and status should be an exact match for it be returned as verified:true.

businessNames and addresses are returned with a match percentage in the result object.

Note: When sending the addresses object combine the street address in line1 to include apt and suite numbers.

This call returns a Full Business Search Results Response .

Upload ID

curl -X POST \
  https://api-v3.authenticating.com/identity/document/scan \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode": "USER_ACCESS_CODE",
    "idFront": "BASE_64_ENCODED_ID_FRONT",
    "idBack": "BASE_64_ENCODED_ID_BACK",
    "country": "COUNTRY_CODE"
}'

This is used to capture data from an ID and, if determined to be a valid ID, auto-fill forms. The alphanumeric text in the image of the front of the Photo ID is captured through an OCR scan which is then compared to and corrected with the data extracted from a scan of the barcode in the image of the back of the Photo ID. This includes a barcode template check to ensure it meets AAMVA standards.

Note that the endpoint receives two base64 encoded Strings as the images and the country code integer along with the userAccessCode. The images should be of the format JPEG or PNG only.

The correct implementation is to capture an image of the front of the photo ID (generally the front of the photo ID contains the user’s photo and personally identifying information) and submit the captured image taken as the 'idFront’ key and capturing an image of the back of the photo ID (generally the back of the photo ID contains a barcode, i.e. a PDF 417 barcode) and submitting it as the 'idBack' key.

The country param is required and has to be an integer. Country codes can be checked here.

For Android: please note that this is a Post call and will likely be a lengthy one. There are multiple overloaded methods if you want to utilize your own progress or thread management, however it is recommended that you use the method that runs everything within an asynctask and manages the bitmap to base 64 string conversion on its own background thread. If you want to encode them yourself and send the Strings, the overloaded method will handle this.

Important Notes:

1) This call does not return an indicator as to whether or not they actually passed the ID verification, this endpoint returns a success if the two images sent were successfully uploaded and saved to the database; the image processing runs asynchronously.

2) You must ensure that the photos being uploaded are what the user intends to submit as they will not be told of their success upon upload. We recommend creating a confirm popup with both images to make sure users understand the photos they are uploading.

3) The maximum allowed size of the image uploaded (per image) is capped at 2MB. Please do not send in photos larger than 2MB as an exception will be thrown. If you are using the Android SDK, the overloaded API call will automatically resize the image for you to fit specifications. If you are not using the SDK or using iOS, we recommend using the standard compression techniques to compress the photo before sending it to us.

4) Capturing a clear, non-blurry image with the mobile device is extremely important so that the ID can be processed accurately.

5) Make sure to use a minimum 5 Megapixel camera to capture the images for UploadID.

6) Make sure images are not blurry, well-focused and there is no glare, shadow, or holographic reflection on the images.

7) Make sure that there is a contrast between the ID and the background, and the background is a solid colored background.

8) Make sure all the edges of the ID are visible and no edge is getting cutoff.

To see a sample ID image that needs to be submitted, please see here.

This call returns a Initiate Identity Verification Response.

Upload ID Enhanced (Review ID)

curl -X POST \
  https://api-v3.authenticating.com/identity/document/scan/enhanced \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode": "USER_ACCESS_CODE",
    "idFront": "BASE_64_ENCODED_ID_FRONT",
    "idBack": "BASE_64_ENCODED_ID_BACK",
    "countryCode": "COUNTRY_CODE"
}'

This endpoint performs the same alphanumeric text detection, barcode data correlation and template check as the Upload ID endpoint, but in case due to wear and tear, the ID could not be parsed, it automatically gets sent for manual review, in which a forensic expert checks if the submitted ID is valid or not.

In case the ID goes for a review, a notification is triggered when the review is complete(typically takes less than 5 minutes). Details on webhook can be checked here.

The countryCode param is required and is an ISO 3166 Country code encoded as a String. Country codes can be checked here.

The per-cost use of this call is more expensive than Upload ID. Please contact support for pricing information.

Only the following formats are accepted: JPG, JPEG, PNG . PDF files and other images formats will not be accepted.

Important Notes:

1) This call does not return an indicator as to whether or not they actually passed the ID verification, this endpoint returns a success if the two images sent were successfully uploaded and saved to the database; the image processing runs asynchronously.

2) You must ensure that the photos being uploaded are what the user intends to submit as they will not be told of their success upon upload. We recommend creating a confirm popup with both images to make sure users understand the photos they are uploading.

3) The maximum allowed size of the image uploaded (per image) is capped at 2MB. Please do not send in photos larger than 2MB as an exception will be thrown. If you are using the Android SDK, the overloaded API call will automatically resize the image for you to fit specifications. If you are not using the SDK or using iOS, we recommend using the standard compression techniques to compress the photo before sending it to us.

4) Capturing a clear, non-blurry image with the mobile device is extremely important so that the ID can be processed accurately.

5) Make sure to use a minimum 8 Megapixel camera to capture the images for UploadIDEnhanced.

6) Make sure images are not blurry, well-focused and there is no glare, shadow, or holographic reflection on the images.

7) Make sure that there is a contrast between the ID and the background, and the background is a solid colored background.

8) Make sure all the edges of the ID are visible and no edge is getting cutoff.

To see a sample ID image that needs to be submitted, please see here.

After successfully uploading an ID through Upload ID Enhanced, you will find the parsed results in the Test Result Object. The DocumentVerificationConfidenceRating key under scannedUser will give a score from 0-100. We strongly recommend having a score of 75 or more in order to proceed with the subsequent requests.

The failure of a single authentication test will not necessarily result in overall document authentication failure. Each test is evaluated and the resulting value is then used to calculate the authentication result of the test itself, which indicates whether this particular test passed or failed. By performing more authentication tests, the sensitivity of the individual tests can be reduced, which will result in fewer false rejects (authentic documents being flagged as suspect). In most cases, fraudulent documents will tend to fail a number of authentication tests.

There are several variables that are more likely to cause a document to fail:

If a document has failed any specific check, the reason will be indicated under description key in the Check Upload ID.

When a document is considered "Passed" that means there has been no indication that the document is fraudulent, therefore the document passed the authentication process. This result does not provide a guarantee of authenticity as some types of documents have very few or no security features.

This call returns a Initiate Identity Verification Response.

Check Upload ID

curl -X POST \
  https://api-v3.authenticating.com/identity/document/scan/status \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This is used to determine if the uploadId asynchronous process has finished. Processing time on passed document images varies indeterminably based on a myriad of factors. This can cause problems for developers who want immediate results. This endpoint helps determine the current 'status’ of the operation in the event a user may need to make another attempt as would be the case if the image could not be read due to blur or lighting issues.

In the response, the “result” string is an enum value that can be any of the following:

These results indicate the current status of the images being processed. Note: This is not the end of the Upload ID verification process.

The next step is to verify the data that has been retrieved from the uploaded document by calling Verify Upload ID, ie. completing the ID verification of the user.

This call returns a Check Upload Id Results Object.

Verify Upload ID

curl -X POST \
  https://api-v3.authenticating.com/identity/document/scan/data \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This is used to determine if the user data that has been retrieved from the document scanned (Upload ID matches an actual person).

This call is neccessary to make sure that the ID verification is complete for that particular user. If this call is not completed, calls like Generate Criminal Background Report will throw an error indicating the ID verification has to be completed first.

If Check Upload ID is successful but Verify ID fails, you should provide a pop up to the user that says, "We were able to successfully scan your ID, however we cannot locate you in public record databases with the address on the ID. Please enter a previous address for identification only.

If Verify ID fails again after updating the User Object with the previous address, you should return a response stating, "You could not be verified with this address either. The only remaining option to automatically verify the identity on the document provided would be to trace a SSN. This data is used for identification only."

There is a data consistency check built into Verify Upload ID that ensures the name on the ID matches the full name in the User Object. In instances where a user provides a different name than the name that is on the ID, you will not be able to Verify Upload ID. In instances where you wish to use the name on the ID instead of the name manually entered by the user, you should call the Test Result object after Check Upload ID was successful and map the full name from the scannedUser parameters to the User Object using the Update User method. Then make the Verify Upload ID call before running any tests.

This call returns a Simple Response Object.

Upload Passport

curl -X POST \
  https://api-v3.authenticating.com/identity/passport/scan \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE",
    "idFront":"BASE_64_ENCODED_ID_FRONT"
}'

This call is used to upload an image of a passport to be scanned and parsed. The image should be of the page with the user’s information on it (generally on the first or second page). It is one picture that captures both pages of the passport. This follows the same logic as the other uploadId endpoints in that the picture needs to be clear, it needs to have minimal glare, and it must have sufficient lighting.

This is an asynchronous call and the data will be returned whenever getTestResult is eventually triggered. To check the progress of this call and make sure nothing was missed, utilize the checkUploadPassport endpoint.

To see a sample passport image of the page that needs to be submitted, please see this link or this one.

After successfully uploading a passport through Upload Passport, you will find an AuthenticationResult in the Test Result Object. If this is Attention or Unknown, then AuthenticationResultSummary may contain the summary of reasons for the authentication result.

The failure of a single authentication test will not necessarily result in overall document authentication failure. Each test is evaluated and the resulting value is then used to calculate the authentication result of the test itself, which indicates whether this particular test passed or failed. By performing more authentication tests, the sensitivity of the individual tests can be reduced, which will result in fewer false rejects (authentic documents being flagged as suspect). In most cases, fraudulent documents will tend to fail a number of authentication tests.

There are several variables that are more likely to cause a document to fail:

If a document passes with Attention for the document result, you should review the tests that were attributed to the result. For example, an Attention can occur if a document has expired. Depending on business rules, this may be very important (such as in the case of passport validity). An Attention can also occur if the back side of the document could not be classified, for example, possibly indicating that someone has falsified the document.

When a document is considered "Passed" that means there has been no indication that the document is fraudulent, therefore the document passed the authentication process. This result does not provide a guarantee of authenticity as some types of documents have very few or no security features.

This call returns a Initiate Identity Verification Response.

Upload Passport Enhanced (Review Passport)

curl -X POST \
  https://api-v3.authenticating.com/identity/passport/scan/enhanced \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE",
    "idFront":"BASE_64_ENCODED_ID_FRONT",
    "countryCode": "COUNTRY_CODE",
}'

This call is used to upload an image of a passport to be scanned and parsed. The image should be of the page with the user’s information on it (generally on the first or second page). It is one picture that captures both pages of the passport. This follows the same logic as the other uploadId endpoints in that the picture needs to be clear, it needs to have minimal glare, and it must have sufficient lighting.

If due to wear and tear, the Passport could not be parsed, it automatically gets sent for manual review, in which a forensic expert checks if the submitted Passport is valid or not.

In case the ID goes for a review, a notification is triggered when the review is complete(typically takes less than 5 minutes). Details on webhook can be checked here.

The countryCode param is required and is an ISO 3166 Country code encoded as a String. Country codes can be checked here.

This is an asynchronous call and the data will be returned whenever getTestResult is eventually triggered. To check the progress of this call and make sure nothing was missed, utilize the checkUploadPassport endpoint.

To see a sample passport image of the page that needs to be submitted, please see this link or this one.

The failure of a single authentication test will not necessarily result in overall document authentication failure. Each test is evaluated and the resulting value is then used to calculate the authentication result of the test itself, which indicates whether this particular test passed or failed. By performing more authentication tests, the sensitivity of the individual tests can be reduced, which will result in fewer false rejects (authentic documents being flagged as suspect). In most cases, fraudulent documents will tend to fail a number of authentication tests.

There are several variables that are more likely to cause a document to fail:

If a document has failed any specific check, the reason will be indicated under description key in the Check Upload Passport.

When a document is considered "Passed" that means there has been no indication that the document is fraudulent, therefore the document passed the authentication process. This result does not provide a guarantee of authenticity as some types of documents have very few or no security features.

This call returns a Initiate Identity Verification Response.

Check Upload Passport

curl -X POST \
  https://api-v3.authenticating.com/identity/passport/scan/status \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This is used to determine if the uploadPassport asynchronous process has finished. Processing time on passed document images varies indeterminably based on a myriad of factors. This can cause problems for developers who want immediate results. This endpoint helps determine the current 'status’ of the operation in the event a user may need to make another attempt as would be the case if the image could not be read due to blur or lighting issues.

In the response, the “result” string is an enum value that can be any of the following:

These results indicate the current status of the images being processed.

Note: This is not the end of the Upload Passport verification process.

This call returns a Check Upload Id Results Object.

Verify Upload Passport

curl -X POST \
  https://api-v3.authenticating.com/identity/passport/scan/data \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This is used to determine if the user data that has been retrieved from the document scanned, Upload Passport) matches an actual person.

This call is neccessary to make sure that the ID verification is complete for that particular user. If this call is not completed, calls like Generate Criminal Background Report will throw an error indicating the ID verification has to be completed first.

Only the following formats are accepted: JPG, JPEG, PNG . PDF files and other images formats will not be accepted.

There is a data consistency check built into Verify Upload Passport that ensures the name on the passport matches the full name in the User Object. In instances where a user provides a different name than the name that is on the passport, you will not be able to Verify Upload Passport. In instances where you wish to use the name on the passport instead of the name manually entered by the user, you should call the Test Result object after Check Upload Passport was successful and map the full name from the passportData parameters to the User Object using the Update User method. Then make the Verify Upload Passport call before running any tests.

This call returns a Simple Response Object.

Get Identity Proof Quiz

curl -X POST \
  https://api-v3.authenticating.com/identity/kba \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This endpoint will access public records to generate a list of questions for the user to answer as a means to prove their identity. If the user cannot be found with the information provided, it will reply with what information is missing (i.e their birthday); in which case a call should be made to updateUser and then this call should be attempted again.

Note! If the user cannot be found from the information provided after all updateUser methods have been exhausted, they will be asked to also include their Social Security number.

This call returns a Quiz Object.

Verify Quiz

curl -X POST \
  https://api-v3.authenticating.com/identity/kba-verification \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
  "IDMSessionId": "IDM_SESSION_ID",
  "userAccessCode":"USER_ACCESS_CODE",
  "questionAnswers": [
    {
      "QuestionId": 1,
      "AnswerId": 5
    },{
      "QuestionId": 2,
      "AnswerId": 5
    },{
      "QuestionId": 3,
      "AnswerId": 5
    },{
      "QuestionId": 4,
      "AnswerId": 5
    },{
      "QuestionId": 5,
      "AnswerId": 5
    }
  ]
}'

This is used to complete the Identity Proof Quiz. The users will give their answers to the multiple choice questions and this will score their results.

This call returns a Verify Quiz Response Object.

Generate Criminal Background Report

curl -X POST \
  https://api-v3.authenticating.com/user/generateCriminalReport\
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

Utilizing this endpoint will generate a criminal background report for the user when the “hasCriminalRecord” key in the Test Result object is true. The results are not returned to you, but are accessible to administrators through a database separate from the user’s personally identifying information. If you would like a manual review of the results that were obtained to know if it violates your policy, please contact support. This report may contain information from the following sources: Department of Corrections, Court Records, Arrest Logs and Sexual Offender Records. Coverage varies by state. The public records and commercially available data sources compiled in this report may have errors. Data is sometimes entered poorly, processed incorrectly and is generally not free from defect. This report should not be relied upon as definitively accurate. Before relying on any data from this report, it should be independently verified. The criminal record data in this report may include records that have been expunged, sealed, or otherwise have become inaccessible to the public since the date on which the data was last updated or collected. This does not constitute a “consumer report” as that term is defined in the federal Fair Credit Reporting Act, 15 USC 1681 et seq. (FCRA). Accordingly, it may not be used in whole or in part as a factor in determining eligibility for credit, insurance, employment or another permissible purpose under the FCRA.

Please note that in order to utilize this endpoint, one of two criteria have been met: either the user must upload their Photo ID to the uploadId endpoint and have it parsed correctly or they must successfully complete the Identity Proof Quiz. If a user attempts to reach this endpoint with neither of these criteria met, it will assume that the user has yet to take their quiz and will request they do so via an error response.

The USER_ACCESS_CODE is the user’s access / auth token you obtain after the user successfully logs into their social media account.

This call returns a Simple Response Object.

7 Year Criminal History

curl -X POST \
  https://api-v3.authenticating.com/identity/request/criminal/report/seven \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This endpoint generates a report containing any available data from the last seven years.

The public records and commercially available data compiled in this report may have errors. Data is sometimes entered poorly, processed incorrectly and is generally not free from defect. This report should not be relied upon as definitively accurate. Before relying on any data from this report, it should be independently verified. The criminal record data in this report may include records that have been expunged, sealed, or otherwise have become inaccessible to the public since the date on which the data was last updated or collected. This does not constitute a “consumer report” as that term is defined in the federal Fair Credit Reporting Act, 15 USC 1681 et seq. (FCRA). Accordingly, it may not be used in whole or in part as a factor in determining eligibility for credit, insurance, employment or another permissible purpose under the FCRA.

This call requires isBackgroundDisclosureAccepted has to be true in the consent.

This call will return an error if SSN, houseNumber, streetName, city, state and zipCode are not present in the User Object. If not initially present, Update User method can be used to submit these details.

If partial SSN is provided, it has to be either the first 5 digits or the last 4 digits.

This call returns a 7 Year Criminal History Object.

Please note that this is not included within the Android and IOS SDKs.

curl -X POST \
  https://api-v3.authenticating.com/identity/request/watchlist/global \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

Utilizing this endpoint will reveal if potential Global Watch List records may be available for the user. If there are results available nearly matching the proven identity they are accessible through a separate call, Global Watch List Report.

Global Watch Lists search allows you to search for matches against U.S. and foreign sanctions and watch lists. This search covers 60+ sanctions and watch lists, including OFAC (SDNs and other lists), EU Consolidated List, HM Treasury Sanctions, UN Consolidated List, FBI Most Wanted, and more. Contact a representative for a detailed list of coverage including update frequency.

This call returns a Simple Response Object. This call only indicates if the API call was successful.

Request Global Watch List Report

curl -X POST \
  https://api-v3.authenticating.com/identity/request/watchlist/global/report \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

Utilizing this endpoint will provide any records matching the proven identity by at least 65%. This call will only go though if the Global Watch List Search is successful and the hasGlobalWatchlistRecord in the Test Result Object is true.

This call returns a Global Watch List Object.

Note: Global Watch List Object does not have a definite structure as the information that populates depends on where it is sourced. The sources themselves have their own codes and fields that they use when creating a watch list record and varies from place to place.

Manually Verify Identity

curl -X POST \
  https://api-v3.authenticating.com/user/identity/override \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This manual override is meant to allow users with a poor confidence rating of their photo ID to pass the authentication step (Verify Upload ID & Verify Upload Passport). This manual override should only be used for low stakes authentication.

For this call to go through, it needs to fullfil at least one of the following conditions:

  1. ID Verification Override: The scannedUser key in the Test Results Object must indicate that the DocumentVerificationConfidenceRating should be greater than equal to 50 and the parsed Name and the DOB should match information entered in the User Object.

  2. Passport Verfication Override: The passportData key in the Test Results Object must indicate that the AuthenticationResult is either "Passed" or "Unknown" and the parsed Name and the DOB in the passportData Object should match information entered in the User Object.

  3. Override through SSN verification: If none of the above is successful, in that case the full 9 digit SSN has to be provided in the user object for verification.

This call indicates whether the manual override was succeessful or not and returns a Simple Response Object.

Get Test Result

curl -X POST \
  https://api-v3.authenticating.com/user/getTestResult \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This endpoint retrieves the test results for a single individual. If the user still has time left to complete the tests, a note will be added to the response to indicate such.

This call returns a Test Result Object.

Please note that this is not included within the Android and IOS SDKs.

Employment Verification Request

curl -X POST \
  https://api-v3.authenticating.com/employment/verify \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE",
    "employmentList":[{
        "employerName":"Enterprise One",
        "employerPhone":"0000000000",
        "employerAddress":"221B Baker Street",
        "employerAddressTown":"London",
        "employerAddressCountry":"Great Britain",
        "employerAddressStateProvince":"PRO",
        "employerAddressPostalCode":"112223",
        "jobTitle":"Manager",
        "dateEmployedFrom":"28-06-2018",
        "dateEmployedTo":"28-06-2019",
        "supervisorName":"Mr. Steve Rogers",
        "supervisorContactInfo":"9000000001",
        "currentEmployment":"1",
        "contractType":"EMPLOYMENT"
    }]
}'

This endpoint gets the status of submitted employment details for a single individual.

The mandatory fields are employerName, employerAddressTown, employerAddressCountry, employerAddressStateProvince, jobTitle, dateEmployedFrom, dateEmployedTo, supervisorName, currentEmployment, contractType. Without these fields the verification request will not go through.

The 1 and 0 in the parameters signify true and false respectively. For example - If currentEmployment is set to 1, this will be considered as an active employment for the respective user and vice-versa.

This call returns a Simple Response Object.

Please note that this is not included within the Android and IOS SDKs.

Get Employment Verification Result

curl -X POST \
  https://api-v3.authenticating.com/employment/result \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This endpoint gets the employment status of the submitted employment entries for a single individual.

This call returns a Employment Response Object.

Please note that this is not included within the Android and IOS SDKs.

Education Verification Request

curl -X POST \
  https://api-v3.authenticating.com/education/verify \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE",
    "educationList":[{
        "schoolName":"VS - HOMETOWN UNIVERSITY",
        "schoolType":"University",
        "institutionCampusName":"HOME TOWN",
        "institutionPhone":"9102901219",
        "institutionAddress":"221B Baker Street",
        "institutionAddressTown":"London",
        "institutionAddressCountry":"USA",
        "institutionAddressStateProvince":"CA",
        "institutionAddressPostalCode":"21211",
        "startDate":"31-07-2011",
        "endDate":"31-07-2016",
        "degreeTitle":"HighLander",
        "currentlyAttending":"0",
        "completedSuccessfully":"1",
        "majors":["Biodiversity in Reality"],
        "minors":["Biology"],
        "honors":"Magna Cum Laude"
    }]
}'

This endpoint submits the education details for a single individual. The status of verification can be retrieved from another API since the verification can take some time to process.

The mandatory fields are schoolName, schoolType, institutionCampusName, institutionAddressTown, institutionAddressCountry, startDate, endDate, degreeTitle, currentlyAttending, completedSuccessfully. Without these fields the verification request will not go through.

The 1 and 0 in the parameters signify true and false respectively. For example - If completedSuccessfully is set to 1, it means that the user has successfully completed and received a degree for this particular education entry and vice-versa.

This call returns a Simple Response Object.

Please note that this is not included within the Android and IOS SDKs.

Get Education Verification Result

curl -X POST \
  https://api-v3.authenticating.com/education/result \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This endpoint gets the education status of the submitted education entries for a single individual.

This call returns a Education Response Object.

Please note that this is not included within the Android and IOS SDKs.

Professional License Verification Request

curl -X POST \
  https://api-v3.authenticating.com/identity/professional/license \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE",
    "licenseList": [{
        "license_title":"LICENSE_TITLE",
        "license_organization": "LICENSE_ORGANIZATION",
        "license_number":"LICENSE_NUMBER",
        "startDate":"START_DATE",
        "endDate":"END_DATE",
        "state":"STATE",
        "country":"COUNTRY"
    }]
}'

This endpoint submits the Professional License details for a single individual. The status of verification can be retrieved from another API since the verification can take some time to process.

This endpoint expects all the fields are mandatory except the License Number, without the mandatory fields the request will be rejected.

This call returns a Simple Response Object.

Please note that this is not included within the Android and IOS SDKs.

Get Professional License Verification Result

curl -X POST \
  https://api-v3.authenticating.com/identity/professional/license/result \
  -H 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This endpoint gets the education status of the submitted education entries for a single individual.

This call returns a Professional License Response Object.

Please note that this is not included within the Android and IOS SDKs.

Motor Vehicle Record Verification

curl --location --request POST 'https://api-v3.authenticating.com/identity/mvr' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "license_number": "LICENSE_NUMBER",
    "state_abbr": "TWO_LETTER_STATE_CODE",
    "issue_date": "19-12-2012",
    "class_description": "REGULAR OPERATOR",
    "expiration_date": "12-11-2021",
    "class_code": "E",
    "previous_license": "PREVIOUS_LICENSE_NUMBER_IF_ANY",
}'

The endpoint returns Motor Vehicle Records of a person if the Name, Date of birth, and the license number of a user are a match with the State Records.

Mandatory fields for the requests are license_number and state_abbr. Other fields if provided will be verified.

If you wish to verify any of the previous licenses that the user might have, include the previous license number in the request.

The list detailing the pass through fees for each state can be found here.

This call returns a Motor Vehicle Record Result.

Please note that this is not included within the Android and IOS SDKs.

Search County with Criminal Records Price

curl --location --request POST 'https://api-v3.authenticating.com/user/county/price/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--data-raw '{
    "countyName":"New York"
}'

This is a search API and will fetch the closest match to the countyName. Maximum of 8 results will be returned at a time.

County Criminal Records

curl --location --request POST 'https://api-v3.authenticating.com/user/verify/criminal/county' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "countyUUID": "92d9481c-4395-11eb-8ea4-d37f0189acca"
}'

This call will return all available felony and misdemeanor records for this individual in the county requested.

The countyUUID has to be obtained from Search County with Criminal Records Price API. This minimizes the possibility of misspelled county names.

This APIs result will be returned asynchronously through webhooks.

This call returns a County Criminal Records Response.

Federal Criminal Records

curl --location --request POST 'https://api-v3.authenticating.com/user/verify/criminal/federal' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE"
}'

“Federal crimes” refer specifically to offenses that violate U.S. federal laws. They are investigated by federal law enforcement and prosecuted by United States attorneys in federal courts with federal judges. While many of these offenses are distinctive to the federal system, they also include crimes that would otherwise fall under state or local jurisdictions had they not occurred on U.S. federal property or on an Indian reservation.

The federal crimes listed here were compiled from Title 18 and Title 26 of the United States Code, among others. While this federal crimes list is extensive, it is not to be considered a complete list. It is provided only as a helpful background screening resource.

This call will return all available federal records for this individual.

This APIs result will be returned asynchronously through webhooks.

This call returns a Federal Criminal Records Response.

Federal Civil Records

curl --location --request POST 'https://api-v3.authenticating.com/user/verify/civil/federal' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE"
}'

This call will return all available federal civil records for this individual.

This APIs result will be returned asynchronously through webhooks.

This call returns a Federal Civil Records Response.

County Civil Records

curl --location --request POST 'https://api-v3.authenticating.com/user/verify/civil/county' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE"
}'

This call will return all available county civil records for this individual in the county requested.

This call includes civil upper and civil lower courts. Although the amount varies by state, generally, Limited or Lower Civil cases involve claims for less than $25,000.00 and Upper or Unlimited Civil cases involve claims for more than $25,000.00.

Records for civil upper and civil lower will only be available for a user from after the age of 18.

The countyUUID has to be obtained from Search County with Criminal Records Price API. This minimizes the possibility of misspelled county names.

This APIs result will be returned asynchronously through webhooks.

This call returns a County Civil Records Response.

County History

curl --location --request POST 'https://api-v3.authenticating.com/identity/user/search/counties' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This API call returns the County History of a user along with the last seen and the most recently seen dates as well as the prices to run County Criminal Records for each County.

In some jurisdictions there are surcharges based on the look back period which cannot be calculated in advance. The price reflected shows the cost for at least a one year look back.

The sample response to this is detailed in County History Response.

County Criminal Records Result

curl --location --request POST 'https://api-v3.authenticating.com/user/verify/criminal/county/report' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE",
    "uniqueIdentifier": "c8fec17b-7c18-4d8f-a476-9bce91cd5f73"
}'

This API returns the Result of the County Criminal Records Results. The uniqueIdentifier here is returned in the County Criminal Records Response.

This call returns a County Criminal Records Result Response.

Get county criminal records for complete user county history

curl --location --request POST 'https://api-v3.authenticating.com/user/verify/criminal/counties' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userAccessCode": "USER_ACCESS_CODE"
}'

This API call initiates County Criminal Records for all the counties a person has lived in the past which returns all available felony and misdemeanor records for this individual in the all the counties.

This call returns a All County Criminal Record Response. The uniqueIdentifier returned in each response object pertains to a particular county and can be used to retrieve the results for that county.

Retrieve Results of County Criminal Requests

curl --location --request POST 'https://api-v3.authenticating.com/user/verify/criminal/counties/reports' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--data-raw '{
    "userAccessCode":"USER_ACCESS_CODE"
}'

This call returns the status and results of all County Criminal Searches placed for this user.

The call returns a Users County Criminal Results.

Webhooks

Add a new webhook subscription

curl --location --request POST 'https://api-v3.authenticating.com/company/webhook' \
--header 'Authorization: Bearer YOUR_COMPANY_ADMIN_KEY_GOES_HERE' \
--header 'Content-Type: application/json' \
--data-raw '{
    "companyAccessCode": "YOUR_COMPANY_ID_GOES_HERE",
    "webhookURL": "https://google.com"
}'

This endpoint will be used to add the webhook subscription.

The client has to code this webhookURL on their end to receive any asynchronous data sent by authenticating.com.

If you don't have your companyAccessCode, please contact support.

The Webhook Payload will consist of the same basic structure for every method/functionality. The order parameter will be different for different events.

Event Description
SELF_VERIFICATION_TRY_STATUS VerifyUI try status.
CRIMINAL_REQUEST_STATUS_UPDATE County criminal update for a particular county request.
ALL_CRIMINAL_REQUESTS_COMPLETE All county criminal requests have been completed for a particular user
UPLOAD_ID_ENHANCED_REVIEW_STATUS Upload ID Enhanced review completed. Results can be fetched though Test Results Object.
UPLOAD_PASSPORT_ENHANCED_REVIEW_STATUS Upload Passport Enhanced review completed. Results can be fetched though Test Results Object.

Possible status values - success & failure.

Webhook Payload Structures

VerifyUI and Review ID/Passport:

{
    "id": "string",
    "event": "EVENT_NAME",
    "eventDate": "2020-12-07T19:18:32.076Z",
    "order": {
        "userAccessCode": "string",
        "status": "string",
        "verificationMethod": "string"
    }
}

All Asynchronous Criminal requests:

{
    "id": "string",
    "event": "CRIMINAL_REQUEST_STATUS_UPDATE",
    "eventDate": "2020-12-07T19:18:32.076Z",
    "order": {
        "userAccessCode": "string",
        "orderDetails": {
            "unique_identifier": "string",
            "search_type": "string",
            "search_status": "string",
            "search_sub_status": "string"
        }
    }
}

All criminal reqeusts completed for a user:

{
    "id": "string",
    "event": "ALL_CRIMINAL_REQUESTS_COMPLETE",
    "eventDate": "2020-12-07T19:18:32.076Z",
    "order": {
        "userAccessCode": "string"
    }
}

FAQ

General

Where do I sign up for an account?

You can sign up for an account here. Once you submit the form, you will be contacted by a representative to discuss your needs and provide you access.

Why do I need to create a User?

Users are created by company administrators because it helps encapsulate details and protects you from being over charged. If we added this functionality into the app, people could create multiple accounts for other people, which could lead to you being charged for tests which you did not intend.

How much does each test cost? Is it cheaper to run tests in Bundles?

Please contact your representative for pricing details. Discounts are available based on volume. As additional checks are added, bundle pricing may be an option.

By law we are only permitted to access information regarding an individual with their permission in connection with their use of a product or service they signed up for. We provide identity verification and fraud prevention to add trust and safety to our customers’ experiences.

Previous Versions

These docs are pertaining to the current version (v2). If you would like to view older docs to reference previous versions, the links are below:

1) Version 1 Docs - Deprecated on 2018-05-20; End of Life on 2018-12-31.

2) Version 2 Docs - Deprecated on 2019-05-20; End of Life on 2019-12-31.