Order field reference

Shape of the order objects returned by GET /v1/orders (as items[]) and GET /v1/orders/:id. All fields are read-only — the only mutation the API offers is the status update.

Conventions

All money fields are integers in minor currency units (kopecks, cents) in the order's currency. All timestamps are ISO 8601 UTC. Product and ingredient references use the externalIds you synced; items ordered from a manually created product have productExternalId: null.

Order#

FieldTypeMeaning
idstringDuckHub order id — use it for GET /v1/orders/:id and status updates
orderNumberstringShort human-readable number shown to guests and staff
statusstringnew | confirmed | preparing | delivering | completed | cancelled
typestringdelivery | pickup | dine_in
customerNamestring | null
customerPhonestring | null
customerEmailstring | null
deliveryAddressstring | nullSet for delivery orders
deliveryNotesstring | nullCourier instructions
paymentMethodstringcash | terminal | online
commentstring | nullGuest's note to the kitchen
changeFromAmountinteger | nullFor cash payments: the bill the guest pays with (minor units)
scheduledForstring | nullRequested delivery/pickup time; null = ASAP
currencystringISO 4217, frozen at order creation
subtotalAmountintegerSum of item totalPrices
deliveryFeeinteger
discountAmountinteger
totalAmountintegersubtotal + deliveryFee − discount
createdAtstringOrder creation time
updatedAtstringBumped on every change — the polling cursor
confirmedAtstring | nullSet on the first transition to confirmed
completedAtstring | nullSet on the first transition to completed
itemsOrderItem[]See below

OrderItem#

A snapshot taken at order time — later menu edits never change past orders.

FieldTypeMeaning
productExternalIdstring | nullYour product id; null for manually created products
productNamestringProduct name at order time
quantityinteger
unitPriceintegerPer-unit price including selected modifiers (minor units)
totalPriceintegerunitPrice × quantity
modifiersOrderModifier[]Selected options; empty array if none

OrderModifier#

FieldTypeMeaning
groupNamestringModifier group name at order time
ingredientExternalIdstring | nullYour ingredient id; null for manually created ingredients or old orders
ingredientNamestringIngredient name at order time
priceAdjustmentintegerMinor units; may be negative
quantityintegerHow many times the option was applied

Statuses#

StatusMeaning
newJust placed — awaiting the venue's confirmation
confirmedAccepted by the venue
preparingIn the kitchen
deliveringOut for delivery
completedFulfilled (terminal)
cancelledCancelled (terminal)

Allowed transitions are listed on the status update page.