Skip to content
Sections

Guest preorders

Get the publicly eligible preorder catalog

GET/public/preorders/{publicHandle}/catalog

Returns the published venue preorder catalog, fulfillment policy, and guest-visible product availability allowed for the requesting origin. This discovery operation is intentionally public and does not require authentication.

Authentication

A Hallify account session is not required. Follow this operation’s prerequisites and restrictions.

Connection guide

Parameters

publicHandlePath · Required

Opaque public channel handle used to resolve one venue’s published guest-facing configuration; it is not a credential.

string
Full definition
{
  "type": "string",
  "example": "example"
}
originHeader · Required

Browser Origin evaluated against the public channel allowlist; a missing or disallowed origin is rejected without exposing private venue configuration.

string
Full definition
{
  "type": "string",
  "example": "example"
}

Responses

200Returns the public preorder channel and its eligible catalog projection.
PreorderPublicCatalogResultDto
Full definition
{
  "$ref": "#/components/schemas/PreorderPublicCatalogResultDto"
}
Example response · 200 · application/json
{
  "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"
    }
  ]
}

Schemas

PreorderPublicCatalogResultDto

Returns the public preorder channel and its eligible catalog projection.

publicHandleRequired

Public handle for preorder public catalog.

string
Full definition
{
  "type": "string",
  "description": "Public handle for preorder public catalog.",
  "example": "example"
}
venueRequired

Venue details embedded in preorder public catalog containing id, name, and time zone.

object
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Hallify UUID identifying preorder public catalog venue.",
      "example": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name for preorder public catalog venue.",
      "example": "Example name"
    },
    "timeZone": {
      "type": "string",
      "description": "IANA time-zone identifier used to interpret venue-local dates and times for preorder public catalog venue.",
      "example": "Asia/Tbilisi"
    }
  },
  "required": [
    "id",
    "name",
    "timeZone"
  ],
  "description": "Venue details embedded in preorder public catalog containing id, name, and time zone.",
  "example": {
    "id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
    "name": "Example name",
    "timeZone": "Asia/Tbilisi"
  }
}
termsVersionRequired

Terms version for preorder public catalog.

string
Full definition
{
  "type": "string",
  "description": "Terms version for preorder public catalog.",
  "example": "example"
}
privacyVersionRequired

Privacy version for preorder public catalog.

string
Full definition
{
  "type": "string",
  "description": "Privacy version for preorder public catalog.",
  "example": "example"
}
salesChannelIdRequired

Hallify UUID identifying sales channel associated with preorder public catalog.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Hallify UUID identifying sales channel associated with preorder public catalog.",
  "example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc"
}
menuVersionIdRequired

Hallify UUID identifying menu version associated with preorder public catalog.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Hallify UUID identifying menu version associated with preorder public catalog.",
  "example": "490ccfcb-caa6-472e-836a-a8416e8cee92"
}
versionNumberRequired

Whole-number version number recorded for preorder public catalog. Accepted values enforce minimum 1.

integer
Full definition
{
  "type": "integer",
  "minimum": 1,
  "description": "Whole-number version number recorded for preorder public catalog. Accepted values enforce minimum 1.",
  "example": 1
}
graphHashRequired

Opaque digest identifying the exact published-menu graph used by preorder public catalog; clients compare it to detect graph changes. Null means no value is recorded for this representation.

string · null
Full definition
{
  "type": "string",
  "nullable": true,
  "description": "Opaque digest identifying the exact published-menu graph used by preorder public catalog; clients compare it to detect graph changes. Null means no value is recorded for this representation.",
  "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
}
publishedAtRequired

RFC 3339 timestamp for published at; offsets represent the same absolute instant.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "RFC 3339 timestamp for published at; offsets represent the same absolute instant.",
  "example": "2026-01-15T12:00:00.000Z"
}
servedAtRequired

RFC 3339 timestamp for served at; offsets represent the same absolute instant.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "RFC 3339 timestamp for served at; offsets represent the same absolute instant.",
  "example": "2026-01-15T12:00:00.000Z"
}
categoriesRequired

Categories included as categories in preorder public catalog.

array
Full definition
{
  "type": "array",
  "items": {
    "type": "object",
    "additionalProperties": {
      "$ref": "#/components/schemas/JsonValue"
    },
    "example": {
      "exampleKey": "example"
    }
  },
  "description": "Categories included as categories in preorder public catalog.",
  "example": [
    {
      "exampleKey": "example"
    }
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "publicHandle": {
      "type": "string",
      "description": "Public handle for preorder public catalog.",
      "example": "example"
    },
    "venue": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Hallify UUID identifying preorder public catalog venue.",
          "example": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0"
        },
        "name": {
          "type": "string",
          "description": "Human-readable name for preorder public catalog venue.",
          "example": "Example name"
        },
        "timeZone": {
          "type": "string",
          "description": "IANA time-zone identifier used to interpret venue-local dates and times for preorder public catalog venue.",
          "example": "Asia/Tbilisi"
        }
      },
      "required": [
        "id",
        "name",
        "timeZone"
      ],
      "description": "Venue details embedded in preorder public catalog containing id, name, and time zone.",
      "example": {
        "id": "fbc6db41-f1c2-4f74-862d-210bd28ee2a0",
        "name": "Example name",
        "timeZone": "Asia/Tbilisi"
      }
    },
    "termsVersion": {
      "type": "string",
      "description": "Terms version for preorder public catalog.",
      "example": "example"
    },
    "privacyVersion": {
      "type": "string",
      "description": "Privacy version for preorder public catalog.",
      "example": "example"
    },
    "salesChannelId": {
      "type": "string",
      "format": "uuid",
      "description": "Hallify UUID identifying sales channel associated with preorder public catalog.",
      "example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc"
    },
    "menuVersionId": {
      "type": "string",
      "format": "uuid",
      "description": "Hallify UUID identifying menu version associated with preorder public catalog.",
      "example": "490ccfcb-caa6-472e-836a-a8416e8cee92"
    },
    "versionNumber": {
      "type": "integer",
      "minimum": 1,
      "description": "Whole-number version number recorded for preorder public catalog. Accepted values enforce minimum 1.",
      "example": 1
    },
    "graphHash": {
      "type": "string",
      "nullable": true,
      "description": "Opaque digest identifying the exact published-menu graph used by preorder public catalog; clients compare it to detect graph changes. Null means no value is recorded for this representation.",
      "example": "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
    },
    "publishedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp for published at; offsets represent the same absolute instant.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "servedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 timestamp for served at; offsets represent the same absolute instant.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/JsonValue"
        },
        "example": {
          "exampleKey": "example"
        }
      },
      "description": "Categories included as categories in preorder public catalog.",
      "example": [
        {
          "exampleKey": "example"
        }
      ]
    }
  },
  "required": [
    "publicHandle",
    "venue",
    "termsVersion",
    "privacyVersion",
    "salesChannelId",
    "menuVersionId",
    "versionNumber",
    "graphHash",
    "publishedAt",
    "servedAt",
    "categories"
  ],
  "description": "Returns the public preorder channel and its eligible catalog projection.",
  "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

Recursively JSON-safe value used only where the owning contract intentionally allows free-form structured data.

Full definition
{
  "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": "Recursively JSON-safe value used only where the owning contract intentionally allows free-form structured data.",
  "example": "example"
}

Hallify uses essential cookies and optional analytics.

Essential cookies keep sign-in, locale, and theme preferences working. Analytics is off until you choose to allow it.