Выписка и баланс
Все маршруты этого раздела работают с тем же ключом, что и отправка кодов.
Список сессий
GET /v1/verifications возвращает массив сессий, новые сверху.
| Параметр | Значение |
|---|---|
status |
pending, verified, failed или expired |
channel |
Канал, доставивший код: telegram, whatsapp или sms |
q |
vrf_…, часть номера или correlation_id |
limit |
От 1 до 100, по умолчанию 50 |
before |
Курсор, время в формате RFC 3339 |
Для следующей страницы передайте в before значение created_at последней строки.
GET /v1/verifications.csv принимает те же фильтры и отдаёт до 10 000 строк: разделитель ;, кодировка UTF-8 с BOM.
Карточка сессии
GET /v1/verifications/{id} показывает сессию и путь кода по каналам:
{
"id": "vrf_8c1f04a2b7d93e6f5a10",
"phone": "+77011234567",
"status": "verified",
"purpose": "login",
"checks": 1,
"cost_tiyn": 1400,
"created_at": "2026-11-08T10:00:00Z",
"expires_at": "2026-11-08T10:05:00Z",
"verified_at": "2026-11-08T10:00:41Z",
"test": false,
"correlation_id": "order-42",
"attempts": [
{"channel": "telegram", "status": "undeliverable", "cost_tiyn": 0, "error": "PHONE_NUMBER_NOT_FOUND", "created_at": "2026-11-08T10:00:00Z", "updated_at": "2026-11-08T10:00:02Z"},
{"channel": "whatsapp", "status": "delivered", "cost_tiyn": 1400, "created_at": "2026-11-08T10:00:02Z", "updated_at": "2026-11-08T10:00:05Z"}
]
}
Текст в error приходит от провайдера и может меняться, не стройте на нём логику. Необязательные поля появляются, только если у них есть значение: verified_at, ip, ip_country, device, locale, preferred_channel, correlation_id.
Статистика
GET /v1/stats?days=14 возвращает итоги за период от 1 до 90 дней: verifications, verified, delivered, spent_tiyn, saved_vs_sms_tiyn, разбивку channels и daily.
Баланс и счета
GET /v1/billing/balance:
{"balance_tiyn": 1250000, "balance_kzt": "12500.00"}
POST /v1/billing/invoices с телом {"amount_kzt": 50000} выставляет счёт на сумму от 5 000 ₸ до 50 000 000 ₸. GET /v1/billing/invoices возвращает последние 50 счетов.