# prettier-ignore
openapi: 3.0.0
servers:
  - url: https://api-v3.authenticating.com
    description: Production server
info:
  version: 1.0.0
  title: Authenticating
  x-logo:
    url: "assets/logo.png"
    altText: Authenticating logo
tags:
  - name: Introduction
    description: |
                  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, let's assume Liam is taking the tests.<br><br>
                  You first make a call to the [Create User](#tag/Methods/paths/~1user~1create/post) endpoint; this will return a user object with the user's "accessCode". This access code is used in every call and should be given to the prospective testee (Liam) to use.Once you have created Liam's account, he can now start taking the respective tests you want.

                  ### Step 2: 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](#tag/Methods/paths/~1identity~1document~1scan/post), or [Upload Passport](#tag/Methods/paths/~1identity~1passport~1scan/post) 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](#tag/Methods/paths/~1identity~1document~1scan~1status/post) or [Check Upload Passport](#tag/Methods/paths/~1identity~1passport~1scan~1status/post) to check the status on the background process and whether or not it requires (or allows) a retry.<br>
                  Once all of the tests have been completed, it is time to move on to the test results. 

                  ### Step 3: Get Test Results
                  Make a call to the [Get Test Result](#tag/Methods/paths/~1user~1getTestResult/post) 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).

                  ##  Verification Process Flowchart
                  Please refer to the flowchart below for easy understanding of the flow that product owners or developers should follow to successfully integrate the Verification APIs into their service for User Verification. This covers all edge cases and scenarios, if you feel you need information, please contact support.
                  <br />
                  <br />
                  <iframe style="border: 1px solid #D1D5DB; border-radius: 5px;" width="100%" height="450px" src="https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2FexR3cjLk92qvAeaA0ThTkK%2FAuthenticate-Flow%3Ftype%3Dwhiteboard%26node-id%3D0%253A1%26t%3DfVLDv0l0RrwqeyfI-1" allowfullscreen></iframe>                  
  - name:  Getting Started
    description: |
                  ## Medallion™
                  Medallion™ 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.

                  Medallion™ 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.

                  Medallion™ 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://code.jquery.com/jquery-3.6.3.min.js" />`

                  `<script src="https://cdn.authenticating.com/public/verifyUI/client.js"></script>`

                  The sample code for the button is below. When the user clicks the button it will generate a JSON web token to associate the user with that particular verification flow.
                  ```html
                  <script src="https://cdn.authenticating.com/public/verifyUI/client.js"></script>
                  <button
                    onclick="identify('COMPANY_ACCESS_CODE', {
                    email: 'johndoe@email.com',
                    firstName: 'John',
                    middleName: 'Smith',
                    lastName: 'Doe',
                    dob: '11-02-1976',
                    preferredWorkflowID:'ADD_WORKFLOW_ID_HERE',
                    redirectURL:'https://www.authenticating.com'
                    })"
                    >
                  Verify
                  </button>
                  ```

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

                  `preferredWorkflowID` is `optional`. If it is not provided, default workflow will be used.

                  `redirectURL` has to be a valid SSL Secured URL. If the `redirectURL` is provided it will redirect the user to the specified URL after the verification process is complete. 

                  ### Verification Options (Deprecated)
                  | Verification Option | Description |
                  | --------- | ------- |
                  | EITHER | **Default option** - Lets the user Upload their ID/Passport or answer the [Identity Proof Quiz](#tag/Methods/paths/~1identity~1kba/post) |
                  | BOTH | Asks the user to mandatorily Upload their ID/Passport and answer the [Identity Proof Quiz](#tag/Methods/paths/~1identity~1kba/post) |
                  | DOCUMENT_ONLY | Upload ID/Passport Only |
                  | QUIZ_ONLY | [Identity Proof Quiz](#tag/Methods/paths/~1identity~1kba/post) only|

                  To see how the user experience works for yourself, <a href='https://verify.authenticating.com/onboarding' target="_blank">click here</a>.


                  ## ReAuthenticate™ (Beta)
                  ReAuthenticate™ offers a seamless solution for users previously verified through Medallion. It enables them to quickly re-verify their identities with ease. 
                  
                  ReAuthenticate™ streamlines the process for returning customers by providing a simple means to confirm their identity without the need to repeat the entire verification process. This ensures a smoother experience, eliminating the hassle of undergoing the entire flow again whenever re-verification is required.

                  <iframe style="border: 1px solid #D1D5DB; border-radius: 5px;" width="100%" height="450px" src="https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2FBVkOLb16N4Qc2jSSC4uEfc%2FReAuthenticate-Flow%3Ftype%3Dwhiteboard%26node-id%3D0%253A1%26t%3Dou6uhnPUjo4nqRw7-1" allowfullscreen></iframe>
                  
                  ## Android Developer App
                  Click here to download our [Android Developer APK](https://cdn.authenticating.com/public/SDK/AuthenticateV2.0.1.apk).


                  ## System Status 

                  Realtime overview of Authenticating.com Services Status is listed [here](https://statuspage.freshping.io/45502-Verifier).
  - name: Mock APIs
    description:
      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.
  - name: Methods
    description: |

  - name: Webhooks
    description: |

  - name: Important Notes
    description: |

              ## 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](#tag/Methods/paths/~1user~1create/post).

              * **USA** - United States of America: this is local to the United States and is different than the 'AMO’ country code below. - CODE : 0

              * **CAN** - Canada - CODE : 1

              * **AUS** - Australia - CODE : 4

              * **ASI** - Asia - CODE : 5

              * **AMO** - Americas (other): this is any country or territory that is in North or South America which is not the United States of America. - CODE : 2 

              * **EUR** - Europe - CODE : 3

              * **AFR** - Africa - CODE : 7 

              * **OTR** - Other: this is to be used if the country or territory is not listed or if instructed to do so by the admin team. - CODE : 6

              ## List of Countries for International IDV
              
              __Available Fields:__
            
              |  ||
              | --------- | ---------- |
              | **First Name** ||
              | **Middle Name**||
              | **Last Name**||
              | **Date of Birth**||
              | **National ID**||
              | **Address parts:** ||
              ||House Number|
              ||Street Name|
              ||Unit Number|
              ||City/Locality|
              ||Administrative Area (State/Province)|
              ||Postal Code(Zip Code)|
              ||Country (Required by all searches)|
              |**Phone Number**||
              |**E-Mail Address**||

              __List Of countries and their respective requirements:__


              <div><table class="trtablefmt"><thead><tr><th width="10%"><p><strong>Country</strong><br>(Abbr.)</p></th><th width="15%"><p><strong>PostalCode (ZipCode) Format</strong></p></th><th width="50%"><p><strong>Definition Type and Description</strong></p></th><th width="15%"><p><strong>National ID Format<br>(Example count includes special characters)</strong></p></th><th width="15%"><p><strong>ID Type<br>(Required for mentioned contries)</strong></p></th></tr></thead><tbody><tr><td valign="top"><p>Argentina<br>(ARG)</p></td><td valign="top"><p>A0000AAA or 0000, where A is an alpha character and 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province)</p></td><td><p>National ID: Documento Nacional de Identidad (DNI)</p><p>Example: 10563145-8</p><p>Count: 10</p><p>&nbsp;</p></td></tr><tr><td valign="top"><p>Australia<br>(AUS)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>NationalID, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID: Passport / Driver's License</p><p>Example: XXXXXXX</p><p>Count: 6 to 10</p><p>X- Alphanumeric Characters; Both Passport number and Driver's License number are accepted as a "National ID".</p></td><td><p><b>ID Type is a mandatory field</b></p><p>AU Passport: "1"</p><p>Foreign Passport: "3"</p><p>Driver's License: "4"</p></td></tr><tr><td valign="top"><p>Austria<br>(AUT)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province)</p></td><td><p>National ID: VAT ID</p><p>Example: U12345678</p><p>Count: 9</p><p>&nbsp;</p></td></tr><tr><td valign="top"><p>Belgium<br>(BEL)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID: VAT ID</p><p>Example: 1234567890</p><p>Count: 10</p><p>&nbsp;</p></td></tr><tr><td valign="top"><p>Brazil<br>(BRA)</p></td><td valign="top"><p>00000-000 or 00000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province), PhoneNumber</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality</p><p><b>Recommended Fields:</b><br>BirthDate, NationalID, PostalCode, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID #1: CPF</p><p>Example #1: 123-456-789</p><p>Count: 11</p><p>&nbsp;</p><hr><p>National ID #2: CNPJ</p><p>Example #2: 00.000.000/0001-00</p><p>Count: 18</p><p>&nbsp;</p></td></tr><tr><td valign="top"><p>Chile<br>(CHL)</p></td><td valign="top"><p>0000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate</p><p><b>Recommended Fields:</b><br>NationalID</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate</p></td><td><p>National ID: Rol Único Tributario (RUT) / Rol Único Nacional (RUN)</p><p>Example 12345678-Z</p><p>Count: 8 or 9</p><p>The last character is a check digit or letter</p></td></tr><tr><td valign="top"><p>China<br>(CHN)</p></td><td valign="top"><p>000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, NationalID</p><p><b>Recommended Fields:</b><br>PhoneNumber</p><p><b>Multisource Verification Requires:</b><br>11 digit mobile phone number</p></td><td><p>National ID: Resident Identity Card Number</p><p>Example: RRRRRRYYYYMMDDSSSC</p><p>Count: 15 or 18</p><p>All digits with parts corresponding to address, DOB, gender and a validation check.</p></td></tr><tr><td valign="top"><p>Colombia<br>(COL)</p></td><td valign="top"><p>000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>HouseNumber, Street Name, City/Locality. PostalCode</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality</p><p><b>Recommended Fields:</b><br>NationalID, PostalCode, Administrative Area (State/Province)</p></td><td><p>National ID: Personal Identification Number</p><p>Example 2131234321 / 213.123.432-1</p><p>Count: 15 or 18</p><p>Basic ID / citizenship ID number includes the date of birth and a short serial number.</p></td></tr><tr><td valign="top"><p>Czech Republic /<br>Czechia<br>(CZE)</p></td><td valign="top"><p>000 00 or 00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, StreetName/Thoroughfare, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>Administrative Area (State/Province)</p></td><td><p>National ID: VAT ID</p><p>Example: 1234567890</p><p>Count: 8, 9 or 10</p><p>&nbsp;</p></td></tr><tr><td valign="top"><p>Denmark<br>(DNK)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID #1: CPR</p><p>Example #1: DDMMYY-0000</p><p>Count: 11</p><p>First 6 digits corresponding to DOB.</p><hr><p>National ID #2: VAT ID</p><p>Example #2: 12345678</p><p>Count: 8</p></td></tr><tr><td valign="top"><p>Finland<br>(FIN)</p></td><td valign="top"><p>000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, NationalID</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, StreetName/Thoroughfare, City/Locality</p><hr><p><b>SEARCH TYPE: 3</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, NationalID, HouseNumber, StreetName/Thoroughfare, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>PhoneNumber</p></td><td><p>National ID: VAT ID</p><p>Example: 12345678</p><p>Count: 8</p></td></tr><tr><td valign="top"><p>France<br>(FRA)</p></td><td valign="top"><p>000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID: VAT ID</p><p>Example: XX123456789</p><p>Count: 11</p><p>XX - Alphanumeric characters ; Rest are numeric digits</p></td></tr><tr><td valign="top"><p>Germany<br>(DEU)</p></td><td valign="top"><p>00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province)</p></td><td><p>National ID: VAT ID</p><p>Example: 123456789</p><p>Count: 9</p></td></tr><tr><td valign="top"><p>Ghana<br>(GHA)</p></td><td valign="top">&nbsp;</td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, PhoneNumber</p></td><td><p>National ID: Supported ID Types - Drivers License, Passport, SSNIT, Voter ID.</p><p>Examples:</p><ul><li>Drivers License - B0000000</li><li>Passport - G0000000</li><li>SSNIT - C000000000000</li><li>Voter ID - 0000000000</li></ul><p>&nbsp;</p></td><td><p><b>ID Type is a mandatory field</b></p><p>Voter ID: "0"</p><p>Passport: "1"</p><p>SSNIT: "2"</p><p>Driver's License: "4"</p></td></tr><tr><td valign="top"><p>Gibraltar<br>(GIB)</p></td><td valign="top"><p>GX11</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>Administrative Area (State/Province), PhoneNumber</p></td><td>&nbsp;</td></tr><tr><td valign="top"><p>India<br>(IND)</p></td><td valign="top"><p>000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, NationalID</p><p><b>Recommended Fields:</b><br>HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province)</p></td><td><p>National ID #1: PAN Number</p><p>Example #1: AAAPL1234C</p><p>Count: 10</p><p>The first 5 alphabetic characters, followed by 4 numeric, and the last (tenth) character is alphabetic.</p><hr><p>National ID #2: Drivers License</p><p>Example #2: TN7520130000000</p><p>Count: 15</p><p>The first 2 are alphabetic representing the state, the next 2 are numeric for city code, the next 4 digits are issue year and the last 7 digits are unique</p><hr><p>National ID #3: Electoral ID (EPIC)</p><p>Example #3: ABC0000000</p><p>Count: 10</p><p>The first 3 are alphabetic characters and the last 7 are numeric characters.</p></td><td><p><b>ID Type is a mandatory field</b></p><p>Voter ID [EPIC]: "0"</p><p>Driver's License: "4"</p><p>Pan Number: "5"</p></td></tr><tr><td valign="top"><p>Ireland<br>(IRL)</p></td><td valign="top"><p>AAA AAAA or AAAAAAA where A is an alpha character or a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>Administrative Area (State/Province)</p></td><td>&nbsp;</td></tr><tr><td valign="top"><p>Italy<br>(ITA)</p></td><td valign="top"><p>00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>NationalID, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID: Codice Fiscale</p><p>Example: SSSNNNYYMDDZZZZX</p><p>Count: 16</p><p>Alphanumeric characters based on gender, birthplace, first name and last name.</p></td></tr><tr><td valign="top"><p>Japan<br>(JPN)</p></td><td valign="top"><p>7-digit numeric codes format NNN-NNNN</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName</p><p><b>Recommended Fields:</b><br>NationalID, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province), PhoneNumber</p></td><td>&nbsp;</td></tr><tr><td valign="top"><p>Kenya<br>(KEN)</p></td><td valign="top"><p>00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID, BirthDate</p><p><b>Recommended Fields:</b><br>HouseNumber, StreetName/Thoroughfare, City/Locality, PostalCode, PhoneNumber, Email</p></td><td><p>National ID: Huduma Namba</p><p>Example: 0123456789</p><p>Count: 10</p></td><td><p><b>ID Type is a mandatory field</b></p><p>Passport: "1"</p><p>National ID [Huduma Namba]: "2"</p><p>Alien Card: "3"</p></td></tr><tr><td valign="top"><p>Luxembourg<br>(LUX)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName</p><p><b>Recommended Fields:</b><br>HouseNumber, Street Name, City/Locality, PostalCode, PhoneNumber</p></td><td><p>National ID: VAT ID</p><p>Example: 12345678</p><p>Count: 8</p></td></tr><tr><td valign="top"><p>Malaysia<br>(MYS)</p></td><td valign="top"><p>00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, NationalID</p><p><b>Recommended Fields:</b><br>N/A</p></td><td><p>National ID: NRIC</p><p>Example: YYMMDD-SS-123G</p><p>Count: 14</p><p>6 digits in front corresponding to DOB, SS are State/Province details and G is gender based digit</p></td></tr><tr><td valign="top"><p>Mexico<br>(MEX)</p></td><td valign="top"><p>00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province)</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate</p><p><b>Recommended Fields:</b><br>NationalID, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province)</p></td><td><p>National ID: CURP</p><p>Example: HEGG560427MVZRRL05</p><p>Count: 18</p><hr><p>National ID: RFC</p><p>Example: XXXXXXXXXXXXX</p><p>Count: 13</p></td></tr><tr><td valign="top"><p>Netherlands<br>(NLD)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID: VAT ID</p><p>Example: 123456789B01</p><p>Count: 12</p></td></tr><tr><td valign="top"><p>New Zealand<br>(NZL)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>N/A</p></td><td><p>National ID: Driver's License</p><p>Example: VV123456</p><p>Count: 8</p></td></tr><tr><td valign="top"><p>Nigeria<br>(NGA)</p></td><td valign="top"><p>000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID, PhoneNumber, PostalCode</p><p><b>Recommended Fields:</b><br>N/A</p></td><td><p><b>ID Type is a mandatory field</b></p><p>Voter ID: "0"</p><p>National Identification Number (NIN): "2"</p><p>Bank Verification Number (BVN): "3"</p><p>Driver's License: "4"</p><p>Taxpayer Identification Number (TIN): "5"</p><p>Corporate Affairs Commission (CAC): "6"</p></td><td>&nbsp;</td></tr><tr><td valign="top"><p>Norway<br>(NOR)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province), PhoneNumber</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, NationalID, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>Administrative Area (State/Province), PhoneNumber</p></td><td>&nbsp;</td></tr><tr><td valign="top"><p>Philippines<br>(PHL)</p></td><td valign="top"><p>4-digit numeric codes</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, PhoneNumber</p><p><b>Recommended Fields:</b><br>NationalID, HouseNumber, StreetName/Thoroughfare, City/Locality, Administrative Area (State/Province), PostalCode</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, NationalId</p><p><b>Recommended Fields:</b><br>HouseNumber, StreetName/Thoroughfare, City/Locality, Administrative Area (State/Province), PostalCode</p></td><td><p>National ID: Passport / Driver's License / SSS UMID Card</p></td></tr><tr><td valign="top"><p>Poland<br>(POL)</p></td><td valign="top"><p>00-000 or 00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>NationalID, Administrative Area (State/Province)</p></td><td><p>National ID: PESEL number</p><p>Example YYMMDDZZZXQ</p><p>Count: 11</p><p>YYMMDD is the date of birth (with century encoded in month field), ZZZX is the personal identification number, where X codes sex (even number for females, odd number for males) and Q is a check digit.</p></td></tr><tr><td valign="top"><p>Portugal<br>(PRT)</p></td><td valign="top"><p>0000-000 or 0000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province), PhoneNumber</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate</p><p><b>Recommended Fields:</b><br>HouseNumber, THorughfare, City/Locality, PostalCode, Administrative Area (State/Province), PhoneNumber, Email</p></td><td><p>National ID: VAT ID</p><p>123456789</p><p>Count: 9</p></td></tr><tr><td valign="top"><p>Singapore<br>(SGP)</p></td><td valign="top"><p>000000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province)</p></td><td><p>National ID: NRIC</p><p>Example: S/T-XXXXXXXC</p><p>Count: 12</p></td></tr><tr><td valign="top"><p>Slovakia<br>(SVK)</p></td><td valign="top"><p>000 00 or 00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>Administrative Area (State/Province)</p></td><td>&nbsp;</td></tr><tr><td valign="top"><p>South Africa<br>(ZAF)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province), PhoneNumber</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, PhoneNumber, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, NationalID, HouseNumber, Street Name, City/Locality, Administrative Area (State/Province)</p></td><td><p>National ID</p><p>Example: YYMMDDSSSSCAZ</p><p>Count: 13</p><p>all numeric characters with gender, dob, citizenship and validation info.</p></td></tr><tr><td valign="top"><p>Spain<br>(ESP)</p></td><td valign="top"><p>00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, NationalID, Administrative Area (State/Province), PhoneNumber</p></td><td><p>National ID: DNI</p><p>Example: 00000000-A</p><p>Count: 10</p><hr><p>National ID: NIF</p><p>Example: X-0000000-A</p><p>Count: 11</p></td></tr><tr><td valign="top"><p>Sweden<br>(SWE)</p></td><td valign="top"><p>000 00 or 00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, NationalID</p><p><b>Recommended Fields:</b><br>BirthDate, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province), PhoneNumber</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate</p><p><b>Recommended Fields:</b><br>NationalID, HouseNumber, Street Name, City/Locality, PostalCode, Administrative Area (State/Province)</p><hr><p><b>SEARCH TYPE: 3</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, NationalID, Administrative Area (State/Province)</p></td><td><p>National ID: Personal Identification Number (PIN)</p><p>Example: YYMMDD-NNGC</p><p>Count: 11</p><p>All numeric with dob info and gender info</p></td></tr><tr><td valign="top"><p>Switzerland<br>(CHE)</p></td><td valign="top"><p>0000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, Administrative Area (State/Province), PhoneNumber</p></td><td>&nbsp;</td></tr><tr><td valign="top"><p>Turkey<br>(TUR)</p></td><td valign="top"><p>00000, where 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate, NationalID</p><p><b>Recommended Fields:</b><br>N/A</p></td><td><p>National ID: Turkish Identification Number</p><p>Example: 11111111111</p><p>Count: 11</p></td></tr><tr><td valign="top"><p>United Kingdom<br>(GBR)</p></td><td valign="top"><p>AA0A 0AA, A0A 0AA, A0 0AA, A00 0AA, AA0 0AA, AA00 0AA, where A is an alpha character and 0 is a numeric character</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, HouseNumber, Street Name, City/Locality, PostalCode</p><p><b>Recommended Fields:</b><br>BirthDate, PhoneNumber</p></td><td><p>National ID: VAT ID</p><p>Example: 123456789</p><p>Count: 9</p></td></tr><tr><td valign="top"><p>Vietnam<br>(VNM)</p></td><td valign="top"><p>6-digit numeric codes</p></td><td valign="top"><p><b>SEARCH TYPE: 1</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, BirthDate</p><p><b>Recommended Fields:</b><br>PhoneNumber, Email</p><hr><p><b>SEARCH TYPE: 2</b></p><p><b>Required Fields:</b><br>Country, FirstName, LastName, PhoneNumber</p><p><b>Recommended Fields:</b><br>Birthdate, Email</p></td><td>&nbsp;</td></tr></tbody></table></div>

              ## 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:

              * The Bearer authToken used in the calls is the one received by signing up for an account. Once you have been approved, it will be sent to you with information regarding pricing. This API key is unique and should not be shared to others. Furthermore, it is recommended that this API key be persisted in a safe location. For Android, as reverse engineering is possible, it is recommended to store this via your work server and retrieve it via a call of your choosing.


              * Also with regards to the User's *userAccessCode*, it is linked directly to the companyId. If you have multiple users, their access codes will be unique (while in active state) and match to the companyId. If you use our service for more than one company, you will need to use multiple companyId variables to differentiate between the two.

  - name: FAQ
    description: |
             ## General

              ### Where do I sign up for an account?
              You can sign up for an account [here](https://www.authenticating.com/). 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.


              ### Why do I need consent of the User?

              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.

  - name: Previous Versions
    description: |

       You can find the previous versions of docs [here](https://docs.authenticating.com/olddocs/v3/index.html).


paths:

  /mock/user/create:
    post:
      tags:
        - Mock APIs
      summary: Mock Create User
      description:
        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`
      requestBody:
        $ref: "#/components/requestBodies/createUser"
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/createUserResponse"
      

  /mock/user/consent:
    post:
      tags:
        - Mock APIs
      summary: Mock Submit User Consent
      description:
        This mimics the Submit User Consent API in authenticating.com.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`
      requestBody:
        $ref: "#/components/requestBodies/createUserConsent"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/update:
    put:
      tags:
        - Mock APIs
      summary: Mock Update User
      description:
        This mimics the Update User Object.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.

      requestBody:
        $ref: "#/components/requestBodies/updateUser"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verifyPhone:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Phone
      description:
        This mimics the Verify Phone.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.

      requestBody:
        $ref: "#/components/requestBodies/verifyPhone"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verifyPhoneCode:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Phone Code
      description:
        This mimics the Verify Phone 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.
        `code` in the API can only be Numeric.
      requestBody:
        $ref: "#/components/requestBodies/verifyPhoneCode"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verifyEmail:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Email
      description:
        This mimics the Verify Email.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.

      requestBody:
        $ref: "#/components/requestBodies/verifyPhone"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verifyEmailCode:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Email Code
      description:
        This mimics the Verify Email 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.
        `code` in the API can only be Numeric.
      requestBody:
        $ref: "#/components/requestBodies/verifyPhoneCode"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/comparePhotos:
    post:
      tags:
        - Mock APIs
      summary: Mock Compare Photos
      description: This mimics the Compare Photos.
        This API will almost always return a success response. The result of this will be accessible in the getTestResults API.
      requestBody:
        $ref: "#/components/requestBodies/comparePhotos"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/kba:
    post:
      tags:
        - Mock APIs
      summary: Mock Get Identity Proof Quiz
      description:
        This mimics the  Get Identity Proof Quiz.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
      requestBody:
        $ref: "#/components/requestBodies/identityKba"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/identityKba"
        "400":
          $ref: "#/components/responses/badRequest"
        "417":
          $ref: "#/components/responses/exceptionFailed"

  /mock/identity/kba-verification:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Quiz
      description:
        This mimics the Verify Quiz.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.
      requestBody:
        $ref: "#/components/requestBodies/kbaVerification"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/kbaVerificationResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/scoreInputs:
    post:
      tags:
        - Mock APIs
      summary: Mock Score Inputs
      description:
        This mimics the Score Inputs.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`.
        The first of the above accessCodes return an error message and the former two send back failure and success responses.
      requestBody:
        $ref: "#/components/requestBodies/scoreInputs"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/scoreInputsResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/verifyInputs:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Inputs
      description:
        This mimics the Verify Inputs.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`.
        The first of the above accessCodes return an error message and the former two send back failure and success responses.
      requestBody:
        $ref: "#/components/requestBodies/verifyInputs"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyInputsResponse"
        "400":
          $ref: "#/components/responses/badRequest"


  /mock/identity/document/scan/:
    post:
      tags:
        - Mock APIs
      summary: Mock Upload ID
      description:
        This mimics the Upload IDThere 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.
      requestBody:
        $ref: "#/components/requestBodies/documentScan"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/document/scan/status:
    post:
      tags:
        - Mock APIs
      summary: Mock Check Upload ID
      description: This mimics the Check Upload ID.<br>
        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`.<br>
        The second, third and forth of the above accessCodes return possible error messages, and the former sends back a success response.
      requestBody:
        $ref: "#/components/requestBodies/documentScanStatus"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanStatusResponse"
        "400":
          $ref: "#/components/responses/badRequest"
        "417":
          $ref: "#/components/responses/exceptionFailed"

  /mock/identity/document/scan/data:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Upload ID
      description: This mimics the Verify Upload ID.<br>
        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`.<br>
        The first four of the above accessCodes return error messages and the former sends back a Quiz Object.
      requestBody:
        $ref: "#/components/requestBodies/documentScanData"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/successResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/passport/scan:
    post:
      tags:
        - Mock APIs
      summary: Mock Upload Passport
      description: This mimics the Upload Passport.<br>
        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`.<br>
        The first two of the above accessCodes return error messages and the former sends back a success response.

      requestBody:
        $ref: "#/components/requestBodies/passportScan"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/passport/scan/enhanced:
    post:
      tags:
        - Mock APIs
      summary: Mock Upload Passport Enhanced
      description: This mimics the Upload Passport Enhanced.<br>
        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`.<br>
        The first two of the above accessCodes return error messages and the former sends back a success response.

      requestBody:
        $ref: "#/components/requestBodies/passportScan"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/passport/scan/status:
    post:
      tags:
        - Mock APIs
      summary: Mock Check Upload Passport
      description: This mimics the Check Upload Passport.<br>
        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`.<br>
        The first four of the above accessCodes return error messages and the former sends back a Quiz Object.

      requestBody:
        $ref: "#/components/requestBodies/passportScanStatus"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanStatusResponse"
        "400":
          $ref: "#/components/responses/badRequest"
        "417":
          $ref: "#/components/responses/exceptionFailed"

  /mock/identity/passport/scan/data:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Upload Passport
      description: This mimics the Verify Upload Passport.<br>
        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`.<br>
        The second, third and forth of the above accessCodes return possible error messages, and the former sends back a success response.
      requestBody:
        $ref: "#/components/requestBodies/documentScanData"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/successResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/generateCriminalReport:
    post:
      tags:
        - Mock APIs
      summary: Mock Generate Criminal Background Report
      description: This mimics the Generate Criminal Background Report.<br>
        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`.
      requestBody:
        $ref: "#/components/requestBodies/generateCriminalReport"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/successResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/request/watchlist/global:
    post:
      tags:
        - Mock APIs
      summary: Mock Global Watch List Search
      description: This mimics the Global Watch List Search.<br>
        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`.
      requestBody:
        $ref: "#/components/requestBodies/watchlistGlobal"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/successResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/request/watchlist/global/report:
    post:
      tags:
        - Mock APIs
      summary: Mock Global Watch List Report
      description: This mimics the Global Watch List Report.<br>
        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`.
      requestBody:
        $ref: "#/components/requestBodies/watchlistReport"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/watchlistReportResponse"
        "400":
          $ref: "#/components/responses/badRequest"
  
  /mock/identity/request/criminal/report/seven:
    post:
      tags:
        - Mock APIs
      summary: Mock 7 Year Criminal Activity
      description: This mimics the 7 Year Criminal Activity.<br>
        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`.
      requestBody:
        $ref: "#/components/requestBodies/criminalSevenReport"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/criminalReportResponse"
        "400":
          $ref: "#/components/responses/badRequest"
      

  /mock/user/verify/ssn:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify SSN
      description: This mimics the SSN Verification<br>
              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`.
      requestBody:
        $ref: "#/components/requestBodies/verifySsn"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifySsnResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/identity/override:
    post:
      tags:
        - Mock APIs
      summary: Mock Manually Verify Identity
      description: This mimics the Manually Verify Identity.<br>
              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`.<br>
               The second, third and forth of the above accessCodes return possible error messages, and the former sends back a success response.
      requestBody:
        $ref: "#/components/requestBodies/identityOverride"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/getTestResult:
    post:
      tags:
        - Mock APIs
      summary: Mock Get Test Result
      description: This mimics the Get Test Result.<br>
              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`.<br>
               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.
      requestBody:
        $ref: "#/components/requestBodies/getTestResult"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/getTestResultResponse"
        "400":
          $ref: "#/components/responses/badRequest"


  /mock/employment/verify:
    post:
      tags:
        - Mock APIs
      summary: Mock Employment Verification Request (Deprecated)
      description: This mimics the Employment Verification Request.<br>
             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`.


              **Notes:-** This API is now deprecated. Please refer to the latest version (Version 2) for updated functionalities and improvements. The support for Version 1 APIs will be discontinued after `June 15th, 2024`.

      requestBody:
        $ref: "#/components/requestBodies/employmentVerificationRequest"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employmentVerificationRequestResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/education/verify:
    post:
      tags:
        - Mock APIs
      summary: Mock Education Verification Request (Deprecated)
      description: This mimics the Education Verification Request.<br>
             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`.


            **Notes:-** This API is now deprecated. Please refer to the latest version (Version 2) for updated functionalities and improvements. The support for Version 1 APIs will be discontinued after `June 15th, 2024`.
      requestBody:
        $ref: "#/components/requestBodies/educationVerificationRequest"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/educationVerificationRequestResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/professional/license:
    post:
      tags:
        - Mock APIs
      summary: Mock Professional License Request
      description: This mimics the Professional License Verification Request.<br>
             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`.
      requestBody:
        $ref: "#/components/requestBodies/professionalLicenseRequest"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/professionalLicenseRequestResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/mvr:
    post:
      tags:
        - Mock APIs
      summary: Mock Motor Vehicle Request
      description: This mimics the Motor  Request.<br>
             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 `9cg686b3-ccb3-497c-a298-3830ea8a1c96`.
      requestBody:   
             $ref: "#/components/requestBodies/identityMvr"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/identityMvrResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

  /mock/identity/business/verification:
    post:
      tags:
        - Mock APIs
      summary: Mock Verify Business
      description: This mimics the FEIN Verification.<br>
             This API can accept any of the five userAccessCodes of the mock APIs. The verification result will be available in the [Get Test Result](#tag/Methods/paths/~1user~1getTestResult/post) for the userAccessCode
              `9cg686b3-ccb3-497c-a298-3830ea8a1c96`
      requestBody:
        $ref: "#/components/requestBodies/businessVerification"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/user/search/counties:
    post:
      tags:
        - Mock APIs
      summary: Mock County History
      description: This mimics the County History API.<br>
             The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/searchCounties"
      responses:
        "200":
          description: success
          content:
                  application/json:
                    schema:
                      $ref: "#/components/schemas/searchCountiesResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verify/criminal/count:
    post:
      tags:
        - Mock APIs
      summary: Mock County Criminal Records
      description: This mimics the County Criminal Records<br>
           The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/verifyCriminalCount"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCriminalCountResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verify/criminal/federal:
    post:
      tags:
        - Mock APIs
      summary: Mock Criminal Federal Records
      description: This mimics the Federal Criminal Records.<br>
           The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/verifyCriminalFederal"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCriminalCountResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verify/civil/county:
    post:
      tags:
        - Mock APIs
      summary: Mock County Civil Records
      description: This mimics the County Civil Records.<br>
           The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/countyCivilRequest"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCriminalCountResponse"
        "400":
          $ref: "#/components/responses/badRequest"



  /mock/user/verify/civil/federal:
    post:
      tags:
        - Mock APIs
      summary: Mock Federal Civil Records
      description: This mimics the Federal Civil Records.<br>
           The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/verifyCivilFederal"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCriminalCountResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verify/criminal/county/report:
    post:
      tags:
        - Mock APIs
      summary: Mock County Criminal Records Result
      description:
           The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/verifyCriminalCountyReport"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCriminalCountyReportResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verify/criminal/counties:
    post:
      tags:
        - Mock APIs
      summary: Mock County Criminal Records for User County History
      description:
           The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/verifyCriminalCounties"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCriminalCountiesResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/user/verify/criminal/counties/reports:
    post:
      tags:
        - Mock APIs
      summary: Mock Retrieve Results of All Asynchronous Criminal Requests
      description:
           The possible scenarios are covered in the mock APIs with userAccessCodes `100385a1-4308-49db-889f-9a898fa88c21` and `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/verifyCriminalCountiesReport"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyCriminalCountiesReportResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/business/verification/comprehensive:
    post:
      tags:
        - Mock APIs
      summary: Mock Full Business Search Request
      description:
          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`.
      requestBody:
        $ref: "#/components/requestBodies/verificationComprehensive"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verificationComprehensiveResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/bank/connect/url:
    post:
      tags:
        - Mock APIs
      summary: Mock Financial Connect Url
      description:
          This mimics the "Get Financial Connect Url".<br>
          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`.
      requestBody:
        $ref: "#/components/requestBodies/bankConnectUrl"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bankConnectUrlResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/identity/bank/account/result:
    post:
      tags:
        - Mock APIs
      summary: Mock Financial Account Owner Match Result
      description:
          This mimics the "Financial Account Owner Match result".<br>
          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`.
      requestBody:
        $ref: "#/components/requestBodies/bankAccountOwnerMatchResult"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/bankAccountOwnerMatchResultResponse"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/reauthenticate/eligibilty:
    post:
      tags:
        - Mock APIs
      summary: Mock ReAuthenticate Eiligibilty (Beta)
      description:
          This mimics the "ReAuthenticate Eiligibilty".<br>
          The possible scenarios are covered in the mock APIs with userAccessCodes <br>
          `100385a1-4308-49db-889f-9a898fa88c21`, `2d91a19f-d07b-48f0-912f-886ed67009dd`, `9cg686b3-ccb3-497c-a298-3830ea8a1c96`, `a423efc3-f12d-4f85-92a6-2a35129c5285`
          and `26682cb8-d672-4e0a-a26d-3b9a7cafab64`

      requestBody:
        $ref: "#/components/requestBodies/reauthEligibilty"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/reauthEligibiltyResponse"
        "400":
          $ref: "#/components/responses/badRequestReauthenticate"
      security:
        - bearerAuth: []

  /mock/reauthenticate/link:
    post:
      tags:
        - Mock APIs
      summary: Mock ReAuthenticate Generate Link (Beta)
      description:
          This mimics the "ReAuthenticate Generate Link".<br>
          The possible scenarios are covered in the mock APIs with userAccessCodes <br>
          `100385a1-4308-49db-889f-9a898fa88c21`,
          `9cg686b3-ccb3-497c-a298-3830ea8a1c96` and
          `2d91a19f-d07b-48f0-912f-886ed67009dd`.
      requestBody:
        $ref: "#/components/requestBodies/reauthGenerateLink"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/reauthGenerateLinkResponse"
        "400":
          $ref: "#/components/responses/badRequest"
      security:
        - bearerAuth: []

  /mock/reauthenticate/session/status:
    post:
      tags:
        - Mock APIs
      summary: Mock ReAuthenticate Session Status (Beta)
      description:
          This mimics the "ReAuthenticate Session Status".<br>
          The possible scenarios are covered in the mock APIs with header `X-Reauthenticate-Session` values - <br>
           `100385a1-4308-49db-889f-9a898fa88c21`, 
           `2d91a19f-d07b-48f0-912f-886ed67009dd`, 
           `9cg686b3-ccb3-497c-a298-3830ea8a1c96`, 
           `a423efc3-f12d-4f85-92a6-2a35129c5285` and
           `26682cb8-d672-4e0a-a26d-3b9a7cafab64`
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/reauthSessionStatusResponse"
        "400":
          $ref: "#/components/responses/badRequest"
      security:
        - ReauthenticateSessionUUID: []

  /mock/employment/v2/verify:
    post:
      tags:
        - Mock APIs
      summary: Mock Employment Verification V2 Request
      description: This mimics the Employment Verification V2 Request.<br>
             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`.
      requestBody:
        $ref: "#/components/requestBodies/employmentVerificationRequestV2"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employmentVerificationRequestResponseV2"
        "400":
          $ref: "#/components/responses/badRequest"

  /mock/education/v2/verify:
    post:
      tags:
        - Mock APIs
      summary: Mock Education Verification V2 Request
      description: This mimics the Education Verification V2 Request.<br>
             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`.
      requestBody:
        $ref: "#/components/requestBodies/educationVerificationRequestV2"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/educationVerificationRequestResponseV2"
        "400":
          $ref: "#/components/responses/badRequest"

  /user/create:
    post:
      tags:
        - Methods
      summary: Create User
      description:
         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 StreetName can be string. 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](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Officially_assigned_code_elements).


          This call returns the User Access Code (UAC), which is a v4 UUID. The UAC will be used in subsequent API calls to reference this specific user.


          Next step is to call the [Submit User Consent API](#tag/Methods/paths/~1user~1consent/post).


      requestBody:
        $ref: "#/components/requestBodies/createUser"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/createUserResponse"
        "400":
          $ref: "#/components/responses/badRequest"
        "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/consent:
    post:
      tags:
        - Methods
      summary: Submit User Consent
      description:
            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](https://cdn.authenticating.com/public/documents/Authorization+to+Obtain+a+Consumer+Report+Sample.pdf)) 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.



      requestBody:
        $ref: "#/components/requestBodies/createUserConsent"
      responses:
        "200":
          $ref: "#/components/responses/success"
        "400":
          $ref: "#/components/responses/badRequest"
        "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []   
         

  /user/summary:
    post:
      tags:
        - Methods
      summary: Get User
      description:
            This endpoint pings the server to get the user object. If the access code has expired, no user data will be returned.


      requestBody:
        $ref: "#/components/requestBodies/getUser"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/getUserResponse"
        "400":
          $ref: "#/components/responses/badRequest"
        "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []   

  /user/update:
    put:
      tags:
        - Methods
      summary: Update User
      description:
        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.


          The required param for this call is userAccessCode. You can send any parameter with it which you wish to update, vice-versa you don't need to send the parameter that should remain 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.


          In case the user or a company admin updates the user's PII, a webhook notification is initiated to make sure the Admins User record is concurrent with the User PII record on Authenticate. Please check more information on webhooks [here](#tag/Webhooks).


          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.

      requestBody:
        $ref: "#/components/requestBodies/updateUser"
      responses:
       "200":
          description: success
          content:
              application/json:
                schema:
                 $ref: "#/components/schemas/getUserResponse"
       "400":
          $ref: "#/components/responses/badRequest"

      security:
        - bearerAuth: [] 

  /user/jwt:
    post:
      tags:
        - Methods
      summary: Get User JWT for Medallion™
      description:
          This API can be used after [creating a user](#tag/Methods/paths/~1user~1create/post) and [providing consent](#submit-user-consent) of the respective user.
        
        
          `redirectURL` has to be a valid SSL Secured URL.
        
        
          `preferredWorkflowID` will be the workflow the user goes through when they start their Medallion™ verification process. In case the preferred workflow 
           has been deleted when the starts their verification process, the default workflow will be used instead.
        
        
          _If the preferredWorkflowID is not set, the default workflow is automatically used._
        
        
          The API response includes both a `jwt` and a `token`. The `jwt` is a longer version of the `token` 
          and is suitable for use in embedded URLs in browsers. The `token` is a cleaner version of the verification link and is offered for sharing purposes.
        
        
          To access the Medallion™ URL, you must append the unique verification `token` or `jwt`. 
        
        
          For example - `https://verify.authenticating.com/?token=<TOKEN OR JWT>` without `<>`. 



      requestBody:
        $ref: "#/components/requestBodies/userJwt"
      responses:
       "200":
          description: success
          content:
              application/json:
                schema:
                 $ref: "#/components/schemas/userJwtResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: [] 
  
  # /user/medallion/{{medallion_verification_token}}/status:
  #   get:
  #     tags:
  #       - Methods
  #     summary: Get Medallion Verification Link Status
  #     description:
  #         This API can be utilized to retrieve the overall Medallion verification link status, including the total attempts for all applicable verifications pertaining to that user.
        

  #         The `medallion_verification_token` param in the URL refers to the UUID token received from the [Get User JWT for Medallion™](#tag/Methods/paths/~1user~1jwt/post) API. 
        

  #         Please note that the Medallion verification link is only valid for 24 hours. The attempts data (pertaining
  #         to that Medallion verification token) is ephemeral and cleared after 5 days.


  #     responses:
  #      "200":
  #         description: success
  #         content:
  #             application/json:
  #               schema:
  #                $ref: "#/components/schemas/userMedallionStatusResponse"
  #      "400":
  #         $ref: "#/components/responses/badRequest"
  #      "401":
  #         $ref: "#/components/responses/unauthorized"

  #     security:
  #       - bearerAuth: [] 

  /user/verifyPhone:
    post:
      tags:
        - Methods
      summary: Verify Phone
      description:
           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 [Verify Phone Code](##tag/Methods/paths/~1user~1verifyPhoneCode/post).


      requestBody:
           $ref: "#/components/requestBodies/verifyPhone"
      responses:
       "200":
           $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: [] 

  /user/verifyPhoneCode:
    post:
      tags:
        - Methods
      summary: Verify Phone Code
      description:
           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.



      requestBody:
           $ref: "#/components/requestBodies/verifyPhoneCode"
      responses:
       "200":
           $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: [] 

  /user/verifyEmail:
    post:
      tags:
        - Methods
      summary: Verify Email
      description:
        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](#tag/Methods/paths/~1user~1verifyEmailCode/post).


      requestBody:   
          $ref: "#/components/requestBodies/verifyPhone"
      responses:
       "200":
           $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verifyEmailCode :
    post:
      tags:
        - Methods
      summary: Verify Email Code
      description:
              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.


      requestBody:   
          $ref: "#/components/requestBodies/verifyPhoneCode"
      responses:
       "200":
           $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/comparePhotos :
    post:
      tags:
        - Methods
      summary: Compare Photos
      description:
        This call is used to complete a photo comparison and verification process.


        This API compares a face in the source input image with the largest face detected in the target input image. If the source image contains multiple faces, the service detects the largest face and compares it with the largest face detected in the target image. You must pass the source and target images as base64-encoded string.


        The `targetImage` is further analyzed for liveness as well and will return a liveness score, error and assessment accordingly.


        To Reauthenticate™ someone with just a selfie, use the `documentFaceMatch` functionality. This will compare the `targetImage` to the image of the face that was extrapolated from the Photo ID or Passport used to initially authenticate this person.


        The `documentFaceMatch` and `targetImage` parameters are required and `documentFaceMatch` is a boolean.


        If the `sourceImage` is provided, it overrides the `documentFaceMatch` flag and compares the `targetImage` with the `sourceImage`.


        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) <b>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. </b> 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.


        The results of the comparison can be found in the Test Results Object, under the "photoProof" JSON key.


      requestBody:   
        $ref: "#/components/requestBodies/comparePhotos"
      responses:
       "200":
           $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []
  
  /user/verify/ssn :
    post:
      tags:
        - Methods
      summary: SSN Verification
      description:
              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.


      requestBody:   
        $ref: "#/components/requestBodies/verifySsn"
      responses:
       "200":
        description: success
        content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifySsnResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/business/verification :
    post:
      tags:
        - Methods
      summary: FEIN Verification
      description:
            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.


            The result of this API is reflected in the [Test Results Object](#tag/Methods/paths/~1user~1getTestResult/post), under the "FEINVerification" JSON key.

      requestBody:   
        $ref: "#/components/requestBodies/businessVerification"
      responses:
       "200":
          $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []


  /identity/business/verification/comprehensive :
    post:
      tags:
        - Methods
      summary: Full Business Search
      description:
              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](#tag/Methods/paths/~1identity~1business~1verification/post).


              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.

      requestBody:
          $ref: "#/components/requestBodies/verificationComprehensive"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verificationComprehensiveResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/document/scan :
    post:
      tags:
        - Methods
      summary: Upload ID
      description:
                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](https://en.wikipedia.org/wiki/PDF417) 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](#section/Supported-Countries).

                We support government issued IDs including driver's licenses, state IDs, national IDs, military IDs, voter cards, resident cards, visas, passports, border crossing cards, and government Personal Identity Verification (PIV), DoD Common Access Card and Transportation Worker Identification Credentials from **[this list of countries and territories](https://cdn.authenticating.com/public/documents/List+of+supported+countries+and+territories+for+Document+Verification.pdf)**. And we are always expanding our areas of service. If you dont see a region listed and are interested in learning more about how we can work with you, in that area, please let us know.

                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 async task 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) <b>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. </b> 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](https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png).


      requestBody:   
          $ref: "#/components/requestBodies/documentScan"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanResponse"
        "400":
            $ref: "#/components/responses/badRequest"
        "401":
            $ref: "#/components/responses/unauthorized"

      security:
          - bearerAuth: []

  /identity/document/scan/enhanced :
    post:
      tags:
        - Methods
      summary: Upload Document Enhanced (Review ID)
      description:
                This endpoint performs the same alphanumeric text detection, barcode data correlation and template check as the [Upload ID](#tag/Methods/paths/~1identity~1document~1scan/post) 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](#tag/Webhooks).
        
        
                The countryCode param is required and is an ISO 3166-1 alpha-2 Country code encoded as a String. Country codes can be checked [here](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).
        
        
                <b>The per-cost use of this call is more expensive than [Upload ID](#tag/Methods/paths/~1identity~1document~1scan/post)</b>. 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.
        
                We support government issued IDs including driver's licenses, state IDs, national IDs, military IDs, voter cards, resident cards, visas, passports, border crossing cards, and government Personal Identity Verification (PIV), DoD Common Access Card and Transportation Worker Identification Credentials from **[this list of countries and territories](https://cdn.authenticating.com/public/documents/List+of+supported+countries+and+territories+for+Document+Verification.pdf)**. And we are always expanding our areas of service. If you dont see a region listed and are interested in learning more about how we can work with you, in that area, please let us know.

        
                __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) <b>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. </b> 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](https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png).
        
        
                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:-
        
                  - Image capture quality (for example blurriness or reflection)
        
        
                  - Personalization of the document (such as especially long names)
        
        
                  - Variations in manufacturing techniques (for example card printed on wrong side or slight variations in printing location)
        
        
                  - Wear and aging of the document (a worn or dirty card can cause failure) Tampering and counterfeiting (unlawful changes or reproduction of documents)
        
        
                If a document has failed any specific check, the reason will be indicated under `description` key in the [Check Upload ID](#tag/Methods/paths/~1identity~1document~1scan~1status/post).
        
        
                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.

      requestBody:
        $ref: "#/components/requestBodies/documentScanEnhanced"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanResponse"
        "400":
          $ref: "#/components/responses/badRequest"
        "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []


  /identity/document/scan/status:
    post:
      tags:
        - Methods
      summary: Check Upload ID
      description:
            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:-


            * <b>"complete"</b> - The id was received and successfully parsed.


            * <b>"parsing_failed"</b> - 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).


            * <b>"unknown_state"</b> - This indicates that the call to checkUploadId has either been made too quickly after the image was uploaded or there has yet to be any image uploaded to the uploadId endpoint. If this result is received and an image has been sent to uploadId, try again after 20 seconds. 


            * <b>"unknown_error"</b> - An unknown error has occurred. Please try again in a few moments.


            * <b>"under_review"</b> - The ID is under review. Please check back in a few minutes or when notified through webhook.


            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](#tag/Methods/paths/~1identity~1document~1scan~1data/post), ie. completing the ID verification of the user.


      requestBody:   
         $ref: "#/components/requestBodies/documentScanStatus"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanStatusResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/document/scan/data :
    post:
      tags:
        - Methods
      summary: Verify Upload ID
      description:
                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 necessary 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.


      requestBody:   
             $ref: "#/components/requestBodies/documentScanData"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyUploadIDAndPassportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/passport/scan:
    post:
      tags:
        - Methods
      summary: Upload Passport
      description:
                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 Upload ID 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 [Get Test Result](#tag/Methods/paths/~1user~1getTestResult/post) is eventually triggered. To check the progress of this call and make sure nothing was missed, utilize the [Check Upload Passport](#tag/Methods/paths/~1identity~1passport~1scan~1status/post) endpoint.
    
    
                To see a sample passport image of the page that needs to be submitted, please see [this link](https://docs.authenticating.com/images/passport_sample_1.jpg) or [this one](https://docs.authenticating.com/images/passport_sample_2.jpg). 
    
    
                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:-
                - Image capture quality (for example blurriness or reflection)
                - Personalization of the document (such as especially long names)
                - Variations in manufacturing techniques (for example card printed on wrong side or slight variations in printing location)
                - Wear and aging of the document (a worn or dirty card can cause failure) Tampering and counterfeiting (unlawful changes or reproduction of documents)


                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.

                We support government issued IDs including driver's licenses, state IDs, national IDs, military IDs, voter cards, resident cards, visas, passports, border crossing cards, and government Personal Identity Verification (PIV), DoD Common Access Card and Transportation Worker Identification Credentials from **[this list of countries and territories](https://cdn.authenticating.com/public/documents/List+of+supported+countries+and+territories+for+Document+Verification.pdf)**. And we are always expanding our areas of service. If you dont see a region listed and are interested in learning more about how we can work with you, in that area, please let us know.


      requestBody:
           $ref: "#/components/requestBodies/passportScan"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/documentScanResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"
      
      security:
        - bearerAuth: []

  /identity/passport/scan/enhanced :
    post:
      tags:
        - Methods
      summary: Upload Passport Enhanced (Review Passport)
      description:
                This call is used to upload an image of a passport/visa 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](#tag/Webhooks).
  
  
                The countryCode param is required and is an ISO 3166-1 alpha-2 Country code encoded as a String. Country codes can be checked [here](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).
  
  
                This is an asynchronous call and the data will be returned whenever [Get Test Result](#tag/Methods/paths/~1user~1getTestResult/post) is eventually triggered. To check the progress of this call and make sure nothing was missed, utilize the [Check Upload Passport](#tag/Methods/paths/~1identity~1passport~1scan~1status/post) endpoint.
  
  
                To see a sample passport image of the page that needs to be submitted, please see [this link](https://docs.authenticating.com/images/passport_sample_1.jpg) or [this one](https://docs.authenticating.com/images/passport_sample_2.jpg). 
  
  
                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:-
        
                - Image capture quality (for example blurriness or reflection)
                - Personalization of the document (such as especially long names)
                - Variations in manufacturing techniques (for example card printed on wrong side or slight variations in printing location)
                - Wear and aging of the document (a worn or dirty card can cause failure) Tampering and counterfeiting (unlawful changes or reproduction of documents)
  
  
                If a document has failed any specific check, the reason will be indicated under `description` key in the [Check Upload Passport](#tag/Methods/paths/~1identity~1passport~1scan~1status/post). 
  
  
                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.

                We support government issued IDs including driver's licenses, state IDs, national IDs, military IDs, voter cards, resident cards, visas, passports, border crossing cards, and government Personal Identity Verification (PIV), DoD Common Access Card and Transportation Worker Identification Credentials from **[this list of countries and territories](https://cdn.authenticating.com/public/documents/List+of+supported+countries+and+territories+for+Document+Verification.pdf)**. And we are always expanding our areas of service. If you dont see a region listed and are interested in learning more about how we can work with you, in that area, please let us know.


                Note:- `documentType` is optional for `Passport` but for `Visa`, it must be provided with the value `ID`

      requestBody:
           $ref: "#/components/requestBodies/passportScanEnhanced"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
               $ref: "#/components/schemas/documentScanResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/passport/scan/status :
    post:
      tags:
        - Methods
      summary: Check Upload Passport
      description:
                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:-

                * <b>"complete"</b> - The id was received and successfully parsed.


                * <b>"parsing_failed"</b> - Unable to detect the image. This can be cause 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).


                * <b>"unknown_state"</b> - This indicates that the call to checkUploadId has either been made too quickly after the image was uploaded or there has yet to be any image uploaded to the uploadId endpoint. If this result is received and an image has been sent to uploadId, try again after 20 seconds. 


                * <b>"unknown_error"</b> - An unknown error has occurred. Please try again in a few moments. 


                * <b>"under_review"</b> - The ID is under review. Please check back in a few minutes or when notified through webhook.

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

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

      requestBody:   
           $ref: "#/components/requestBodies/passportScanStatus"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                 $ref: "#/components/schemas/documentScanStatusResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/passport/scan/data  :
    post:
      tags:
        - Methods
      summary: Verify Upload Passport
      description:
          This is used to determine if the user data that has been retrieved from the document scanned, Upload Passport) matches an actual person identifiable in US government, credit, commercial, consumer, utility, proprietary, telecommunication and DMV databases.
        
        
          This call is necessary 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.


      requestBody:   
          $ref: "#/components/requestBodies/documentScanData"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                  $ref: "#/components/schemas/verifyUploadIDAndPassportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: [ ]

  /identity/verify/international  :
    post:
      tags:
        - Methods
      summary: Verify International Identity
      description: |
           This method can be used to verify an individual in over 40 countries (excluding United States). If you're looking for United States, please check [Verify Upload ID](#tag/Methods/paths/~1identity~1document~1scan~1data/post) or [Verify Upload Passport](#tag/Methods/paths/~1identity~1passport~1scan~1data/post). 
           
           The list of the countries, their respective data sources, and the requirements to perform the search are listed below in the '[Available Countries and Definition Types](#section/List-of-Countries-for-International-IDV)' section. Please note that the id_type field is mandatory for a few counties. 

           If searchType is not provided in the request, the default searchType will be "1".
           
           The country code sent in the API has to be a [ISO-3166 ALPHA-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code.


           First Name, Last Name, Date Of Birth, Street Name, City, State, Country, and Postal Code(Zip Code) have to be populated in the User Object, at the time of [User Creation](#tag/Methods/paths/~1user~1create/post) or before initiating this API call through [Update User](#tag/Methods/paths/~1user~1update/put).

           __Available Countries and Definition types__

            Please [click here](#section/List-of-Countries-for-International-IDV) to check the countries and their respective search criteria.

           __Content Sources__

            |Content Sources|
            | --------- |
            |Government|
            |Credit|
            |Commercial|
            |Consumer|
            |Utility|
            |Proprietary|
            |Telco|
            |Postal|
            |Other(Including Social)|
          
            __Available Fields:__
            
            |  ||
            | --------- | ---------- |
            | **First Name** ||
            | **Middle Name**||
            | **Last Name**||
            | **Date of Birth**||
            | **National ID**||
            | **ID Type(Mandatory for the countries mentioned)**||
            | **Address parts:** ||
            ||House Number|
            ||Street Name|
            ||Unit Number|
            ||City/Locality|
            ||Administrative Area (State/Province)|
            ||Postal Code(Zip Code)|
            ||Country (Required by all searches)|
            |**Phone Number**||
            |**E-Mail Address**||
            
      requestBody:   
          $ref: "#/components/requestBodies/verifyInternationalPII"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                  $ref: "#/components/schemas/verifyInternationalPIIResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  
  /identity/kba  :
    post:
      tags:
        - Methods
      summary: Get Identity Proof Quiz
      description:
         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.


      requestBody:   
             $ref: "#/components/requestBodies/identityKba"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                     $ref: "#/components/schemas/identityKba"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"
       "417":
          $ref: "#/components/responses/exceptionFailed"

      security:
        - bearerAuth: []

  /identity/kba-verification  :
    post:
      tags:
        - Methods
      summary: Verify Quiz
      description:
         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.

      requestBody:   
            $ref: "#/components/requestBodies/kbaVerification"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/kbaVerificationResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/risk/match :
    post:
      tags:
        - Methods
      summary: Score Inputs
      description: |
              Score Inputs tells you whether or not the input data on a specific user matches the data we have in our proprietary identity graph—and offers a risk score based on the match (or lack thereof).

              Leverage the power of Score Inputs and our broad, real-time identity graph, which spans both the digital and terrestrial ecosystems and provides insight into how and if personal and professional identities are linked.

              Score Inputs API can accept a wide variety of inputs such as:
                - Name & Address
                - Phone
                - Email
            
              Based on the input provided in the user object, you can understand how what you have provided matches (or does not match) against our identity graph. In addition to the match characteristics, there is an associated risk score, which is a proxy for friction that may need to be applied downstream.

              All this combined helps you identify risk on a form field, sign up, onboarding process or application.

              __The direct output of the provided information (at the contact element level) could potentially represent any of the following categories :__

              | Match Type | Description |
              |-------------- | -------------- |
              | Tangled (string)| Matches an input belonging to a different individual (no relationship). This is typically an indication of increased fraud risk; further downstream friction may need to be applied specific to that identifier. |
              | Household (string) | Matches an input field belonging to someone else inside the same household (spouse, young adult, etc). This is typically not an indication of fraud risk, however some friction may need to be applied. |
              | Self (string) | Matches an input field directly belonging and pointing to the most likely person requested. All outputs with 'self' must share metadata within our graph as this is the anchor in which all other fields are classified. |
              | Unknown (string) | Not enough information to qualify as any of the above classifications. This may or may not be an indication of fraud risk; further downstream friction may need to be applied. |
              | Risk (double)| Indicates the level of risk associated with the given inputs. This current risk score is based upon deterministic email related activity such as, first/last seen timestamps, number of sources and observations along with whether or not an observed linkage to a first party cookie exists. If the risk score is closer to 1.0, then the individual and associated inputs are deemed to be more risky. |


      requestBody:   
            $ref: "#/components/requestBodies/scoreInputs"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/scoreInputsResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/risk/inputs :
    post:
      tags:
        - Methods
      summary: Verify Inputs
      description: |
                Verify Inputs provides input data insights into how confident we are about the given person's identity, inputs, and risk level. Verify Inputs are highly specific and provide high-value information. Our identity graph spans both the digital and terrestrial ecosystems and provides linkages between how individuals represent themselves professionally and personally.

                You will receive a max of 5 additional identifiers for each contact identifier being passed back in Verify Inputs, such as emails and phone numbers.

                __Inputs Response Properties:__

                | ||
                | --------- | ---------- |
                | name.givenName string | The given name (first name) of the individual. |
                | name.familyName string | The family name (last name) of the individual. |
                | socialProfiles.twitterUrl string | URL to the Twitter profile on the social platform. | 
                | socialProfiles.linkedInUrl string	| URL to the LinkedIn profile on the social platform. |
                | employment.name string	| The name of the organization/place of employment. |
                | employment.current boolean | Indicator of whether or not this is the current place of employment. |
                | employment.title string | Job or position title. |
                | emails.md5 string	| The MD5 hash representation for a given email address.|
                | emails.sha1 string	| The SHA-1 hash representation for a given email address. |
                | emails.sha256 string	| The SHA-256 hash representation for a given email address. |
                | emails.firstSeen string	| The timestamp (YYYY-MM-DD) of the first time Authenticate has seen a given email address. |
                | emails.lastSeen string	| The timestamp (YYYY-MM-DD) of the last time Authenticate has seen a given email address. |
                | emails.observations integer	| The number of observations in our graph we've seen of an email connected to a person's profile based on the associated inputs |
                | emails.confidence string	| Numerical score of how the inputs provided relate to a person's hashed email (0-1.0) |
                | phones.label string	| An indicator of the type of phone. |
                | phones.value string	| The business phone of an individual, if known. |
                | phones.firstSeen string	| The timestamp (YYYY-MM-DD) of the first time Authenticate has seen a given phone number. |
                | phones.lastSeen string	| The timestamp (YYYY-MM-DD) of the last time Authenticate has seen a given phone number. |
                | phones.observations integer	| The number of observations in our graph we've seen of a phone connected to a person's profile based on the associated inputs |
                | phones.confidence string	| Numerical score of how the inputs provided relate to a person's phone (0-1.0) |

      requestBody:   
            $ref: "#/components/requestBodies/verifyInputs"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/verifyInputsResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/generateCriminalReport :
    post:
      tags:
        - Methods
      summary: Generate Criminal Background Report
      description:
              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.



      requestBody:   
              $ref: "#/components/requestBodies/generateCriminalReport"
      responses:
       "200":
          $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/request/criminal/report/seven :
    post:
      tags:
        - Methods
      summary: 7 Year Criminal Activity
      description: |
            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](#tag/Methods/paths/~1user~1update/put) 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.


            __Response when no records are found is as follows:__
            ```
              {
                "result": {
                  "Candidates": {
                    "Message": "No Criminal Records Found"
                  }
                },
                "message": "Request Results"
              }
            ```


      requestBody:   
             $ref: "#/components/requestBodies/criminalSevenReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/criminalReportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/request/watchlist/global:
    post:
      tags:
        - Methods
      summary: Global Watch List Search
      description:
          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.

      requestBody:   
              $ref: "#/components/requestBodies/watchlistGlobal"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/successResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/request/watchlist/global/report :
    post:
      tags:
        - Methods
      summary: Request Global Watch List Report
      description:
            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](#tag/Methods/paths/~1identity~1request~1watchlist~1global/post) is successful and the `hasGlobalWatchlistRecord` in the [Test Result Object](#tag/Methods/paths/~1user~1getTestResult/post) is true.


            __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.

      requestBody:   
             $ref: "#/components/requestBodies/watchlistReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/watchlistReportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/identity/override :
    post:
      tags:
        - Methods
      summary: Manually Verify Identity
      description:
            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 successful or not.

      requestBody:   
             $ref: "#/components/requestBodies/identityOverride"
      responses:
       "200":
             $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/getTestResult :
    post:
      tags:
        - Methods
      summary: Get Test Result
      description:
          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.


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

      requestBody:   
             $ref: "#/components/requestBodies/getTestResult"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/getTestResultResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /employment/verify :
    post:
      tags:
        - Methods
      summary: Employment Verification Request (Deprecated)
      description:
          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.


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



          **Notes:-** This API is now deprecated. Please refer to the latest version (Version 2) for updated functionalities and improvements. The support for Version 1 APIs will be discontinued after `June 15th, 2024`.

      requestBody:   
            $ref: "#/components/requestBodies/employmentVerificationRequest"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employmentVerificationRequestResponse"
        "400":
          $ref: "#/components/responses/badRequest"
        "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /employment/result :
    post:
      tags:
        - Methods
      summary: Get Employment Verification Result (Deprecated)
      description:
          This endpoint gets the employment status of the submitted employment entries for a single individual.

          This API can be used to preriodically poll for results in case the verification further goes for a manual review.

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


          **Notes:-** This API is now deprecated. Please refer to the latest version (Version 2) for updated functionalities and improvements. The support for Version 1 APIs will be discontinued after `June 15th, 2024`.

      requestBody:   
                $ref: "#/components/requestBodies/watchlistReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employmentVerificationRequestResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /employment/v2/verify :
    post:
      tags:
        - Methods
      summary: Employment Verification V2 Request
      description:
          This endpoint allows the submission of employment details for an individual. Verification status can be checked through another API, as verification processing may take time.


          The required fields include `employerName`, `jobTitle`, `startDate`, `currentlyEmployed`, `manualVerification`. Submission won't proceed without these fields.


          If `manualVerification` is set to true, additional details for manual verification must be provided under the property `manualVerificationDetails`. These include `employerAddress`,`employerAddressCity`, `employerAddressState`,`employerAddressCountry`,`supervisorName`,`supervisorContactInfo`.
           

          In the parameters, 1 represents true and 0 represents false. For instance, setting `currentlyEmployed` to 1 indicates that the user will be considered as an active employment and vice-versa.


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

      requestBody:   
            $ref: "#/components/requestBodies/employmentVerificationRequestV2"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employmentVerificationRequestResponseV2"
        "400":
          $ref: "#/components/responses/badRequest"
        "401":
          $ref: "#/components/responses/unauthorized"

        security:
          - bearerAuth: []

  /employment/v2/result :
    post:
      tags:
        - Methods
      summary: Get Employment Verification V2 Result
      description:
          This endpoint gets the employment status of the submitted employment entries for a single individual.

          This API can be used to preriodically poll for results in case the verification further goes for a manual review.

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

      requestBody:   
                $ref: "#/components/requestBodies/watchlistReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/employmentVerificationRequestResponseV2"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /education/verify :
    post:
      tags:
        - Methods
      summary: Education Verification Request (Deprecated)
      description:
          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.


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



          **Notes:-** This API is now deprecated. Please refer to the latest version (Version 2) for updated functionalities and improvements. The support for Version 1 APIs will be discontinued after `June 15th, 2024`.

      requestBody:   
              $ref: "#/components/requestBodies/educationVerificationRequest"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/educationVerificationRequestResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /education/result :
    post:
      tags:
        - Methods
      summary: Get Education Verification Result (Deprecated)
      description:
           This endpoint gets the education status of the submitted education entries for a single individual.

          This API can be used to preriodically poll for results in case the verification further goes for a manual review.

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



          **Notes:-** This API is now deprecated. Please refer to the latest version (Version 2) for updated functionalities and improvements. The support for Version 1 APIs will be discontinued after `June 15th, 2024`.

      requestBody:   
             $ref: "#/components/requestBodies/watchlistReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/educationVerificationRequestResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /education/v2/verify :
    post:
      tags:
        - Methods
      summary: Education Verification Request V2
      description:
          This endpoint allows the submission of education details for an individual. Verification status can be checked through another API, as verification processing may take time.


          The required fields include `institutionName`, `startDate`, `degreeTitle`, and `manualVerification`. Submission won't proceed without these fields.


          If `manualVerification` is set to true, additional details for manual verification must be provided under the property `manualVerificationDetails`. These include `institutionAddress`, `institutionAddressCity`, `institutionAddressCountry`, `institutionAddressState`, `institutionAddressPostalCode`, `currentlyAttending`, and `completedSuccessfully`.


          In the parameters, 1 represents true and 0 represents false. For instance, setting `completedSuccessfully` to 1 indicates that the user has successfully completed and received a degree for the education entry, and vice versa.


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


      requestBody:   
              $ref: "#/components/requestBodies/educationVerificationRequestV2"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/educationVerificationRequestResponseV2"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /education/v2/result :
    post:
      tags:
        - Methods
      summary: Get Education Verification V2 Result
      description:
           This endpoint gets the education status of the submitted education entries for a single individual.

          This API can be used to preriodically poll for results in case the verification further goes for a manual review.

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


      requestBody:   
             $ref: "#/components/requestBodies/watchlistReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/educationVerificationRequestResponseV2"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []


  /identity/professional/license  :
    post:
      tags:
        - Methods
      summary: Professional License Verification Request
      description:
         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.


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


      requestBody:   
              $ref: "#/components/requestBodies/professionalLicenseRequest"
      responses:
       "200":
         $ref: "#/components/responses/success"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/professional/license/result :
    post:
      tags:
        - Methods
      summary: Get Professional License Verification Result
      description:
          This endpoint gets the education status of the submitted education entries for a single individual.


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


      requestBody:   
             $ref: "#/components/requestBodies/watchlistReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/professionalLicenseRequestResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/mvr:
    post:
      tags:
        - Methods
      summary: Motor Vehicle Record Verification
      description:
        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](https://cdn.authenticating.com/public/documents/Motor+Vehicle+Records+Coverage.pdf).


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


      requestBody:   
             $ref: "#/components/requestBodies/identityMvr"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/identityMvrResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/county/price/search:
    post:
      tags:
        - Methods
      summary: Search County With Prices
      description:
           This is a search API and will fetch the closest match to the countyName. Maximum of 8 results will be returned at a time.

      requestBody:   
             $ref: "#/components/requestBodies/priceSearch"
      responses:
       "200":
           description: success
           content:
             application/json:
               schema:
                 $ref: "#/components/schemas/priceSearchResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verify/criminal/county:
    post:
      tags:
        - Methods
      summary: County Criminal Records
      description:   
          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 Price API](#tag/Methods/paths/~1user~1county~1price~1search/post).


          This minimizes the possibility of misspelled county names.


          This APIs result will be returned asynchronously through [webhooks](#tag/Webhooks) via the `CRIMINAL_REQUEST_STATUS_UPDATE` event. The final results can be obtained from the [Retrieve Results of County & Federal Verification Records](#tag/Methods/paths/~1user~1verify~1criminal~1counties~1reports/post) API.


      requestBody:   
          $ref: "#/components/requestBodies/countyCriminalRequest"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/verifyCriminalCountResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verify/criminal/federal:
    post:
      tags:
        - Methods
      summary: Federal Criminal Records
      description:   
        “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 <a href='https://clarifacts.com/federal-crimes-list/' target="_blank">listed here</a> 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](#tag/Webhooks) via the `CRIMINAL_REQUEST_STATUS_UPDATE` event. The final results can be obtained from the [Retrieve Results of County & Federal Verification Records](#tag/Methods/paths/~1user~1verify~1criminal~1counties~1reports/post) API.


      requestBody:   
         $ref: "#/components/requestBodies/verifyCivilFederal"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/verifyCriminalCountResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verify/civil/federal:
    post:
      tags:
        - Methods
      summary: Federal Civil Records
      description:   
            This call will return all available federal civil records for this individual.


            This APIs result will be returned asynchronously through [webhooks](#tag/Webhooks) via the `CRIMINAL_REQUEST_STATUS_UPDATE` event. The final results can be obtained from the [Retrieve Results of County & Federal Verification Records](#tag/Methods/paths/~1user~1verify~1criminal~1counties~1reports/post) API.


      requestBody:   
         $ref: "#/components/requestBodies/verifyCivilFederal"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/verifyCriminalCountResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verify/civil/county:
    post:
      tags:
        - Methods
      summary: County Civil Records
      description:   
        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 Price API](#tag/Methods/paths/~1user~1county~1price~1search/post).
        This minimizes the possibility of misspelled county names.


        This APIs result will be returned asynchronously through [webhooks](#tag/Webhooks) via the `CRIMINAL_REQUEST_STATUS_UPDATE` event. The final results can be obtained from the [Retrieve Results of County & Federal Verification Records](#tag/Methods/paths/~1user~1verify~1criminal~1counties~1reports/post) API.


      requestBody:   
        $ref: "#/components/requestBodies/countyCivilRequest"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                    $ref: "#/components/schemas/verifyCriminalCountResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/user/search/counties:
    post:
      tags:
        - Methods
      summary: County History
      description:   
        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](#tag/Methods/paths/~1user~1verify~1criminal~1county/post) 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.



      requestBody:   
        $ref: "#/components/requestBodies/searchCounties"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                    $ref: "#/components/schemas/searchCountiesResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verify/criminal/county/report:
    post:
      tags:
        - Methods
      summary: County Criminal Records Result
      description:   
       This API returns the Result of the County Criminal Records Results. The `uniqueIdentifier` here is returned in the Response.


      requestBody:   
         $ref: "#/components/requestBodies/verifyCriminalCountyReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                    $ref: "#/components/schemas/verifyCriminalCountyReportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verify/criminal/counties:
    post:
      tags:
        - Methods
      summary: Get County Criminal Records for Complete User County History
      description:   
          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.     

          The `uniqueIdentifier` returned in each response object pertains to a particular county and can be used to retrieve the results for that county.

      requestBody:   
         $ref: "#/components/requestBodies/verifyCriminalCounties"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/verifyCriminalCountiesResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /user/verify/criminal/counties/reports:
    post:
      tags:
        - Methods
      summary: Retrieve Results of County & Federal Verification Records
      description: |
            This API is used to fetch the results of all of the following requests:
              - [County Criminal Records](#tag/Methods/paths/~1user~1verify~1criminal~1county/post)
              - [County Civil Records](#tag/Methods/paths/~1user~1verify~1civil~1county/post)
              - [Federal Criminal Records](#tag/Methods/paths/~1user~1verify~1criminal~1federal/post)
              - [Federal Civil Records](#tag/Methods/paths/~1user~1verify~1civil~1federal/post)

            In the response, the `type` property indicates the type of the record (County Criminal, County Civil, Federal Criminal, Federal Civil) found. The value is an ENUM and maps to the respective requests as follows:
              
              | Value | Description|
              --------|------------|
              | CRIMINAL | County Criminal Record |
              | CRIMINAL_FEDERAL | Federal Criminal Record |
              | CIVIL_FEDERAL | Federal Civil Record |
              | CIVIL_COUNTY | County Civil Record |
              
            Please note that since all of the checks here are asynchronous, results will only be available once it has been retrieved from the source. Your webserver can be notified of the results through our [webhooks](#tag/Webhooks/paths/~1company~1webhook/post) via the event `CRIMINAL_REQUEST_STATUS_UPDATE`.
      requestBody:   
             $ref: "#/components/requestBodies/verifyCriminalCountiesReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/verifyCriminalCountiesReportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/bank/connect/url:
    post:
      tags:
        - Methods
      summary: Get Financial Connect URL 
      description:
            Financial account verification is a method of identity proof. This method lets a user verify their identity by logging into their choice of financial account.
            Post successfully logging into their respective financial accounts (Powered by Mastercard), the user's details fetched from the financial institutions, are then matched with the details in the user object.
                    
             
            This endpoint can be utilized to generate a "Connect URL". Using this link, a user can connect their financial account(s) to prove their identity verification.
        
        
            **Notes:-**
        
            1. Post a successful login and PII verification, the user's PII (Full Legal Name) becomes immutable in the User Object.
        
            2. The default limit is set to one (immutable), which means only one financial account will be processed to check ownership per connect url. The default limit can only be changed if Financial Account Owner Verification is utilised through Medallion workflows.

      requestBody:   
             $ref: "#/components/requestBodies/bankConnectUrl"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/bankConnectUrlResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /identity/bank/account/result:
    post:
      tags:
        - Methods
      summary: Get Financial Account Owner Match Result 
      description:   
            This API call returns the account owner match result for the respective userAccessCode. Based on the connected financial account(s) by the customer using [Bank Connect URL](#tag/Methods/paths/~1identity~1bank~1connect~1url/post), the result will be generated.
            
            
            If the details in the User Object matches the information on the financial account - the API
            call returns the overall PII match result in the `is_owner_matched` key along with match indications for each component of the user's name and their respective match percentages. 
        
        
            Response from this endpoint will contain only the latest attached account owners' result.

      requestBody:   
             $ref: "#/components/requestBodies/bankAccountOwnerMatchResult"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/bankAccountOwnerMatchResultResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []
  
  /identity/bank/account/scan/data:
    post:
      tags:
        - Methods
      summary: Verify Financial Account Ownership 
      requestBody:
          $ref: "#/components/requestBodies/documentScanData"
      description:
           This endpoint is used to determine if the user data that has been retrieved from the linked financial account matches 
           an actual individuals identifiable information in Authoritative databases.
        
        
           This call is necessary to make sure that the Identity verification is complete for the 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.


           There is a data consistency check built into Verify Financial Account Ownership that ensures the name of the account owner matches the full name in the User Object.

        
           In instances where a user provides a different name than the linked financial account has, the user will not be able to verify financial account owner. 

        
           In instances where the users full name provided by the linked financial account does not match the user provided PII, 
           please check the Get Test Results object after Financial account ownership match is successful and map the full name from the `bankAccountOwnerMatchResult` parameters to the User Object using the [Update User method](#tag/Methods/paths/~1user~1update/put).

      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                  $ref: "#/components/schemas/verifyBankAccountOwnershipResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /reauthenticate/user/eligibility:
    post:
      tags:
        - Methods
      summary: ReAuthenticate Eligibilty (Beta)
      description:
        The ReAuthenticate feature offers a convenient option for users who have previously been verified through Medallion. It allows them to quickly re-verify their identity without the need to repeat the entire verification process. <br><br>
        This endpoint verifies if a user is eligible for ReAuthenticate. If not eligible, an appropriate error message is returned in the response. <br><br>
        The eligibility criteria for ReAuthenticate are as follows -

        - The user must have at least one valid email or phone number on record.<br>

        - The user must have verified their identity by uploading a Government-issued ID through Medallion.<br>
           - The uploaded ID must be accompanied by a selfie.<br>
           - The confidence rating and face match score must meet the specified criteria.
        
      requestBody:   
             $ref: "#/components/requestBodies/reauthEligibilty"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/reauthEligibiltyResponse"
       "400":
          $ref: "#/components/responses/badRequestReauthenticate"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /reauthenticate/user/link:
    post:
      tags:
        - Methods
      summary: ReAuthenticate Generate Link (Beta)
      description:
        This endpoint facilitates the creation of a reauthentication link for eligible users.<br>
        It requires the field `redirectUrl` to be a valid SSL secured URL.
        Additionally, an optional field, `expiry`, allows for setting a custom expiration time in Unix timestamp format, with the default set to `24 hours`.<br><br>

        A ReAuthenticate link will look like - `https://verify.authenticating.com/reauthenticate/<REAUTHENTICATE_SESSION_UUID>` without `<>`.
      requestBody:   
             $ref: "#/components/requestBodies/reauthGenerateLink"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/reauthGenerateLinkResponse"
       "400":
          $ref: "#/components/responses/badRequestReauthenticate"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []

  /reauthenticate/session/status:
    get:
      tags:
        - Methods
      summary: ReAuthenticate Session Status (Beta)
      description:
            This endpoint is utilized to verify the status of a ReAuthenticate link. For instance, a ReAuthenticate link will resemble - `https://verify.authenticating.com/reauthenticate/<REAUTHENTICATE_SESSION_UUID>` without the `<>`.<br><br>

            To retrieve the status of any ReAuthenticate session, the `REAUTHENTICATE_SESSION_UUID` obtained from a ReAuthenticate Link must be passed in a header named `X-Reauthenticate-Session`.<br>

            The response will consist of the overall ReAuthenticate status, along with details on selfie and email/phone verification status, and the number of attempts utilized.

      requestBody:   
             $ref: "#/components/requestBodies/reauthSessionStatus"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/reauthSessionStatusResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - ReauthenticateSessionUUID: []

  /company/webhook:
    post:
      tags:
        - Webhooks
      summary: Add a New Webhook Subscription
      description: |
        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.

        ### Webhook Events

        | Event | Description |
        |-------------- | --------------|
        |USER_PII_UPDATE | User's PII has been updated. |
        |SELF_VERIFICATION_TRY_STATUS | Medallion™ try status.|
        |CRIMINAL_REQUEST_STATUS_UPDATE | COUNTY CRIMINAL, COUNTY CIVIL, FEDERAL CRIMINAL and FEDERAL CIVIL updates for a particular search request pleaced.|
        |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.|
        |USER_PDF_REPORT_GENERATION | Each stage of user pdf report generation. There are 3 stages: "INITIATED", "COMPLETED" and "FAILED". The "reportLink" and "expires" fields are only present  at "COMPLETED" stage.|


        ## Webhook Payload Structures:

        #### User profile update:
        ```
        {
            "id": "string",
            "event": "USER_PII_UPDATE",
            "eventDate": "2020-12-07T19:18:32.076Z",
            "order": {
                "userAccessCode": "string",
            }
        }
        ```

        #### Medallion™ and Review ID/Passport:
        ```
        {
            "id": "string",
            "event": "SELF_VERIFICATION_TRY_STATUS" / "UPLOAD_ID_ENHANCED_REVIEW_STATUS" / "UPLOAD_PASSPORT_ENHANCED_REVIEW_STATUS",
            "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 Requests Completed for a User:
        ```
        {
          "id": "string",
          "event": "ALL_CRIMINAL_REQUESTS_COMPLETE",
          "eventDate": "2020-12-07T19:18:32.076Z",
          "order": {
            "userAccessCode": "string"
          }
        }
        ```

        #### User PDF Report Generation:
        ```
        {
            "id": "string",
            "event": "USER_PDF_REPORT_GENERATION",
            "eventDate": "2020-12-07T19:18:32.076Z",
            "order": {
                "userAccessCode": "string",
                "status": "string",
                "reportUUID": "string",
                "reportLink": "string",
                "expires": "2020-12-07T19:18:32.076Z"
            }
        }
        ```

      requestBody:
              $ref: "#/components/requestBodies/addWebhookSubscription"
      responses:
        "200":
          description: success
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/successResponse"
        "400":
          $ref: "#/components/responses/badRequest"
        "401":
          $ref: "#/components/responses/unauthorized"

      security:
        - bearerAuth: []   

  /user/initiate/pdf/report:
    post:
      tags:
        - Methods
      summary: Initiate User PDF Report
      description:
            This method lets the company admin to initiate a request to generating report in PDF format for a user. This report  include basic information about the user, the verification performed on them, and who ran a particular verifications etc. This report generation will take 10-20 secs. Once a request is initiated, the admin get report information by calling [Fetch Generated User Report](#tag/Methods/paths/~1user~1retrieve~1pdf~1report/post) method.  


            **Notes:-**
        
            1. For each successful request, the admin must wait 5 minutes to initiating another request in order to generate a new report for the same user.
            
            2. The "sendMail" field is optional. If it is provided at the time of making a request, we  send a confirmation email once the report is ready along with generated link.
            
      requestBody:   
             $ref: "#/components/requestBodies/initiateUserPdfReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/initiateUserPdfReportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"
      security:
        - bearerAuth: []
  
  /user/retrieve/pdf/report:
    post:
      tags:
        - Methods
      summary: Fetch Generated User Report
      description:
            This method is used to retrieve the generated PDF report of a user. The report generation process consists of three stages. During the generation process, the report is in the "In_progress" stage. Upon successful generation, the stage transitions to "Completed." If any failure occurs during generation, the stage is labeled as "Failed." Once the report generation is complete, a report link is attached to the response. This link remains active for 24 hours. After it expires, the admin needs to invoke the [Initiate User PDF Report](#tag/Methods/paths/~1user~1initiate~1pdf~1report/post) method to generate a new report for the same user.
      requestBody:   
             $ref: "#/components/requestBodies/fetchUserPdfReport"
      responses:
       "200":
          description: success
          content:
            application/json:
              schema:
                   $ref: "#/components/schemas/fetchUserPdfReportResponse"
       "400":
          $ref: "#/components/responses/badRequest"
       "401":
          $ref: "#/components/responses/unauthorized"
      security:
        - bearerAuth: []

components:
  schemas:
    successResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true

    badResponse:
      type: object
      properties:
        errorMessage:
          type: string

    badResponseReauthenticate:
      type: object
      properties:
        success:
          type: boolean
        code:
          type: string
        errorMessage:
          type: string
      example:
        {
          "success": false,
          "code": "RE_AUTHENTICATE_ERROR_1",
          "errorMessage": "User does not have a valid email or phone."
      }

    exceptionFailed:
      type: object
      properties:
        errorMessage:
          type: string

    unauthorized:
     type: object
     properties:
       errorMessage:
        type: string

    createUser:
      type: object
      required:
        - firstName
        - lastName
        - dob
        - email
      properties:
        firstName:
          description: First name of the user
          type: string
          minItems: 1
          example: Jonathan
        middleName:
          description: Middle name of the user
          type: string
          example: Gob
        lastName:
          description: Last name of the user
          type: string
          minItems: 1
          example: Zinx
        dob:
          description: Date of Birth
          type: string
          format: "DD-MM-YYYY"
          minItems: 1
          example: 22-05-1990
        email:
          type: string
          format: email
          minItems: 1
          description: Email address of the user
          example: jonathan@authenticating.com
        phone: 
          type: string
          description: Phone number of the user
          example: "+19321765432"
        houseNumber:
          description: House Number of the user
          type: string
          example: 504A
        streetName:
          description: Street Name of the user
          type: string
          example: 121, 9th ST
        address:
          description: Address of the user (**DEPRECATED**, *add houseNumber and streetName instead*)
          type: string
          example: 121, 9th ST, APT 12111
        city:
          type: string
          description: City of the user
          example: Santa Monica
        state:
          description: State of the user
          type: string
          example: CA
        zipCode:
          description: Zip Code of the user
          type: string
          example: 90411
        ssn:
          description: Social Security Number of the user (Full 9 digit SSN or First 5 digits or Last 4 digits)
          type: string
          example: '123456789'
        country:
          description: Country of the user (ISO 3166-1 alpha-3)
          type: string
          example: 'USA'

    createUserConsent:
      type: object
      required:
        - userAccessCode
        - isBackgroundDisclosureAccepted
        - GLBPurposeAndDPPAPurpose
        - FCRAPurpose
        - fullName
      properties:
        userAccessCode:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21
        isBackgroundDisclosureAccepted:
          type: boolean
          minItems: 1
          example: 1
        GLBPurposeAndDPPAPurpose:
          type: boolean
          minItems: 1
          example: 1
        FCRAPurpose:
          type: boolean
          minItems: 1
          example: 1
        fullName:
          type: string
          minItems: 1
          example: John Wick

    createUserResponse:
      type: object
      properties:
        userAccessCode:
          type: string
          format: UUID
          example: 100385a1-4308-49db-889f-9a898fa88c21

    updateUser:
      type: object
      required:
        - userAccessCode
      properties:
        userAccessCode:
          type: string
          format: UUID
          example: 100385a1-4308-49db-889f-9a898fa88c21
        firstName:
          description: First name of the user
          type: string
          example: Jonathan
        middleName:
          description: Middle name of the user
          type: string
          example: Gob
        lastName:
          description: Last name of the user
          type: string
          example: Zinx
        dob:
          description: Date of Birth
          type: string
          format: "DD-MM-YYYY"
          example: 22-05-1990
        houseNumber:
          description: House Number of the user
          type: integer
          example: 504
        streetName:
          description: Street Name of the user
          type: string
          example: 121, 9th ST
        address:
          description: Address of the user(**DEPRECATED**, *add houseNumber and streetName instead*)
          type: string
          example: 121, 9th ST, APT 12111
        city:
          type: string
          description: City of the user
          example: Santa Monica
        state:
          description: State of the user
          type: string
          example: CA
        zipCode:
          description: Zip Code of the user
          type: string
          example: 90411
        ssn:
          description: Social Security Number of the user (Full 9 digit SSN or First 5 digits or last 4 digits)
          type: string
          example: 123456789

    userMedallionStatusResponse : 
      type: object
      properties:
        userAccessCode:
          type: string
          format: UUID
          example: 100385a1-4308-49db-889f-9a898fa88c21
        medallion:
          type: object
          properties:
            currentSession:
              type: object
              properties:
                uuid:
                  type: string
                  format: UUID
                  example: 45354e2b-5047-4308-addc-ee2efe9a7871
                workflowId:
                  type: string
                  example: JUvcaySpaG
                status:
                  type: string
                  enum: ["INITIALIZED","IN_PROGRESS","COMPLETED"]
                  example: "IN_PROGRESS"
                kba:
                  type: object
                  properties: 
                    status:
                      type: string
                      enum: ["PENDING","COMPLETED"]
                      example: "PENDING"
                    success:
                      type: boolean
                      example: "false"
                    mandatory:
                      type: boolean
                      example: "true"
                    attempts:
                      type: object
                      properties:
                        allowed:
                          type: number
                          example: 2
                        availed:
                          type: number
                          example: 1
                govtId:
                  type: object
                  properties: 
                    status:
                      type: string
                      enum: ["PENDING","COMPLETED"]
                      example: "COMPLETED"
                    success:
                      type: boolean
                      example: "false"
                    mandatory:
                      type: boolean
                      example: "true"
                    attempts:
                      type: object
                      properties:
                        allowed:
                          type: number
                          example: 2
                        availed:
                          type: number
                          example: 2
                bank:
                  type: object
                  properties: 
                    status:
                      type: string
                      enum: ["PENDING","COMPLETED"]
                      example: "PENDING"
                    success:
                      type: boolean
                      example: "false"
                    mandatory:
                      type: boolean
                      example: "false"
                    attempts:
                      type: object
                      properties:
                        allowed:
                          type: number
                          example: 2
                        availed:
                          type: number
                          example: 1
                expireOn:
                  type: date
                  example: "2023-12-01T08:28:13.593Z"
        allSessions:
          type: object
          properties:
            kba:
              type: object
              properties:
                attempts:
                  type: number
                  example: 1
            govtId:
              type: object
              properties:
                attempts:
                  type: number
                  example: 2
            bank:
              type: object
              properties:
                attempts:
                  type: number
                  example: 1


    verifyPhoneCode:
      type: object
      required:
        - userAccessCode
        - code
      properties:
        userAccessCode:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21
        code:
          type: integer
          example: 12131

    comparePhotos:
      type: object
      required:
        - userAccessCode
        - targetImage
        - documentFaceMatch
      properties:
        userAccessCode:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21
        sourceImage:
          type: string
          format: base64
          example: BASE_64_ENCODED_IMAGE_STRING_GOES_HERE
        targetImage:
          type: string
          format: base64
          example: BASE_64_ENCODED_IMAGE_STRING_GOES_HERE
        documentFaceMatch:
          type: boolean
          example: true

    userAccessCode:
      type: object
      required:
        - userAccessCode
      properties:
        userAccessCode:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21

    countyCriminalRequest: 
      type: object
      required:
        - userAccessCode
        - countyUUID
      properties:
        userAccessCode:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21
        countyUUID:
          type: string
          format: UUID
          minItems: 1
          example: 200385a1-4308-49db-889f-9a898fa88c21

    countyCivilRequest: 
      type: object
      required:
        - userAccessCode
        - countyUUID
      properties:
        userAccessCode:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21
        countyUUID:
          type: string
          format: UUID
          minItems: 1
          example: 200385a1-4308-49db-889f-9a898fa88c21

    uniqueIdentifierWithUAC: 
      type: object
      required:
        - userAccessCode
        - uniqueIdentifier
      properties:
        uniqueIdentifier:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21
        userAccessCode:
          type: string
          format: UUID
          minItems: 1
          example: 200385a1-4308-49db-889f-a9898fa88c22

    uniqueIdentifier: 
      type: object
      required:
        - uniqueIdentifier
      properties:
        uniqueIdentifier:
          type: string
          format: UUID
          minItems: 1
          example: 100385a1-4308-49db-889f-9a898fa88c21

    identityKba:
      type: object
      properties:
        data:
          type: object
          properties:
            IDMSessionId:
              type: string
              example: 8453244f2469e58a
            IDMKBAResponse:
              type: object
              properties:
                KBAQuestion:
                  type: array
                  items:
                    type: object
                    properties:
                      QuestionId:
                        type: integer
                        example: 1
                      Question:
                        type: string
                        example: What color was your 2012 BMW 560?
                      QuestionType:
                        type: string
                        example: VehicleColor
                      Options:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            option:
                              type: string
                        example:
                          - id: 1
                            option: DARK GREEN
                          - id: 2
                            option: SILVER
                          - id: 3
                            option: BLACK
                          - id: 4
                            option: WHITE
                          - id: 5
                            option: NONE OF THE ABOVE
                KBAStatus:
                  type: object
                  properties:
                    QuestionsAnswered:
                      type: integer
                      example: 0
                    NoOfQuestions:
                      type: integer
                      example: 1
                IsKbaEnabled:
                  type: string
                  example: "1"

        attemptNumber:
          type: integer
          example: 1
        success:
          type: boolean
          example: true

    kbaVerification:
      type: object
      required:
        - IDMSessionId
        - userAccessCode
        - questionAnswers
      properties:
        IDMSessionId:
          type: string
          example: 80e3bad826se1e6f
        userAccessCode:
          type: string
          format: UUID
          example: 9cg686b3-ccb3-497c-a298-3830ea8a1c96
        questionAnswers:
          type: array
          items:
            type: object
            properties:
              QuestionId:
                type: integer
              AnswerId:
                type: integer
          example:
            - QuestionId: 1
              AnswerId: 2
            - QuestionId: 2
              AnswerId: 3
            - QuestionId: 3
              AnswerId: 3
            - QuestionId: 4
              AnswerId: 5
            - QuestionId: 5
              AnswerId: 5

    kbaVerificationResponse:
      type: object
      properties:
        correct_answers:
          type: integer
        total_questions:
          type: integer
        success:
          type: boolean
      example:
        correct_answers: 2
        total_questions: 5
        success: true

    scoreInputs:
      type: object
      required:
        - userAccessCode
      properties:
        userAccessCode:
          type: string
          format: UUID
          example: 9cg686b3-ccb3-497c-a298-3830ea8a1c96

    scoreInputsResponse:
      type: object
      properties:
        address:
          type: string
        city:
          type: string
        region:
          type: string
        country:
          type: string
        postalCode:
          type: string
        givenName:
          type: string
        familyName:
          type: string
        phone:
          type: string
        email:
          type: string
        risk:
          type: double
      example:
        address : "self"
        city : "self"
        region : "self"
        country : "self"
        postalCode : "self"
        givenName : "self"
        familyName: "self"
        phone : "tangled"
        email : "household"
        risk": 0.31

    verifyInputs: 
      type: object
      required:
        - userAccessCode
      properties:
        userAccessCode:
          type: string
          format: UUID
          example: 9cg686b3-ccb3-497c-a298-3830ea8a1c96
        emails:
          type: Array of Strings
          example: ["john@acmecorp.com", "smith@acmecorp.com"]
        phones:
          type: Array of Strings
          example: ["+19033244209", "+14033254209"]
        socialURL:
          type: URL
          example: "https://linkedin.com/in/therock"
        socialType:
          type: string
          enum: ["twitter","github","linkedin"]

    verifyInputsResponse: 
      type: object
      properties:
        emails: object
        phones: array
        name: object
        socialProfiles: object
        employment: object
      example:
            {
                "emails": [
                    {
                        "md5": "4ae8f6dd533de3c08481d4cc9c10e80d",
                        "sha1": "f9401124f3252a97244bd84bd960b167a20116f3",
                        "sha256": "8b458dd2661e2cb2f40d6676eac54f8cabc83fde59229d1fe1425d0a83c21c1f",
                        "firstSeenMs": 1350021600,
                        "lastSeenMs": 1640415600,
                        "observations": 201,
                        "confidence": 0.97
                    },
                    {
                        "md5": "553bce2c0b2724221814888ae0e479ab",
                        "sha1": "38fade1f0e466ff6b54f70503475f4ccb0e499d4",
                        "sha256": "bcd7d4c554ff07ece72cd48d9627b1121f8df54ba0feb78e925968cee0c46ce4",
                        "firstSeenMs": 1472845910000,
                        "lastSeenMs": 1656601156000,
                        "observations": 6,
                        "confidence": 0.99
                    }
                ],
                "phones": [
                    {
                        "label": "work",
                        "value": "+19702255555",
                        "firstSeenMs": 1350021600,
                        "lastSeenMs": 1640415600,
                        "observations": 100,
                        "confidence": 0.65
                    }
                ],
                "name": {
                    "givenName": "Sally",
                    "familyName": "Smith"
                },
                "socialProfiles": {
                    "twitterUrl": "https://twitter.com/twitter",
                    "linkedInUrl": "https://www.linkedin.com/in/sallysmi"
                },
                "employment": {
                    "current": true,
                    "company": "ID Fraud, Inc.",
                    "title": "Chief Technology Officer"
                }
            }

    documentScan:
      type: object
      required:
        - userAccessCode
        - idFront
        - idBack
        - country
      properties:
        userAccessCode:
          type: string
          format: UUID
        idFront:
          type: string
          format: base64
        idBack:
          type: string
          format: base64
        country:
          type: integer
      example:
        userAccessCode: USER_ACCESS_CODE
        idFront: BASE_64_STRING
        idBack: BASE_64_STRING
        country: 0

    documentScanEnhanced:
      type: object
      required:
        - userAccessCode
        - idFront
        - idBack
        - countryCode
      properties:
        userAccessCode:
          type: string
          format: UUID
        idFront:
          type: string
          format: base64
        idBack:
          type: string
          format: base64
        countryCode:
          type: string
      example:
        userAccessCode: USER_ACCESS_CODE
        idFront: BASE_64_STRING
        idBack: BASE_64_STRING
        countryCode: "US"

    documentScanResponse:
      type: object
      properties:
        success:
          type: boolean
        attempts:
          type: integer
      example:
        success: true
        attempts: 1

    documentScanStatusResponse:
      type: object
      properties:
        success:
          type: boolean
        result:
          type: string
        numAttemptsLeft:
          type: integer
        description:
          type: string
      example:
        success: true
        result: complete
        numAttemptsLeft: 0
        description: The id was received and successfully parsed.

    verifyUploadIDAndPassportResponse: 
      type: object
      properties:
        success:
          type: boolean
        IDVScore:
          type: object
          properties:
            ssn: integer
            name: integer
            dob: integer
      example:
        success: true
        IDVScore:
            ssn: null
            name: 99
            dob: 99

    verifyBankAccountOwnershipResponse: 
      type: object
      properties:
        success:
          type: boolean
      example:
        success: true

    passportScan:
      type: object
      required:
        - userAccessCode
        - idFront
      properties:
        userAccessCode:
          type: string
          format: UUID
        idFront:
          type: string
          format: base64
      example:
        userAccessCode: USER_ACCESS_CODE
        idFront: BASE_64_STRING

    passportScanEnhanced:
      type: object
      required:
        - userAccessCode
        - idFront
        - countryCode
      properties:
        userAccessCode:
          type: string
          format: UUID
        idFront:
          type: string
          format: base64
        countryCode:
          type: string
        documentType:
         type: string
         default: "PP"
         enum: ["PP", "ID"]
      example:
        userAccessCode: USER_ACCESS_CODE
        idFront: BASE_64_STRING
        countryCode: "US"
        documentType: "PP"

    verifyInternationalPII:
      type: object
      required:
        - userAccessCode
        - type
      properties:
        userAccessCode:
          type: string
          format: UUID
        searchType:
          type: integer
          default: 1
        idType:
          type: integer
        country:
          type: string
          format: ISO-3166-1 ALPHA-3
        nationalId:
          type: string
      example:
        userAccessCode: USER_ACCESS_CODE
        searchType: 1
        idType: 5
        country: "IND"
        nationalId: "F1038203P"

    verifyInternationalPIIResponse: 
      type: object
      properties:
        country:
          type: string
        first_name:
          type: string
        first_name_verified:
          type: boolean
        last_name:
          type: string
        last_name_verified:
          type: boolean
        national_id:
          type: string
        national_id_verified:
          type: boolean
        street:
          type: string
        street_verified:
          type: boolean
        city:
          type: string
        city_verified:
          type: boolean
        state:
          type: string
        state_verified:
          type: boolean
        postal_code:
          type: string
        postal_code_verified:
          type: boolean
      example:        
        country: United Kingdom
        first_name: John
        first_name_verified: true
        last_name: Doe
        last_name_verified: true
        national_id: 123456G89
        national_id_verified: true
        street: 121, 9th ST
        street_verified: false
        city: Manchester
        city_verified: false
        state: null
        state_verified: null
        postal_code: null
        postal_code_verified: null

    watchlistReportResponse:
      type: object
      properties:
        NumberOfRecordsFound:
          type: integer
        WatchListRecords:
          type: object
          properties:
              WatchListRecord:
                type: array
                items:
                 properties:
                    Score:
                      type: integer
                    FullName:
                      type: string
                    Name:
                      type: object
                      properties:
                        FirstName:
                          type: string
                        MiddleName:
                          type: string
                        LastName:
                          type: string
                        NameSuffix:
                          type: string
                        Title:
                          type: string
                    PlaceOfBirth:
                      type: integer
                    DateOfBirth:
                      type: string
                    Eyes:
                      type: string
                    Hair:
                      type: string
                    Weight:
                      type: string
                    Height:
                      type: string
                    Marks:
                     type: string
                    Sex:
                     type: string
                    Citizenship:
                      type: string
                    PageURL:
                      type: integer
                    Source:
                      type: string
                    Type:
                      type: integer
                    Offense:
                      type: integer
                    ListingDate:
                      type: string
                    Remarks:
                      type: string
                    AliasName:
                      type: string

      example:
        {
          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"
             }
           ]
        }
      }

    criminalReportResponse:
     type: object
     properties:
       result:
        type: object
        properties:
         Candidates:
          type: object
          properties:
           Candidate:
            type: array
            items:
             type: object
             properties:
              Subject:
               type: object
               properties:
                 FullName:
                  type: string
                 DOB:
                  type: integer
                  format: TimeStamp
                 Image:
                  type: string
                  format: URL
                 Category:
                  type: string
                 Source:
                  type: string
                 Sex:
                  type: string
                 Race:
                  type: string
                 HairColor:
                  type: string
                 EyeColor:
                  type: string
                 Weight:
                  type: string
                 Height:
                  type: string
                 Age:
                  type: integer
                 CaseNumber:
                  type: integer
                 State:
                  type: string
                 Address:
                  type: string
                 Comments:
                  type: string
                 Alias:
                  type: string

              Offenses:
               type: object
               properties:
                Offense:
                 type: object
                 properties:
                    Description :
                     type: string
                    Statute:
                      type: string
                    ConvictionDate:
                      type: string
                    ConvictionLocation:
                      type: string
       message:
          type: string
     example:
       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"

    verifySsnResponse:
     type: object
     properties:
       isSSNValid:
        type: boolean
       userCounties:
        type: array
        items:
         type: object
         properties:
           State:
            type: string
           County:
            type: string
           DateFirstSeen:
            type: object
            properties:
             Day:
              type: integer
             Month:
              type: integer
             Year:
              type : integer

           DateLastSeen:
            type: object
            properties:
             Day:
               type: integer
             Month:
              type: integer
             Year:
              type : integer
           Price:
            type: object
            properties:
             search_fee:
              type: integer
             data_fee:
              type: integer
             ten_year_plus_surcharge_fee:
              type : integer
             access_fee:
              type: integer
     example:
        "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.4375,
                    "data_fee": 5,
                    "ten_year_plus_surcharge_fee": 3,
                    "access_fee": 5
                }
            }
          ]

    getTestResultResponse:
     type: object
     properties:
      user:
       type: object
       properties:
         userAccessCode:
           type: string
           format: UUID
         firstName:
          type: string
         middleName:
          type: string
         lastName:
          type: string
         birthday:
          type: string
         year:
          type: string
         month:
          type: string
         day:
          type: string
         email:
          type: string
          format: email
         phone:
          type: integer
         houseNumber:
          type: integer
         streetName:
          type: string
         address:
          type: string
         city:
          type: string
         state:
          type: string
         zipCode:
          type: string
         country:
          type: string
         street:
          type: string
         province:
          type: string
         buildingNumber:
          type: string
         ssnAvailable:
          type: boolean
      contactProof:
       type : object
       properties:
         verifiedPhone:
          type: boolean
         verifiedEmail:
           type: boolean
      photoProof:
       type: object
       properties:
         face_match_score:
           type: integer
         liveness:
          type: object
          properties:
            score:
              type: string
            assessment:
              type: string
              default: null
              enum: [ "NotLive", "Live"]
            error:
              type: string
            error_code:
              type: string

      company:
       type: object
       properties:
         companyName:
          type: string
         companyId:
          type: string
      identityProof:
       type: object
       properties:
         numQuestions:
          type: string
         score:
          type: integer
         status:
          type: boolean
      backgroundCheck:
       type: object
       properties:
         hasCriminalRecord:
          type: boolean
         hasGlobalWatchlistRecord:
          type: boolean

      idVerification:
       type: object
       properties:
         status:
          type: string
         description:
          type: string
      SSNVerification:
       type: object
       properties:
         isSSNVerified:
          type: boolean
      scannedUser:
       type: object
       properties:
         Address:
          type: string
         Audit:
          type: string
         CSC:
          type: string
         Class:
          type: string
         CountryShort:
          type: string
         County:
          type: string
         DateOfBirth:
          type: string
         DateOfBirth4:
          type: string
         Endorsements:
          type: string
         ExpirationDate:
          type: integer
         ExpirationDate4:
          type: integer
         Eyes:
          type: string
         FatherName:
          type: string
         Fee:
          type: string
         Hair:
          type: string
         Height:
          type: string
         Id:
          type: string
         IdCountry:
          type: string
         IssueDate:
          type: string
         IssueDate4:
          type: string
         IssueDateLocal:
          type: string
         MotherName:
          type: string
         NameFirst:
          type: string
         NameLast:
          type: string
         NameLast1:
          type: string
         NameLast2:
          type: string
         NameMiddle:
          type: string
         NameSuffix:
          type: string
         Nationality:
          type: string
         Original:
          type: integer
         PlaceOfBirth:
          type: integer
         PlaceOfIssue:
          type: string
         Restriction:
          type: string
         Sex:
          type: string
         SigNum:
          type: string
         SocialSecurity:
          type: string
         State:
          type: string
         Text1:
          type: string
         Text2:
          type: string
         Text3:
          type: string
         Type:
          type: string
         Weight:
          type: string
         Zip:
          type: string
         license:
          type: string
         CardType:
          type: string
         TemplateType:
          type: string
         IsAddressCorrected:
          type: boolean
         IsAddressVerified:
          type: boolean
         IsBarcodeRead:
          type: boolean
         IsIDVerified:
          type: boolean
         IsOcrRead:
          type: boolean
         DocumentDetectedName:
          type: string
         DocumentDetectedNameShort:
          type: string
         DocumentVerificationConfidenceRating:
          type: integer
         AuthenticationObject:
          type: string
         AuthenticationResult:
          type: string
         AuthenticationResultSummary:
          type: array

      verifyUI:
       type: object
       properties:
         passport:
            type: object
         scanneduser:
          type: object
          properties:
            attempts:
             type: integer
            result:
             type: string
            confidence_rating:
             type: string
            id_class:
             type: string
            id_type:
             type: string
            id_front:
             type: string
             format: url
            face_image:
             type: string
             format: url
            signature_image:
             type: string
             format: url
            selfie_image:
              type: string,
              format: url
            first_name:
             type: string
            middle_name:
             type: string
            last_name:
             type: string
            address:
             type: string
            city:
             type: string
            state:
             type: string
            zip:
             type: string
            dob:
             type: string
            gender:
             type: string
            height:
             type: string
            weight:
             type: string
            id_number:
             type: string
            id_issued_date:
             type: string
            id_expiration_date:
             type: string
            is_barcode_read:
             type: boolean
            is_ocr_read:
             type: boolean
            liveness_result:
             type: object
             properties:
                score:
                 type: integer
                livenessAssessment:
                 type: string
            liveness_error:
             type: string
            liveness_error_code:
             type: string
            face_match_score:
             type: integer
            method:
             type: string

      passportData:
       type: object
      FEINVerification:
       type: array
      professionalLicense:
       type: array
      education:
       type: array
      employment:
       type: array
      consent:
       type: object
       properties:
         is_report_checked:
          type: integer
         background_check_disclosure_accepted:
          type: integer
         fcra_purpose:
          type: integer
         glb_purpose_and_dppa_purpose:
          type: integer
      identityAttempts:
        type: object
        properties:
          kba:
            type: integer
          passport:
            type: integer
          government_id:
            type: integer
          financial_account_login*:
            type: integer
     example:
      {
        "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": "Beverly Hills",
          "state": "CA",
          "zipCode": "90121",
          "country": "USA",
          "street": null,
          "province": null,
          "buildingNumber": null,
          "ssnAvailable": false
        },
        "contactProof": {
          "verifiedPhone": true,
          "verifiedEmail": false
        },
        "photoProof": {
          "face_match_score": 100,
          "liveness": {
            "score": 100,
            "assessment": "Live",
            "error": null,
            "error_code": null
          }
        },
        "identityProof": {
          "numQuestions": "4",
          "score": 75,
          "status": true
        },
        "backgroundCheck": {
          "hasCriminalRecord": false,
          "hasGlobalWatchlistRecord": false
        },
        "idVerification": {
          "status": "PASS",
          "description": "The data on the ID or Passport provided was verified in authoritative databases."
        },
        "SSNVerification": {
          "isSSNVerified": false
        },
        "FEINVerification": [
          {
            "uuid": "string",
            "FEINMatchFound": true,
            "FEINumber": 461122122,
            "isCorrectFEINumber": true,
            "DUNSNumber": 901219219,
            "isCorrectDUNSNumber": true,
            "businessName": "Stark Industries Inc.",
            "isCorrectBusinessName": true,
            "isBusinessContact": true
          },
          {
            "uuid": "string",
            "FEINMatchFound": false,
            "FEINumber": 461122123,
            "isCorrectFEINumber": null,
            "DUNSNumber": 607477367,
            "isCorrectDUNSNumber": null,
            "businessName": "Acme Inc.",
            "isCorrectBusinessName": null,
            "isBusinessContact": null
          }
        ],
        "company": {
          "companyName": "ABC 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": "JOHNSON",
          "NameLast1": "",
          "NameLast2": "",
          "NameMiddle": "SMITH",
          "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": [],
          "id_front": "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
          "id_back": "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
        },
        "passportData": {
          "Address2": "P<JOHNSON<<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": "JOHNSON",
          "NameLast_NonMRZ": "JOHNSON",
          "NameMiddle": "",
          "Nationality": "UTO",
          "NationalityLong": "",
          "PassportNumber": "WG3000403",
          "PersonalNumber": "",
          "Sex": "M",
          "AuthenticationObject": null,
          "AuthenticationResult": "Attention",
          "AuthenticationResultSummary": ["Document Expired"],
          "SignImage": null,
          "id_front" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
          "face_image" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
          "signature_image" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
        },
        "verifyUI": {
          "passport": {
            "attempts": 1,
            "result": "complete",
            "authentication_result": "Passed",
            "firstname": "Patrick",
            "middlename": "",
            "lastname": "JOHNSON",
            "address": "P<JOHNSON<<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,
            "id_front" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "face_image" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "signature_image" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "selfie_image" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "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": "JOHNSON",
            "address": "123 Hollywood Boulevard, CA 90121",
            "city": "Beverly 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,
            "id_front": "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "id_back": "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "face_image" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "signature_image" : "https://authenticate-documentation-production.s3-us-west-1.amazonaws.com/images/ID-good-01.png",
            "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,
          "fcra_purpose": 1,
          "glb_purpose_and_dppa_purpose": 1
        },
        "bankAccountOwnerMatchResult": {
          "attempts": 1,
          "is_owner_matched": true,
          "account": [
              {
                  "owner_name": "Patrick Middleton",
                  "first_name": "Patrick",
                  "first_name_score": 100,
                  "last_name": "Middleton",
                  "last_name_score": 100,
                  "middle_name": "",
                  "middle_name_score": 0,
                  "phones": null,
                  "first_name_match": true,
                  "last_name_match": true,
                  "middle_name_match": false
              }
          ],
          "matched_at": "2023-10-24T18:22:43.000Z"
        },
        identityAttempts":{
            "kba": 0,
            "passport": 0,
            "government_id": 0,
            "financial_account_login": 0
        }
      }

    employmentVerificationRequest:
     type: object
     required:
       - userAccessCode
       - employmentList
     properties:
       userAccessCode:
         type: string
         format: UUID
       employmentList:
        type: array
        items:
         type: object
         properties:
           employerName:
            type: string
           employerPhone:
            type: string
           employerAddress:
            type: string
           employerAddressTown:
            type: string
           employerAddressCountry:
            type: string
           employerAddressStateProvince:
            type: string
           employerAddressPostalCode:
            type: string
           jobTitle:
            type: string
           dateEmployedFrom:
            type: string
            format: "DD-MM-YYYY"
           dateEmployedTo:
            type: string
            format: "DD-MM-YYYY"
           supervisorName:
            type: string
           supervisorContactInfo:
            type: string
           currentEmployment:
            type: string
           contractType:
            type: string
           manualVerification:
            type: boolean
           uniqueIdentifier:
            type: string
            format: UUID
     example:
      "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21"
      "employmentList": [
        {
          "employerName":"Enterprise One",
          "employerPhone":"0000000000",
          "employerAddress":"221B Baker Street",
          "employerAddressTown":"Los angeles",
          "employerAddressCountry":"United States",
          "employerAddressStateProvince":"CA",
          "employerAddressPostalCode":"112223",
          "jobTitle":"Manager",
          "dateEmployedFrom":"28-06-2018",
          "dateEmployedTo":"28-06-2019",
          "supervisorName":"Steve Rogers",
          "supervisorContactInfo":"9000000001",
          "currentEmployment":"1",
          "contractType":"EMPLOYMENT",
          "manualVerification":false,
          "uniqueIdentifier":"B12385a1-4308-49db-889f-9a898fa88c21"
        }
      ]

    employmentVerificationRequestResponse:
     type: array
     items:
      type: object
      properties:
       employer_name:
        type: string
       employer_name_verified:
        type: boolean
       employerAddress:
        type: string
       employer_address_verified:
        type: boolean
       employer_town:
        type: string
       employer_town_verified:
        type: boolean
       employer_country:
        type: string
       employer_country_verified:
        type: boolean
       job_title:
        type: string
       job_title_verified:
        type: string
       start_date:
        type: string
        format: "YYYY-DD-MM"
       start_date_verified:
        type: boolean
       end_date:
        type: string
        format: "YYYY-DD-MM"
       current_employment:
        type: string
       current_employment_verified:
        type: boolean
       contract_type:
        type: string
       contract_type_verified:
        type: boolean
       status:
        type: string
     example:
       [
         {
           "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"
         }
       ]

    educationVerificationRequest:
      required:
        - userAccessCode
        - educationList
      type: object
      properties:
        userAccessCode:
          type: string
          format: UUID
        educationList:
         type: array
         items:
          type: object
          properties:
            schoolName:
              type: string
            schoolType:
              type: string
            institutionCampusName:
              type: string
            institutionPhone:
              type: string
            institutionAddress:
              type: string
            institutionAddressTown:
              type: string
            institutionAddressCountry:
              type: string
            institutionAddressStateProvince:
              type: boolean
            institutionAddressPostalCode:
              type: string
            startDate:
              type: string
              format: "DD-MM-YYYY"
            endDate:
              type: string
              format: "DD-MM-YYYY"
            degreeTitle:
              type: string
            currentlyAttending:
              type: string
            completedSuccessfully:
              type: string
            majors:
             type: array
             items:
              type: string
            minors:
             type: array
             items:
              type: string
            honors:
              type: string
            manualVerification:
              type: boolean
            uniqueIdentifier:
              type: string
              format: UUID
      example: {
            "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21",
            "educationList": [
              {
                "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"
              }
            ]
        }

    educationVerificationRequestResponse:
       type: array
       items:
        type: object
        properties:
            institution_name:
              type: string
            institution_name_verified:
              type: boolean
            institution_type:
              type: string
            institution_campus_name:
              type: string
            institution_phone:
              type: string
            institution_address:
              type: string
            institution_address_verified:
              type: boolean
            institution_town:
              type: boolean
            institution_town_verified:
              type: boolean
            institution_country:
              type: string
            institution_country_verified:
              type: boolean
            institution_postal_code:
              type: string
            degree:
              type: string
            degree_verified:
              type: boolean
            start_date:
             type: string
             format: "YYYY-DD-MM"
            start_date_verified:
             type: boolean
            end_date:
             type: string
             format: "YYYY-DD-MM"
            end_date_verified:
             type: boolean
            majors:
              type: string
            majors_verified:
              type: boolean
            minors:
              type: string
            minors_verified:
             type: boolean
            honors:
              type: string
            honors_verified:
              type: boolean
            currently_attending:
              type: integer
            currently_attending_verified:
             type: boolean
            completed_successfully:
              type: string
            completed_successfully_verified:
              type: boolean
            status:
              type: integer
       example:
          [
              {
                  "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"
              }
              ]

    employmentVerificationRequestV2:
     type: object
     required:
       - userAccessCode
       - employmentList
     properties:
       userAccessCode:
         type: string
         format: UUID
       employmentList:
        type: array
        items:
         type: object
         required:
          - employerName
          - jobTitle
          - startDate
          - currentlyEmployed
          - manualVerification
         properties:
           clientUUID:
            type: string
            format: UUID
           employerName:
            type: string
           jobTitle:
            type: string
           startDate:
            type: string
            format: "DD-MM-YYYY"
           endDate:
            type: string
            format: "DD-MM-YYYY"
           currentlyEmployed:
            type: boolean
           manualVerification:
            type: boolean
           manualVerificationDetails:
            type: object
            properties:
              employerAddress:
                type: string
              employerAddressCity:
                type: string
              employerAddressState:
                type: string
              employerAddressCountry:
                type: string
              supervisorName:
                type: string
              supervisorContactInfo:
                type: string
     example:
      "userAccessCode":    "100385a1-4308-49db-889f-9a898fa88c21"
      "employmentList": [
        {
            "clientUUID":"7a2effe3-ebfc-484b-b15c-8c36e0b612e1",
            "employerName": "Enterprise Two",
            "startDate": "27-06-2012",
            "endDate": "27-06-2014",
            "jobTitle": "Social Media Manager",
            "currentlyEmployed": false,
            "manualVerification": false,
            "manualVerificationDetails": {
                "employerAddress": "14, 3rd Street, 400",
                "employerAddressCity": "PHILADELPHIA",
                "employerAddressState": "PA",
                "employerAddressCountry": "United States",
                "supervisorName": "John Deo",
                "supervisorContactInfo": "1234854950"
            }
        },
        {
            "clientUUID":"7a2effe3-ebfc-484b-b15c-8c36e0b612e2",
            "employerName": "Enterprise THREE",
            "startDate": "27-06-1999",
            "endDate": "27-08-1999",
            "jobTitle": "Temp-2",
            "currentlyEmployed": false,
            "manualVerification": false,
            "manualVerificationDetails": {
                "employerAddress": "14, 3rd Street, 400",
                "employerAddressCity": "PHILADELPHIA",
                "employerAddressState": "PA",
                "employerAddressCountry": "United States",
                "supervisorName": "John Deo",
                "supervisorContactInfo": "1234854950"
            }
        },
      ]

    employmentVerificationRequestResponseV2:
     type: object
     properties:
        status:
          type: boolean
        employment:
          type: array
          items:
            type: object
            properties:
              clientUUID:
                type: string
                format: UUID
              uuid:
                type: string
                format: UUID
              employerName:
                type: string
              employerNameVerified:
                type: boolean
              jobTitle:
                type: string
              jobTitleVerified:
                type: boolean 
              startDate:
                type: string
                format: "DD-MM-YYYY"
              startDateVerified:
                type: boolean
              endDate:
                type: string
                format: "DD-MM-YYYY"
              endDateVerified:
                type: boolean
              currentlyEmployed:
                type: boolean
              manualVerifcation:
                type: boolean
              status:
                type: string
              message:
                type: string
     example:
       {
        "status": true,
        "employment": [
            {
                "clientUUID": "7a2effe3-ebfc-484b-b15c-8c36e0b612e1",
                "uuid": "963abed8-069a-44de-97e5-6f36a101a904",
                "employerName": "Enterprise Two",
                "employerNameVerified": true,
                "jobTitle": "Temp-2",
                "jobTitleVerified": true,
                "startDate": "2012-06-27T00:00:00.000Z",
                "startDateVerified": true,
                "endDate": "2018-06-27T00:00:00.000Z",
                "endDateVerified": true,
                "currentlyEmployed": false,
                "manualVerification": false,
                "status": "COMPLETE",
                "message": "Work Experience was checked without manual review."
            },
            {
                "clientUUID": "7a2effe3-ebfc-484b-b15c-8c36e0b612e2",
                "uuid": "963abed8-069a-44de-97e5-6f36a101a905",
                "employerName": "Enterprise THREE",
                "employerNameVerified": true,
                "jobTitle": "Social Media Manager",
                "jobTitleVerified": true,
                "startDate": "2011-06-27T00:00:00.000Z",
                "startDateVerified": false,
                "endDate": "2014-06-27T00:00:00.000Z",
                "endDateVerified": true,
                "currentlyEmployed": false,
                "manualVerification": false,
                "status": "COMPLETE",
                "message": "Work Experience was checked without manual review."
            }
        ]
    }

    educationVerificationRequestV2:
      required:
        - userAccessCode
        - educationList
      type: object
      properties:
        userAccessCode:
          type: string
          format: UUID
        educationList:
         type: array
         items:
          type: object
          properties:
            clientUUID:
              type: string
              format: UUID
            institutionName:
              type: string
            degreeTitle:
              type: string
            startDate:
              type: string
              format: "DD-MM-YYYY"
            endDate:
              type: string
              format: "DD-MM-YYYY"
            majors:
             type: array
             items:
              type: string
            minors:
             type: array
             items:
              type: string
            manualVerification:
              type: boolean
            manualVerificationDetails:
              type: object,
              properties:
                institutionAddress:
                type: string
              institutionAddressCity:
                type: string
              institutionAddressCountry:
                type: string
              institutionAddressState:
                type: boolean
              institutionAddressPostalCode:
                type: string
              currentlyAttending:
                type: string
              completedSuccessfully:
                type: string
      example: {
              "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21",
              "educationList": [
                  {
                      "institutionName": "VS - HOMETOWN UNIVERSITY",
                      "startDate": "31-07-2011",
                      "endDate": "31-07-2014",
                      "degreeTitle": "Bachelors in Engineering",
                      "majors": [
                          "Software Engineering"
                      ],
                      "minors": null,
                      "manualVerification": false,
                      "manualVerificationDetails": {
                          "institutionAddress": "14, 3rd Street, 400",
                          "institutionAddressCity": "PHILADELPHIA",
                          "institutionAddressCountry": "United States",
                          "institutionAddressState": "PA",
                          "institutionAddressPostalCode": "10001",
                          "currentlyAttending": false,
                          "completedSuccessfully": true
                      }
                  }
              ]
          }

    educationVerificationRequestResponseV2:
       type: object
       properties:
        status:
          type: boolean
        education:
          type: array
          items:
            type: object
            properties:
              clientUUID:
                type: string
                format: UUID
              uuid:
                type: string
                format: UUID
              employerName:
                type: string
              employerNameVerified:
                type: boolean
              jobTitle:
                type: string
              jobTitleVerified:
                type: boolean 
              startDate:
                type: string
                format: "DD-MM-YYYY"
              startDateVerified:
                type: boolean
              endDate:
                type: string
                format: "DD-MM-YYYY"
              endDateVerified:
                type: boolean
              currentlyEmployed:
                type: boolean
              manualVerifcation:
                type: boolean
              status:
                type: string
              message:
                type: string
       example:
          {
            "status": true,
            "education": [
            {
                "clientUUID": "5a2effe2-ebfc-484b-b15c-8c36e0b66233",
                "uuid": "100385a1-4308-49db-889f-9a898fa88c21",
                "institutionName": "VS - HOMETOWN UNIVERSITY",
                "institutionNameVerified": true,
                "degreeTitle": "Bachelors in Engineering",
                "degreeTitleVerified": true,
                "startDate": "2011-07-31",
                "startDateVerified": true,
                "endDate": "2014-07-31",
                "endDateVerified": true,
                "majors": [
                    "Software Engineering"
                ],
                "majorsVerified": true,
                "minors": [
                    "Biology"
                ],
                "minorsVerified": true,
                "manualVerification": false,
                "status": "COMPLETE",
                "message": "Education was checked without manual review."
            }
          ]
        }

    professionalLicenseRequest:
     required:
       - userAccessCode
       - licenseList
     type: object
     properties:
       userAccessCode:
         type: string
         format: UUID
       licenseList:
        type: array
        items:
         type: object
         properties:
            license_title:
              type: string
            license_organization:
              type: string
            license_number:
              type: string
            startDate:
              type: string
              format: "DD-MM-YYYY"
            endDate:
              type: string
              format: "DD-MM-YYYY"
            state:
              type: string
            country:
              type: string
            manualVerification:
              type: integer
            uniqueIdentifier:
              type: string
              format: UUID
     example:
            {
            "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"
            }]
        }

    professionalLicenseRequestResponse:
     type:  object
     properties:
      success:
       type: boolean
      professionalLicense:
       type : array
       items:
        type: object
        properties:
            license_title:
              type: string
            license_title_verified:
              type: boolean
            license_organization:
              type: string
            license_organization_verified:
              type: boolean
            license_number:
              type: string
            license_number_verified:
             type: boolean
            startDate:
              type: string
              format: "YYYY-DD-MM"
            start_date_verified:
             type: boolean
            endDate:
              type: string
              format: "YYYY-DD-MM"
            end_date_verified:
             type: boolean
            state:
              type: string
            country:
              type: string
            manualVerification:
              type: boolean
            uniqueIdentifier:
              type: string
              format: UUID
            status:
             type: string
     example: {
                "success": true,
                "professionalLicense": [
                    {
                        "license_title": "MECHANIC",
                        "license_title_verified": true,
                        "license_organization": "Stark Industries",
                        "license_organization_verified": true,
                        "license_number": "ILY3000",
                        "license_number_verified": true,
                        "start_date": "2002-03-24",
                        "start_date_verified": true,
                        "end_date": "2019-12-31",
                        "end_date_verified": true,
                        "state": "PA",
                        "country": "USA",
                        "manual_verification": false,
                        "unique_identifier": "8eb19799-016e-42e3-a5cf-f559e7cf8139",
                        "status": "Completed"
                    }
                ]
            }

    businessVerification:
     required:
       - userAccessCode
       - businessList
     type: object
     properties:
      userAccessCode:
        type: string
        format: UUID
      businessList:
       type: array
       items:
        type: object
        properties:
         FEINumber:
          type: string
         businessName:
          type : string
         DUNSNumber:
          type: string
         isUserABusinessContact:
          type: boolean
     example:
            {
          "userAccessCode": "9cg686b3-ccb3-497c-a298-3830ea8a1c96",
          "businessList": [
              {
                  "FEINumber": "461122122",
                  "businessName": "Stark Industries Inc.",
                  "DUNSNumber": "901219219",
                  "isUserABusinessContact": true
              }
          ]
      }

    searchCountiesResponse:
     type: object
     properties:
      countyWithPrice:
       type: array
       items:
        type: object
        properties:
          State:
           type: string
          County:
           type: string
          DateFirstSeen:
           type: object
           properties:
            Day:
             type: integer
            Month:
             type: integer
            Year:
             type: integer
          countyUUID:
           type: string
          Price:
           type: object
           properties:
            search_fee:
             type: integer
            court_fee:
             type: integer
            ten_year_plus_surcharge_fee:
             type: integer
            access_fee:
             type: integer
            total_price:
             type: integer
            note:
             type: string
      priceToRunAllCounties:
          type: integer
     example:
        {
              "countyWithPrice": [

                  {
                      "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."
                      }
                  }
              ],
              "priceToRunAllCounties": 12.31
          }

    verifyCriminalCountResponse:
     type: object
     properties:
       success:
        type: boolean
       uniqueIdentifier:
        type : string<uuid>
     example:
       {
            "success": true,
            "uniqueIdentifier": "f9c55a94-280c-44de-9ed1-6e0eab6ec605"
        }

    verifyCriminalCountyReportResponse:
      type: object
      properties:
       success:
        type: boolean
       result:
        type: object
        properties:
            uuid:
              type: string
            type:
              type: string
            status:
              type: string
            sub_status:
              type: string
            county:
              type: string
            state:
              type: string
            country:
              type: string
            cases:
              type: array
              items:
               type:  object
               properties:
                id:
                  type: string
                caseNumber:
                  type: string
                isCaseNumberUnavailable:
                  type: boolean
                courtFiledIn:
                  type: string
                countyFiledIn:
                  type: string
                chargeDate:
                  type: string
                isChargeDateUnavailable:
                  type: boolean
                sentenceDate:
                  type: string
                nextCourtDate:
                  type: string
                isNextCourtDateUnavailable:
                  type: boolean
                offenseDate:
                  type: string
                dispositionDate:
                  type: string
                hasActiveWarrant:
                  type: boolean
                plaintiff:
                  type: string
                defendant:
                  type: string
                cannotComplete:
                  type: boolean
                caseIdentifiers:
                  type: object
                charges:
                  type: array
            court_copies:
              type: array
              items:
               type: object
               properties:
                caseNumber:
                  type: string
                status:
                  type: string
                requestCertified:
                  type: boolean
                requestAllAvailable:
                  type: boolean
                requestComplaintCharge:
                  type: boolean
                requestJudgmentDisposition:
                  type: boolean
                requestIdPage:
                  type: boolean
                requestApplicantDispute:
                  type: boolean
                document:
                  type: object
                  properties:
                    id:
                      type: integer
                    name:
                      type: string
                    base64EncodedContents:
                      type: string
                    category:
                      type: string
                    sequenceNumber:
                      type: integer
                    caseNumber:
                      type: string
                    accessUrl:
                      type: string

      example: {
            "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"
                  }
                }
              ]
            }
          }

    verifyCriminalCountiesResponse:
       type: object
       properties:
         success:
          type: boolean
         result:
          type: array
          items:
           type: object
           properties:
            success:
             type: boolean
            uniqueIdentifier:
             type: string
             format: UUID
            county: 
             type: object
             properties:
               uuid:
                type: string
               name:
                type: string
               state:
                type : string
       example:
             {
                  "success": true,
                  "result": [
                      {
                          "success": true,
                          "uniqueIdentifier": "c8fec17b-7c18-4d8f-a476-9bce91cd5f73",
                          "county": {
                              "uuid": "92d93d7c-4395-11eb-8ea4-d37f0189acc3",
                              "name": "Baldwin",
                              "state": "AL"
                          }
                      }

                  ]
              }

    verifyCriminalCountiesReportResponse:
      type: object
      properties:
        success:
         type: boolean
        result:
         type: array
         items:
          type: object
          properties:
            uuid:
              type: string
            type:
              type: string
              enum:
                  - CRIMINAL
                  - CRIMINAL_FEDERAL
                  - CIVIL_FEDERAL 
                  - CIVIL_COUNTY
              description: |
                  The value is an ENUM and maps to the respective record as follows:
                  
                    | Value | Description|
                    --------|------------|
                    | CRIMINAL | County Criminal Record |
                    | CRIMINAL_FEDERAL | Federal Criminal Record |
                    | CIVIL_FEDERAL | Federal Civil Record |
                    | CIVIL_COUNTY | County Civil Record |
            status:
              type: string
            sub_status:
              type: string
            county:
              type: string
            state:
              type: string
            country:
              type: string
            cases:
              type: array
              items: 
                type: object
                properties:
                  id: 
                    type: string
                    format: uuid
                  caseNumber: 
                    type: string
                  isCaseNumberUnavailable:
                    type: boolean
                  courtFiledIn:
                    type: string
                  countyFiledIn:
                    type: string
                  chargeDate:
                    type: string
                    format: date-time
                  isChargeDateUnavailable: 
                    type: boolean
                  isNextCourtDateUnavailable: 
                    type: boolean
                  dispositionDate: 
                    type: string
                    format: date-time
                  cannotComplete: 
                    type: boolean
                  caseIdentifiers:
                    type: object
                    properties: 
                        name: 
                          type: string
                        isNameMatch: 
                          type: boolean
                        firstName: 
                          type: string
                        isFirstNameMatch: 
                          type: boolean
                        middleName: 
                          type: string
                        isMiddleNameMatch: 
                          type: boolean
                        lastName: 
                          type: string
                        isLastNameMatch: 
                          type: boolean
                        birthdate: 
                          type: string
                          format: date-time
                        isBirthdateMatch: 
                          type: boolean
                        isSSNMatch: 
                          type: boolean
                        isDriverLicenseMatch: 
                          type: boolean
                        address: 
                          type: string
                        isAddressMatch: 
                          type: boolean
                        isAliasMatch: 
                          type: boolean
                        other: 
                          type: string
                        isOtherMatch: 
                          type: boolean
                        additionalIdentifiersUnavailability: 
                          type: string
                        charges:
                          type: array
                          items: 
                            type: object
                            properties:
                                id:
                                  type: string
                                  format: uuid
                                count: 
                                  type: number
                                chargeDescription: 
                                  type: string
                                isChargeDescriptionUnavailable: 
                                  type: boolean
                                chargeType: 
                                  type: string
                                isChargeTypeUnavailable: 
                                  type: boolean
                                disposition: 
                                  type: string
                                isDispositionUnavailable: 
                                  type: boolean
                                comments: 
                                  type: string
                                statute: 
                                  type: string
                                sentence:
                                  type: object
                                  properties:
                                    hasProbation: 
                                      type: boolean
                                    probationDays: 
                                      type: number
                                    hasJail: 
                                      type: boolean
                                    jailDays: 
                                      type: number
                                    hasJailSuspended: 
                                      type: boolean
                                    hasPrison: 
                                      type: boolean
                                    hasPrisonSuspended: 
                                      type: boolean
                                    hasCommunityService: 
                                      type: boolean
                                    hasDriverLicenseSuspension: 
                                      type: boolean
                                    hasCreditForTimeServed: 
                                      type: boolean
                                    creditForTimeServedDays: 
                                      type: number
                                    isFineWaived: 
                                      type: boolean
                                    isFineUnspecified: 
                                      type: boolean
                                    isCostWaived: 
                                      type: boolean
                                    isCostUnspecified: 
                                      type: boolean
                                    isRestitutionWaived: 
                                      type: boolean
                                    isRestitutionUnspecified: 
                                      type: boolean
                                    fee: 
                                      type: number
                                    isFeeWaived: 
                                      type: boolean
                                    isFeeUnspecified: 
                                      type: boolean
                                    isSentenceNotReported: 
                                      type: boolean
                                    sentencingInfo: 
                                      type: string
                        isWarrantActive: 
                          type: boolean
                        offenseDate:
                          type: string
                          format: date-time
            count_copies:
              type: string
      example:
              {
            "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": [],
                    "count_copies": null
                }

            ]
        }

    verificationComprehensive:
      required:
        - userAccessCode
        - businessUUID
        - status
        - businessNames
        - addresses
        - dateOfIncorporation
        - corporationType
      type: object
      properties:
        userAccessCode:
         type: string
         format: UUID
        businessUUID:
         type:  string
        status:
         type: string
        businessNames:
         type: array
         items:
          type: string
        addresses:
         type: array
         items:
          type: object
          properties:
           line1:
            type: string
           city:
            type: string
           state:
            type: string
           zip:
            type: string
        dateOfIncorporation:
         type : string
        corporationType:
         type: string
      example:
                {
              "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21",
              "businessUUID": "ANY_VALID_UUID",
              "status": "Active",
              "businessNames": [
                  "Acme Inc.",
                  "Stark Industries Inc."
              ],
              "addresses": [
                  {
                      "line1": "2 AA 200",
                      "city": "New York",
                      "state": "NY",
                      "zip": "10001"
                  }
              ],
              "dateOfIncorporation": "12-12-2009",
              "corporationType": "Corporation"
          }

    verificationComprehensiveResponse:
      type: object
      properties:
        success:
         type: boolean
        businessVerifications:
         type: object
         properties:
            status:
              type: string
            status_verified:
              type: boolean
            corporation_type:
              type: string
            corporation_type_verified:
              type: boolean
            date_of_incorporation:
              type: string
            date_of_incorporation_verified:
             type: boolean
            business_names:
             type: array
             items:
              type: object
              properties:
               name:
                type: string
               matchPercentage:
                type: integer

            addresses:
             type: array
             items:
              type: object
              properties:
                address:
                 type: object
                 properties:
                  line1:
                    type: string
                  city:
                    type: string
                  state:
                    type: string
                  zip:
                    type: string
                matchPercentage:
                 type: integer
                zipMatch:
                 type: boolean
                stateMatch:
                 type: boolean
      example:
        {
                "success": true,
                "businessVerifications": {
                    "status": "active",
                    "status_verified": true,
                    "corporation_type": "Corporation",
                    "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
                        }
                    ]
                }
            }

    getUserResponse:
     type: object
     properties:
       userAccessCode:
         type: string
         format: UUID
       firstName:
         type: string
       middleName:
         type: string
       lastName:
         type: string
       dob:
         type: string
         format: DD-MM-YYYY
       email:
         type: string
         format: email
       phone:
         type: integer
       houseNumber:
         type: string
       streetName:
         type: string
       address:
         type: string
       city:
         type: string
       state:
         type: string
       zipCode:
         type: string
       country:
         type: string
     example:
          {
          "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"
      }

    userJwt:
     type: object
     required:
       - userAccessCode
     properties:
      userAccessCode:
        type: string
        format: UUID
      verificationOption(Deprecated):
        type: string
        default: "EITHER"
        enum: ["EITHER", "BOTH", "QUIZ_ONLY", "DOCUMENT_ONLY"]
      redirectURL:
       type: string
      preferredWorkflowID:
       type: string
       description: "The ID of the workflow you want this user to go through."
       example: FT_W_PXj8w
     example: {
          "userAccessCode":"USER_ACCESS_CODE",
          "redirectURL":"https://www.authenticating.com",
          "preferredWorkflowID": "FT_W_PXj8w"
      }

    userJwtResponse:
     type: object
     properties:
      jwt:
       type: string
      token:
       type: string
     example:
            {
          "jwt": "JWT_TOKEN",
          "token": "UUID_TOKEN"
      }

    identityMvr:
     type:  object
     required:
       - license_number
       - state_abbr
     properties:
      userAccessCode:
       type: string
       format: UUID
      license_number:
       type: string
      state_abbr:
       type: string
      issue_date:
       type: string
       format: Date
      class_description:
       type : string
      expiration_date:
       type: string
       format: Date
      class_code:
       type: string
      previous_license:
       type: string
     example:
            {
          "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",
      }

    identityMvrResponse:
     type: object
     properties:
       state:
        type: string
       record_type:
        type: string
       product:
         type: string
       first_name:
        type: string
       last_name:
        type: string
       birth_date:
        type: string
       is_clear:
         type: string
       valid:
        type: string
       returned_date:
        type: string
       current_license:
        type: object
        properties:
          license_number:
            type: string
          license_number_verified:
            type: boolean
          issue_date:
            type: string
          issue_date_verified:
            type: boolean
          expiration_date:
            type: string
          expiration_date_verified:
            type: boolean
          class_description:
            type: string
          class_description_verified:
            type: boolean
          class_code:
            type: string
          class_code_verified:
            type: boolean
          has_driver_training:
            type: string
          status:
            type: string

       violations:
        type: array
        items:
         type: object
         properties:
           common:
            type: object
            properties:
              subtype:
               type: string
              state:
               type: object
               properties:
                 abbrev:
                    type: string
                 full:
                    type: string
              date:
               type: object
               properties:
                  location:
                   type: string
                  iscommercial:
                    type: string
                  docketnumber:
                   type: string
           descriptionlist:
            type: object
            properties:
               descriptionitem:
                type: object
                properties:
                  adrlargedescription:
                    type: string
                  adrsmalldescription:
                    type: string
                  statedescription:
                    type: string
                  acd:
                    type: string
                  avd1:
                    type: string
                  avd2:
                    type: string
           violation:
            type: object
            properties:
              convictiondate:
               type: object
               properties:
                  year:
                    type: integer
                  month:
                    type: integer
                  day:
                    type: integer
              courttype:
               type: string
              fineamount:
               type: string
     example:
              {
            "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"
                }
              }
            ]
          }

    priceSearch:
     type: object
     required:
       - countyName
     properties:
       countyName:
        type: string
       state:
         type: string
         format: A 2-letter and 2-digit codes from the ANSI standard INCITS 38:2009
     example:
          {
          "countyName":"New York",
          "state":"NY"
      }

    priceSearchResponse:
       type: object
       properties:
         success:
           type: boolean
         counties:
           type: array
           items:
             type: object
             properties:
               uuid:
                 type: string
                 format: UUID
               state:
                 type: string
               county:
                 type: string
               search_price:
                 type: string
               ten_year_surge_price:
                 type: string
               data_fee:
                type: string
               access_fee:
                 type: string
               dynamic_data_fee:
                 type: boolean
       example: {
          "success": true,
          "counties": [
            {
              "uuid": "92e02b64-4395-11eb-8ea4-d37f0189acc3",
              "state": "NY",
              "county": "New York",
              "search_price": "7.1875",
              "ten_year_surge_price": "3",
              "data_fee": "98",
              "access_fee": "",
              "dynamic_data_fee": false
            }
          ]
        }

    addWebhookSubscription:
      type: object
      required:
        - companyAccessCode
        - webhookURL
      properties:
        companyAccessCode:
          type: string
          format: UUID
        webhookURL:
          type: string
      example:
        {
          "companyAccessCode": "2b9f91f8-7b9c-4875-87cc-78ce7b01f657",
          "webhookURL": "https://www.authenticating.com/webhook"
        }

    bankConnectUrlResponse:
     type: object
     properties:
      link: 
        type : string
     example:  {
        "link": "CONNECT_URL_WILL_APPEAR_HERE"
    }

    bankAccountOwnerMatchResultResponse:
     type: object
     properties:
      attempts: 
        type: integer
      is_owner_matched :
        type: boolean
      account:
        type: array
        items:
          type: object
          properties:
            owner_name:
              type: string
            first_name: 
              type: string
            first_name_score: 
              type: integer
            middle_name: 
              type: string
            middle_name_score: 
              type: integer
            last_name: 
              type: string
            last_name_score: 
              type: integer
            phones: 
              type: array
              items:
                type: object
            first_name_match : 
              type: boolean
            middle_name_match : 
              type: boolean
            last_name_match : 
              type: boolean
      matched_at : 
        type : date
     example:  {
        "attempts": 1,
        "is_owner_matched": true,
        "account": [
            {
                "owner_name": "PAT PURCHASER",
                "first_name": "Pat",
                "first_name_score": 100,
                "last_name": "Purchaser",
                "last_name_score": 100,
                "middle_name": "",
                "middle_name_score": 0,
                "phones": null,
                "first_name_match": true,
                "last_name_match": true,
                "middle_name_match": false
            }
        ],
        "matched_at": "2023-10-21T10:27:57.000Z"
    }

    bankConnectUrlRequest:
     required:
       - userAccessCode
       - redirectUri
     type: object
     properties:
      userAccessCode:
        type: string
        format: UUID
      redirectUri:
       type: string
       format: URL
     example: {
      "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21",
      "redirectUri": "POST_COMPLETION_URL"
    }
    
    bankAccountOwnerMatchResultRequest:
     required:
       - userAccessCode
     type: object
     properties:
      userAccessCode:
        type: string
        format: UUID
     example: {
        "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21"
    }

    initiateUserPdfReportResponse:
     type: object
     properties:
      reportUUID: 
        type : string
        format: UUID
      message:
        type : string
     example:  {
        "reportUUID": "REPORT_UNIQUE_IDENTIFIER_WILL_APPEAR_HERE",
        "message": "MESSAGE_WILL_APPEAR_HERE"
    }

    initiateUserPdfReportRequest:
     required:
       - userAccessCode
     type: object
     properties:
      userAccessCode:
        type: string
        format: UUID
      sendMail:
        type: string
        format: email
     example: {
        "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21",
        "sendMail": "ADMIN_EMAIL_ADDRESS"
    }

    fetchUserPdfReportResponse:
     type: object
     properties:
      success: 
        type : boolean
      status:
        type : string
      pdfReportLink:
        type : string
        format : URL
     example:  {
        "success": true,
        "status": "REPORT_GENERATION_STAGE_WILL_APPEAR_HERE",
        "pdfReportLink": "GENERATED_REPORT_LINK_WILL_APPEAR_HERE"
    }

    fetchUserPdfReportRequest:
     required:
       - userAccessCode
       - reportUUID
     type: object
     properties:
      userAccessCode:
        type: string
        format: UUID
      reportUUID:
        type: string
        format: UUID
     example: {
      "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21",
      "reportUUID": "621f5a5c-a394-4358-93fa-15fece4ed416"
     }

    reauthEligibiltyRequest: 
      required:
        - userAccessCode
      type: object
      properties:
        userAccessCode:
          type: string
          format: UUID
      example: {
        "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21"
      }

    reauthEligibiltyResponse: 
     type: object
     properties:
      success: 
        type : boolean
     example:  {
        "success": true
    }

    reauthGenerateLinkRequest :
      required:
        - userAccessCode
        - redirectUrl
      type: object
      properties:
        userAccessCode:
          type: string
          format: UUID
        redirectUrl:
          type: string
        expiry:
          type: integer
      example: {
        "userAccessCode": "100385a1-4308-49db-889f-9a898fa88c21",
        "redirectUrl":"POST_COMPLETION_URL",
        "expiry":"EXPIRY_OF_REAUTHENTICATE_LINK_IN_UNIX_TIMESTAMP"
      }

    reauthGenerateLinkResponse :
      type: object
      properties:
        link: 
          type : string
        expiry:
          type: integer
        status:
          type: string
      example:  {
            "link": "REAUTHENTICATE_URL_WILL_APPEAR_HERE",
            "expiry": 1707497206,
            "status": "INITIALIZED"
        }
      

    reauthSessionStatusResponse :
      type: object
      properties:
        status: 
          type : string
          enum: ["INITIALIZED","IN_PROGRESS","COMPLETED", "FAILED"]
        selfieVerification:
          type: object
          properties:
            status:
              type: string
              enum: ["PENDING","COMPLETED", "FAILED"]
            attempts:
              type: integer
        additionalVerification:
          type: object
          properties:
            email/phone:
              type: object
              properties:
                status:
                  type: string
                  enum: ["PENDING","COMPLETED", "FAILED"]
                attempts:
                  type: integer
                value:
                  type: string
        redirectUrl:
          type: string
          example: "https://authenticate.com"
        theme:
          type: object
          properties:
            button: 
              type: object
              properties:
                variant:
                  type: string
                borderRadius:
                  type: string
            font_family:
              type: string
            modal_background_color:
              type: string
            modal_border_radius: 
              type: string
            overlay_color:
              type: string
            primary_color:
              type: string
            secondary_color:
              type: string
            text_input_variant:
              type: string
            navbar_color:
              type: string
        allowedAttempts:
          type: integer
        companyName:
          type: string

      example:  {
        "status": "COMPLETED",
        "selfieVerification": {
            "status": "COMPLETED",
            "attempts": 1
        },
        "additionalVerification": {
            "email": {
                "status": "COMPLETED",
                "attempts": 3,
                "value": "john@gmail.com"
            }
        },
        "redirectUrl": "https://authenticate.com",
        "theme": {
            "button": {
                "variant": "contained",
                "borderRadius": "6px"
            },
            "font_family": "Rubik",
            "modal_background_color": "#FFFFFF",
            "modal_border_radius": "0px",
            "overlay_color": "#ffffff",
            "primary_color": "#154683",
            "secondary_color": "#cde3fc",
            "text_input_variant": "outlined",
            "navbar_color": "#154683"
        },
        "allowedAttempts": 3,
        "companyName": "Authenticating.com"
    }

  requestBodies:
    createUser:
      content:
        application/json:
          schema:
            allOf:
              - description: Create a new User
              - $ref: "#/components/schemas/createUser"
      required: true

    createUserConsent:
      content:
        application/json:
          schema:
            allOf:
              - description: sending user consent
              - $ref: "#/components/schemas/createUserConsent"
      required: true

    updateUser:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/updateUser"
      required: true

    verifyPhone:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"
      required: true

    verifyPhoneCode:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/verifyPhoneCode"
      required: true

    comparePhotos:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/comparePhotos"

    identityKba:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"

    kbaVerification:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/kbaVerification"

    scoreInputs:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/scoreInputs"

    verifyInputs:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/verifyInputs"


    documentScan:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/documentScan"

    documentScanEnhanced:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/documentScanEnhanced"

    documentScanStatus:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"

    documentScanData:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"

    passportScan:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/passportScan"

    passportScanEnhanced:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/passportScanEnhanced"

    passportScanStatus:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"

    verifyInternationalPII:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/verifyInternationalPII"

    generateCriminalReport:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"

    watchlistGlobal:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"

    watchlistReport:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"

    criminalSevenReport:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"
    
    verifySsn:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode"
    
    identityOverride:
     content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode" 

    getTestResult:
     content:
        application/json:
          schema:
            $ref: "#/components/schemas/userAccessCode" 

    employmentVerificationRequest:
       content:
        application/json:
          schema:
            $ref: "#/components/schemas/employmentVerificationRequest"

    educationVerificationRequest:
     content:
       application/json:
        schema: 
         $ref: "#/components/schemas/educationVerificationRequest"

    employmentVerificationRequestV2:
       content:
        application/json:
          schema:
            $ref: "#/components/schemas/employmentVerificationRequestV2"

    educationVerificationRequestV2:
     content:
       application/json:
        schema: 
         $ref: "#/components/schemas/educationVerificationRequestV2"

    professionalLicenseRequest:
      content:
       application/json:
        schema: 
         $ref: "#/components/schemas/professionalLicenseRequest"
  
    businessVerification:
       content:
         application/json:
          schema: 
            $ref: "#/components/schemas/businessVerification"
    
    searchCounties:
      content:
         application/json:
          schema:
           $ref: '#/components/schemas/userAccessCode'
 
    verifyCriminalCount:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/userAccessCode'

    verifyCriminalFederal:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/userAccessCode'

    verifyCivilCounty:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/userAccessCode'

    verifyCivilFederal:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/userAccessCode'

    countyCriminalRequest:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/countyCriminalRequest'

    countyCivilRequest:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/countyCivilRequest'

    verifyCriminalCountyReport:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/uniqueIdentifierWithUAC'

    verifyCriminalCounties:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/userAccessCode'

    verifyCriminalCountiesReport:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/userAccessCode'

    verificationComprehensive:
       content:
         application/json:
          schema:
           $ref: '#/components/schemas/verificationComprehensive'

    getUser:
     content:
       application/json:
        schema:
         $ref: "#/components/schemas/userAccessCode"

    userJwt:
     content:
       application/json:
        schema:
         $ref: "#/components/schemas/userJwt"

    identityMvr:
     content:
       application/json:
        schema:
          $ref: "#/components/schemas/identityMvr"

    priceSearch:
     content:
       application/json:
        schema:
          $ref: "#/components/schemas/priceSearch"

    priceSearchResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/priceSearchResponse"


    addWebhookSubscription:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/addWebhookSubscription"

    employmentVerification:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/employmentVerification"
    
    bankConnectUrl : 
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/bankConnectUrlRequest"
    
    bankAccountOwnerMatchResult :
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/bankAccountOwnerMatchResultRequest"

    initiateUserPdfReport :
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/initiateUserPdfReportRequest"

    fetchUserPdfReport :
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/fetchUserPdfReportRequest"

    reauthEligibilty :
      content: 
        application/json:
          schema:
            $ref: "#/components/schemas/reauthEligibiltyRequest"

    reauthGenerateLink :
      content: 
        application/json:
          schema:
            $ref: "#/components/schemas/reauthGenerateLinkRequest"


  responses:
    success:
      description: success
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/successResponse"

    badRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/badResponse"

    exceptionFailed:
      description: Expectation Failed
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/exceptionFailed"

    unauthorized:
     description: unauthorized Request
     content:
       application/json:
         schema:
           $ref : "#/components/schemas/unauthorized"
    badRequestReauthenticate:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/badResponseReauthenticate"


  securitySchemes:
    bearerAuth:           
      type: http
      scheme: bearer
      bearerFormat: "API KEY"  
    ReauthenticateSessionUUID:
      description: Reauthenticate Session UUID
      type: apiKey
      name: X-Reauthenticate-Session
      in: header

  examples:
    Order:
      value:
        quantity: 1
        shipDate: "2018-10-19T16:46:45Z"
        status: placed
        complete: false
