Barfinex

Вебхуки и алертинг

Настройка вебхуков для доставки системных событий и правил алертов для автоматических уведомлений в Barfinex Studio.

Вебхуки и алертинг позволяют получать уведомления о важных событиях в вашем стеке Barfinex — сигналы, решения AI, действия по рискам, недоступность сервисов и другое.


Вебхуки

Создание вебхука

  1. Откройте Studio → Webhooks.
  2. Нажмите Create Webhook.
  3. Заполните конфигурацию:
ПолеОбязательноОписание
NameДаЧеловекочитаемое название вебхука.
URLДаHTTPS-эндпоинт, который будет получать POST-запросы.
EventsДаОдин или несколько типов событий для подписки.
SecretНетОбщий секрет для проверки HMAC-подписи.
ActiveДаВключён ли вебхук в данный момент.
  1. Нажмите Save. Studio отправит тестовый пинг для проверки доступности URL.

Доступные типы событий

Тип событияСрабатывает, когда
signal.emittedDetector генерирует новый торговый сигнал.
decision.madeAdvisor принимает решение (исполнить, пропустить или отклонить).
risk.blockedInspector блокирует намерение исполнения из-за нарушения политики риска.
order.placedОрдер размещён на бирже через Inspector.
order.filledОрдер полностью исполнен на бирже.
service.upРанее недоступный сервис снова работает.
service.downПодключённый сервис стал недоступен.
deployment.createdНовое развёртывание сервиса создано через мастер.
deployment.updatedКонфигурация развёрнутого сервиса изменена.
deployment.deletedРазвёрнутый сервис удалён.

Формат полезной нагрузки

Каждая доставка вебхука — это HTTP POST с JSON-телом:

{
  "id": "evt_abc123",
  "type": "signal.emitted",
  "timestamp": "2026-03-27T12:00:00.000Z",
  "data": {
    "symbol": "BTCUSDT",
    "direction": "LONG",
    "score": 0.82
  }
}

Поле data варьируется в зависимости от типа события.

Проверка HMAC-подписи

Если вы настроили Secret для вебхука, каждая доставка включает заголовок X-Barfinex-Signature с HMAC-SHA256 подписью тела запроса.

Для проверки:

  1. Вычислите HMAC-SHA256(secret, raw_request_body).
  2. Сравните результат со значением в X-Barfinex-Signature.
  3. Если значения совпадают, полезная нагрузка подлинна и не изменена.

Пример (Node.js):

const crypto = require('crypto');

function verifySignature(secret, body, signature) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(body, 'utf8')
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}

Доставка и повторные попытки

  • Studio доставляет вебхуки с таймаутом 10 секунд.
  • Если эндпоинт возвращает не-2xx статус, Studio повторяет попытку до 3 раз с экспоненциальной задержкой (10с, 30с, 90с).
  • Неудачные доставки видны в истории доставки вебхука.
  • Вы можете вручную повторить неудачную доставку из интерфейса Studio.

Алертинг

Типы правил алертов

Тип правилаУсловиеПример использования
Нет сигналовСтратегия не генерировала сигнал в течение N минут.Обнаружение зависшей или неправильно настроенной стратегии.
Порог просадкиПросадка портфеля превышает N%.Получение уведомления до эскалации убытков.
Сервис недоступенПодключённый сервис недоступен в течение N секунд.Быстрая реакция на сбои инфраструктуры.

Создание правила алерта

  1. Откройте Studio → Alerting.
  2. Нажмите Create Rule.
  3. Выберите тип правила и настройте параметры:
    • Для Нет сигналов: выберите стратегию и порог тишины (минуты).
    • Для Порог просадки: установите процентный порог.
    • Для Сервис недоступен: выберите сервис и порог недоступности (секунды).
  4. В разделе Delivery выберите один или несколько вебхуков для получения уведомлений.
  5. Нажмите Save.

Подключение алертов к вебхукам

Правила алертов не доставляют уведомления самостоятельно. Каждое правило должно быть подключено хотя бы к одному вебхуку.

Когда условие алерта выполняется:

  1. Studio проверяет правило.
  2. При срабатывании Studio отправляет доставку вебхука с типом события alert.triggered.
  3. Полезная нагрузка включает тип правила, порог и текущее значение.

Пример полезной нагрузки алерта:

{
  "id": "evt_def456",
  "type": "alert.triggered",
  "timestamp": "2026-03-27T12:05:00.000Z",
  "data": {
    "rule": "drawdown_threshold",
    "threshold": 5.0,
    "current_value": 5.3,
    "message": "Portfolio drawdown exceeded 5.0% (current: 5.3%)"
  }
}

Каналы доставки

Вебхуки могут указывать на любой HTTP-эндпоинт, поэтому вы можете доставлять алерты через:

  • Slack — используйте URL Slack Incoming Webhook.
  • Telegram — используйте URL Telegram Bot API с вашим chat ID.
  • PagerDuty — используйте эндпоинт PagerDuty Events API v2.
  • Пользовательские сервисы — любой HTTPS-эндпоинт, принимающий POST-запросы.

Устранение неполадок

ПроблемаРешение
Вебхук показывает "unreachable"Убедитесь, что URL доступен из вашей сети и возвращает 2xx ответ на POST-запросы.
Проверка подписи не проходитУбедитесь, что используете сырое тело запроса (не распарсенный JSON) для вычисления HMAC.
Алерты не срабатываютПроверьте, что правило алерта подключено хотя бы к одному активному вебхуку.
Дублирующиеся доставкиЭто может происходить при повторных попытках. Используйте поле id для дедупликации на вашей стороне.

Давайте свяжемся

Есть вопросы или хотите узнать больше о Barfinex? Напишите нам.