---
title: "Fired when a verification is created via the API."
method: POST
path: "verification.created"
---

# Fired when a verification is created via the API.

`POST verification.created` (webhook)

## Signature

Every delivery includes `X-VoidMob-Signature: t=<unix>,v1=<hex>`.
Compute `v1 = HMAC-SHA256(secret, "${t}.${raw_body}")` and compare in
constant time. Reject if `t` is more than 5 minutes from now to
prevent replay.

## Retries

Failed deliveries (non-2xx, timeout, network) are retried with
exponential backoff for ~24 hours. After 30 consecutive failures the
endpoint is auto-disabled; re-enable it from the developer portal.

## Payload

- VerificationEvent
  - `id` string, required: Unique delivery id. Use for deduping on your side.
  - `type` '*' | 'verification.created' | 'verification.code_received' | 'verification.cancelled' | 'verification.completed' | 'verification.expired' | 'verification.failed' | 'rental.created' | 'rental.message_received' | 'rental.code_received' | 'rental.renewed' | 'rental.expired' | 'rental.cancelled' | 'rental.auto_renew_disabled' | 'proxy.ready' | 'proxy.provisioning_failed' | 'proxy.expired' | 'proxy.traffic_low' | 'proxy.traffic_exhausted' | 'proxy.renewed' | 'proxy_pool.low' | 'proxy_pool.expiring' | 'proxy_pool.extended' | 'esim.created' | 'esim.provisioning_failed' | 'esim.topup_added' | 'esim.expired' | 'esim.cancelled' | 'esim.refunded', required
  - `created_at` string, date-time, 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.

## Acknowledgement `2XX`

Acknowledged. Any 2xx is accepted; body is ignored.

---

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