Войти в ЛК

Webhooks

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

Webhooks позволяют получать уведомления о событиях в реальном времени. Вместо периодического опроса API, GuestMe отправляет HTTP-запросы на ваш URL при каждом изменении данных.

Создание webhook

POST /api/v1/external/webhook — регистрация нового webhook.

Параметры

Поле

Тип

Обязательное

Описание

url

string

да

URL для получения уведомлений (HTTPS рекомендуется)

token

string

нет

Токен для авторизации (передаётся в заголовке)

authorizationHeaderPrefix

string

нет

Префикс заголовка Authorization (по умолчанию "Bearer", макс. 20 символов)

events

array

нет

Типы событий: CREATE, UPDATE, DELETE

entities

array

нет

Типы сущностей: RESTAURANT, BOOKING

Управление webhooks

  • GET /api/v1/external/webhook — получить список всех webhooks
  • PUT /api/v1/external/webhook/{id} — обновить webhook
  • DELETE /api/v1/external/webhook/{id} — удалить webhook

Типы событий

Каждый webhook можно подписать на определённые комбинации событий и сущностей:

Событие

Сущность

Когда срабатывает

CREATE

BOOKING

Создано новое бронирование

UPDATE

BOOKING

Статус бронирования изменился

DELETE

BOOKING

Бронирование удалено

CREATE

RESTAURANT

Ресторан подключён к системе

UPDATE

RESTAURANT

Данные ресторана обновлены

DELETE

RESTAURANT

Ресторан удалён из системы

Формат уведомления

GuestMe отправляет POST-запрос на URL webhook с JSON-телом WebhookEventExternalDto:

Поле

Тип

Описание

uuid

UUID

Уникальный идентификатор события

date

date-time

Дата и время события (ISO 8601)

event

enum

Тип события (CREATE, UPDATE, DELETE)

entity

enum

Тип сущности (BOOKING, RESTAURANT)

data

object

Данные — BookingExternalDto или RestaurantExternalDto

Авторизация запросов

Для защиты вашего эндпоинта от несанкционированных запросов настройте авторизацию при создании webhook:

GuestMe будет отправлять заголовок вида:

Authorization: Bearer ваш_токен

Где Bearer — значение authorizationHeaderPrefix, а ваш_токен — значение поля token.