Авторизация
Учётная запись Hallify не требуется. Соблюдайте предварительные условия и ограничения этого метода.
Руководство по подключениюПараметры
publicHandleПуть · ОбязательноНепрозрачный публичный идентификатор канала для поиска опубликованной гостевой конфигурации одного заведения. Не является ключом доступа.
stringПолное определение
{ "type": "string", "example": "example" }originЗаголовок · ОбязательноOrigin браузера проверяется по разрешённым источникам публичного канала. Отсутствующий или запрещённый Origin отклоняется без раскрытия закрытой конфигурации заведения.
stringПолное определение
{ "type": "string", "example": "example" }
Ответы
200Возвращает публичный канал предзаказов и доступное представление каталога.
Полное определение
{
"$ref": "#/components/schemas/PreorderPublicCatalogResultDto"
}{
"publicHandle": "example",
"venue": {
"id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
"name": "Example name",
"timeZone": "Asia/Tbilisi"
},
"termsVersion": "example",
"privacyVersion": "example",
"salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
"menuVersionId": "490ccfcb-caa6-472e-836a-a8416e8cee92",
"versionNumber": 1,
"graphHash": null,
"publishedAt": "2026-01-15T12:00:00.000Z",
"servedAt": "2026-01-15T12:00:00.000Z",
"categories": [
{
"exampleKey": "example"
}
]
}Схемы
PreorderPublicCatalogResultDto
Возвращает публичный канал предзаказов и доступное представление каталога.
publicHandleОбязательноПубличный идентификатор канала
publicHandle.stringПолное определение
{ "type": "string", "description": "Публичный идентификатор канала `publicHandle`.", "example": "example" }venueОбязательноВложенные сведения
venue; состав полей указан в схеме.objectПолное определение
{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "UUID Hallify для `id`.", "example": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0" }, "name": { "type": "string", "description": "Понятное человеку значение `name`.", "example": "Example name" }, "timeZone": { "type": "string", "description": "Идентификатор часового пояса IANA в `timeZone` для трактовки местных дат и времени заведения.", "example": "Asia/Tbilisi" } }, "required": [ "id", "name", "timeZone" ], "description": "Вложенные сведения `venue`; состав полей указан в схеме.", "example": { "id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0", "name": "Example name", "timeZone": "Asia/Tbilisi" } }termsVersionОбязательноВерсия условий
termsVersion.stringПолное определение
{ "type": "string", "description": "Версия условий `termsVersion`.", "example": "example" }privacyVersionОбязательноВерсия уведомления о персональных данных
privacyVersion.stringПолное определение
{ "type": "string", "description": "Версия уведомления о персональных данных `privacyVersion`.", "example": "example" }salesChannelIdОбязательноUUID Hallify для
salesChannelId.string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID Hallify для `salesChannelId`.", "example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc" }menuVersionIdОбязательноUUID Hallify для
menuVersionId.string · uuidПолное определение
{ "type": "string", "format": "uuid", "description": "UUID Hallify для `menuVersionId`.", "example": "490ccfcb-caa6-472e-836a-a8416e8cee92" }versionNumberОбязательноЦелочисленное значение
versionNumber. Ограничения: минимум 1.integerПолное определение
{ "type": "integer", "minimum": 1, "description": "Целочисленное значение `versionNumber`. Ограничения: минимум 1.", "example": 1 }graphHashОбязательноНепрозрачный отпечаток
graphHashточной опубликованной структуры меню. Клиенты сравнивают его для обнаружения изменений структуры. Null означает отсутствие записанного значения в этом представлении.string · nullПолное определение
{ "type": "string", "nullable": true, "description": "Непрозрачный отпечаток `graphHash` точной опубликованной структуры меню. Клиенты сравнивают его для обнаружения изменений структуры. Null означает отсутствие записанного значения в этом представлении.", "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef" }publishedAtОбязательноВремя
publishedAtв формате RFC3339; разные часовые смещения могут обозначать один абсолютный момент.string · date-timeПолное определение
{ "type": "string", "format": "date-time", "description": "Время `publishedAt` в формате RFC3339; разные часовые смещения могут обозначать один абсолютный момент.", "example": "2026-01-15T12:00:00.000Z" }servedAtОбязательноВремя
servedAtв формате RFC3339; разные часовые смещения могут обозначать один абсолютный момент.string · date-timeПолное определение
{ "type": "string", "format": "date-time", "description": "Время `servedAt` в формате RFC3339; разные часовые смещения могут обозначать один абсолютный момент.", "example": "2026-01-15T12:00:00.000Z" }categoriesОбязательноКоллекция
categoriesв составе представления.arrayПолное определение
{ "type": "array", "items": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/JsonValue" }, "example": { "exampleKey": "example" } }, "description": "Коллекция `categories` в составе представления.", "example": [ { "exampleKey": "example" } ] }
Полное определение
{
"type": "object",
"properties": {
"publicHandle": {
"type": "string",
"description": "Публичный идентификатор канала `publicHandle`.",
"example": "example"
},
"venue": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "UUID Hallify для `id`.",
"example": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0"
},
"name": {
"type": "string",
"description": "Понятное человеку значение `name`.",
"example": "Example name"
},
"timeZone": {
"type": "string",
"description": "Идентификатор часового пояса IANA в `timeZone` для трактовки местных дат и времени заведения.",
"example": "Asia/Tbilisi"
}
},
"required": [
"id",
"name",
"timeZone"
],
"description": "Вложенные сведения `venue`; состав полей указан в схеме.",
"example": {
"id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
"name": "Example name",
"timeZone": "Asia/Tbilisi"
}
},
"termsVersion": {
"type": "string",
"description": "Версия условий `termsVersion`.",
"example": "example"
},
"privacyVersion": {
"type": "string",
"description": "Версия уведомления о персональных данных `privacyVersion`.",
"example": "example"
},
"salesChannelId": {
"type": "string",
"format": "uuid",
"description": "UUID Hallify для `salesChannelId`.",
"example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc"
},
"menuVersionId": {
"type": "string",
"format": "uuid",
"description": "UUID Hallify для `menuVersionId`.",
"example": "490ccfcb-caa6-472e-836a-a8416e8cee92"
},
"versionNumber": {
"type": "integer",
"minimum": 1,
"description": "Целочисленное значение `versionNumber`. Ограничения: минимум 1.",
"example": 1
},
"graphHash": {
"type": "string",
"nullable": true,
"description": "Непрозрачный отпечаток `graphHash` точной опубликованной структуры меню. Клиенты сравнивают его для обнаружения изменений структуры. Null означает отсутствие записанного значения в этом представлении.",
"example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
},
"publishedAt": {
"type": "string",
"format": "date-time",
"description": "Время `publishedAt` в формате RFC3339; разные часовые смещения могут обозначать один абсолютный момент.",
"example": "2026-01-15T12:00:00.000Z"
},
"servedAt": {
"type": "string",
"format": "date-time",
"description": "Время `servedAt` в формате RFC3339; разные часовые смещения могут обозначать один абсолютный момент.",
"example": "2026-01-15T12:00:00.000Z"
},
"categories": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/JsonValue"
},
"example": {
"exampleKey": "example"
}
},
"description": "Коллекция `categories` в составе представления.",
"example": [
{
"exampleKey": "example"
}
]
}
},
"required": [
"publicHandle",
"venue",
"termsVersion",
"privacyVersion",
"salesChannelId",
"menuVersionId",
"versionNumber",
"graphHash",
"publishedAt",
"servedAt",
"categories"
],
"description": "Возвращает публичный канал предзаказов и доступное представление каталога.",
"example": {
"publicHandle": "example",
"venue": {
"id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
"name": "Example name",
"timeZone": "Asia/Tbilisi"
},
"termsVersion": "example",
"privacyVersion": "example",
"salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
"menuVersionId": "490ccfcb-caa6-472e-836a-a8416e8cee92",
"versionNumber": 1,
"graphHash": null,
"publishedAt": "2026-01-15T12:00:00.000Z",
"servedAt": "2026-01-15T12:00:00.000Z",
"categories": [
{
"exampleKey": "example"
}
]
}
}JsonValue
Рекурсивно допустимое JSON-значение. Используется только там, где контракт явно разрешает произвольные структурированные данные.
Полное определение
{
"oneOf": [
{
"type": "string",
"nullable": true,
"example": "example"
},
{
"type": "number",
"example": 0
},
{
"type": "boolean",
"example": true
},
{
"type": "array",
"items": {
"$ref": "#/components/schemas/JsonValue"
},
"example": [
"example"
]
},
{
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/JsonValue"
},
"example": {
"exampleKey": "example"
}
}
],
"description": "Рекурсивно допустимое JSON-значение. Используется только там, где контракт явно разрешает произвольные структурированные данные.",
"example": "example"
}