Fired when a verification is explicitly marked complete via POST /verifications/{id}/complete.

postWebhookverification.completed

Payload

idstring 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_atstring date-time required

Example payload

{
  "id": "evt_01HXYZ123456789ABCDEFG",
  "data": {
    "verification": {
      "id": "ver_01HXYZ123ABC",
      "display_id": "SMS7K4P2N",
      "phone_number": "+15551234567",
      "service_id": "svc_telegram",
      "service_name": "Telegram",
      "code": "123456",
      "paid_reuse_price_cents": 50
    }
  }
}

Response

Acknowledged.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.