> ## Documentation Index
> Fetch the complete documentation index at: https://docs.verisoul.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify & Enroll User

> Validate uniqueness and authenticate users with ID Check

Once an ID Check session is complete, use the Verisoul API to verify or authenticate the user.

## Verify

First, verify the authenticity of the session and document by calling the [/verify-id](/api-reference/id-check/verify-id) endpoint. The endpoint provides three values to help interpret the risk of the user and their document:

1. **Decision** -> an overall decision; Real, Suspicious, or Fake
2. **Risk Score** -> a 0-1 number score representing the overall risk of the user
3. **Risk Flags** -> an array of string flags that summarize the risky aspects of the user's session

<Tip>
  See here for the full set of [risk flags](/verifications/id-check/resources/risk-flags)
</Tip>

For more nuanced decisioning you can also interpret the other risk signals captured in the session.

## Device and Network Signals

Device and network Signals are information about the user's exact device and connecting network.

<table className="w-full border-collapse">
  <thead>
    <tr>
      <th className="p-3 text-left bg-gray-100 border">Name</th>
      <th className="p-3 text-left bg-gray-100 border">Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td className="p-3 border">device\_risk</td>
      <td className="p-3 border">Device likely emulator, VM</td>
    </tr>

    <tr>
      <td className="p-3 border">proxy</td>
      <td className="p-3 border">ID Check on a proxy IP</td>
    </tr>

    <tr>
      <td className="p-3 border">vpn</td>
      <td className="p-3 border">ID Check on a VPN IP</td>
    </tr>

    <tr>
      <td className="p-3 border">datacenter</td>
      <td className="p-3 border">ID Check on a datacenter</td>
    </tr>

    <tr>
      <td className="p-3 border">tor</td>
      <td className="p-3 border">ID Check on a TOR IP</td>
    </tr>

    <tr>
      <td className="p-3 border">recent\_fraud\_ip</td>
      <td className="p-3 border">ID Check on an IP reported as fraud</td>
    </tr>

    <tr>
      <td className="p-3 border">device\_network\_mismatch</td>
      <td className="p-3 border">Device user agent is inconsistent with connecting network fingerprint</td>
    </tr>
  </tbody>
</table>

## Document Signals

Document Signals refers to the authenticity of the identity document.

<table className="w-full border-collapse">
  <thead>
    <tr>
      <th className="p-3 text-left bg-gray-100 border">Name</th>
      <th className="p-3 text-left bg-gray-100 border">Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td className="p-3 border">id\_age</td>
      <td className="p-3 border">Age of the person on the identity document, calculated from the date of birth on the ID</td>
    </tr>

    <tr>
      <td className="p-3 border">id\_face\_match\_score</td>
      <td className="p-3 border">Match level of face on ID and face scanned. 1.0 is highest match</td>
    </tr>

    <tr>
      <td className="p-3 border">id\_barcode\_status</td>
      <td className="p-3 border">Status of the barcode on the identity document</td>
    </tr>

    <tr>
      <td className="p-3 border">id\_face\_status</td>
      <td className="p-3 border">Status of the face on the identity document</td>
    </tr>

    <tr>
      <td className="p-3 border">id\_text\_status</td>
      <td className="p-3 border">Status of the text information on the identity document</td>
    </tr>

    <tr>
      <td className="p-3 border">is\_id\_digital\_spoof</td>
      <td className="p-3 border">Whether the identity document has been digitally spoofed</td>
    </tr>

    <tr>
      <td className="p-3 border">is\_full\_id\_captured</td>
      <td className="p-3 border">Whether ID Check was able to capture the full document</td>
    </tr>

    <tr>
      <td className="p-3 border">id\_validity</td>
      <td className="p-3 border">Whether identity document presented is authentic or fake</td>
    </tr>
  </tbody>
</table>

## Referring Session Signals

Referring Session Signals will only be present if you initialized the session with a `referring_session_id` parameter.

<table className="w-full border-collapse">
  <thead>
    <tr>
      <th className="p-3 text-left bg-gray-100 border">Name</th>
      <th className="p-3 text-left bg-gray-100 border">Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td className="p-3 border">impossible\_travel</td>
      <td className="p-3 border">Referring session geolocation is far from ID Check geolocation relative to timespan</td>
    </tr>

    <tr>
      <td className="p-3 border">ip\_mismatch</td>
      <td className="p-3 border">Referring session IP different than ID Check session IP</td>
    </tr>

    <tr>
      <td className="p-3 border">user\_agent\_mismatch</td>
      <td className="p-3 border">Referring session user agent different than ID Check session user agent</td>
    </tr>
  </tbody>
</table>

## Multi Accounting

ID Check will calculate any potential matches based on five identifiers captured during all sessions.

<table className="w-full border-collapse">
  <thead>
    <tr>
      <th className="p-3 text-left bg-gray-100 border">Match Type</th>
      <th className="p-3 text-left bg-gray-100 border">Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td className="p-3 border">browser</td>
      <td className="p-3 border">ID Check session was completed on the same browser session</td>
    </tr>

    <tr>
      <td className="p-3 border">ip\_address</td>
      <td className="p-3 border">ID Check session shares the same ip address</td>
    </tr>

    <tr>
      <td className="p-3 border">face</td>
      <td className="p-3 border">ID Check session shares the same face</td>
    </tr>

    <tr>
      <td className="p-3 border">document\_name</td>
      <td className="p-3 border">ID Check session shares the same name and date of birth</td>
    </tr>

    <tr>
      <td className="p-3 border">document\_number</td>
      <td className="p-3 border">ID Check session shares the same document type and number</td>
    </tr>
  </tbody>
</table>

## Enroll

Use [Enroll](/api-reference/id-check/enroll) to tie the session to your account identifier. You must do this to detect multi-accounting. By enrolling an account, Verisoul will know to match future sessions against enrolled accounts to help you prevent repeat devices, repeat faces, and repeat IDs from signing up.

<Warning>
  Sessions must be enrolled within 30 days of creation. Attempting to enroll a session older than 30 days will return a `session_older_than_30_days` error.
</Warning>

## API Reference

For complete details on all available endpoints and parameters, see the [ID Check API Reference](/api-reference/id-check/session).
