---
title: "Free reuse of a verification that already received a code"
method: POST
path: "/verifications/{id}/reuse"
tags: ["Verifications"]
---

# Free reuse of a verification that already received a code

`POST /verifications/{id}/reuse`

## Request

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

Re-arms the same number to receive another SMS while the rental's
window is still open. Free because the original rental still owns the
number.

Callers should check `allow_reuse` on the verification resource before
calling. The rental may have transitioned states between your last GET
and this call - in that case the API returns
`409 REUSE_NOT_ALLOWED`. Per-rental cooldown is 30 seconds.

Reuse is not supported on every catalog service. When unavailable the
API returns `409 NOT_SUPPORTED`; check `allow_reuse` on the verification
first to skip the round trip.

## Path parameters

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

## Headers

- `Idempotency-Key` string, required

## Response `200`

Reuse successful; the verification resource is re-armed and ready for a new code.

- object
  - `success` true, required
  - `data` object, required
    - `verification` Verification, required
      - `id` string, required: Opaque verification (SMS rental) identifier.
      - `display_id` string, nullable: Human-readable order identifier for display in dashboards and receipts (e.g. `SMS7K4P2N`). Null for legacy rentals created before this field was introduced.
      - `status` 'waiting_for_code' | 'code_received' | 'cancelled' | 'expired' | 'failed', required: `waiting_for_code` - number is live (up to 15 minutes, see `expires_at`), no SMS yet. `code_received` - at least one SMS arrived. `cancelled` - the price was refunded, either because you cancelled or because the window closed with no SMS (automatic refund). `expired` - the window closed with no SMS and no automatic refund (services marked non-refundable, or rare cases where the refund could not be applied automatically). `failed` is reserved and not emitted.
      - `phone_number` string, required: E.164 phone number (with leading +).
      - `service_id` string: Opaque public service identifier.
      - `service_name` string, required
      - `charged_price_cents` integer, required: Actual amount deducted from the wallet for this verification.
      - `pricing_source` 'regular' | 'category' | 'override' | 'promo': Attribution for the charged price. Omitted for legacy rentals. "promo" means a redeemed service-discount code priced this purchase.
      - `expires_at` string, date-time, required
      - `can_cancel` boolean, required: Whether the rental is currently cancellable. Becomes false once a code arrives or the cancel window closes.
      - `created_at` string, date-time, required
      - `code` string: The received SMS code. Present only when `status = code_received`.
      - `code_received_at` string, date-time: When the code arrived. Present only when `status = code_received`.
      - `reuse_counter` integer, required: Number of user-initiated reuses (free or paid) on this number. Starts at 0. Automatic reuses are not counted.
      - `allow_reuse` boolean, required: Free reuse is currently available.
      - `allow_paid_reuse` boolean, required: Paid reuse is currently available. STR rentals only.
      - `paid_reuse_price_cents` integer, required: Fixed price for one paid reuse.
      - `charged_reuse_cents` integer: Set on the response of a successful POST /reuse/paid. Not present otherwise.
      - `refunded_cents` integer: Set on the response of a successful POST /cancel. Not present otherwise.

## Other responses

- `400`: 400 - Request failed validation.
- `401`: 401 - Authentication required.
- `404`: 404 - Verification not found.
- `409`: 409 - Reuse is not available for this verification. Check allow_reuse / allow_paid_reuse on the verification before calling.
- `422`: 422 - This action is not supported.
- `429`: 429 - Too many reuse attempts on this verification. Try again shortly.

---

[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)
