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

# Submit Session

> Submit a session for processing after all required documents and selfie have been uploaded.

<Warning>
  **Prerequisites** -- Ensure all required files have been uploaded before submitting. The session must have a document and selfie uploaded (if those steps are configured). Submitting an incomplete session will return a `422` error.
</Warning>

## Path Parameters

<ParamField path="id" type="string" required>
  The session ID
</ParamField>

## Request Body

No request body is required. Simply send the POST request to trigger processing.

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST \
    "https://verilock.io/api/v1/sessions/ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890/submit" \
    -H "Authorization: Bearer qi_live_your_api_key_here" \
    -H "Accept: application/json"
  ```

  ```php PHP (Guzzle) theme={null}
  $client = new \GuzzleHttp\Client();
  $response = $client->post(
    'https://verilock.io/api/v1/sessions/ses_a1b2c3d4-.../submit',
    [
      'headers' => [
        'Authorization' => 'Bearer qi_live_your_api_key_here',
        'Accept' => 'application/json',
      ],
    ]
  );
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "ses_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "processing",
    "message": "Session submitted for verification. You will be notified via webhook when processing is complete."
  }
  ```

  ```json 422 Unprocessable Entity theme={null}
  {
    "error": "Validation Error",
    "message": "Cannot submit session: missing required uploads.",
    "missing": ["selfie"]
  }
  ```
</ResponseExample>
