> ## 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 and authenticate users with Face Match

Once a Face Match session is complete, use the Verisoul API to verify or authenticate the user.

## Verify

Verify the authenticity of the session by calling the [/verify-face](/api-reference/face-match/verify-face) endpoint. The endpoint provides three values to help interpret the risk of the user:

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/face-match/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">ip\_document\_country\_mismatch</td>
      <td className="p-3 border">Current IP geolocation country does not match document geolocation</td>
    </tr>

    <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">Face Match on a proxy IP</td>
    </tr>

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

    <tr>
      <td className="p-3 border">datacenter</td>
      <td className="p-3 border">Face Match on a datacenter</td>
    </tr>

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

    <tr>
      <td className="p-3 border">recent\_fraud\_ip</td>
      <td className="p-3 border">Face Match 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>

## 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 Face Match 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 Face Match 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 Face Match session user agent</td>
    </tr>
  </tbody>
</table>

## Multi Accounting

Face Match will calculate any potential matches based on three 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">Face Match session was completed on the same browser session</td>
    </tr>

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

    <tr>
      <td className="p-3 border">face</td>
      <td className="p-3 border">Face Match session shares the same face</td>
    </tr>
  </tbody>
</table>

## Enroll

Use [Enroll](/api-reference/face-match/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 and repeat faces 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 [Face Match API Reference](/api-reference/face-match/session).
