---
title: "Create Verification Session"
method: POST
path: "/api/v1/sessions"
tags: ["sessions"]
---

# Create Verification Session

`POST /api/v1/sessions`

## Request

- Base URL: `https://api.withverifa.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.withverifa.com/api/v1/sessions`
- Auth: none declared

Create a new verification session.

Validates country code, per-session check overrides, workflow reference,
and redirect URL. Generates a capture URL with QR code. Fires a
session.created webhook and logs the action.

Returns:
    SessionResponse with session ID, capture URL, and QR data URL.

## Request body

- CreateSessionRequest
  - `external_ref` string, nullable
  - `metadata` object, nullable
  - `country` string, nullable
  - `checks` string[], nullable
  - `workflow_id` string, nullable
  - `fields` PrefillFields: Optional pre-fill values written into session capture data on create. Aliases are declared in snake_case form (e.g. `name_first`). The KeyInflectionMiddleware normalises kebab-case (`name-first`) and camelCase (`nameFirst`) inbound keys to snake_case before this schema runs, so all three casings are accepted for every alias for free. Pre-filled values are stored encrypted in session_capture_data and do not auto-mark capture steps as submitted — the user still walks through the capture flow.
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `date_of_birth` string, nullable
    - `email` string, nullable
    - `phone` string, nullable
    - `ssn` string, nullable
    - `address_line1` string, nullable
    - `address_line2` string, nullable
    - `address_city` string, nullable
    - `address_state` string, nullable
    - `address_zip` string, nullable
    - `address_country` string, nullable
  - `redirect_url` string, nullable
  - `send_email` boolean
  - `applicant_name` string, nullable
  - `applicant_email` string, nullable
  - `display_name` string, nullable
  - `support_url` string, nullable
  - `expires_in` integer, nullable

## Response `201`

Successful Response

- SessionResponse
  - `id` string, required
  - `status` string, required
  - `external_ref` string, nullable, required
  - `capture_url` string, required
  - `qr_code_data_url` string, nullable
  - `is_sandbox` boolean
  - `created_at` string, required
  - `expires_at` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/withverifa/apis/verifa.md) · [All operations](https://skmtc.dev/withverifa/apis/verifa/llms.txt) · [OpenAPI document](https://skmtc.dev/withverifa/apis/verifa/revisions/7288c82c9e33?raw)
