Авторизация
x-hallify-widget-context: <HALLIFY_STOREFRONT_WIDGET_CONTEXT>Краткосрочный server-authenticated widget presentation proof. Связывает настроенный frame origin с точными проверенными parent binding и connection authority. Новый widget-спрос требует этот proof; существующие native capabilities сохраняют отдельные права и исходные сроки.
Параметры
publicHandleПуть · ОбязательноНепрозрачный публичный идентификатор канала для поиска опубликованной гостевой конфигурации одного заведения. Не является ключом доступа.
stringПолное определение
{ "type": "string", "example": "example" }originЗаголовок · НеобязательноФактический Origin браузерного запроса для проверки текущих прав представления. Обязателен для новых заявок и продолжения через Storefront. Канонические браузерные запросы Hallify используют Origin, настроенный в HALLIFY_PUBLIC_APP_URL. Заголовок передаёт контекст запроса, не авторизует вызывающего и не заменяет соответствующий гостевой ключ.
string · uriПолное определение
{ "type": "string", "format": "uri", "maxLength": 2048, "example": "https://example.test/resource" }x-hallify-connection-idЗаголовок · НеобязательноНеобязательный несекретный идентификатор соединения для начального разрешения публичного канала. Не предоставляет прав и не заменяет зафиксированные данные выданного доступа.
string · uuidПолное определение
{ "type": "string", "format": "uuid", "minLength": 36, "maxLength": 36, "example": "9b6163a8-afea-4877-818b-8e2ae28a2845" }
Ответы
200Возвращает конфигурацию публичного канала бронирования без закрытых данных заведения.
Полное определение
{
"$ref": "#/components/schemas/ReservationPublicConfigResultDto"
}{
"publicHandle": "example",
"publicChannelId": "9bee613d-3322-4a03-8b9f-8a6259984eee",
"venue": {
"id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
"name": "Example name",
"timeZone": "Asia/Tbilisi"
},
"termsVersion": "example",
"privacyVersion": "example",
"waitlistStatus": "CLOSED",
"verificationOptions": [
{
"contactType": "EMAIL",
"deliveryChannel": "EMAIL"
}
],
"bookingPolicy": {
"holdMinutes": 0,
"waitlistVerificationMinutes": 0,
"defaultDurationMinutes": 0,
"turnBufferMinutes": 0,
"graceMinutes": 0
},
"waitlistPolicy": {
"maxPartySize": 0,
"maxEntries": 0,
"claimMinutes": 0
},
"serverTime": "2026-01-15T12:00:00.000Z",
"servicePeriods": [
{
"guaranteeKind": null,
"guaranteeAmountBasis": "FIXED",
"guaranteeUnitAmount": null,
"guaranteeMinimumPartySize": 1,
"guaranteeDueBeforeMinutes": 0,
"guaranteeFreeCancellationBeforeMinutes": 0,
"guaranteeForfeitOnLateCancellation": true,
"guaranteeForfeitOnNoShow": true,
"id": "b926f345-3866-4e0a-8870-720a7d6d91be",
"name": "Example name",
"dayOfWeek": 0,
"startsAtMinute": 0,
"endsAtMinute": 0,
"slotIntervalMinutes": 0,
"maxPartySize": 0,
"minimumLeadMinutes": 0,
"bookingHorizonDays": 0,
"publicBookingCutoffMinutes": 0,
"bookingMode": "INSTANT"
}
]
}Схемы
ReservationPublicConfigResultDto
Публичная конфигурация бронирования с данными, безопасными для гостя.
publicHandleОбязательноПубличный идентификатор канала бронирования.
stringПолное определение
{ "type": "string", "description": "Публичный идентификатор канала бронирования.", "example": "example" }publicChannelIdОбязательноUUID нативного публичного канала бронирования этого заведения.
string · uuidПолное определение
{ "type": "string", "description": "UUID нативного публичного канала бронирования этого заведения.", "format": "uuid", "example": "9bee613d-3322-4a03-8b9f-8a6259984eee" }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" }verificationOptionsОбязательноРеальные включённые нативные варианты проверки контакта заведения. Пустой список означает, что сейчас ни один способ недоступен; варианты не обещают доставку провайдера.
arrayПолное определение
{ "type": "array", "description": "Реальные включённые нативные варианты проверки контакта заведения. Пустой список означает, что сейчас ни один способ недоступен; варианты не обещают доставку провайдера.", "items": { "type": "object", "description": "Один включённый тип контакта и его нативный канал доставки.", "additionalProperties": false, "required": [ "contactType", "deliveryChannel" ], "properties": { "contactType": { "type": "string", "description": "Тип контакта, принимаемый этим нативным каналом.", "enum": [ "EMAIL", "PHONE" ], "example": "EMAIL" }, "deliveryChannel": { "type": "string", "description": "Текущий нативный канал доставки, выбранный для этого типа контакта.", "enum": [ "EMAIL", "SMS", "WHATSAPP" ], "example": "EMAIL" } }, "example": { "contactType": "EMAIL", "deliveryChannel": "EMAIL" } }, "example": [ { "contactType": "EMAIL", "deliveryChannel": "EMAIL" } ] }bookingPolicyОбязательноТекущие публичные окна намерения и нативные правила занятости по умолчанию. Исключения дат и правила оборота сохраняют силу при доступности и конвертации.
objectПолное определение
{ "type": "object", "description": "Текущие публичные окна намерения и нативные правила занятости по умолчанию. Исключения дат и правила оборота сохраняют силу при доступности и конвертации.", "additionalProperties": false, "required": [ "holdMinutes", "waitlistVerificationMinutes", "defaultDurationMinutes", "turnBufferMinutes", "graceMinutes" ], "properties": { "holdMinutes": { "type": "integer", "description": "Длительность намерения бронирования и удержания вместимости публичного канала в минутах.", "example": 0 }, "waitlistVerificationMinutes": { "type": "integer", "description": "Длительность намерения листа ожидания публичного канала в минутах. Фактический срок контактного кода возвращается отдельно и может быть раньше.", "example": 0 }, "defaultDurationMinutes": { "type": "integer", "description": "Нативная длительность бронирования по умолчанию в минутах до применения правил оборота.", "example": 0 }, "turnBufferMinutes": { "type": "integer", "description": "Нативный буфер оборота по умолчанию в минутах до применения правил оборота.", "example": 0 }, "graceMinutes": { "type": "integer", "description": "Нативный настроенный льготный период прибытия в минутах.", "example": 0 } }, "example": { "holdMinutes": 0, "waitlistVerificationMinutes": 0, "defaultDurationMinutes": 0, "turnBufferMinutes": 0, "graceMinutes": 0 } }waitlistPolicyОбязательноТекущие нативные ограничения числа гостей, очереди и принятия приглашения удалённого листа ожидания. Для входа по-прежнему нужны фактический открытый статус и нативный допуск по business date обслуживания.
objectПолное определение
{ "type": "object", "description": "Текущие нативные ограничения числа гостей, очереди и принятия приглашения удалённого листа ожидания. Для входа по-прежнему нужны фактический открытый статус и нативный допуск по business date обслуживания.", "additionalProperties": false, "required": [ "maxPartySize", "maxEntries", "claimMinutes" ], "properties": { "maxPartySize": { "type": "integer", "description": "Нативное максимальное число гостей для удалённого листа ожидания.", "example": 0 }, "maxEntries": { "type": "integer", "description": "Нативный максимум активных записей ожидания; не раскрывает текущий размер очереди.", "example": 0 }, "claimMinutes": { "type": "integer", "description": "Нативное окно принятия предложения в минутах. Конкретное принятое предложение ограничено фактическим claimExpiresAt.", "example": 0 } }, "example": { "maxPartySize": 0, "maxEntries": 0, "claimMinutes": 0 } }serverTimeОбязательноСерверный момент для интерпретации текущих окон политики в часовом поясе заведения.
string · date-timeПолное определение
{ "type": "string", "description": "Серверный момент для интерпретации текущих окон политики в часовом поясе заведения.", "format": "date-time", "example": "2026-01-15T12:00:00.000Z" }servicePeriodsОбязательноАктивные публичные периоды обслуживания.
arrayПолное определение
{ "type": "array", "description": "Активные публичные периоды обслуживания.", "items": { "type": "object", "description": "Доступное гостю представление периода обслуживания для бронирования.", "required": [ "id", "name", "dayOfWeek", "startsAtMinute", "endsAtMinute", "slotIntervalMinutes", "maxPartySize", "bookingMode", "minimumLeadMinutes", "bookingHorizonDays", "publicBookingCutoffMinutes", "guaranteeKind", "guaranteeAmountBasis", "guaranteeUnitAmount", "guaranteeMinimumPartySize", "guaranteeDueBeforeMinutes", "guaranteeFreeCancellationBeforeMinutes", "guaranteeForfeitOnLateCancellation", "guaranteeForfeitOnNoShow" ], "properties": { "guaranteeKind": { "type": "string", "enum": [ "DEPOSIT", "CARD_HOLD", "PREPAID", null ], "nullable": true, "description": "Обязательная гарантия либо null для NONE.", "example": "DEPOSIT" }, "guaranteeAmountBasis": { "type": "string", "enum": [ "FIXED", "PER_GUEST" ], "description": "Точная фиксированная сумма за бронь либо сумма за принятого гостя.", "example": "FIXED" }, "guaranteeUnitAmount": { "type": "string", "nullable": true, "pattern": "^(0|[1-9][0-9]{0,9})\\.[0-9]{2}$", "description": "Каноническая нативная единичная сумма с двумя десятичными знаками либо null для NONE.", "example": "1.00" }, "guaranteeMinimumPartySize": { "type": "integer", "minimum": 1, "maximum": 99, "description": "Минимальное число гостей, к которому применяется политика.", "example": 1 }, "guaranteeDueBeforeMinutes": { "type": "integer", "minimum": 0, "description": "Число минут до запланированного момента, когда наступает срок оплаты.", "example": 0 }, "guaranteeFreeCancellationBeforeMinutes": { "type": "integer", "minimum": 0, "description": "Число минут до запланированного момента, когда заканчивается бесплатная отмена.", "example": 0 }, "guaranteeForfeitOnLateCancellation": { "type": "boolean", "description": "Разрешают ли принятые условия поздней отмены явное удержание уполномоченным сотрудником.", "example": true }, "guaranteeForfeitOnNoShow": { "type": "boolean", "description": "Разрешают ли принятые условия неявки явное удержание уполномоченным сотрудником; никогда не автоматическое списание.", "example": true }, "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 }, "minimumLeadMinutes": { "type": "integer", "description": "Нативное минимальное время до бронирования в минутах для периода.", "example": 0 }, "bookingHorizonDays": { "type": "integer", "description": "Нативный максимальный горизонт бронирования в днях для периода.", "example": 0 }, "publicBookingCutoffMinutes": { "type": "integer", "description": "Нативная граница публичного бронирования до предложенного начала в минутах.", "example": 0 }, "bookingMode": { "type": "string", "description": "Подтверждается ли бронирование сразу или требует проверки.", "enum": [ "INSTANT", "REQUEST" ], "example": "INSTANT" } }, "example": { "guaranteeKind": null, "guaranteeAmountBasis": "FIXED", "guaranteeUnitAmount": null, "guaranteeMinimumPartySize": 1, "guaranteeDueBeforeMinutes": 0, "guaranteeFreeCancellationBeforeMinutes": 0, "guaranteeForfeitOnLateCancellation": true, "guaranteeForfeitOnNoShow": true, "id": "b926f345-3866-4e0a-8870-720a7d6d91be", "name": "Example name", "dayOfWeek": 0, "startsAtMinute": 0, "endsAtMinute": 0, "slotIntervalMinutes": 0, "maxPartySize": 0, "minimumLeadMinutes": 0, "bookingHorizonDays": 0, "publicBookingCutoffMinutes": 0, "bookingMode": "INSTANT" } }, "example": [ { "guaranteeKind": null, "guaranteeAmountBasis": "FIXED", "guaranteeUnitAmount": null, "guaranteeMinimumPartySize": 1, "guaranteeDueBeforeMinutes": 0, "guaranteeFreeCancellationBeforeMinutes": 0, "guaranteeForfeitOnLateCancellation": true, "guaranteeForfeitOnNoShow": true, "id": "b926f345-3866-4e0a-8870-720a7d6d91be", "name": "Example name", "dayOfWeek": 0, "startsAtMinute": 0, "endsAtMinute": 0, "slotIntervalMinutes": 0, "maxPartySize": 0, "minimumLeadMinutes": 0, "bookingHorizonDays": 0, "publicBookingCutoffMinutes": 0, "bookingMode": "INSTANT" } ] }
Полное определение
{
"type": "object",
"description": "Публичная конфигурация бронирования с данными, безопасными для гостя.",
"required": [
"publicHandle",
"venue",
"termsVersion",
"privacyVersion",
"waitlistStatus",
"servicePeriods",
"publicChannelId",
"verificationOptions",
"bookingPolicy",
"waitlistPolicy",
"serverTime"
],
"properties": {
"publicHandle": {
"type": "string",
"description": "Публичный идентификатор канала бронирования.",
"example": "example"
},
"publicChannelId": {
"type": "string",
"description": "UUID нативного публичного канала бронирования этого заведения.",
"format": "uuid",
"example": "9bee613d-3322-4a03-8b9f-8a6259984eee"
},
"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"
},
"verificationOptions": {
"type": "array",
"description": "Реальные включённые нативные варианты проверки контакта заведения. Пустой список означает, что сейчас ни один способ недоступен; варианты не обещают доставку провайдера.",
"items": {
"type": "object",
"description": "Один включённый тип контакта и его нативный канал доставки.",
"additionalProperties": false,
"required": [
"contactType",
"deliveryChannel"
],
"properties": {
"contactType": {
"type": "string",
"description": "Тип контакта, принимаемый этим нативным каналом.",
"enum": [
"EMAIL",
"PHONE"
],
"example": "EMAIL"
},
"deliveryChannel": {
"type": "string",
"description": "Текущий нативный канал доставки, выбранный для этого типа контакта.",
"enum": [
"EMAIL",
"SMS",
"WHATSAPP"
],
"example": "EMAIL"
}
},
"example": {
"contactType": "EMAIL",
"deliveryChannel": "EMAIL"
}
},
"example": [
{
"contactType": "EMAIL",
"deliveryChannel": "EMAIL"
}
]
},
"bookingPolicy": {
"type": "object",
"description": "Текущие публичные окна намерения и нативные правила занятости по умолчанию. Исключения дат и правила оборота сохраняют силу при доступности и конвертации.",
"additionalProperties": false,
"required": [
"holdMinutes",
"waitlistVerificationMinutes",
"defaultDurationMinutes",
"turnBufferMinutes",
"graceMinutes"
],
"properties": {
"holdMinutes": {
"type": "integer",
"description": "Длительность намерения бронирования и удержания вместимости публичного канала в минутах.",
"example": 0
},
"waitlistVerificationMinutes": {
"type": "integer",
"description": "Длительность намерения листа ожидания публичного канала в минутах. Фактический срок контактного кода возвращается отдельно и может быть раньше.",
"example": 0
},
"defaultDurationMinutes": {
"type": "integer",
"description": "Нативная длительность бронирования по умолчанию в минутах до применения правил оборота.",
"example": 0
},
"turnBufferMinutes": {
"type": "integer",
"description": "Нативный буфер оборота по умолчанию в минутах до применения правил оборота.",
"example": 0
},
"graceMinutes": {
"type": "integer",
"description": "Нативный настроенный льготный период прибытия в минутах.",
"example": 0
}
},
"example": {
"holdMinutes": 0,
"waitlistVerificationMinutes": 0,
"defaultDurationMinutes": 0,
"turnBufferMinutes": 0,
"graceMinutes": 0
}
},
"waitlistPolicy": {
"type": "object",
"description": "Текущие нативные ограничения числа гостей, очереди и принятия приглашения удалённого листа ожидания. Для входа по-прежнему нужны фактический открытый статус и нативный допуск по business date обслуживания.",
"additionalProperties": false,
"required": [
"maxPartySize",
"maxEntries",
"claimMinutes"
],
"properties": {
"maxPartySize": {
"type": "integer",
"description": "Нативное максимальное число гостей для удалённого листа ожидания.",
"example": 0
},
"maxEntries": {
"type": "integer",
"description": "Нативный максимум активных записей ожидания; не раскрывает текущий размер очереди.",
"example": 0
},
"claimMinutes": {
"type": "integer",
"description": "Нативное окно принятия предложения в минутах. Конкретное принятое предложение ограничено фактическим claimExpiresAt.",
"example": 0
}
},
"example": {
"maxPartySize": 0,
"maxEntries": 0,
"claimMinutes": 0
}
},
"serverTime": {
"type": "string",
"description": "Серверный момент для интерпретации текущих окон политики в часовом поясе заведения.",
"format": "date-time",
"example": "2026-01-15T12:00:00.000Z"
},
"servicePeriods": {
"type": "array",
"description": "Активные публичные периоды обслуживания.",
"items": {
"type": "object",
"description": "Доступное гостю представление периода обслуживания для бронирования.",
"required": [
"id",
"name",
"dayOfWeek",
"startsAtMinute",
"endsAtMinute",
"slotIntervalMinutes",
"maxPartySize",
"bookingMode",
"minimumLeadMinutes",
"bookingHorizonDays",
"publicBookingCutoffMinutes",
"guaranteeKind",
"guaranteeAmountBasis",
"guaranteeUnitAmount",
"guaranteeMinimumPartySize",
"guaranteeDueBeforeMinutes",
"guaranteeFreeCancellationBeforeMinutes",
"guaranteeForfeitOnLateCancellation",
"guaranteeForfeitOnNoShow"
],
"properties": {
"guaranteeKind": {
"type": "string",
"enum": [
"DEPOSIT",
"CARD_HOLD",
"PREPAID",
null
],
"nullable": true,
"description": "Обязательная гарантия либо null для NONE.",
"example": "DEPOSIT"
},
"guaranteeAmountBasis": {
"type": "string",
"enum": [
"FIXED",
"PER_GUEST"
],
"description": "Точная фиксированная сумма за бронь либо сумма за принятого гостя.",
"example": "FIXED"
},
"guaranteeUnitAmount": {
"type": "string",
"nullable": true,
"pattern": "^(0|[1-9][0-9]{0,9})\\.[0-9]{2}$",
"description": "Каноническая нативная единичная сумма с двумя десятичными знаками либо null для NONE.",
"example": "1.00"
},
"guaranteeMinimumPartySize": {
"type": "integer",
"minimum": 1,
"maximum": 99,
"description": "Минимальное число гостей, к которому применяется политика.",
"example": 1
},
"guaranteeDueBeforeMinutes": {
"type": "integer",
"minimum": 0,
"description": "Число минут до запланированного момента, когда наступает срок оплаты.",
"example": 0
},
"guaranteeFreeCancellationBeforeMinutes": {
"type": "integer",
"minimum": 0,
"description": "Число минут до запланированного момента, когда заканчивается бесплатная отмена.",
"example": 0
},
"guaranteeForfeitOnLateCancellation": {
"type": "boolean",
"description": "Разрешают ли принятые условия поздней отмены явное удержание уполномоченным сотрудником.",
"example": true
},
"guaranteeForfeitOnNoShow": {
"type": "boolean",
"description": "Разрешают ли принятые условия неявки явное удержание уполномоченным сотрудником; никогда не автоматическое списание.",
"example": true
},
"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
},
"minimumLeadMinutes": {
"type": "integer",
"description": "Нативное минимальное время до бронирования в минутах для периода.",
"example": 0
},
"bookingHorizonDays": {
"type": "integer",
"description": "Нативный максимальный горизонт бронирования в днях для периода.",
"example": 0
},
"publicBookingCutoffMinutes": {
"type": "integer",
"description": "Нативная граница публичного бронирования до предложенного начала в минутах.",
"example": 0
},
"bookingMode": {
"type": "string",
"description": "Подтверждается ли бронирование сразу или требует проверки.",
"enum": [
"INSTANT",
"REQUEST"
],
"example": "INSTANT"
}
},
"example": {
"guaranteeKind": null,
"guaranteeAmountBasis": "FIXED",
"guaranteeUnitAmount": null,
"guaranteeMinimumPartySize": 1,
"guaranteeDueBeforeMinutes": 0,
"guaranteeFreeCancellationBeforeMinutes": 0,
"guaranteeForfeitOnLateCancellation": true,
"guaranteeForfeitOnNoShow": true,
"id": "b926f345-3866-4e0a-8870-720a7d6d91be",
"name": "Example name",
"dayOfWeek": 0,
"startsAtMinute": 0,
"endsAtMinute": 0,
"slotIntervalMinutes": 0,
"maxPartySize": 0,
"minimumLeadMinutes": 0,
"bookingHorizonDays": 0,
"publicBookingCutoffMinutes": 0,
"bookingMode": "INSTANT"
}
},
"example": [
{
"guaranteeKind": null,
"guaranteeAmountBasis": "FIXED",
"guaranteeUnitAmount": null,
"guaranteeMinimumPartySize": 1,
"guaranteeDueBeforeMinutes": 0,
"guaranteeFreeCancellationBeforeMinutes": 0,
"guaranteeForfeitOnLateCancellation": true,
"guaranteeForfeitOnNoShow": true,
"id": "b926f345-3866-4e0a-8870-720a7d6d91be",
"name": "Example name",
"dayOfWeek": 0,
"startsAtMinute": 0,
"endsAtMinute": 0,
"slotIntervalMinutes": 0,
"maxPartySize": 0,
"minimumLeadMinutes": 0,
"bookingHorizonDays": 0,
"publicBookingCutoffMinutes": 0,
"bookingMode": "INSTANT"
}
]
}
},
"example": {
"publicHandle": "example",
"publicChannelId": "9bee613d-3322-4a03-8b9f-8a6259984eee",
"venue": {
"id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
"name": "Example name",
"timeZone": "Asia/Tbilisi"
},
"termsVersion": "example",
"privacyVersion": "example",
"waitlistStatus": "CLOSED",
"verificationOptions": [
{
"contactType": "EMAIL",
"deliveryChannel": "EMAIL"
}
],
"bookingPolicy": {
"holdMinutes": 0,
"waitlistVerificationMinutes": 0,
"defaultDurationMinutes": 0,
"turnBufferMinutes": 0,
"graceMinutes": 0
},
"waitlistPolicy": {
"maxPartySize": 0,
"maxEntries": 0,
"claimMinutes": 0
},
"serverTime": "2026-01-15T12:00:00.000Z",
"servicePeriods": [
{
"guaranteeKind": null,
"guaranteeAmountBasis": "FIXED",
"guaranteeUnitAmount": null,
"guaranteeMinimumPartySize": 1,
"guaranteeDueBeforeMinutes": 0,
"guaranteeFreeCancellationBeforeMinutes": 0,
"guaranteeForfeitOnLateCancellation": true,
"guaranteeForfeitOnNoShow": true,
"id": "b926f345-3866-4e0a-8870-720a7d6d91be",
"name": "Example name",
"dayOfWeek": 0,
"startsAtMinute": 0,
"endsAtMinute": 0,
"slotIntervalMinutes": 0,
"maxPartySize": 0,
"minimumLeadMinutes": 0,
"bookingHorizonDays": 0,
"publicBookingCutoffMinutes": 0,
"bookingMode": "INSTANT"
}
]
}
}