Skip to content

F&B outlet menu

POST
/v1/functions/hospitality.function.fnb_outlet_menu/invoke
curl --request POST \
--url https://api.aerandil.com/v1/functions/hospitality.function.fnb_outlet_menu/invoke \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "params": { "daypart": "breakfast", "order_kind": "dine_in" }, "target": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "object_type": "hospitality.outlet" } }'

An outlet’s active menus as the till draws them — a menu’s sections in order, each section’s orderable items (active, and orderable on their own: a modifier-only item has no key) in the order the section places them, and per item its names, its EU-14 allergens (null = not yet declared, which the till treats as unknown), its class’s revenue_category and the course it rings in, its active variants with the price in force now for this outlet, order_kind and daypart on the house’s hotel date — the most specific row, as add_check_line resolves it; null when no row is in force or two tie, which the till would refuse to ring — and its modifier groups at the bounds this item asks for (min_select / max_select: the item’s own override on the link, else the group’s), each option with its price (its own, else the price in force of the variant it adds; null for an instruction that adds nothing) and the variant_id it adds. A daypart that is a meal (breakfast, brunch, lunch, dinner, late_night) and that the outlet has food for — a menu of its own, or an all-day one — keeps that and the menus that are no meal (all-day, drinks, dessert, room service); any other daypart keeps every active menu, so a house running its dinner menu at lunch keeps its keys. currency is the house’s. Prices are decimal strings. The target is the outlet, so a house-bound bearer (a desk, a till) reads its own house’s only. Read-only.

Media typeapplication/json
object
params
required
object
daypart
Meal period the menus and prices are for (absent = every active menu)
string
Allowed values: breakfast brunch lunch dinner late_night drinks dessert room_service all_day
order_kind
Order kind the prices are for (absent = rows naming no order kind)
string
Allowed values: dine_in takeaway room_service delivery
target
required
object
id
required
string format: uuid
object_type
required
Allowed value: hospitality.outlet

Function invoked. The body carries the typed return_value shaped by the function’s declared return_type.

Media typeapplication/json
InvokeFunctionResponse

Envelope returned by the Aerandil function engine. correlation_id is the per-invocation id for trace stitching; return_value is the typed value the function computed (shape declared by the function’s return_type).

object
correlation_id
required

Per-invocation correlation id; appears on log/trace records this function emitted.

string format: uuid
return_value
required
object
business_date
required
string format: date
currency
string
menus
required
Array<object>
object
daypart
required
string
Allowed values: breakfast brunch lunch dinner late_night drinks dessert room_service all_day
id
required
string format: uuid
name
required
string
sections
required
Array<object>
object
id
required
string format: uuid
items
required
Array<object>
object
allergens
Array<string>
Allowed values: gluten crustaceans eggs fish peanuts soybeans milk nuts celery mustard sesame sulphites lupin molluscs
code
required
string
course_default
integer
description
string
id
required
string format: uuid
modifier_groups
required
Array<object>
object
code
required
string
id
required
string format: uuid
max_select
integer
min_select
required
integer
name
required
string
options
required
Array<object>
object
id
required
string format: uuid
is_default
required
boolean
name
required
string
price
string
variant_id
string format: uuid
name
required
string
revenue_category
string
Allowed values: food non_alcoholic_beverage alcoholic_beverage other
short_name
string
variants
required
Array<object>
object
id
required
string format: uuid
is_default
required
boolean
measure
string
name
required
string
price
string
name
required
string
outlet
required
object
code
string
id
required
string format: uuid
name
string
Example
{
"return_value": {
"menus": [
{
"daypart": "breakfast",
"sections": [
{
"items": [
{
"allergens": [
"gluten"
],
"revenue_category": "food"
}
]
}
]
}
]
}
}
Cache-Control
string

Always no-store — function results are time-sensitive and never cacheable.

Function or target object not found.

Parameter validation or domain-rule violation.