---
title: "Otp Verify"
method: POST
path: "/v1/contact-verification/otp/verify"
tags: ["Contact Verification"]
---

# Otp Verify

`POST /v1/contact-verification/otp/verify`

Verify an OTP issued by /otp/generate. Priced 0 — the send is the billed step.

Every evaluatable outcome (verified / wrong-but-retryable / expired / locked) is a
200; only a reference that cannot be evaluated at all — malformed, never issued, or
already consumed — is a 422.

## Response `200`

Successful Response

- RESPONSECONTACTVERIFICATIONOTPVERIFY
  - `code` integer, required
  - `timestamp` integer
  - `transaction_id` string
  - `sub_code` string
  - `message` string, required
  - `data` OtpVerifyData
    - `reference_id` string, required
    - `status` string, required
    - `attempts_remaining` integer

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.dev/deepvue/apis/deepvue-tech-developers-guide.md) · [All operations](https://skmtc.dev/deepvue/apis/deepvue-tech-developers-guide/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/deepvue/deepvue-tech-developers-guide/revisions/c1b0558e7d77/schema)
