---
title: "Confirm the code spoken on the verification call"
method: POST
path: "/api/numbers/verify/confirm"
tags: ["Numbers"]
---

# Confirm the code spoken on the verification call

`POST /api/numbers/verify/confirm`

## Request

- Base URL: `https://api.wordis-bond.com`
- URL: `https://api.wordis-bond.com/api/numbers/verify/confirm`
- Auth: HTTP bearer

On success the number becomes a permitted `pstn` target for this account. The code is compared in constant time against the stored digest and is burned on use. Wrong codes decrement `attemptsRemaining`; the challenge locks at zero and a new verification must be started.

## Request body

- object
  - `number` string, required
  - `code` string, required
  - `label` string: Optional label stored with the verified number.

## Response `201`

The number is verified

- object
  - `data` VerifiedNumber, required: A phone number this account has proven it controls; a permitted `pstn` test destination.
    - `id` string, uuid, required
    - `number` string, required: Canonical E.164.
    - `method` 'voice_code': How control was proven.
    - `label` string, nullable
    - `verifiedAt` string, date-time
  - `error` union, required
    - object
    - string

## Other responses

- `401`: Missing, invalid, or revoked credentials.
- `422`: Validation failed, or the challenge cannot be used: `NO_PENDING_VERIFICATION`, `VERIFICATION_EXPIRED`, or `INVALID_CODE` (with `attemptsRemaining`).
- `429`: `VERIFICATION_LOCKED` — too many incorrect codes. Start a new verification.

---

[API](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api.md) · [All operations](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api/llms.txt) · [OpenAPI document](https://skmtc.dev/wordis-bond/apis/word-is-bond-voice-agent-testing-api/revisions/66c2d5480d84?raw)
