---
title: "Request a verification code"
method: POST
path: "/v2/senders/registrations/{registration_id}/verifications"
tags: ["Senders"]
---

# Request a verification code

`POST /v2/senders/registrations/{registration_id}/verifications`

## Request

- Base URL: `https://api.transmitmessage.com`
- URL: `https://api.transmitmessage.com/v2/senders/registrations/{registration_id}/verifications`
- Auth: API key in header `x-api-key`

Requests a verification code for a sender registration. This endpoint supports registrations with `type` = `PERSONAL_MOBILE_NUMBER` only.

  - The API delivers the code to the registered sender number using the selected `method`, such as `SMS`.
  - Codes expire after 30 minutes.
  - You have a maximum of 5 attempts to confirm the code.

## Path parameters

- `registration_id` string, uuid, required

## Request body

- VerificationRequest: Request body for requesting a verification code.
  - `method` 'SMS', required: Method used to deliver the verification code.
  - `originating_sender` string, required: Verified sender owned by the account that the API uses to send the verification code.

## Response `201`

Successful response containing the verification details.

- object
  - `data` object, required: A verification record for a sender registration.
    - `registration_id` string, uuid, required: The registration this verification belongs to.
    - `method` 'SMS', required: Method used to deliver the verification code.
    - `originating_sender` string, required: The sender number used to deliver the verification code.
    - `status` 'SENT' | 'CONFIRMED' | 'EXPIRED' | 'FAILED', required: Status of a sender registration verification.
    - `expires_at` string, date-time, required: Timestamp in RFC3339 format (e.g., 2025-08-26T10:35:00Z) when the verification code expires.
    - `attempts_remaining` integer, required: Number of remaining attempts to submit the verification code.
  - `request` object: Optional metadata (e.g. requestId, traceId)
  - `meta` object: Optional pagination, feature flags, etc.

## Other responses

- `400`: Input Validation Error
- `401`: Unauthorized. The credential is missing or was rejected by the authentication check. For API keys, other 4xx codes from the key check are returned with the same body, and a failure inside the authentication check returns 500 with it.
- `404`: Not Found
- `409`: A verification already exists for this registration. Create a new sender registration to request a new code.
- `500`: Internal Server Error
- `503`: Service Unavailable. The authentication check could not be reached. If it is reached but fails internally, the gateway returns 500 with the same body.

## Changes

- **2026-10-01** `e7314f92947a`: 1 breaking, 3 info
  - the response's body type changed from no type to `object` for status `401`
  - removed `#/components/schemas/CommonErrorResponse, subschema #2` from the response body `allOf` list for the response status `401`
  - added the non-success response with the status `503`
  - added the required property `status` to the response with the `401` status

[Operation history](https://skmtc.dev/kudosity/apis/transmit-message-api/changes/v2/senders/registrations/:registration_id/verifications/post.md)

---

[API](https://skmtc.dev/kudosity/apis/transmit-message-api.md) - [All operations](https://skmtc.dev/kudosity/apis/transmit-message-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kudosity/apis/transmit-message-api/revisions/6ad9a1c0cd6b?raw)
