Мазмұнға өту
ҚұжаттамаКіру

Вебхуктар

VERYO серверіңізге кодтың жеткізілгені мен расталғаны туралы хабарлайды, сондықтан API-ге қайта-қайта сұрау жіберудің қажеті жоқ. Мекенжай, оқиғалар және құпия кабинеттегі Вебхуктар бөлімінде орнатылады. Сол жерде webhook.test тест оқиғасын жіберуге және жеткізу журналын қарауға болады.

Мекенжай https:// деп басталуы керек және ішкі желіге апармауы керек.

Оқиғалар

Оқиға Қашан data өрістері
verification.delivered Арна кодты жеткізді verification_id, phone, channel, cost_tiyn
verification.verified Пайдаланушы дұрыс кодты енгізді verification_id, phone, status
verification.failed Енгізу әрекеттері немесе арналар таусылды verification_id, phone, status; жеткізу сәтсіз болса, reason

correlation_id сұрауда берілген болса, data ішіне қосылады. Кодтың мерзімі өткені туралы оқиға жіберілмейді.

{
  "id": "evt_1a2b3c4d5e6f70819a2b",
  "type": "verification.delivered",
  "created_at": "2026-11-08T10:00:03Z",
  "data": {
    "verification_id": "vrf_8c1f04a2b7d93e6f5a10",
    "phone": "+77011234567",
    "channel": "telegram",
    "cost_tiyn": 900,
    "correlation_id": "order-42"
  }
}

Қолтаңбаны тексеру

Тақырып Мәні
X-Veryo-Event-Id Оқиға идентификаторы
X-Veryo-Timestamp Жіберу уақыты, Unix секундтары
X-Veryo-Signature sha256= және HMAC-SHA256(құпия кілт, "<timestamp>.<шикі дене>") мәнінің hex түрі

Қолтаңба JSON талданғанға дейін сұраудың шикі денесі бойынша есептеледі:

import { createHmac, timingSafeEqual } from 'node:crypto'

function verify(rawBody, timestamp, signature, secret) {
  const hash = createHmac('sha256', secret).update(`${timestamp}.${rawBody}`).digest('hex')
  const expected = Buffer.from(`sha256=${hash}`)
  const got = Buffer.from(signature)
  return got.length === expected.length && timingSafeEqual(got, expected)
}

Құпия баптауларды алғаш сақтаған кезде беріледі. Кабинетте құпияны ауыстырғанда ескісі бірден жарамсыз болады.

Жауап және қайталаулар

10 секунд ішінде 2xx кодымен жауап беріңіз. Редиректтер орындалмайды. Сәтсіз болса, VERYO жіберуді 1 минут, 5 минут, 30 минут, 2 сағат, 6 сағат және 15 сағаттан кейін қайталайды — барлығы 7 әрекет.

Жеткізу «кемінде бір рет» қағидаты бойынша жұмыс істейді: бір оқиға екі рет келуі мүмкін. Қайталанғандарын оқиғаның id мәні бойынша сүзіп тастаңыз.