---
title: "Mark a verification as done"
method: POST
path: "/verifications/{id}/complete"
tags: ["Verifications"]
---

# Mark a verification as done

`POST /verifications/{id}/complete`

## Request

- Base URL: `https://dashboard.voidmob.com/api/v1`
- URL: `https://dashboard.voidmob.com/api/v1/verifications/{id}/complete`
- Auth: HTTP bearer

Marks a verification as complete and moves it out of the active
dashboard list into history. Local-only status flip - no refund, no
external call, no balance movement. Use this when your integration
has consumed the code and you no longer want the verification taking
up space in the active view.

Valid while the verification is in `waiting_for_code` or
`code_received` state, or when it has expired without a code. Once
explicitly completed (or cancelled), the call returns
`409 COMPLETE_NOT_ALLOWED`.

Completion is optional - verifications automatically leave the
active list when their rental window expires (~15 min). This
endpoint just lets bulk callers tidy up sooner.

## Path parameters

- `id` string, required: Opaque verification (SMS rental) identifier.

## Headers

- `Idempotency-Key` string, required

## Response `200`

Verification marked complete.

- object
  - `success` true, required
  - `data` object, required
    - `verification` object, required
      - `id` string, required: Opaque verification (SMS rental) identifier.
      - `status` 'code_received', required

## Other responses

- `400`: 400 - Request failed validation.
- `401`: 401 - Authentication required.
- `404`: 404 - Verification not found.
- `409`: Idempotency conflict OR the verification can no longer be completed.
- `429`: 429 - Rate limit exceeded. Retry after the indicated interval.

---

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