Skip to main content

Order properties

Property PathTypeDescriptionOptional
versionIdstringOpaque version identifier can be used for concurrency control (ETag)false
orderIdstringUnique identifier for the orderfalse
storeIdstringIdentifier of the store the order belongs tofalse
createDatestring (date-time)Timestamp of when the order was createdfalse
lastModifiedstring (date-time)Timestamp of when the order was last modifiedfalse
linksobject (map<string, string>)HATEOAS links to available actions/state transitions for the orderfalse
orderRefsDictobject (map<string, string>)Key-value references tied to the order, e.g. an ID in the POS systemtrue
orderTypeIdstringIdentifier of the order type (e.g. eatin, takeaway, delivery)false
userIdstringIdentifier of the guest who placed the order, if authenticatedtrue
currencyIsoCodestringISO 4217 currency code for monetary values in the orderfalse
orderNamestringGuest-facing display name for the order generated by Future Ordering based on configuration, can be used as a check numbertrue
salesChannelobject (oneOf)Information about the channel through which the order was placed. See SalesChannelBrowser, SalesChannelExternal, SalesChannelKiosk, SalesChannelMobileApp.false
collectionDetailsobject (oneOf, nullable)How the guest or courier intends to collect the order. See CollectionDetails Curbside, CollectionDetails Drive-thru, CollectionDetails Pickup, CollectionDetails Pickup Locker, CollectionDetails Room Service, CollectionDetails Table Service.true
paymentsarray[Payment]List of payments applied to the order. See Payment.true
paymentSessionsarray[PaymentSession]History of payment sessions initiated by the guest. See PaymentSession.true
itemsarray[Item]Line items in the order. See Item.true
posDataobjectData set by the POS integration after the order has been placed. See PosData.true
extensionsobjectFree-form data intended to be used by multiple integrationstrue
discountsarray[Discount]Discounts applied to the order. See Discount.true
mainEventsarray[EventLog]Log of the main state-transition events the order has gone through. See EventLog.false
storeDetailsobjectStore information. See StoreDetails.false
deliveryPromiseobjectDelivery reservation details for delivery orders. See DeliveryPromise.true
readyTimeobjectDesired and estimated times for when the order will be ready for collection. See ReadyTime.true
deliveryDropOffTimeobjectDesired and estimated drop-off times for delivery orders. See DeliveryDropOffTime.true
discountTotalinteger (int64)Total discount amount in the smallest currency unit (derived from receiptData.discountsTotal.amount)true
totalinteger (int64)Total order amount including VAT in the smallest currency unit (derived from receiptData.total.gross)true
subtotalinteger (int64)Total order amount excluding VAT in the smallest currency unit (derived from receiptData.total.net)true

SalesChannel Browser

PropertyTypeDescriptionOptional
typeenum (SalesChannelType)Always browserfalse
webClientVersionstringVersion of the web client used to place the orderfalse
userAgentStringstringUser agent string of the client browserfalse

SalesChannel External

PropertyTypeDescriptionOptional
typeenum (SalesChannelType)Always externalfalse
idstringExternal channel identifierfalse
namestringExternal channel namefalse
additionalPropertiesobjectOpaque additional properties for the external channeltrue
webClientVersionstringVersion of the web client used to place the orderfalse

SalesChannel Kiosk

PropertyTypeDescriptionOptional
typeenum (SalesChannelType)Always kioskfalse
webClientVersionstringVersion of the web client used to place the orderfalse
userAgentStringstringUser agent string of the kiosk browserfalse
deviceIdstringIdentifier of the kiosk devicefalse
operatingSystemstringOperating system of the kioskfalse

SalesChannel Mobile App

PropertyTypeDescriptionOptional
typeenum (SalesChannelType)Always mobileAppfalse
webClientVersionstringVersion of the web client used to place the orderfalse
operatingSystemstringOperating system of the mobile devicefalse
userAgentStringstringUser agent string of the mobile appfalse
mobileAppVersionstringVersion of the mobile appfalse

CollectionDetails Curbside

PropertyTypeDescriptionOptional
typeenum (CollectionType)Always curbsidefalse
carInfoPdobjectPersonal data about the vehicle. See CarInfo.true

CollectionDetails Drive-thru

PropertyTypeDescriptionOptional
typeenum (CollectionType)Always driveThrufalse

CollectionDetails Pickup

PropertyTypeDescriptionOptional
typeenum (CollectionType)Always pickupfalse
pickupZonestringIdentifier of the pickup zonefalse

CollectionDetails Pickup Locker

PropertyTypeDescriptionOptional
typeenum (CollectionType)Always pickupLockerfalse
pincodestringPIN code for the pickup lockertrue

CollectionDetails Room Service

PropertyTypeDescriptionOptional
typeenum (CollectionType)Always roomServicefalse
roomNamestringName of the room to deliver tofalse

CollectionDetails Table Service

PropertyTypeDescriptionOptional
typeenum (CollectionType)Always tableServicefalse
tableNamestringName or number of the tablefalse

CarInfo

PropertyTypeDescriptionOptional
registrationNumberstringVehicle registration numbertrue
colorstringVehicle colortrue
descriptionstringAdditional vehicle descriptiontrue

Payment

PropertyTypeDescriptionOptional
amountinteger (int64)Payment amount in the smallest currency unit (e.g. cents)false
transactionIdstringUnique identifier for this payment transactionfalse
paymentProviderReferencestringReference identifier from the payment providertrue
paymentProviderIdstringIdentifier of the payment provider usedfalse
merchantIdstringIdentifier of the merchantfalse
paymentMethodobject (oneOf, nullable)Details about the payment method used. See PaymentMethod Minimal, PaymentMethod Bank Account, PaymentMethod Payment Card, PaymentMethod EMV Card.false
paymentReferencestringOpaque payment referencetrue
paymentSessionIdstringID of the payment session this payment belongs tofalse

PaymentMethod Minimal

PropertyTypeDescriptionOptional
typeenum (PaymentMethodType)Always minimalfalse
namestringName of the payment methodfalse

PaymentMethod Bank Account

PropertyTypeDescriptionOptional
typeenum (PaymentMethodType)Always bankAccountfalse
namestringName of the payment methodfalse
accountInformationobjectBank account details. See BankAccountInformation.false

PaymentMethod Payment Card

PropertyTypeDescriptionOptional
typeenum (PaymentMethodType)Always paymentCardfalse
namestringName of the payment methodfalse
cardInfoobjectCard details. See CardInfo.false

PaymentMethod EMV Card

PropertyTypeDescriptionOptional
typeenum (PaymentMethodType)Always emvPaymentCardfalse
namestringName of the payment methodfalse
cardInfoobjectCard details. See CardInfo.false
emvDataarray[Emv]EMV tag datafalse

Emv

PropertyTypeDescriptionOptional
keystringEMV tag keyfalse
valuestringEMV tag valuefalse

BankAccountInformation

PropertyTypeDescriptionOptional
maskedAccountNumberstringMasked bank account numberfalse
bankNamestringName of the bankfalse

CardInfo

PropertyTypeDescriptionOptional
maskedCardNumberstringMasked card number (e.g. last 4 digits)false
cardExpirystringCard expiry datefalse
cardIssuerstringCard issuer namefalse
cardBrandstringCard brand (e.g. Visa, Mastercard)false

PaymentSession

PropertyTypeDescriptionOptional
paymentSessionIdstringUnique identifier for the payment sessionfalse
startDatestring (date-time)Timestamp when the payment session was started
abortDatestring (date-time, nullable)Timestamp when the payment session was aborted, if applicabletrue
completeDatestring (date-time, nullable)Timestamp when the payment session was completed, if applicabletrue
reasonobject (ErrorInfo)Error details if the payment session was aborted. See ErrorInfo.true

ErrorInfo

PropertyTypeDescriptionOptional
codestringError codefalse
messagestringHuman-readable error messagefalse
dataobjectFree-form additional error datatrue
innerErrorobject (ErrorInfo)Nested error details (recursive)true

Item

PropertyTypeDescriptionOptional
idstring (uuid)Unique identifier for this line item instancefalse
typeenum (ItemType)Item type: menuItem or chargeItemfalse
subItemTypeenum (SubItemType)Sub-type for charge items: none, tip, deliveryFee, serviceCharge, or nonRevenueServiceChargefalse
isContainerbooleanWhether this item is a container holding other items (e.g. a combo meal)false
menuItemIdstringReference to the menu item this line item originates fromtrue
titlestringDisplay name of the itemfalse
quantityinteger (int32)Number of units orderedfalse
defaultQuantityinteger (int32)The default quantity for this item in its modifier contextfalse
freeQuantityinteger (int32, nullable)Number of free units included (e.g. included in a combo)false
pricingRulestringIdentifier of the pricing rule applied to this itemtrue
priceobject (Price)Price of this item. See Price.true
notesobjectFree-text note added by the guest for this item. See Notes.true
configItemsarray[Item]Modifier items nested under this item (recursive)true
unitIdsobject (map<string, array[string]>, nullable)Unit IDs for this item grouped by parent unit IDsfalse
contextobject (oneOf, nullable)Context describing how or where the item was added (e.g. category, upsell, scanned)true
mappingDetailsobjectOpaque data for integrators to store external references for this itemtrue
approvalsobjectTracks required and given approvals for age-restricted or supervised items. See Approvals.true
createDatestring (date-time)Timestamp when the item was added to the orderfalse
lastModifiedstring (date-time)Timestamp when the item was last modifiedfalse

Notes

PropertyTypeDescriptionOptional
valuestringThe note texttrue
personalDataenum (ContainsPersonalData)Whether the note contains personal data: included, or excludedfalse

Price

PropertyTypeDescriptionOptional
amountinteger (int64)Price amount in the smallest currency unit (e.g. cents)false
isVatIncludedbooleanWhether VAT is included in the amountfalse
vatarray[Vat]VAT breakdown for this pricefalse

Vat

PropertyTypeDescriptionOptional
typestringVAT type identifier (e.g. "12%" or "C")false
percentnumber (double)VAT rate as a percentagefalse

Approvals

PropertyTypeDescriptionOptional
givenobject (map<string, array[string]>)Approvals that have been granted, keyed by approval typefalse
neededobject (map<string, array[string]>)Approvals still required before the item can be fulfilled, keyed by approval typefalse

PosData

PropertyTypeDescriptionOptional
orderNamestringGuest-facing order display name set by POS (e.g. a check number)false
estimatedReadyTimestring (date-time)Estimated time when the order will be ready, set by POSfalse
datePlacedstring (date-time)Timestamp when the order was placed in POSfalse
cancelableUntilstring (date-time, nullable)Deadline after which the guest can no longer cancel the ordertrue
receiptstringFull-text fiscal receipt string provided by the POStrue

Discount

PropertyTypeDescriptionOptional
idstringUnique identifier for this discountfalse
createDatestring (date-time)Timestamp when the discount was addedfalse
lastModifiedstring (date-time)Timestamp when the discount was last modifiedfalse
dealIdstringReference to the deal this discount originates fromfalse
titlestringDisplay name of the discountfalse
relatedItemIdsarray[string]IDs of products that caused this discount to be appliedfalse
relatedItemUnitIdsarray[string]Unit IDs of products that caused this discount to be appliedfalse
amountsarray[DiscountAmount]Per-item discount amount breakdown. See DiscountAmount.false
postVatbooleanWhether the discount is applied after VAT calculationfalse
mappingDetailsobjectOpaque data for integrators to store external references for this discounttrue

DiscountAmount

PropertyTypeDescriptionOptional
discountedProductIdstringID of the discounted productfalse
discountedProductUnitIdstringUnit ID of the discounted productfalse
amountinteger (int64)Discount amount in the smallest currency unitfalse
vatarray[Vat]VAT breakdown for this discount amount. See Vat.false

EventLog

PropertyTypeDescriptionOptional
typestringOpaque event type name (e.g. Closed, PlacedInPos)false
triggerTimestring (date-time)Timestamp when the event occurredfalse
errorInfoobject (ErrorInfo)Error details if the event represents a failure. See ErrorInfo.true

StoreDetails

PropertyTypeDescriptionOptional
storeIdstringIdentifier of the storefalse
namestringDisplay name of the storetrue
tzdbTimeZoneIdstringIANA timezone identifier for the store (e.g. Europe/Stockholm)false
countryIsoCodestringISO 3166-1 alpha-2 country code of the storefalse
currencyDecimalDigitsinteger (int32)Number of decimal digits for the store's currencyfalse
mappingDetailsobjectOpaque data for integrators to store external references for this storetrue

DeliveryPromise

PropertyTypeDescriptionOptional
codestringOpaque reference code for the delivery reservationfalse
deliveryIdstringIdentifier assigned by the delivery providerfalse
recipientPdobjectPersonal data for the delivery recipient. See DeliveryRecipient.false
estimatedPickupTimestring (date-time)Estimated time the courier will pick up the order from the storefalse
estimatedDropOffTimestring (date-time)Estimated time the order will be delivered to the recipientfalse
deliveryFeeobjectDelivery fee charged for this order. See DeliveryFee.false
validUntilstring (date-time)Expiry time of the delivery promisefalse
statusenum (DeliveryPromiseStatus)Delivery promise status: valid, or invalidfalse
errorInfoobject (ErrorInfo)Error details if the delivery reservation failed. See ErrorInfo.true

DeliveryRecipient

PropertyTypeDescriptionOptional
phoneNumberstringRecipient's phone numberfalse
namestringRecipient's namefalse
notesstringDelivery instructions or notestrue
courierFacingNamestringName shown to the courier (may differ from recipient name)true
dropOffLocationobjectDrop-off location for the delivery. See DropOffLocation.false

DropOffLocation

PropertyTypeDescriptionOptional
positionobjectGeographic coordinates of the drop-off location. See DeliveryPosition.false
addressobjectPostal address of the drop-off location. See DeliveryAddress.false

DeliveryPosition

PropertyTypeDescriptionOptional
formatstringCoordinate format identifierfalse
longitudestringLongitude of the drop-off locationfalse
latitudestringLatitude of the drop-off locationfalse

DeliveryAddress

PropertyTypeDescriptionOptional
line1stringAddress line 1false
line2stringAddress line 2true
buildingNumberstringBuilding numbertrue
postalCodestringPostal/ZIP codetrue
citystringCityfalse
countryIsoCodestringISO 3166-1 alpha-2 country codetrue

DeliveryFee

PropertyTypeDescriptionOptional
titlestringDisplay name for the delivery feefalse
priceobject (Price)Price of the delivery fee. See Price.false

ReadyTime

PropertyTypeDescriptionOptional
desiredstring (date-time)The time the guest requested the order to be readyfalse
estimatedstring (date-time, nullable)The estimated ready time, set by POS via posData.estimatedReadyTimetrue

DeliveryDropOffTime

PropertyTypeDescriptionOptional
desiredstring (date-time)The drop-off time the guest requestedfalse
estimatedstring (date-time, nullable)The estimated drop-off time from the delivery providertrue

JSON Examples

Links are provided as key-value pairs in the links property of the order, where the key is the name of a possible action on the order (e.g. placedInPos, canceledInPos, startPaymentSession) and the value is the endpoint to perform that action or transition. Possible values for links include:


{
"links":
{
"placedInPos": "orders/my-order-id-1234/pos/placed",
"canceledInPos": "orders/my-order-id-1234/pos/canceled",
"cancelInPosFailed": "orders/my-order-id-1234/pos/canceled-failed",
"placeInPosFailed": "orders/my-order-id-1234/pos/failed",
"updateEstimatedReadyTime": "orders/my-order-id-1234/pos/estimated-ready-time/update",
"readyForPickup": "orders/my-order-id-1234/ready-for-pickup",
"disallowCancelByCustomer": "orders/my-order-id-1234/cancel-by-customer/disallow",
"startPaymentSession": "orders/my-order-id-1234/payment-session/start",
"startPlaceOrderSession": "orders/my-order-id-1234/place-order-session/start",
"abortPaymentSession": "orders/my-order-id-1234/payment-session/abort",
"failure": "orders/my-order-id-1234/failure",
"abort": "orders/my-order-id-1234/abort"
}
}