Перейти к содержимому
Разделы

Бронирования и лист ожидания

Получить публичную конфигурацию бронирования

GET/public/reservations/{publicHandle}/config

Возвращает опубликованные сведения о заведении, правила бронирования, периоды обслуживания и гостевую конфигурацию, разрешённую для Origin запроса. Метод публичный, авторизация не требуется.

Авторизация

Учётная запись Hallify не требуется. Соблюдайте предварительные условия и ограничения этого метода.

Руководство по подключению

Параметры

publicHandleПуть · Обязательно

Непрозрачный публичный идентификатор канала для поиска опубликованной гостевой конфигурации одного заведения. Не является ключом доступа.

string
Полное определение
{
  "type": "string",
  "example": "example"
}
originЗаголовок · Обязательно

Origin браузера проверяется по разрешённым источникам публичного канала. Отсутствующий или запрещённый Origin отклоняется без раскрытия закрытой конфигурации заведения.

string
Полное определение
{
  "type": "string",
  "example": "example"
}

Ответы

200Возвращает конфигурацию публичного канала бронирования без закрытых данных заведения.
ReservationPublicConfigResultDto
Полное определение
{
  "$ref": "#/components/schemas/ReservationPublicConfigResultDto"
}
Пример ответа · 200 · application/json
{
  "publicHandle": "example",
  "venue": {
    "id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
    "name": "Example name",
    "timeZone": "Asia/Tbilisi"
  },
  "termsVersion": "example",
  "privacyVersion": "example",
  "waitlistStatus": "CLOSED",
  "servicePeriods": [
    {
      "id": "b926f345-3866-4e0a-8870-720a7d6d91be",
      "name": "Example name",
      "dayOfWeek": 0,
      "startsAtMinute": 0,
      "endsAtMinute": 0,
      "slotIntervalMinutes": 0,
      "maxPartySize": 0,
      "bookingMode": "INSTANT"
    }
  ]
}

Схемы

ReservationPublicConfigResultDto

Публичная конфигурация бронирования с данными, безопасными для гостя.

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

Публичный идентификатор канала бронирования.

string
Полное определение
{
  "type": "string",
  "description": "Публичный идентификатор канала бронирования.",
  "example": "example"
}
venueОбязательно

Публичные сведения о заведении и часовой пояс расписания.

object
Полное определение
{
  "type": "object",
  "description": "Публичные сведения о заведении и часовой пояс расписания.",
  "required": [
    "id",
    "name",
    "timeZone"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Идентификатор заведения.",
      "format": "uuid",
      "example": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0"
    },
    "name": {
      "type": "string",
      "description": "Отображаемое название заведения.",
      "example": "Example name"
    },
    "timeZone": {
      "type": "string",
      "description": "Часовой пояс IANA для расписания бронирований.",
      "example": "Asia/Tbilisi"
    }
  },
  "example": {
    "id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
    "name": "Example name",
    "timeZone": "Asia/Tbilisi"
  }
}
termsVersionОбязательно

Версия условий, которую необходимо принять для нового бронирования.

string
Полное определение
{
  "type": "string",
  "description": "Версия условий, которую необходимо принять для нового бронирования.",
  "example": "example"
}
privacyVersionОбязательно

Версия уведомления о персональных данных, которую необходимо принять для нового бронирования.

string
Полное определение
{
  "type": "string",
  "description": "Версия уведомления о персональных данных, которую необходимо принять для нового бронирования.",
  "example": "example"
}
waitlistStatusОбязательно

Действующая доступность листа ожидания после истечения запланированной паузы.

string
Полное определение
{
  "type": "string",
  "description": "Действующая доступность листа ожидания после истечения запланированной паузы.",
  "enum": [
    "CLOSED",
    "OPEN",
    "PAUSED"
  ],
  "example": "CLOSED"
}
servicePeriodsОбязательно

Активные публичные периоды обслуживания.

array
Полное определение
{
  "type": "array",
  "description": "Активные публичные периоды обслуживания.",
  "items": {
    "type": "object",
    "description": "Доступное гостю представление периода обслуживания для бронирования.",
    "required": [
      "id",
      "name",
      "dayOfWeek",
      "startsAtMinute",
      "endsAtMinute",
      "slotIntervalMinutes",
      "maxPartySize",
      "bookingMode"
    ],
    "properties": {
      "id": {
        "type": "string",
        "description": "Идентификатор периода обслуживания.",
        "format": "uuid",
        "example": "b926f345-3866-4e0a-8870-720a7d6d91be"
      },
      "name": {
        "type": "string",
        "description": "Название периода обслуживания, показываемое гостю.",
        "example": "Example name"
      },
      "dayOfWeek": {
        "type": "integer",
        "description": "Повторяющийся день недели по местному времени заведения.",
        "example": 0
      },
      "startsAtMinute": {
        "type": "integer",
        "description": "Местное время открытия в минутах после полуночи.",
        "example": 0
      },
      "endsAtMinute": {
        "type": "integer",
        "description": "Местное время закрытия в минутах после полуночи.",
        "example": 0
      },
      "slotIntervalMinutes": {
        "type": "integer",
        "description": "Интервал в минутах между предлагаемыми временами начала.",
        "example": 0
      },
      "maxPartySize": {
        "type": "integer",
        "description": "Максимальное количество гостей для бронирования.",
        "example": 0
      },
      "bookingMode": {
        "type": "string",
        "description": "Подтверждается ли бронирование сразу или требует проверки.",
        "enum": [
          "INSTANT",
          "REQUEST"
        ],
        "example": "INSTANT"
      }
    },
    "example": {
      "id": "b926f345-3866-4e0a-8870-720a7d6d91be",
      "name": "Example name",
      "dayOfWeek": 0,
      "startsAtMinute": 0,
      "endsAtMinute": 0,
      "slotIntervalMinutes": 0,
      "maxPartySize": 0,
      "bookingMode": "INSTANT"
    }
  },
  "example": [
    {
      "id": "b926f345-3866-4e0a-8870-720a7d6d91be",
      "name": "Example name",
      "dayOfWeek": 0,
      "startsAtMinute": 0,
      "endsAtMinute": 0,
      "slotIntervalMinutes": 0,
      "maxPartySize": 0,
      "bookingMode": "INSTANT"
    }
  ]
}
Полное определение
{
  "type": "object",
  "description": "Публичная конфигурация бронирования с данными, безопасными для гостя.",
  "required": [
    "publicHandle",
    "venue",
    "termsVersion",
    "privacyVersion",
    "waitlistStatus",
    "servicePeriods"
  ],
  "properties": {
    "publicHandle": {
      "type": "string",
      "description": "Публичный идентификатор канала бронирования.",
      "example": "example"
    },
    "venue": {
      "type": "object",
      "description": "Публичные сведения о заведении и часовой пояс расписания.",
      "required": [
        "id",
        "name",
        "timeZone"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Идентификатор заведения.",
          "format": "uuid",
          "example": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0"
        },
        "name": {
          "type": "string",
          "description": "Отображаемое название заведения.",
          "example": "Example name"
        },
        "timeZone": {
          "type": "string",
          "description": "Часовой пояс IANA для расписания бронирований.",
          "example": "Asia/Tbilisi"
        }
      },
      "example": {
        "id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
        "name": "Example name",
        "timeZone": "Asia/Tbilisi"
      }
    },
    "termsVersion": {
      "type": "string",
      "description": "Версия условий, которую необходимо принять для нового бронирования.",
      "example": "example"
    },
    "privacyVersion": {
      "type": "string",
      "description": "Версия уведомления о персональных данных, которую необходимо принять для нового бронирования.",
      "example": "example"
    },
    "waitlistStatus": {
      "type": "string",
      "description": "Действующая доступность листа ожидания после истечения запланированной паузы.",
      "enum": [
        "CLOSED",
        "OPEN",
        "PAUSED"
      ],
      "example": "CLOSED"
    },
    "servicePeriods": {
      "type": "array",
      "description": "Активные публичные периоды обслуживания.",
      "items": {
        "type": "object",
        "description": "Доступное гостю представление периода обслуживания для бронирования.",
        "required": [
          "id",
          "name",
          "dayOfWeek",
          "startsAtMinute",
          "endsAtMinute",
          "slotIntervalMinutes",
          "maxPartySize",
          "bookingMode"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Идентификатор периода обслуживания.",
            "format": "uuid",
            "example": "b926f345-3866-4e0a-8870-720a7d6d91be"
          },
          "name": {
            "type": "string",
            "description": "Название периода обслуживания, показываемое гостю.",
            "example": "Example name"
          },
          "dayOfWeek": {
            "type": "integer",
            "description": "Повторяющийся день недели по местному времени заведения.",
            "example": 0
          },
          "startsAtMinute": {
            "type": "integer",
            "description": "Местное время открытия в минутах после полуночи.",
            "example": 0
          },
          "endsAtMinute": {
            "type": "integer",
            "description": "Местное время закрытия в минутах после полуночи.",
            "example": 0
          },
          "slotIntervalMinutes": {
            "type": "integer",
            "description": "Интервал в минутах между предлагаемыми временами начала.",
            "example": 0
          },
          "maxPartySize": {
            "type": "integer",
            "description": "Максимальное количество гостей для бронирования.",
            "example": 0
          },
          "bookingMode": {
            "type": "string",
            "description": "Подтверждается ли бронирование сразу или требует проверки.",
            "enum": [
              "INSTANT",
              "REQUEST"
            ],
            "example": "INSTANT"
          }
        },
        "example": {
          "id": "b926f345-3866-4e0a-8870-720a7d6d91be",
          "name": "Example name",
          "dayOfWeek": 0,
          "startsAtMinute": 0,
          "endsAtMinute": 0,
          "slotIntervalMinutes": 0,
          "maxPartySize": 0,
          "bookingMode": "INSTANT"
        }
      },
      "example": [
        {
          "id": "b926f345-3866-4e0a-8870-720a7d6d91be",
          "name": "Example name",
          "dayOfWeek": 0,
          "startsAtMinute": 0,
          "endsAtMinute": 0,
          "slotIntervalMinutes": 0,
          "maxPartySize": 0,
          "bookingMode": "INSTANT"
        }
      ]
    }
  },
  "example": {
    "publicHandle": "example",
    "venue": {
      "id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
      "name": "Example name",
      "timeZone": "Asia/Tbilisi"
    },
    "termsVersion": "example",
    "privacyVersion": "example",
    "waitlistStatus": "CLOSED",
    "servicePeriods": [
      {
        "id": "b926f345-3866-4e0a-8870-720a7d6d91be",
        "name": "Example name",
        "dayOfWeek": 0,
        "startsAtMinute": 0,
        "endsAtMinute": 0,
        "slotIntervalMinutes": 0,
        "maxPartySize": 0,
        "bookingMode": "INSTANT"
      }
    ]
  }
}

Hallify использует обязательные cookies и опциональную аналитику.

Обязательные cookies поддерживают вход, язык и тему. Аналитика выключена, пока вы явно ее не разрешите.