---
title: "Initiate a new verification"
method: POST
path: "/v1/verification/initiate"
tags: ["Verification"]
---

# Initiate a new verification

`POST /v1/verification/initiate`

Creates a new verification session.

Authentication:
- JWT token: Organization inferred from user's authenticated organization
- API Key: Organization inferred from API key's associated organization

Customer handling:
- If customerId is provided: Creates verification for existing customer
- If customerId is omitted: Checks for existing customer by email. If found, uses existing customer. If not found, creates new customer with provided email/name details.

Idempotency:
- Customer email must be unique within the organization
- If an active verification session exists for the customer, returns the existing session
- If a pending verification session exists for the customer, returns an error

## Headers

- `X-API-Key` string

## Request body

- InitiateVerificationDto
  - `type` 'INDIVIDUAL' | 'BUSINESS', required — Customer type
  - `countryCode` string, required — Country code (ISO 3166-1 alpha-2)
  - `email` string, email, required — Customer email address. Must be unique within the organization. If a customer with this email already exists, the existing customer will be used.
  - `name` string, required — Customer name
  - `customerId` string — Existing customer ID (optional)
  - `fillOnBehalf` boolean — When true, indicates the organization will fill out the verification on behalf of the customer. No reminder emails will be sent.
  - `redirectUrl` string, uri — URL to redirect the user to after verification is completed. When provided, the user will be automatically redirected to this URL after successfully completing the verification flow.

## Response `200`

- InitiateVerificationResponseDto
  - `verification` object, required
    - `sessionId` string
    - `verificationUrl` string
    - `expiresAt` string

## Other responses

- `400` — Bad request - Customer has a pending verification session. Please wait for the current verification to be reviewed.
- `401` — Unauthorized - Invalid or missing authentication credentials

---

[API](https://skmtc.dev/infinite/apis/infinite-api.md) · [All operations](https://skmtc.dev/infinite/apis/infinite-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/infinite/infinite-api/revisions/5426f2706725/schema)
