Skip to content
Sections

Guest portal

Read one own frozen QR order receipt

GET/guest-portal/qr-visits/{associationId}/order-requests/{requestId}

Uses the canonical immutable request membership and original quote/outcome. Missing or corrupt source witnesses return an explicit unavailable projection without guesses from CRM, current seating or the whole bill.

Authentication

x-guest-portal-token: <HALLIFY_GUEST_PORTAL_TOKEN>

Guest-owned portal session token.

Connection guide

Parameters

associationIdPath · Required

Immutable original QR association owned by the authenticated Portal subject.

string · uuid
Full definition
{
  "format": "uuid",
  "type": "string",
  "example": "9b6163a8-afea-4877-818b-8e2ae28a2845"
}
requestIdPath · Required

Original order request belonging to this exact associated QR membership.

string · uuid
Full definition
{
  "format": "uuid",
  "type": "string",
  "example": "9b6163a8-afea-4877-818b-8e2ae28a2845"
}

Responses

200Own frozen quote/outcome or explicit legacy-unavailable result.
GuestPortalQrOwnOrderRequestResultDto
Full definition
{
  "$ref": "#/components/schemas/GuestPortalQrOwnOrderRequestResultDto"
}
Example response · 200 · application/json
{
  "availability": "LEGACY_UNAVAILABLE",
  "id": "a42073ae-5313-4ace-86d8-86fb33fde1a9",
  "createdAt": "2026-01-15T10:00:00.000Z"
}
400Malformed input, changed statement, or invalid target proof/OTP. Wrong OTP attempts are committed.
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 400 · application/json
{
  "statusCode": 400,
  "error": "errors:http.badRequest",
  "code": "HTTP_BAD_REQUEST",
  "message": "errors:http.badRequest",
  "translationKey": "errors:http.badRequest"
}
401The original QR bearer/actual Origin or current Portal session is unavailable.
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 401 · application/json
{
  "statusCode": 401,
  "error": "errors:http.unauthorized",
  "code": "HTTP_UNAUTHORIZED",
  "message": "errors:http.unauthorized",
  "translationKey": "errors:http.unauthorized"
}
403Private history needs current contact assurance. Consent withdrawal does not need fresh OTP.
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 403 · application/json
{
  "statusCode": 403,
  "error": "errors:http.forbidden",
  "code": "HTTP_FORBIDDEN",
  "message": "errors:http.forbidden",
  "translationKey": "errors:http.forbidden"
}
404The exact owned association or eligible original request is unavailable.
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 404 · application/json
{
  "statusCode": 404,
  "error": "errors:http.notFound",
  "code": "HTTP_NOT_FOUND",
  "message": "errors:http.notFound",
  "translationKey": "errors:http.notFound"
}
429The canonical contact-verification attempt budget is exhausted.

Response headers

Retry-After

Whole seconds the client must wait before retrying the rejected request.

integer
Full definition
{
  "type": "integer",
  "minimum": 1,
  "example": 60
}
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 429 · application/json
{
  "statusCode": 429,
  "error": "errors:http.tooManyRequests",
  "code": "HTTP_TOO_MANY_REQUESTS",
  "message": "errors:http.tooManyRequests",
  "translationKey": "errors:http.tooManyRequests"
}
503Protected-data policy or command encryption keys are unavailable.
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 503 · application/json
{
  "statusCode": 503,
  "error": "errors:http.serviceUnavailable",
  "code": "HTTP_SERVICE_UNAVAILABLE",
  "message": "errors:http.serviceUnavailable",
  "translationKey": "errors:http.serviceUnavailable"
}

Schemas

GuestPortalQrOwnOrderRequestResultDto

Own original frozen QR request detail or an explicit legacy-unavailable result.

Full definition
{
  "description": "Own original frozen QR request detail or an explicit legacy-unavailable result.",
  "oneOf": [
    {
      "type": "object",
      "description": "Scoped original request whose retained frozen witness cannot be read safely.",
      "additionalProperties": false,
      "required": [
        "availability",
        "id",
        "createdAt"
      ],
      "properties": {
        "availability": {
          "type": "string",
          "enum": [
            "LEGACY_UNAVAILABLE"
          ],
          "description": "Original frozen witness is unavailable or corrupt; no ownership or bill amount is inferred.",
          "example": "LEGACY_UNAVAILABLE"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Original scoped order request UUID.",
          "example": "a42073ae-5313-4ace-86d8-86fb33fde1a9"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Original scoped request timestamp.",
          "example": "2026-01-15T10:00:00.000Z"
        }
      },
      "example": {
        "availability": "LEGACY_UNAVAILABLE",
        "id": "a42073ae-5313-4ace-86d8-86fb33fde1a9",
        "createdAt": "2026-01-15T10:00:00.000Z"
      }
    },
    {
      "allOf": [
        {
          "$ref": "#/components/schemas/TablePublicOrderRequestDto"
        },
        {
          "type": "object",
          "description": "Availability marker for an integrity-checked original frozen request.",
          "required": [
            "availability"
          ],
          "properties": {
            "availability": {
              "type": "string",
              "enum": [
                "AVAILABLE"
              ],
              "description": "Canonical frozen request witness is readable and integrity checked.",
              "example": "AVAILABLE"
            }
          },
          "example": {
            "availability": "AVAILABLE"
          }
        }
      ],
      "example": {
        "id": "b0d5b8e4-7fe8-4ccb-809a-f5a0075d0fff",
        "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
        "revision": 1,
        "mode": "DIRECT",
        "status": "PENDING",
        "orderId": null,
        "decisionReason": null,
        "decidedAt": null,
        "createdAt": "2026-01-15T10:00:00.000Z",
        "expiresAt": "2026-12-31T18:00:00.000Z",
        "quote": {
          "version": 1,
          "scope": {
            "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
            "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
            "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
            "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
          },
          "salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
          "basisOrderId": null,
          "basisOrderRevision": null,
          "clientMenuVersionId": "cd2f2c2a-ba73-4579-8e32-52da8388fd05",
          "clientGraphHash": "menu-cost-v1.graph.GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
          "financialPolicyVersionId": "b36de587-2415-41cd-8269-c8dc9aa8ee66",
          "pricingHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "items": [
            {
              "clientLineId": "guest-line-1",
              "quantity": 1
            }
          ],
          "currency": "GEL",
          "lines": [
            {
              "clientLineId": "example-id",
              "name": "Example name",
              "quantity": 1,
              "unitPrice": "12.00",
              "total": "12.00"
            }
          ],
          "amounts": {
            "subtotal": "12.00",
            "discount": "0.00",
            "serviceCharge": "0.00",
            "tax": "0.00",
            "total": "12.00"
          },
          "createdAt": "2026-01-15T13:00:00.000Z",
          "expiresAt": "2026-12-31T18:00:00.000Z"
        },
        "outcome": null,
        "availability": "AVAILABLE"
      }
    }
  ],
  "example": {
    "availability": "LEGACY_UNAVAILABLE",
    "id": "a42073ae-5313-4ace-86d8-86fb33fde1a9",
    "createdAt": "2026-01-15T10:00:00.000Z"
  }
}
TablePublicOrderRequestDto

Owned original guest request with its public native quote, current lifecycle state and nullable frozen admitted outcome.

idRequired

Immutable guest order request identifier, also used as the native admission correlation.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Immutable guest order request identifier, also used as the native admission correlation.",
  "example": "b0d5b8e4-7fe8-4ccb-809a-f5a0075d0fff"
}
tableSessionIdRequired

Original native table-service session owning this request and any admitted batch.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Original native table-service session owning this request and any admitted batch.",
  "example": "9b456a94-f735-466f-84ba-67aa863b2905"
}
revisionRequired

Current request revision. Staff decisions require the exact PENDING revision and advance it once.

integer
Full definition
{
  "type": "integer",
  "minimum": 1,
  "description": "Current request revision. Staff decisions require the exact PENDING revision and advance it once.",
  "example": 1
}
modeRequired

Admission mode captured immutably when this request was submitted.

string
Full definition
{
  "type": "string",
  "enum": [
    "DIRECT",
    "STAFF_CONFIRM"
  ],
  "description": "Admission mode captured immutably when this request was submitted.",
  "example": "DIRECT"
}
statusRequired

Persisted request lifecycle state. PENDING has no native Order; terminal states never transition again.

string
Full definition
{
  "type": "string",
  "enum": [
    "PENDING",
    "ACCEPTED",
    "REJECTED",
    "INVALIDATED"
  ],
  "description": "Persisted request lifecycle state. PENDING has no native Order; terminal states never transition again.",
  "example": "PENDING"
}
orderIdRequired

Canonical native batch Order created by ACCEPTED admission, or null before admission and for rejected or invalidated requests.

string · uuid · null
Full definition
{
  "type": "string",
  "format": "uuid",
  "nullable": true,
  "description": "Canonical native batch Order created by ACCEPTED admission, or null before admission and for rejected or invalidated requests.",
  "example": "f3127edf-ce4f-4da7-8be5-81b962024e6c"
}
decisionReasonRequired

Stable rejection or invalidation reason; null for PENDING and ACCEPTED. Contains no staff note or credential.

string · null
Full definition
{
  "type": "string",
  "nullable": true,
  "maxLength": 64,
  "description": "Stable rejection or invalidation reason; null for PENDING and ACCEPTED. Contains no staff note or credential.",
  "example": "synthetic-example-credential"
}
decidedAtRequired

Persisted terminal decision time, or null while the request is PENDING.

string · date-time · null
Full definition
{
  "type": "string",
  "format": "date-time",
  "nullable": true,
  "description": "Persisted terminal decision time, or null while the request is PENDING.",
  "example": "2026-01-15T12:00:00.000Z"
}
createdAtRequired

Immutable server creation time used with the request UUID for cursor ordering.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "Immutable server creation time used with the request UUID for cursor ordering.",
  "example": "2026-01-15T10:00:00.000Z"
}
expiresAtRequired

Original effective source and quote deadline. Expired pending demand cannot be admitted.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "Original effective source and quote deadline. Expired pending demand cannot be admitted.",
  "example": "2026-12-31T18:00:00.000Z"
}
quoteRequired

Immutable original public native quote reviewed for this request; no current bill is inferred from it.

allOf
Full definition
{
  "description": "Immutable original public native quote reviewed for this request; no current bill is inferred from it.",
  "allOf": [
    {
      "$ref": "#/components/schemas/TablePublicOrderNativeQuoteDto"
    }
  ],
  "example": {
    "version": 1,
    "scope": {
      "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
      "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
      "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
      "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
    },
    "salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
    "basisOrderId": null,
    "basisOrderRevision": null,
    "clientMenuVersionId": "cd2f2c2a-ba73-4579-8e32-52da8388fd05",
    "clientGraphHash": "menu-cost-v1.graph.GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
    "financialPolicyVersionId": "b36de587-2415-41cd-8269-c8dc9aa8ee66",
    "pricingHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "items": [
      {
        "clientLineId": "guest-line-1",
        "quantity": 1
      }
    ],
    "currency": "GEL",
    "lines": [
      {
        "clientLineId": "example-id",
        "name": "Example name",
        "quantity": 1,
        "unitPrice": "12.00",
        "total": "12.00"
      }
    ],
    "amounts": {
      "subtotal": "12.00",
      "discount": "0.00",
      "serviceCharge": "0.00",
      "tax": "0.00",
      "total": "12.00"
    },
    "createdAt": "2026-01-15T13:00:00.000Z",
    "expiresAt": "2026-12-31T18:00:00.000Z"
  }
}
outcomeRequired

Frozen canonical native outcome for ACCEPTED, or null when no native batch was admitted.

object · null
Full definition
{
  "nullable": true,
  "description": "Frozen canonical native outcome for ACCEPTED, or null when no native batch was admitted.",
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "format": "uuid",
      "description": "Original immutable QR request admitted by native Orders.",
      "example": "8b92d522-894a-427c-8509-9f0795659b5b"
    },
    "orderId": {
      "type": "string",
      "format": "uuid",
      "description": "Native batch Order created once for this accepted request in its original table session.",
      "example": "f3127edf-ce4f-4da7-8be5-81b962024e6c"
    },
    "orderRevision": {
      "type": "integer",
      "minimum": 1,
      "description": "Native Order revision captured in the original successful admission outcome.",
      "example": 1
    },
    "status": {
      "type": "string",
      "enum": [
        "OPEN",
        "SUSPENDED",
        "SUBMITTED",
        "PAID",
        "CANCELED"
      ],
      "description": "Native Order status captured after canonical batch submission; this is not a payment status.",
      "example": "OPEN"
    },
    "items": {
      "maxItems": 100,
      "description": "Original client-line to native-item mapping and guest allocation returned by the native batch port.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TablePublicOrderAdmittedItemDto"
      },
      "example": [
        {
          "clientLineId": "example",
          "orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
          "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
        }
      ]
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "example": "GEL",
      "description": "Native batch currency for the original admitted financial amounts."
    },
    "amounts": {
      "description": "Original canonical native admission amounts, retained without recalculation from later menu or Order state.",
      "allOf": [
        {
          "$ref": "#/components/schemas/TablePublicOrderAmountsDto"
        }
      ],
      "example": {
        "subtotal": "12.00",
        "discount": "0.00",
        "serviceCharge": "0.00",
        "tax": "0.00",
        "total": "12.00"
      }
    },
    "admittedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Server admission timestamp captured by native Orders and retained in the original outcome.",
      "example": "2026-01-15T12:00:00.000Z"
    }
  },
  "required": [
    "requestId",
    "orderId",
    "orderRevision",
    "status",
    "items",
    "currency",
    "amounts",
    "admittedAt"
  ],
  "example": {
    "requestId": "8b92d522-894a-427c-8509-9f0795659b5b",
    "orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
    "orderRevision": 1,
    "status": "OPEN",
    "items": [
      {
        "clientLineId": "example",
        "orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
        "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
      }
    ],
    "currency": "GEL",
    "amounts": {
      "subtotal": "12.00",
      "discount": "0.00",
      "serviceCharge": "0.00",
      "tax": "0.00",
      "total": "12.00"
    },
    "admittedAt": "2026-01-15T12:00:00.000Z"
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Immutable guest order request identifier, also used as the native admission correlation.",
      "example": "b0d5b8e4-7fe8-4ccb-809a-f5a0075d0fff"
    },
    "tableSessionId": {
      "type": "string",
      "format": "uuid",
      "description": "Original native table-service session owning this request and any admitted batch.",
      "example": "9b456a94-f735-466f-84ba-67aa863b2905"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "description": "Current request revision. Staff decisions require the exact PENDING revision and advance it once.",
      "example": 1
    },
    "mode": {
      "type": "string",
      "enum": [
        "DIRECT",
        "STAFF_CONFIRM"
      ],
      "description": "Admission mode captured immutably when this request was submitted.",
      "example": "DIRECT"
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "ACCEPTED",
        "REJECTED",
        "INVALIDATED"
      ],
      "description": "Persisted request lifecycle state. PENDING has no native Order; terminal states never transition again.",
      "example": "PENDING"
    },
    "orderId": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Canonical native batch Order created by ACCEPTED admission, or null before admission and for rejected or invalidated requests.",
      "example": "f3127edf-ce4f-4da7-8be5-81b962024e6c"
    },
    "decisionReason": {
      "type": "string",
      "nullable": true,
      "maxLength": 64,
      "description": "Stable rejection or invalidation reason; null for PENDING and ACCEPTED. Contains no staff note or credential.",
      "example": "synthetic-example-credential"
    },
    "decidedAt": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "Persisted terminal decision time, or null while the request is PENDING.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Immutable server creation time used with the request UUID for cursor ordering.",
      "example": "2026-01-15T10:00:00.000Z"
    },
    "expiresAt": {
      "type": "string",
      "format": "date-time",
      "description": "Original effective source and quote deadline. Expired pending demand cannot be admitted.",
      "example": "2026-12-31T18:00:00.000Z"
    },
    "quote": {
      "description": "Immutable original public native quote reviewed for this request; no current bill is inferred from it.",
      "allOf": [
        {
          "$ref": "#/components/schemas/TablePublicOrderNativeQuoteDto"
        }
      ],
      "example": {
        "version": 1,
        "scope": {
          "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
          "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
          "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
          "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
        },
        "salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
        "basisOrderId": null,
        "basisOrderRevision": null,
        "clientMenuVersionId": "cd2f2c2a-ba73-4579-8e32-52da8388fd05",
        "clientGraphHash": "menu-cost-v1.graph.GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
        "financialPolicyVersionId": "b36de587-2415-41cd-8269-c8dc9aa8ee66",
        "pricingHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "items": [
          {
            "clientLineId": "guest-line-1",
            "quantity": 1
          }
        ],
        "currency": "GEL",
        "lines": [
          {
            "clientLineId": "example-id",
            "name": "Example name",
            "quantity": 1,
            "unitPrice": "12.00",
            "total": "12.00"
          }
        ],
        "amounts": {
          "subtotal": "12.00",
          "discount": "0.00",
          "serviceCharge": "0.00",
          "tax": "0.00",
          "total": "12.00"
        },
        "createdAt": "2026-01-15T13:00:00.000Z",
        "expiresAt": "2026-12-31T18:00:00.000Z"
      }
    },
    "outcome": {
      "nullable": true,
      "description": "Frozen canonical native outcome for ACCEPTED, or null when no native batch was admitted.",
      "type": "object",
      "properties": {
        "requestId": {
          "type": "string",
          "format": "uuid",
          "description": "Original immutable QR request admitted by native Orders.",
          "example": "8b92d522-894a-427c-8509-9f0795659b5b"
        },
        "orderId": {
          "type": "string",
          "format": "uuid",
          "description": "Native batch Order created once for this accepted request in its original table session.",
          "example": "f3127edf-ce4f-4da7-8be5-81b962024e6c"
        },
        "orderRevision": {
          "type": "integer",
          "minimum": 1,
          "description": "Native Order revision captured in the original successful admission outcome.",
          "example": 1
        },
        "status": {
          "type": "string",
          "enum": [
            "OPEN",
            "SUSPENDED",
            "SUBMITTED",
            "PAID",
            "CANCELED"
          ],
          "description": "Native Order status captured after canonical batch submission; this is not a payment status.",
          "example": "OPEN"
        },
        "items": {
          "maxItems": 100,
          "description": "Original client-line to native-item mapping and guest allocation returned by the native batch port.",
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/TablePublicOrderAdmittedItemDto"
          },
          "example": [
            {
              "clientLineId": "example",
              "orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
              "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
            }
          ]
        },
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$",
          "example": "GEL",
          "description": "Native batch currency for the original admitted financial amounts."
        },
        "amounts": {
          "description": "Original canonical native admission amounts, retained without recalculation from later menu or Order state.",
          "allOf": [
            {
              "$ref": "#/components/schemas/TablePublicOrderAmountsDto"
            }
          ],
          "example": {
            "subtotal": "12.00",
            "discount": "0.00",
            "serviceCharge": "0.00",
            "tax": "0.00",
            "total": "12.00"
          }
        },
        "admittedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Server admission timestamp captured by native Orders and retained in the original outcome.",
          "example": "2026-01-15T12:00:00.000Z"
        }
      },
      "required": [
        "requestId",
        "orderId",
        "orderRevision",
        "status",
        "items",
        "currency",
        "amounts",
        "admittedAt"
      ],
      "example": {
        "requestId": "8b92d522-894a-427c-8509-9f0795659b5b",
        "orderId": "f3127edf-ce4f-4da7-8be5-81b962024e6c",
        "orderRevision": 1,
        "status": "OPEN",
        "items": [
          {
            "clientLineId": "example",
            "orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
            "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
          }
        ],
        "currency": "GEL",
        "amounts": {
          "subtotal": "12.00",
          "discount": "0.00",
          "serviceCharge": "0.00",
          "tax": "0.00",
          "total": "12.00"
        },
        "admittedAt": "2026-01-15T12:00:00.000Z"
      }
    }
  },
  "description": "Owned original guest request with its public native quote, current lifecycle state and nullable frozen admitted outcome.",
  "required": [
    "id",
    "tableSessionId",
    "revision",
    "mode",
    "status",
    "orderId",
    "decisionReason",
    "decidedAt",
    "createdAt",
    "expiresAt",
    "quote",
    "outcome"
  ],
  "example": {
    "id": "b0d5b8e4-7fe8-4ccb-809a-f5a0075d0fff",
    "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
    "revision": 1,
    "mode": "DIRECT",
    "status": "PENDING",
    "orderId": null,
    "decisionReason": null,
    "decidedAt": null,
    "createdAt": "2026-01-15T10:00:00.000Z",
    "expiresAt": "2026-12-31T18:00:00.000Z",
    "quote": {
      "version": 1,
      "scope": {
        "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
        "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
        "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
        "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
      },
      "salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
      "basisOrderId": null,
      "basisOrderRevision": null,
      "clientMenuVersionId": "cd2f2c2a-ba73-4579-8e32-52da8388fd05",
      "clientGraphHash": "menu-cost-v1.graph.GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
      "financialPolicyVersionId": "b36de587-2415-41cd-8269-c8dc9aa8ee66",
      "pricingHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "items": [
        {
          "clientLineId": "guest-line-1",
          "quantity": 1
        }
      ],
      "currency": "GEL",
      "lines": [
        {
          "clientLineId": "example-id",
          "name": "Example name",
          "quantity": 1,
          "unitPrice": "12.00",
          "total": "12.00"
        }
      ],
      "amounts": {
        "subtotal": "12.00",
        "discount": "0.00",
        "serviceCharge": "0.00",
        "tax": "0.00",
        "total": "12.00"
      },
      "createdAt": "2026-01-15T13:00:00.000Z",
      "expiresAt": "2026-12-31T18:00:00.000Z"
    },
    "outcome": null
  }
}
TablePublicOrderNativeQuoteDto

Canonical native guest batch quote, preserved verbatim. QR proof authenticates this exact document; native ordering owns all pricing, channel and financial evidence.

versionRequired

Canonical native guest batch quote document version.

integer
Full definition
{
  "type": "integer",
  "enum": [
    1
  ],
  "description": "Canonical native guest batch quote document version.",
  "example": 1
}
scopeRequired

Immutable server-derived tenant, session and operational guest scope.

allOf
Full definition
{
  "description": "Immutable server-derived tenant, session and operational guest scope.",
  "allOf": [
    {
      "$ref": "#/components/schemas/TablePublicOrderScopeDto"
    }
  ],
  "example": {
    "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
    "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
    "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
    "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
  }
}
salesChannelIdRequired

Native compatible sales channel selected for this batch and rechecked at admission.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Native compatible sales channel selected for this batch and rechecked at admission.",
  "example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc"
}
basisOrderIdRequired

Existing native active Order used only as a channel and financial basis, or null when no basis Order exists. Its pointer and rows are not submitted by this batch.

string · uuid · null
Full definition
{
  "type": "string",
  "format": "uuid",
  "nullable": true,
  "description": "Existing native active Order used only as a channel and financial basis, or null when no basis Order exists. Its pointer and rows are not submitted by this batch.",
  "example": "84c563bd-49f7-45e6-8212-133ba2297c16"
}
basisOrderRevisionRequired

Captured basis Order revision, or null together with the absent basis Order.

integer · null
Full definition
{
  "type": "integer",
  "minimum": 1,
  "nullable": true,
  "description": "Captured basis Order revision, or null together with the absent basis Order.",
  "example": 1
}
clientMenuVersionIdRequired

Exact published menu version against which every native batch selection was resolved.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Exact published menu version against which every native batch selection was resolved.",
  "example": "cd2f2c2a-ba73-4579-8e32-52da8388fd05"
}
clientGraphHashRequired

Opaque graph token from that published menu; stale graph evidence requires a new quote. The example is synthetic.

string
Full definition
{
  "type": "string",
  "pattern": "^menu-cost-v1\\.graph\\.[A-Za-z0-9_-]{43}$",
  "example": "menu-cost-v1.graph.GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
  "description": "Opaque graph token from that published menu; stale graph evidence requires a new quote. The example is synthetic."
}
financialPolicyVersionIdRequired

Native financial policy version whose snapshots and amounts must still match at batch admission.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Native financial policy version whose snapshots and amounts must still match at batch admission.",
  "example": "b36de587-2415-41cd-8269-c8dc9aa8ee66"
}
pricingHashRequired

Canonical native pricing evidence fingerprint; it is revalidated by Orders and never replaced with a client calculation. The example is synthetic.

string
Full definition
{
  "type": "string",
  "pattern": "^[a-f0-9]{64}$",
  "example": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "description": "Canonical native pricing evidence fingerprint; it is revalidated by Orders and never replaced with a client calculation. The example is synthetic."
}
itemsRequired

Original canonical configured selections preserved verbatim in the signed quote.

array
Full definition
{
  "minItems": 1,
  "maxItems": 100,
  "description": "Original canonical configured selections preserved verbatim in the signed quote.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TablePublicOrderLineDto"
  },
  "example": [
    {
      "clientLineId": "guest-line-1",
      "quantity": 1
    }
  ]
}
currencyRequired

Native three-letter currency for all line and batch amounts in this quote.

string
Full definition
{
  "type": "string",
  "pattern": "^[A-Z]{3}$",
  "example": "GEL",
  "description": "Native three-letter currency for all line and batch amounts in this quote."
}
linesRequired

Public native line names, quantities and prices for the guest or staff review.

array
Full definition
{
  "minItems": 1,
  "maxItems": 100,
  "description": "Public native line names, quantities and prices for the guest or staff review.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TablePublicOrderPricedLineDto"
  },
  "example": [
    {
      "clientLineId": "example-id",
      "name": "Example name",
      "quantity": 1,
      "unitPrice": "12.00",
      "total": "12.00"
    }
  ]
}
amountsRequired

Canonical native batch totals under the captured financial policy.

allOf
Full definition
{
  "description": "Canonical native batch totals under the captured financial policy.",
  "allOf": [
    {
      "$ref": "#/components/schemas/TablePublicOrderAmountsDto"
    }
  ],
  "example": {
    "subtotal": "12.00",
    "discount": "0.00",
    "serviceCharge": "0.00",
    "tax": "0.00",
    "total": "12.00"
  }
}
createdAtRequired

Server observation time at which native quote resolution completed.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "Server observation time at which native quote resolution completed.",
  "example": "2026-01-15T13:00:00.000Z"
}
expiresAtRequired

Native quote deadline; the enclosing QR proof may narrow it to the current source authority deadline.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "Native quote deadline; the enclosing QR proof may narrow it to the current source authority deadline.",
  "example": "2026-12-31T18:00:00.000Z"
}
Full definition
{
  "type": "object",
  "properties": {
    "version": {
      "type": "integer",
      "enum": [
        1
      ],
      "description": "Canonical native guest batch quote document version.",
      "example": 1
    },
    "scope": {
      "description": "Immutable server-derived tenant, session and operational guest scope.",
      "allOf": [
        {
          "$ref": "#/components/schemas/TablePublicOrderScopeDto"
        }
      ],
      "example": {
        "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
        "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
        "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
        "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
      }
    },
    "salesChannelId": {
      "type": "string",
      "format": "uuid",
      "description": "Native compatible sales channel selected for this batch and rechecked at admission.",
      "example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc"
    },
    "basisOrderId": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Existing native active Order used only as a channel and financial basis, or null when no basis Order exists. Its pointer and rows are not submitted by this batch.",
      "example": "84c563bd-49f7-45e6-8212-133ba2297c16"
    },
    "basisOrderRevision": {
      "type": "integer",
      "minimum": 1,
      "nullable": true,
      "description": "Captured basis Order revision, or null together with the absent basis Order.",
      "example": 1
    },
    "clientMenuVersionId": {
      "type": "string",
      "format": "uuid",
      "description": "Exact published menu version against which every native batch selection was resolved.",
      "example": "cd2f2c2a-ba73-4579-8e32-52da8388fd05"
    },
    "clientGraphHash": {
      "type": "string",
      "pattern": "^menu-cost-v1\\.graph\\.[A-Za-z0-9_-]{43}$",
      "example": "menu-cost-v1.graph.GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
      "description": "Opaque graph token from that published menu; stale graph evidence requires a new quote. The example is synthetic."
    },
    "financialPolicyVersionId": {
      "type": "string",
      "format": "uuid",
      "description": "Native financial policy version whose snapshots and amounts must still match at batch admission.",
      "example": "b36de587-2415-41cd-8269-c8dc9aa8ee66"
    },
    "pricingHash": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "example": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "description": "Canonical native pricing evidence fingerprint; it is revalidated by Orders and never replaced with a client calculation. The example is synthetic."
    },
    "items": {
      "minItems": 1,
      "maxItems": 100,
      "description": "Original canonical configured selections preserved verbatim in the signed quote.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TablePublicOrderLineDto"
      },
      "example": [
        {
          "clientLineId": "guest-line-1",
          "quantity": 1
        }
      ]
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "example": "GEL",
      "description": "Native three-letter currency for all line and batch amounts in this quote."
    },
    "lines": {
      "minItems": 1,
      "maxItems": 100,
      "description": "Public native line names, quantities and prices for the guest or staff review.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TablePublicOrderPricedLineDto"
      },
      "example": [
        {
          "clientLineId": "example-id",
          "name": "Example name",
          "quantity": 1,
          "unitPrice": "12.00",
          "total": "12.00"
        }
      ]
    },
    "amounts": {
      "description": "Canonical native batch totals under the captured financial policy.",
      "allOf": [
        {
          "$ref": "#/components/schemas/TablePublicOrderAmountsDto"
        }
      ],
      "example": {
        "subtotal": "12.00",
        "discount": "0.00",
        "serviceCharge": "0.00",
        "tax": "0.00",
        "total": "12.00"
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Server observation time at which native quote resolution completed.",
      "example": "2026-01-15T13:00:00.000Z"
    },
    "expiresAt": {
      "type": "string",
      "format": "date-time",
      "description": "Native quote deadline; the enclosing QR proof may narrow it to the current source authority deadline.",
      "example": "2026-12-31T18:00:00.000Z"
    }
  },
  "description": "Canonical native guest batch quote, preserved verbatim. QR proof authenticates this exact document; native ordering owns all pricing, channel and financial evidence.",
  "required": [
    "version",
    "scope",
    "salesChannelId",
    "basisOrderId",
    "basisOrderRevision",
    "clientMenuVersionId",
    "clientGraphHash",
    "financialPolicyVersionId",
    "pricingHash",
    "items",
    "currency",
    "lines",
    "amounts",
    "createdAt",
    "expiresAt"
  ],
  "example": {
    "version": 1,
    "scope": {
      "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
      "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
      "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
      "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
    },
    "salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
    "basisOrderId": null,
    "basisOrderRevision": null,
    "clientMenuVersionId": "cd2f2c2a-ba73-4579-8e32-52da8388fd05",
    "clientGraphHash": "menu-cost-v1.graph.GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
    "financialPolicyVersionId": "b36de587-2415-41cd-8269-c8dc9aa8ee66",
    "pricingHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "items": [
      {
        "clientLineId": "guest-line-1",
        "quantity": 1
      }
    ],
    "currency": "GEL",
    "lines": [
      {
        "clientLineId": "example-id",
        "name": "Example name",
        "quantity": 1,
        "unitPrice": "12.00",
        "total": "12.00"
      }
    ],
    "amounts": {
      "subtotal": "12.00",
      "discount": "0.00",
      "serviceCharge": "0.00",
      "tax": "0.00",
      "total": "12.00"
    },
    "createdAt": "2026-01-15T13:00:00.000Z",
    "expiresAt": "2026-12-31T18:00:00.000Z"
  }
}
TablePublicOrderScopeDto

Server-derived native tenant, service session and operational guest scope captured by a guest order quote.

organizationIdRequired

Organization derived from the authenticated native membership; the guest cannot override it.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Organization derived from the authenticated native membership; the guest cannot override it.",
  "example": "1adea4d1-2821-4a8b-8161-849f3b5973ed"
}
venueIdRequired

Venue owning this native table session, quote and resulting batch Order.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Venue owning this native table session, quote and resulting batch Order.",
  "example": "0604de3a-da74-4ad5-89f6-2dfe000d5391"
}
tableSessionIdRequired

Exact native primary service session captured by the guest batch quote.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Exact native primary service session captured by the guest batch quote.",
  "example": "9b456a94-f735-466f-84ba-67aa863b2905"
}
tableSessionGuestIdRequired

Operational guest slot that authored the batch and receives its native item assignments; not a CRM guest identity.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Operational guest slot that authored the batch and receives its native item assignments; not a CRM guest identity.",
  "example": "cbca9476-6eef-441b-874e-918d61f54560"
}
Full definition
{
  "type": "object",
  "properties": {
    "organizationId": {
      "type": "string",
      "format": "uuid",
      "description": "Organization derived from the authenticated native membership; the guest cannot override it.",
      "example": "1adea4d1-2821-4a8b-8161-849f3b5973ed"
    },
    "venueId": {
      "type": "string",
      "format": "uuid",
      "description": "Venue owning this native table session, quote and resulting batch Order.",
      "example": "0604de3a-da74-4ad5-89f6-2dfe000d5391"
    },
    "tableSessionId": {
      "type": "string",
      "format": "uuid",
      "description": "Exact native primary service session captured by the guest batch quote.",
      "example": "9b456a94-f735-466f-84ba-67aa863b2905"
    },
    "tableSessionGuestId": {
      "type": "string",
      "format": "uuid",
      "description": "Operational guest slot that authored the batch and receives its native item assignments; not a CRM guest identity.",
      "example": "cbca9476-6eef-441b-874e-918d61f54560"
    }
  },
  "description": "Server-derived native tenant, service session and operational guest scope captured by a guest order quote.",
  "required": [
    "organizationId",
    "venueId",
    "tableSessionId",
    "tableSessionGuestId"
  ],
  "example": {
    "organizationId": "1adea4d1-2821-4a8b-8161-849f3b5973ed",
    "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
    "tableSessionId": "9b456a94-f735-466f-84ba-67aa863b2905",
    "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
  }
}
TablePublicOrderLineDto

A canonical guest batch line. Exactly one published menu item or variant is required; native ordering validates eligibility and resolves every amount.

clientLineIdRequired

Caller-stable line correlation retained in the original quote and admitted item mapping; not a native item identifier.

string
Full definition
{
  "type": "string",
  "maxLength": 80,
  "pattern": "^[A-Za-z0-9][A-Za-z0-9:_-]{0,79}$",
  "example": "guest-line-1",
  "description": "Caller-stable line correlation retained in the original quote and admitted item mapping; not a native item identifier."
}
menuItemIdOptional

Required when menuVariantId is absent.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Required when menuVariantId is absent.",
  "example": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd"
}
menuVariantIdOptional

Required when menuItemId is absent.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Required when menuItemId is absent.",
  "example": "94389946-e5d8-4fba-8358-e3a9c8a04b11"
}
quantityRequired

Requested whole units of the selected published item or variant.

integer
Full definition
{
  "type": "integer",
  "minimum": 1,
  "maximum": 999,
  "example": 1,
  "description": "Requested whole units of the selected published item or variant."
}
modifierOptionIdsOptional

Published modifier option UUIDs.

array
Full definition
{
  "maxItems": 20,
  "description": "Published modifier option UUIDs.",
  "type": "array",
  "items": {
    "type": "string",
    "example": "example"
  },
  "example": [
    "example"
  ]
}
specialRequestOptional

Bounded guest preparation request; never used as an authorization or pricing instruction.

string
Full definition
{
  "type": "string",
  "maxLength": 500,
  "description": "Bounded guest preparation request; never used as an authorization or pricing instruction.",
  "example": "synthetic-example-credential"
}
componentSelectionsOptional

Bounded choices from the exact published structured-item configurator; native ordering checks group rules and compatibility.

array
Full definition
{
  "maxItems": 50,
  "description": "Bounded choices from the exact published structured-item configurator; native ordering checks group rules and compatibility.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/TablePublicOrderComponentSelectionDto"
  },
  "example": [
    {
      "groupId": "example-id",
      "choiceId": "example-id"
    }
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "clientLineId": {
      "type": "string",
      "maxLength": 80,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9:_-]{0,79}$",
      "example": "guest-line-1",
      "description": "Caller-stable line correlation retained in the original quote and admitted item mapping; not a native item identifier."
    },
    "menuItemId": {
      "type": "string",
      "format": "uuid",
      "description": "Required when menuVariantId is absent.",
      "example": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd"
    },
    "menuVariantId": {
      "type": "string",
      "format": "uuid",
      "description": "Required when menuItemId is absent.",
      "example": "94389946-e5d8-4fba-8358-e3a9c8a04b11"
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 999,
      "example": 1,
      "description": "Requested whole units of the selected published item or variant."
    },
    "modifierOptionIds": {
      "maxItems": 20,
      "description": "Published modifier option UUIDs.",
      "type": "array",
      "items": {
        "type": "string",
        "example": "example"
      },
      "example": [
        "example"
      ]
    },
    "specialRequest": {
      "type": "string",
      "maxLength": 500,
      "description": "Bounded guest preparation request; never used as an authorization or pricing instruction.",
      "example": "synthetic-example-credential"
    },
    "componentSelections": {
      "maxItems": 50,
      "description": "Bounded choices from the exact published structured-item configurator; native ordering checks group rules and compatibility.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TablePublicOrderComponentSelectionDto"
      },
      "example": [
        {
          "groupId": "example-id",
          "choiceId": "example-id"
        }
      ]
    }
  },
  "description": "A canonical guest batch line. Exactly one published menu item or variant is required; native ordering validates eligibility and resolves every amount.",
  "required": [
    "clientLineId",
    "quantity"
  ],
  "example": {
    "clientLineId": "guest-line-1",
    "quantity": 1
  }
}
TablePublicOrderComponentSelectionDto

One bounded choice from the exact published structured-item configurator.

groupIdRequired

Published component group identifier.

string
Full definition
{
  "type": "string",
  "maxLength": 96,
  "description": "Published component group identifier.",
  "example": "example-id"
}
choiceIdRequired

Published component choice identifier.

string
Full definition
{
  "type": "string",
  "maxLength": 160,
  "description": "Published component choice identifier.",
  "example": "example-id"
}
menuVariantIdOptional

Published sellable variant selected for this component, when required by its configurator.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Published sellable variant selected for this component, when required by its configurator.",
  "example": "94389946-e5d8-4fba-8358-e3a9c8a04b11"
}
modifierOptionIdsOptional

Published modifier option UUIDs for this component.

array
Full definition
{
  "maxItems": 20,
  "description": "Published modifier option UUIDs for this component.",
  "type": "array",
  "items": {
    "type": "string",
    "example": "example"
  },
  "example": [
    "example"
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "groupId": {
      "type": "string",
      "maxLength": 96,
      "description": "Published component group identifier.",
      "example": "example-id"
    },
    "choiceId": {
      "type": "string",
      "maxLength": 160,
      "description": "Published component choice identifier.",
      "example": "example-id"
    },
    "menuVariantId": {
      "type": "string",
      "format": "uuid",
      "description": "Published sellable variant selected for this component, when required by its configurator.",
      "example": "94389946-e5d8-4fba-8358-e3a9c8a04b11"
    },
    "modifierOptionIds": {
      "maxItems": 20,
      "description": "Published modifier option UUIDs for this component.",
      "type": "array",
      "items": {
        "type": "string",
        "example": "example"
      },
      "example": [
        "example"
      ]
    }
  },
  "description": "One bounded choice from the exact published structured-item configurator.",
  "required": [
    "groupId",
    "choiceId"
  ],
  "example": {
    "groupId": "example-id",
    "choiceId": "example-id"
  }
}
TablePublicOrderPricedLineDto

Public line description and configured price resolved by native ordering.

clientLineIdRequired

Original caller-stable line identifier associated with this resolved public price.

string
Full definition
{
  "type": "string",
  "maxLength": 80,
  "description": "Original caller-stable line identifier associated with this resolved public price.",
  "example": "example-id"
}
nameRequired

Public published item or variant name captured by native quote resolution.

string
Full definition
{
  "type": "string",
  "maxLength": 255,
  "description": "Public published item or variant name captured by native quote resolution.",
  "example": "Example name"
}
quantityRequired

Quoted whole-unit quantity for this configured native line.

integer
Full definition
{
  "type": "integer",
  "minimum": 1,
  "description": "Quoted whole-unit quantity for this configured native line.",
  "example": 1
}
unitPriceRequired

Native resolved configured unit price in the quote currency.

string
Full definition
{
  "type": "string",
  "pattern": "^\\d+\\.\\d{2}$",
  "example": "12.00",
  "description": "Native resolved configured unit price in the quote currency."
}
totalRequired

Native resolved line total for its quoted quantity and configuration.

string
Full definition
{
  "type": "string",
  "pattern": "^\\d+\\.\\d{2}$",
  "example": "12.00",
  "description": "Native resolved line total for its quoted quantity and configuration."
}
Full definition
{
  "type": "object",
  "properties": {
    "clientLineId": {
      "type": "string",
      "maxLength": 80,
      "description": "Original caller-stable line identifier associated with this resolved public price.",
      "example": "example-id"
    },
    "name": {
      "type": "string",
      "maxLength": 255,
      "description": "Public published item or variant name captured by native quote resolution.",
      "example": "Example name"
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "description": "Quoted whole-unit quantity for this configured native line.",
      "example": 1
    },
    "unitPrice": {
      "type": "string",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "12.00",
      "description": "Native resolved configured unit price in the quote currency."
    },
    "total": {
      "type": "string",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "12.00",
      "description": "Native resolved line total for its quoted quantity and configuration."
    }
  },
  "description": "Public line description and configured price resolved by native ordering.",
  "required": [
    "clientLineId",
    "name",
    "quantity",
    "unitPrice",
    "total"
  ],
  "example": {
    "clientLineId": "example-id",
    "name": "Example name",
    "quantity": 1,
    "unitPrice": "12.00",
    "total": "12.00"
  }
}
TablePublicOrderAmountsDto

Canonical native order batch amounts, expressed as decimal strings in the surrounding quote or admission currency.

subtotalRequired

Native batch subtotal before its resolved discounts, service charge and tax, in quote currency.

string
Full definition
{
  "type": "string",
  "pattern": "^\\d+\\.\\d{2}$",
  "example": "12.00",
  "description": "Native batch subtotal before its resolved discounts, service charge and tax, in quote currency."
}
discountRequired

Native discount total for this quoted batch; QR does not calculate or override discounts.

string
Full definition
{
  "type": "string",
  "pattern": "^\\d+\\.\\d{2}$",
  "example": "0.00",
  "description": "Native discount total for this quoted batch; QR does not calculate or override discounts."
}
serviceChargeRequired

Service charge resolved by native financial policy for this batch.

string
Full definition
{
  "type": "string",
  "pattern": "^\\d+\\.\\d{2}$",
  "example": "0.00",
  "description": "Service charge resolved by native financial policy for this batch."
}
taxRequired

Tax total resolved by native financial policy and its canonical rounding rules.

string
Full definition
{
  "type": "string",
  "pattern": "^\\d+\\.\\d{2}$",
  "example": "0.00",
  "description": "Tax total resolved by native financial policy and its canonical rounding rules."
}
totalRequired

Native resulting batch total in quote currency; no payment or tip is collected by order admission.

string
Full definition
{
  "type": "string",
  "pattern": "^\\d+\\.\\d{2}$",
  "example": "12.00",
  "description": "Native resulting batch total in quote currency; no payment or tip is collected by order admission."
}
Full definition
{
  "type": "object",
  "properties": {
    "subtotal": {
      "type": "string",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "12.00",
      "description": "Native batch subtotal before its resolved discounts, service charge and tax, in quote currency."
    },
    "discount": {
      "type": "string",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "0.00",
      "description": "Native discount total for this quoted batch; QR does not calculate or override discounts."
    },
    "serviceCharge": {
      "type": "string",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "0.00",
      "description": "Service charge resolved by native financial policy for this batch."
    },
    "tax": {
      "type": "string",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "0.00",
      "description": "Tax total resolved by native financial policy and its canonical rounding rules."
    },
    "total": {
      "type": "string",
      "pattern": "^\\d+\\.\\d{2}$",
      "example": "12.00",
      "description": "Native resulting batch total in quote currency; no payment or tip is collected by order admission."
    }
  },
  "description": "Canonical native order batch amounts, expressed as decimal strings in the surrounding quote or admission currency.",
  "required": [
    "subtotal",
    "discount",
    "serviceCharge",
    "tax",
    "total"
  ],
  "example": {
    "subtotal": "12.00",
    "discount": "0.00",
    "serviceCharge": "0.00",
    "tax": "0.00",
    "total": "12.00"
  }
}
TablePublicOrderAdmittedItemDto

Original guest line correlation to canonical native item and operational slot allocation.

clientLineIdRequired

Original guest clientLineId, preserved to correlate the submitted cart with native output.

string
Full definition
{
  "type": "string",
  "maxLength": 80,
  "description": "Original guest clientLineId, preserved to correlate the submitted cart with native output.",
  "example": "example"
}
orderItemIdRequired

Canonical native root OrderItem created for this accepted guest line.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Canonical native root OrderItem created for this accepted guest line.",
  "example": "48069d23-be97-4039-8099-9db268ddf890"
}
tableSessionGuestIdRequired

Original operational guest slot receiving the native line allocation.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Original operational guest slot receiving the native line allocation.",
  "example": "cbca9476-6eef-441b-874e-918d61f54560"
}
Full definition
{
  "type": "object",
  "properties": {
    "clientLineId": {
      "type": "string",
      "maxLength": 80,
      "description": "Original guest clientLineId, preserved to correlate the submitted cart with native output.",
      "example": "example"
    },
    "orderItemId": {
      "type": "string",
      "format": "uuid",
      "description": "Canonical native root OrderItem created for this accepted guest line.",
      "example": "48069d23-be97-4039-8099-9db268ddf890"
    },
    "tableSessionGuestId": {
      "type": "string",
      "format": "uuid",
      "description": "Original operational guest slot receiving the native line allocation.",
      "example": "cbca9476-6eef-441b-874e-918d61f54560"
    }
  },
  "description": "Original guest line correlation to canonical native item and operational slot allocation.",
  "required": [
    "clientLineId",
    "orderItemId",
    "tableSessionGuestId"
  ],
  "example": {
    "clientLineId": "example",
    "orderItemId": "48069d23-be97-4039-8099-9db268ddf890",
    "tableSessionGuestId": "cbca9476-6eef-441b-874e-918d61f54560"
  }
}
TranslatedErrorDto

Stable error envelope emitted by the global HTTP exception boundary. Domain-specific machine data, when present, is nested under details.

statusCodeRequired

HTTP status code repeated from the response.

integer
Full definition
{
  "type": "integer",
  "description": "HTTP status code repeated from the response.",
  "example": 400
}
errorRequired

Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.

string
Full definition
{
  "type": "string",
  "description": "Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.",
  "example": "errors.request.invalid"
}
codeRequired

Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions.

string
Full definition
{
  "type": "string",
  "example": "HTTP_BAD_REQUEST",
  "description": "Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions."
}
messageRequired

Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application.

string
Full definition
{
  "type": "string",
  "example": "errors:http.badRequest",
  "description": "Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application."
}
translationKeyRequired

Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback.

string
Full definition
{
  "type": "string",
  "example": "errors:http.badRequest",
  "description": "Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback."
}
translationValuesOptional

Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.

object
Full definition
{
  "type": "object",
  "additionalProperties": {
    "oneOf": [
      {
        "type": "string",
        "example": "example"
      },
      {
        "type": "number",
        "example": 0
      },
      {
        "type": "boolean",
        "example": true
      }
    ],
    "example": "example"
  },
  "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
  "example": {
    "exampleKey": "example"
  }
}
validationErrorsOptional

Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.

array
Full definition
{
  "description": "Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ValidationErrorDto"
  },
  "example": [
    {
      "field": "email",
      "translationKey": "validation:isEmail",
      "code": "isEmail",
      "message": "validation:isEmail"
    }
  ]
}
detailsOptional

Optional domain-specific blocker or validation details

oneOf
Full definition
{
  "description": "Optional domain-specific blocker or validation details",
  "oneOf": [
    {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/JsonValue"
      },
      "example": [
        "example"
      ]
    },
    {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/components/schemas/JsonValue"
      },
      "example": {
        "exampleKey": "example"
      }
    }
  ],
  "example": [
    "example"
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "statusCode": {
      "type": "integer",
      "description": "HTTP status code repeated from the response.",
      "example": 400
    },
    "error": {
      "type": "string",
      "description": "Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.",
      "example": "errors.request.invalid"
    },
    "code": {
      "type": "string",
      "example": "HTTP_BAD_REQUEST",
      "description": "Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions."
    },
    "message": {
      "type": "string",
      "example": "errors:http.badRequest",
      "description": "Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application."
    },
    "translationKey": {
      "type": "string",
      "example": "errors:http.badRequest",
      "description": "Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback."
    },
    "translationValues": {
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string",
            "example": "example"
          },
          {
            "type": "number",
            "example": 0
          },
          {
            "type": "boolean",
            "example": true
          }
        ],
        "example": "example"
      },
      "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
      "example": {
        "exampleKey": "example"
      }
    },
    "validationErrors": {
      "description": "Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationErrorDto"
      },
      "example": [
        {
          "field": "email",
          "translationKey": "validation:isEmail",
          "code": "isEmail",
          "message": "validation:isEmail"
        }
      ]
    },
    "details": {
      "description": "Optional domain-specific blocker or validation details",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/JsonValue"
          },
          "example": [
            "example"
          ]
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/JsonValue"
          },
          "example": {
            "exampleKey": "example"
          }
        }
      ],
      "example": [
        "example"
      ]
    }
  },
  "required": [
    "statusCode",
    "error",
    "code",
    "message",
    "translationKey"
  ],
  "description": "Stable error envelope emitted by the global HTTP exception boundary. Domain-specific machine data, when present, is nested under details.",
  "example": {
    "statusCode": 400,
    "error": "errors:http.badRequest",
    "code": "HTTP_BAD_REQUEST",
    "message": "errors:http.badRequest",
    "translationKey": "errors:http.badRequest"
  }
}
ValidationErrorDto

Field validation failure with a field path, stable validator code and a translation key. Human-readable text belongs to the consuming application.

fieldRequired

Public field path. Nested properties and array indices are separated by dots.

string
Full definition
{
  "type": "string",
  "example": "email",
  "description": "Public field path. Nested properties and array indices are separated by dots."
}
translationKeyRequired

Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog.

string
Full definition
{
  "type": "string",
  "example": "validation:isEmail",
  "description": "Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog."
}
codeRequired

Stable validator identifier for this field failure. Custom validators may define additional identifiers.

string
Full definition
{
  "type": "string",
  "example": "isEmail",
  "description": "Stable validator identifier for this field failure. Custom validators may define additional identifiers."
}
messageRequired

Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included.

string
Full definition
{
  "type": "string",
  "example": "validation:isEmail",
  "description": "Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included."
}
translationValuesOptional

Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.

object
Full definition
{
  "type": "object",
  "additionalProperties": {
    "oneOf": [
      {
        "type": "string",
        "example": "example"
      },
      {
        "type": "number",
        "example": 0
      },
      {
        "type": "boolean",
        "example": true
      }
    ],
    "example": "example"
  },
  "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
  "example": {
    "exampleKey": "example"
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "field": {
      "type": "string",
      "example": "email",
      "description": "Public field path. Nested properties and array indices are separated by dots."
    },
    "translationKey": {
      "type": "string",
      "example": "validation:isEmail",
      "description": "Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog."
    },
    "code": {
      "type": "string",
      "example": "isEmail",
      "description": "Stable validator identifier for this field failure. Custom validators may define additional identifiers."
    },
    "message": {
      "type": "string",
      "example": "validation:isEmail",
      "description": "Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included."
    },
    "translationValues": {
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string",
            "example": "example"
          },
          {
            "type": "number",
            "example": 0
          },
          {
            "type": "boolean",
            "example": true
          }
        ],
        "example": "example"
      },
      "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
      "example": {
        "exampleKey": "example"
      }
    }
  },
  "required": [
    "field",
    "translationKey",
    "code",
    "message"
  ],
  "description": "Field validation failure with a field path, stable validator code and a translation key. Human-readable text belongs to the consuming application.",
  "example": {
    "field": "email",
    "translationKey": "validation:isEmail",
    "code": "isEmail",
    "message": "validation:isEmail"
  }
}
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.