Webhooks
Настройка webhooks для получения уведомлений о бронированиях и ресторанах
Webhooks позволяют получать уведомления о событиях в реальном времени. Вместо периодического опроса API, GuestMe отправляет HTTP-запросы на ваш URL при каждом изменении данных.
Создание webhook
POST /api/v1/external/webhook — регистрация нового webhook.
Параметры
Поле | Тип | Обязательное | Описание |
|---|---|---|---|
|
| да | URL для получения уведомлений (HTTPS рекомендуется) |
|
| нет | Токен для авторизации (передаётся в заголовке) |
|
| нет | Префикс заголовка Authorization (по умолчанию "Bearer", макс. 20 символов) |
|
| нет | Типы событий: CREATE, UPDATE, DELETE |
|
| нет | Типы сущностей: RESTAURANT, BOOKING |
Управление webhooks
GET /api/v1/external/webhook— получить список всех webhooksPUT /api/v1/external/webhook/{id}— обновить webhookDELETE /api/v1/external/webhook/{id}— удалить webhook
Типы событий
Каждый webhook можно подписать на определённые комбинации событий и сущностей:
Событие | Сущность | Когда срабатывает |
|---|---|---|
|
| Создано новое бронирование |
|
| Статус бронирования изменился |
|
| Бронирование удалено |
|
| Ресторан подключён к системе |
|
| Данные ресторана обновлены |
|
| Ресторан удалён из системы |
Формат уведомления
GuestMe отправляет POST-запрос на URL webhook с JSON-телом WebhookEventExternalDto:
Поле | Тип | Описание |
|---|---|---|
|
| Уникальный идентификатор события |
|
| Дата и время события (ISO 8601) |
|
| Тип события (CREATE, UPDATE, DELETE) |
|
| Тип сущности (BOOKING, RESTAURANT) |
|
| Данные — BookingExternalDto или RestaurantExternalDto |
Авторизация запросов
Для защиты вашего эндпоинта от несанкционированных запросов настройте авторизацию при создании webhook:
GuestMe будет отправлять заголовок вида:
Authorization: Bearer ваш_токен
Где Bearer — значение authorizationHeaderPrefix, а ваш_токен — значение поля token.
Для локальной разработки используйте сервисы вроде ngrok для создания публичного URL к вашему локальному серверу.