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

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

Получить точные нативные условия гарантии для выбранного слота

GET/public/reservations/{publicHandle}/guarantee-offer

Рассчитывает нативные сумму, валюту и абсолютные сроки гарантии, отмены и неявки для точного слота, числа гостей и текущей ревизии периода обслуживания. Чтение не создаёт бронь, удержание или списание. Гость принимает digest при создании намерения; устаревшие условия отклоняются без пересчёта.

Авторизация

x-hallify-widget-context: <HALLIFY_STOREFRONT_WIDGET_CONTEXT>

Краткосрочный server-authenticated widget presentation proof. Связывает настроенный frame origin с точными проверенными parent binding и connection authority. Новый widget-спрос требует этот proof; существующие native capabilities сохраняют отдельные права и исходные сроки.

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

Параметры

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

Опубликованный handle нативного канала бронирования.

string
Полное определение
{
  "type": "string",
  "example": "example"
}
servicePeriodIdПараметр запроса · Обязательно

Выбранный нативный период обслуживания.

string · uuid
Полное определение
{
  "format": "uuid",
  "type": "string",
  "example": "9b6163a8-afea-4877-818b-8e2ae28a2845"
}
scheduledAtПараметр запроса · Обязательно

Точный момент слота нативной доступности.

string · date-time
Полное определение
{
  "format": "date-time",
  "type": "string",
  "example": "2026-01-15T12:00:00.000Z"
}
partySizeПараметр запроса · Обязательно

Число гостей для выбора политики гарантии и расчёта суммы за гостя.

integer
Полное определение
{
  "minimum": 1,
  "maximum": 99,
  "type": "integer",
  "example": 1
}
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Точное нативное предложение гарантии либо явный результат NONE с null для условий и digest.
ReservationPublicGuaranteeOfferResultDto
Полное определение
{
  "$ref": "#/components/schemas/ReservationPublicGuaranteeOfferResultDto"
}
Пример ответа · 200 · application/json
{
  "required": true,
  "terms": null,
  "termsHash": null
}

Схемы

ReservationPublicGuaranteeOfferResultDto

Предложение гарантии, рассчитанное сервером, с условиями и их дайджестом. При NONE или числе гостей ниже настроенного порога гарантия не требуется.

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

Требуют ли точные слот и число гостей гарантию.

boolean
Полное определение
{
  "type": "boolean",
  "description": "Требуют ли точные слот и число гостей гарантию.",
  "example": true
}
termsОбязательно

Точные принятые условия либо null, если гарантия не применяется.

object · null
Полное определение
{
  "type": "object",
  "description": "Точные принятые условия либо null, если гарантия не применяется.",
  "additionalProperties": false,
  "required": [
    "schema",
    "version",
    "venueId",
    "publicChannelId",
    "servicePeriodId",
    "servicePeriodRevision",
    "kind",
    "amountBasis",
    "unitAmount",
    "totalAmount",
    "currency",
    "currencyMinorUnit",
    "partySize",
    "scheduledAt",
    "dueAt",
    "freeCancellationAt",
    "noShowAfter",
    "forfeitOnLateCancellation",
    "forfeitOnNoShow",
    "termsVersion",
    "privacyVersion"
  ],
  "properties": {
    "schema": {
      "type": "string",
      "enum": [
        "hallify.reservation-guarantee.terms"
      ],
      "description": "Каноническая схема нативных условий.",
      "example": "hallify.reservation-guarantee.terms"
    },
    "version": {
      "type": "integer",
      "enum": [
        1
      ],
      "description": "Каноническая версия нативных условий.",
      "example": 1
    },
    "venueId": {
      "type": "string",
      "format": "uuid",
      "description": "UUID нативного заведения.",
      "example": "0604de3a-da74-4ad5-89f6-2dfe000d5391"
    },
    "publicChannelId": {
      "type": "string",
      "format": "uuid",
      "description": "UUID нативного канала бронирования.",
      "example": "9bee613d-3322-4a03-8b9f-8a6259984eee"
    },
    "servicePeriodId": {
      "type": "string",
      "format": "uuid",
      "description": "UUID выбранного нативного периода обслуживания.",
      "example": "4846c409-f4df-40f6-81cc-1d7157a5c646"
    },
    "servicePeriodRevision": {
      "type": "integer",
      "minimum": 1,
      "description": "Принятая нативная ревизия периода обслуживания.",
      "example": 1
    },
    "kind": {
      "type": "string",
      "enum": [
        "DEPOSIT",
        "CARD_HOLD",
        "PREPAID"
      ],
      "description": "Исходный принятый вид гарантии.",
      "example": "DEPOSIT"
    },
    "amountBasis": {
      "type": "string",
      "enum": [
        "FIXED",
        "PER_GUEST"
      ],
      "description": "Исходный способ расчёта суммы.",
      "example": "FIXED"
    },
    "unitAmount": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]{0,9})\\.[0-9]{2}$",
      "description": "Точная сумма за бронь или гостя с двумя десятичными знаками.",
      "example": "1.00"
    },
    "totalAmount": {
      "type": "string",
      "pattern": "^(0|[1-9][0-9]{0,9})\\.[0-9]{2}$",
      "description": "Точный принятый общий principal с двумя десятичными знаками без чаевых.",
      "example": "1.00"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "Исходная нативная валюта; конвертация не выполняется.",
      "example": "GEL"
    },
    "currencyMinorUnit": {
      "type": "integer",
      "enum": [
        2
      ],
      "description": "Нативная денежная точность.",
      "example": 2
    },
    "partySize": {
      "type": "integer",
      "minimum": 1,
      "maximum": 99,
      "description": "Точное принятое число гостей.",
      "example": 1
    },
    "scheduledAt": {
      "type": "string",
      "format": "date-time",
      "description": "Точный запланированный момент слота в UTC.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "dueAt": {
      "type": "string",
      "format": "date-time",
      "description": "Точный срок оплаты до конвертации и сбора средств.",
      "example": "2026-12-31T18:00:00.000Z"
    },
    "freeCancellationAt": {
      "type": "string",
      "format": "date-time",
      "description": "Точная граница бесплатной отмены.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "noShowAfter": {
      "type": "string",
      "format": "date-time",
      "description": "Самый ранний момент удержания за неявку по принятому льготному периоду.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "forfeitOnLateCancellation": {
      "type": "boolean",
      "description": "Принятое разрешение явного удержания сотрудником при поздней отмене.",
      "example": true
    },
    "forfeitOnNoShow": {
      "type": "boolean",
      "description": "Принятое разрешение явного удержания сотрудником при неявке; автоматического списания с карты нет.",
      "example": true
    },
    "termsVersion": {
      "type": "string",
      "description": "Принятая версия публичных условий.",
      "example": "example"
    },
    "privacyVersion": {
      "type": "string",
      "description": "Принятая версия уведомления о конфиденциальности.",
      "example": "example"
    }
  },
  "nullable": true,
  "example": {
    "schema": "hallify.reservation-guarantee.terms",
    "version": 1,
    "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
    "publicChannelId": "9bee613d-3322-4a03-8b9f-8a6259984eee",
    "servicePeriodId": "4846c409-f4df-40f6-81cc-1d7157a5c646",
    "servicePeriodRevision": 1,
    "kind": "DEPOSIT",
    "amountBasis": "FIXED",
    "unitAmount": "1.00",
    "totalAmount": "1.00",
    "currency": "GEL",
    "currencyMinorUnit": 2,
    "partySize": 1,
    "scheduledAt": "2026-01-15T12:00:00.000Z",
    "dueAt": "2026-12-31T18:00:00.000Z",
    "freeCancellationAt": "2026-01-15T12:00:00.000Z",
    "noShowAfter": "2026-01-15T12:00:00.000Z",
    "forfeitOnLateCancellation": true,
    "forfeitOnNoShow": true,
    "termsVersion": "example",
    "privacyVersion": "example"
  }
}
termsHashОбязательно

Канонический digest принятых условий либо null, если гарантия не применяется.

string · null
Полное определение
{
  "type": "string",
  "pattern": "^[0-9a-f]{64}$",
  "nullable": true,
  "description": "Канонический digest принятых условий либо null, если гарантия не применяется.",
  "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
}
Полное определение
{
  "type": "object",
  "description": "Предложение гарантии, рассчитанное сервером, с условиями и их дайджестом. При NONE или числе гостей ниже настроенного порога гарантия не требуется.",
  "additionalProperties": false,
  "required": [
    "required",
    "terms",
    "termsHash"
  ],
  "properties": {
    "required": {
      "type": "boolean",
      "description": "Требуют ли точные слот и число гостей гарантию.",
      "example": true
    },
    "terms": {
      "type": "object",
      "description": "Точные принятые условия либо null, если гарантия не применяется.",
      "additionalProperties": false,
      "required": [
        "schema",
        "version",
        "venueId",
        "publicChannelId",
        "servicePeriodId",
        "servicePeriodRevision",
        "kind",
        "amountBasis",
        "unitAmount",
        "totalAmount",
        "currency",
        "currencyMinorUnit",
        "partySize",
        "scheduledAt",
        "dueAt",
        "freeCancellationAt",
        "noShowAfter",
        "forfeitOnLateCancellation",
        "forfeitOnNoShow",
        "termsVersion",
        "privacyVersion"
      ],
      "properties": {
        "schema": {
          "type": "string",
          "enum": [
            "hallify.reservation-guarantee.terms"
          ],
          "description": "Каноническая схема нативных условий.",
          "example": "hallify.reservation-guarantee.terms"
        },
        "version": {
          "type": "integer",
          "enum": [
            1
          ],
          "description": "Каноническая версия нативных условий.",
          "example": 1
        },
        "venueId": {
          "type": "string",
          "format": "uuid",
          "description": "UUID нативного заведения.",
          "example": "0604de3a-da74-4ad5-89f6-2dfe000d5391"
        },
        "publicChannelId": {
          "type": "string",
          "format": "uuid",
          "description": "UUID нативного канала бронирования.",
          "example": "9bee613d-3322-4a03-8b9f-8a6259984eee"
        },
        "servicePeriodId": {
          "type": "string",
          "format": "uuid",
          "description": "UUID выбранного нативного периода обслуживания.",
          "example": "4846c409-f4df-40f6-81cc-1d7157a5c646"
        },
        "servicePeriodRevision": {
          "type": "integer",
          "minimum": 1,
          "description": "Принятая нативная ревизия периода обслуживания.",
          "example": 1
        },
        "kind": {
          "type": "string",
          "enum": [
            "DEPOSIT",
            "CARD_HOLD",
            "PREPAID"
          ],
          "description": "Исходный принятый вид гарантии.",
          "example": "DEPOSIT"
        },
        "amountBasis": {
          "type": "string",
          "enum": [
            "FIXED",
            "PER_GUEST"
          ],
          "description": "Исходный способ расчёта суммы.",
          "example": "FIXED"
        },
        "unitAmount": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]{0,9})\\.[0-9]{2}$",
          "description": "Точная сумма за бронь или гостя с двумя десятичными знаками.",
          "example": "1.00"
        },
        "totalAmount": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]{0,9})\\.[0-9]{2}$",
          "description": "Точный принятый общий principal с двумя десятичными знаками без чаевых.",
          "example": "1.00"
        },
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$",
          "description": "Исходная нативная валюта; конвертация не выполняется.",
          "example": "GEL"
        },
        "currencyMinorUnit": {
          "type": "integer",
          "enum": [
            2
          ],
          "description": "Нативная денежная точность.",
          "example": 2
        },
        "partySize": {
          "type": "integer",
          "minimum": 1,
          "maximum": 99,
          "description": "Точное принятое число гостей.",
          "example": 1
        },
        "scheduledAt": {
          "type": "string",
          "format": "date-time",
          "description": "Точный запланированный момент слота в UTC.",
          "example": "2026-01-15T12:00:00.000Z"
        },
        "dueAt": {
          "type": "string",
          "format": "date-time",
          "description": "Точный срок оплаты до конвертации и сбора средств.",
          "example": "2026-12-31T18:00:00.000Z"
        },
        "freeCancellationAt": {
          "type": "string",
          "format": "date-time",
          "description": "Точная граница бесплатной отмены.",
          "example": "2026-01-15T12:00:00.000Z"
        },
        "noShowAfter": {
          "type": "string",
          "format": "date-time",
          "description": "Самый ранний момент удержания за неявку по принятому льготному периоду.",
          "example": "2026-01-15T12:00:00.000Z"
        },
        "forfeitOnLateCancellation": {
          "type": "boolean",
          "description": "Принятое разрешение явного удержания сотрудником при поздней отмене.",
          "example": true
        },
        "forfeitOnNoShow": {
          "type": "boolean",
          "description": "Принятое разрешение явного удержания сотрудником при неявке; автоматического списания с карты нет.",
          "example": true
        },
        "termsVersion": {
          "type": "string",
          "description": "Принятая версия публичных условий.",
          "example": "example"
        },
        "privacyVersion": {
          "type": "string",
          "description": "Принятая версия уведомления о конфиденциальности.",
          "example": "example"
        }
      },
      "nullable": true,
      "example": {
        "schema": "hallify.reservation-guarantee.terms",
        "version": 1,
        "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
        "publicChannelId": "9bee613d-3322-4a03-8b9f-8a6259984eee",
        "servicePeriodId": "4846c409-f4df-40f6-81cc-1d7157a5c646",
        "servicePeriodRevision": 1,
        "kind": "DEPOSIT",
        "amountBasis": "FIXED",
        "unitAmount": "1.00",
        "totalAmount": "1.00",
        "currency": "GEL",
        "currencyMinorUnit": 2,
        "partySize": 1,
        "scheduledAt": "2026-01-15T12:00:00.000Z",
        "dueAt": "2026-12-31T18:00:00.000Z",
        "freeCancellationAt": "2026-01-15T12:00:00.000Z",
        "noShowAfter": "2026-01-15T12:00:00.000Z",
        "forfeitOnLateCancellation": true,
        "forfeitOnNoShow": true,
        "termsVersion": "example",
        "privacyVersion": "example"
      }
    },
    "termsHash": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$",
      "nullable": true,
      "description": "Канонический digest принятых условий либо null, если гарантия не применяется.",
      "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
    }
  },
  "example": {
    "required": true,
    "terms": null,
    "termsHash": null
  }
}

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

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