---
title: "Verify OTP code"
method: POST
path: "/api/consents/verify-otp"
tags: ["consents"]
---

# Verify OTP code

`POST /api/consents/verify-otp`

Verify OTP code for informed consent. Marks consent as verified and sets 10-year expiration.

## Request body

- VerifyOTPRequest — Request to verify OTP code.
  - `consent_id` string, uuid, required — Consent UUID
  - `otp_code` string, required — 6-digit OTP code

## Response `200`

Successful Response

- VerifyOTPResponse — Response after OTP verification.
  - `consent_id` string, uuid, required — Consent UUID
  - `status` 'draft' | 'pending_otp' | 'pending_approval' | 'revision_required' | 'verified' | 'expired' | 'revoked', required — Informed consent status constants.
  - `message` string, required — Success message
  - `verified_at` string, date-time, required — Verification timestamp
  - `expires_at` string, date-time, required — Consent expiration date (10 years)

## Other responses

- `422` — Validation Error

---

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