🔔 Вебхуки
Система поддерживает автоматическую доставку информации о событиях через обратный запрос (Webhooks / Callbacks).
URL для обратного запроса может быть настроен отдельно для Buy и Sell ордеров в личном кабинете клиента (при наличии прав) или через администратора.
По умолчанию при создании нового терминала URL для обратного запроса не настроен. В этом случае коллбэки отправляться не будут.
Также URL можно указать для конкретного ордера - параметр webhook_url при создании ордера. В этом случае вебхук по ордеру отправляется на него, а не на URL, настроенные на терминале.
После изменения статуса или суммы ордера, сервер отправляет POST запрос на указанный в системе URL.
В ответ на отправку вебхука сервер ожидает код 200 в качестве подтверждения получения информации (таймаут ожидания ответа - 30 секунд). При других кодах ответа, система будет повторять попытки доставки с интервалами:
- 15 секунд
- 1 минута
- 5 минут
- 15 минут
- 1 час
после чего прекратит пытаться доставить информацию. Всего выполняется 6 попыток доставки: первая сразу и 5 повторных.
Типы вебхуков
- Buy Order Webhook - уведомления об изменениях в ордерах типа Buy
- Sell Order Webhook - уведомления об изменениях в ордерах типа Sell
Настройка вебхуков
- Можно настроить отдельные адреса для каждого типа вебхука
- Можно использовать один адрес для всех вебхуков
- Если адреса не указаны, вебхуки не будут отправляться
Заголовки вебхука
- X-API-Key: тот же ключ API, что используется для запросов (Аутентификация). Не отправляется, если для терминала включена опция скрытия API ключа
- X-Request-Id: уникальный идентификатор запроса
Формат данных вебхука
json
{
"request_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"webhook_type": "buy_update",
"datetime": "2024-08-02T15:34:07.440105",
"payload": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"client_order_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"currency": "RUB",
"method_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"initial_method_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"method_name": "Сбербанк",
"method_type": "BankCard",
"order_side": "Buy",
"amount": "1000.00000",
"fee": "10.0",
"fixed_fee": null,
"status": "Completed",
"holder_name": "Петр Петрович Петров",
"holder_account": "4627100000000001",
"customer_name": "Петр Петрович Петров",
"customer_account": null,
"customer_bank": null,
"payment_link": null,
"webhook_url": null,
"created_at": "2024-08-02T13:47:05.540582Z",
"updated_at": "2024-08-02T15:19:27.545438Z",
"expires_at": "2024-08-02T14:02:05Z"
}
}