Документація·Вебхуки
🪝

Вебхуки

Отримуйте події активацій, оренди та гаманця як HTTPS-колбеки з HMAC-підписом.

Навіщо вебхуки

Опитування — марнотратне: sub-second лімітується, з інтервалом у секунди додає затримку. Вебхуки доштовхують події миттєво.

Реєстрація

Account → Webhooks → New endpoint: HTTPS URL, типи подій, стратегія retry (exponential / linear / none). Signing secret показується один раз.

Події

  • activation.sms_received — вхідне SMS зматчилось з активацією
  • activation.expired — вікно закрилось без коду
  • activation.finished — активацію підтверджено
  • rent.sms_received — вхідне SMS на оренді
  • wallet.credited / wallet.debited — рух коштів
  • support.message.received — відповідь оператора в треді

Payload

{
  "event": "activation.sms_received",
  "delivery_id": "b7e2c1a0-9f3d-4c5e-8a1b-2d3e4f5a6b7c",
  "created_at": "2026-05-26T14:30:14Z",
  "data": { "order_id": "9a1f2c3d-4e5b-6a7c-8d9e-0f1a2b3c4d5e", "phone": "+380635551822", "code": "123456", "service": "telegram" }
}

Перевірка підпису

Хедер: X-Eveses-Signature: sha256=<hmac> (timestamp in X-Eveses-Timestamp). HMAC-SHA256 над <ts>.<raw-body> з вашим secret.

$ts  = $_SERVER['HTTP_X_EVESES_TIMESTAMP'] ?? '';
$sig = $_SERVER['HTTP_X_EVESES_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac('sha256', $ts . '.' . file_get_contents('php://input'), $secret);
if (!hash_equals($expected, $sig) || abs(time() - (int) $ts) > 300) { http_response_code(401); exit; }

Відхиляйте запити старші 5 хвилин (replay-вікно).

Retry

Невдалі доставки (non-2xx або немає відповіді в 10с) ретраяться. Exponential: 30с, 2хв, 10хв, 1г, 6г, потім dead. Replay вручну з дашборду.