---
title: "Check a verification code"
method: POST
path: "/v1/verify/verifications/{verificationId}/check"
tags: ["Verify"]
---

# Check a verification code

`POST /v1/verify/verifications/{verificationId}/check`

Verify the code the user typed. Wrong, expired, and exhausted codes
answer 200 with `valid: false` and the settled `status`. Only an
unknown id is a 404. A correct code consumes the verification
(single-use, `status: approved`) and fires the `verification.approved`
webhook; the 5th wrong attempt settles it as `max_attempts_reached`
and fires `verification.failed`.

## Path parameters

- `verificationId` string, required

## Request body

- object
  - `code` string, required

## Response `200`

Check result: the verification plus `valid`.

- object — A managed OTP verification. The code itself is never returned or stored (hash only).
  - `id` string
  - `status` 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed'
  - `channel` 'sms'
  - `to` string
  - `expiresAt` string, date-time
  - `attempts` integer
  - `maxAttempts` integer
  - `sendCount` integer — Accepted deliveries (initial send + resends); each bills one verification fee.
  - `lastSentAt` string, date-time, nullable
  - `createdAt` string, date-time
  - `resend` boolean — Present on create responses: true when an active verification was resent instead of created.
  - `valid` boolean

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — Verification not found (or already reaped).

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 1 info
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/verify/verifications/:verificationId/check/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/fdaf9a9fb1a7?raw)
