Order properties
| Property Path | Type | Description | Optional |
|---|---|---|---|
versionId | string | Opaque version identifier can be used for concurrency control (ETag) | false |
orderId | string | Unique identifier for the order | false |
storeId | string | Identifier of the store the order belongs to | false |
createDate | string (date-time) | Timestamp of when the order was created | false |
lastModified | string (date-time) | Timestamp of when the order was last modified | false |
links | object (map<string, string>) | HATEOAS links to available actions/state transitions for the order | false |
orderRefsDict | object (map<string, string>) | Key-value references tied to the order, e.g. an ID in the POS system | true |
orderTypeId | string | Identifier of the order type (e.g. eatin, takeaway, delivery) | false |
userId | string | Identifier of the guest who placed the order, if authenticated | true |
currencyIsoCode | string | ISO 4217 currency code for monetary values in the order | false |
orderName | string | Guest-facing display name for the order generated by Future Ordering based on configuration, can be used as a check number | true |
salesChannel | object (oneOf) | Information about the channel through which the order was placed. See SalesChannelBrowser, SalesChannelExternal, SalesChannelKiosk, SalesChannelMobileApp. | false |
collectionDetails | object (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 |
payments | array[Payment] | List of payments applied to the order. See Payment. | true |
paymentSessions | array[PaymentSession] | History of payment sessions initiated by the guest. See PaymentSession. | true |
items | array[Item] | Line items in the order. See Item. | true |
posData | object | Data set by the POS integration after the order has been placed. See PosData. | true |
extensions | object | Free-form data intended to be used by multiple integrations | true |
discounts | array[Discount] | Discounts applied to the order. See Discount. | true |
mainEvents | array[EventLog] | Log of the main state-transition events the order has gone through. See EventLog. | false |
storeDetails | object | Store information. See StoreDetails. | false |
deliveryPromise | object | Delivery reservation details for delivery orders. See DeliveryPromise. | true |
readyTime | object | Desired and estimated times for when the order will be ready for collection. See ReadyTime. | true |
deliveryDropOffTime | object | Desired and estimated drop-off times for delivery orders. See DeliveryDropOffTime. | true |
discountTotal | integer (int64) | Total discount amount in the smallest currency unit (derived from receiptData.discountsTotal.amount) | true |
total | integer (int64) | Total order amount including VAT in the smallest currency unit (derived from receiptData.total.gross) | true |
subtotal | integer (int64) | Total order amount excluding VAT in the smallest currency unit (derived from receiptData.total.net) | true |
SalesChannel Browser
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (SalesChannelType) | Always browser | false |
webClientVersion | string | Version of the web client used to place the order | false |
userAgentString | string | User agent string of the client browser | false |
SalesChannel External
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (SalesChannelType) | Always external | false |
id | string | External channel identifier | false |
name | string | External channel name | false |
additionalProperties | object | Opaque additional properties for the external channel | true |
webClientVersion | string | Version of the web client used to place the order | false |
SalesChannel Kiosk
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (SalesChannelType) | Always kiosk | false |
webClientVersion | string | Version of the web client used to place the order | false |
userAgentString | string | User agent string of the kiosk browser | false |
deviceId | string | Identifier of the kiosk device | false |
operatingSystem | string | Operating system of the kiosk | false |
SalesChannel Mobile App
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (SalesChannelType) | Always mobileApp | false |
webClientVersion | string | Version of the web client used to place the order | false |
operatingSystem | string | Operating system of the mobile device | false |
userAgentString | string | User agent string of the mobile app | false |
mobileAppVersion | string | Version of the mobile app | false |
CollectionDetails Curbside
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (CollectionType) | Always curbside | false |
carInfoPd | object | Personal data about the vehicle. See CarInfo. | true |
CollectionDetails Drive-thru
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (CollectionType) | Always driveThru | false |
CollectionDetails Pickup
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (CollectionType) | Always pickup | false |
pickupZone | string | Identifier of the pickup zone | false |
CollectionDetails Pickup Locker
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (CollectionType) | Always pickupLocker | false |
pincode | string | PIN code for the pickup locker | true |
CollectionDetails Room Service
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (CollectionType) | Always roomService | false |
roomName | string | Name of the room to deliver to | false |
CollectionDetails Table Service
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (CollectionType) | Always tableService | false |
tableName | string | Name or number of the table | false |
CarInfo
| Property | Type | Description | Optional |
|---|---|---|---|
registrationNumber | string | Vehicle registration number | true |
color | string | Vehicle color | true |
description | string | Additional vehicle description | true |
Payment
| Property | Type | Description | Optional |
|---|---|---|---|
amount | integer (int64) | Payment amount in the smallest currency unit (e.g. cents) | false |
transactionId | string | Unique identifier for this payment transaction | false |
paymentProviderReference | string | Reference identifier from the payment provider | true |
paymentProviderId | string | Identifier of the payment provider used | false |
merchantId | string | Identifier of the merchant | false |
paymentMethod | object (oneOf, nullable) | Details about the payment method used. See PaymentMethod Minimal, PaymentMethod Bank Account, PaymentMethod Payment Card, PaymentMethod EMV Card. | false |
paymentReference | string | Opaque payment reference | true |
paymentSessionId | string | ID of the payment session this payment belongs to | false |
PaymentMethod Minimal
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (PaymentMethodType) | Always minimal | false |
name | string | Name of the payment method | false |
PaymentMethod Bank Account
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (PaymentMethodType) | Always bankAccount | false |
name | string | Name of the payment method | false |
accountInformation | object | Bank account details. See BankAccountInformation. | false |
PaymentMethod Payment Card
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (PaymentMethodType) | Always paymentCard | false |
name | string | Name of the payment method | false |
cardInfo | object | Card details. See CardInfo. | false |
PaymentMethod EMV Card
| Property | Type | Description | Optional |
|---|---|---|---|
type | enum (PaymentMethodType) | Always emvPaymentCard | false |
name | string | Name of the payment method | false |
cardInfo | object | Card details. See CardInfo. | false |
emvData | array[Emv] | EMV tag data | false |
Emv
| Property | Type | Description | Optional |
|---|---|---|---|
key | string | EMV tag key | false |
value | string | EMV tag value | false |
BankAccountInformation
| Property | Type | Description | Optional |
|---|---|---|---|
maskedAccountNumber | string | Masked bank account number | false |
bankName | string | Name of the bank | false |
CardInfo
| Property | Type | Description | Optional |
|---|---|---|---|
maskedCardNumber | string | Masked card number (e.g. last 4 digits) | false |
cardExpiry | string | Card expiry date | false |
cardIssuer | string | Card issuer name | false |
cardBrand | string | Card brand (e.g. Visa, Mastercard) | false |
PaymentSession
| Property | Type | Description | Optional |
|---|---|---|---|
paymentSessionId | string | Unique identifier for the payment session | false |
startDate | string (date-time) | Timestamp when the payment session was started | |
abortDate | string (date-time, nullable) | Timestamp when the payment session was aborted, if applicable | true |
completeDate | string (date-time, nullable) | Timestamp when the payment session was completed, if applicable | true |
reason | object (ErrorInfo) | Error details if the payment session was aborted. See ErrorInfo. | true |
ErrorInfo
| Property | Type | Description | Optional |
|---|---|---|---|
code | string | Error code | false |
message | string | Human-readable error message | false |
data | object | Free-form additional error data | true |
innerError | object (ErrorInfo) | Nested error details (recursive) | true |
Item
| Property | Type | Description | Optional |
|---|---|---|---|
id | string (uuid) | Unique identifier for this line item instance | false |
type | enum (ItemType) | Item type: menuItem or chargeItem | false |
subItemType | enum (SubItemType) | Sub-type for charge items: none, tip, deliveryFee, serviceCharge, or nonRevenueServiceCharge | false |
isContainer | boolean | Whether this item is a container holding other items (e.g. a combo meal) | false |
menuItemId | string | Reference to the menu item this line item originates from | true |
title | string | Display name of the item | false |
quantity | integer (int32) | Number of units ordered | false |
defaultQuantity | integer (int32) | The default quantity for this item in its modifier context | false |
freeQuantity | integer (int32, nullable) | Number of free units included (e.g. included in a combo) | false |
pricingRule | string | Identifier of the pricing rule applied to this item | true |
price | object (Price) | Price of this item. See Price. | true |
notes | object | Free-text note added by the guest for this item. See Notes. | true |
configItems | array[Item] | Modifier items nested under this item (recursive) | true |
unitIds | object (map<string, array[string]>, nullable) | Unit IDs for this item grouped by parent unit IDs | false |
context | object (oneOf, nullable) | Context describing how or where the item was added (e.g. category, upsell, scanned) | true |
mappingDetails | object | Opaque data for integrators to store external references for this item | true |
approvals | object | Tracks required and given approvals for age-restricted or supervised items. See Approvals. | true |
createDate | string (date-time) | Timestamp when the item was added to the order | false |
lastModified | string (date-time) | Timestamp when the item was last modified | false |
Notes
| Property | Type | Description | Optional |
|---|---|---|---|
value | string | The note text | true |
personalData | enum (ContainsPersonalData) | Whether the note contains personal data: included, or excluded | false |
Price
| Property | Type | Description | Optional |
|---|---|---|---|
amount | integer (int64) | Price amount in the smallest currency unit (e.g. cents) | false |
isVatIncluded | boolean | Whether VAT is included in the amount | false |
vat | array[Vat] | VAT breakdown for this price | false |
Vat
| Property | Type | Description | Optional |
|---|---|---|---|
type | string | VAT type identifier (e.g. "12%" or "C") | false |
percent | number (double) | VAT rate as a percentage | false |
Approvals
| Property | Type | Description | Optional |
|---|---|---|---|
given | object (map<string, array[string]>) | Approvals that have been granted, keyed by approval type | false |
needed | object (map<string, array[string]>) | Approvals still required before the item can be fulfilled, keyed by approval type | false |
PosData
| Property | Type | Description | Optional |
|---|---|---|---|
orderName | string | Guest-facing order display name set by POS (e.g. a check number) | false |
estimatedReadyTime | string (date-time) | Estimated time when the order will be ready, set by POS | false |
datePlaced | string (date-time) | Timestamp when the order was placed in POS | false |
cancelableUntil | string (date-time, nullable) | Deadline after which the guest can no longer cancel the order | true |
receipt | string | Full-text fiscal receipt string provided by the POS | true |
Discount
| Property | Type | Description | Optional |
|---|---|---|---|
id | string | Unique identifier for this discount | false |
createDate | string (date-time) | Timestamp when the discount was added | false |
lastModified | string (date-time) | Timestamp when the discount was last modified | false |
dealId | string | Reference to the deal this discount originates from | false |
title | string | Display name of the discount | false |
relatedItemIds | array[string] | IDs of products that caused this discount to be applied | false |
relatedItemUnitIds | array[string] | Unit IDs of products that caused this discount to be applied | false |
amounts | array[DiscountAmount] | Per-item discount amount breakdown. See DiscountAmount. | false |
postVat | boolean | Whether the discount is applied after VAT calculation | false |
mappingDetails | object | Opaque data for integrators to store external references for this discount | true |
DiscountAmount
| Property | Type | Description | Optional |
|---|---|---|---|
discountedProductId | string | ID of the discounted product | false |
discountedProductUnitId | string | Unit ID of the discounted product | false |
amount | integer (int64) | Discount amount in the smallest currency unit | false |
vat | array[Vat] | VAT breakdown for this discount amount. See Vat. | false |
EventLog
| Property | Type | Description | Optional |
|---|---|---|---|
type | string | Opaque event type name (e.g. Closed, PlacedInPos) | false |
triggerTime | string (date-time) | Timestamp when the event occurred | false |
errorInfo | object (ErrorInfo) | Error details if the event represents a failure. See ErrorInfo. | true |
StoreDetails
| Property | Type | Description | Optional |
|---|---|---|---|
storeId | string | Identifier of the store | false |
name | string | Display name of the store | true |
tzdbTimeZoneId | string | IANA timezone identifier for the store (e.g. Europe/Stockholm) | false |
countryIsoCode | string | ISO 3166-1 alpha-2 country code of the store | false |
currencyDecimalDigits | integer (int32) | Number of decimal digits for the store's currency | false |
mappingDetails | object | Opaque data for integrators to store external references for this store | true |
DeliveryPromise
| Property | Type | Description | Optional |
|---|---|---|---|
code | string | Opaque reference code for the delivery reservation | false |
deliveryId | string | Identifier assigned by the delivery provider | false |
recipientPd | object | Personal data for the delivery recipient. See DeliveryRecipient. | false |
estimatedPickupTime | string (date-time) | Estimated time the courier will pick up the order from the store | false |
estimatedDropOffTime | string (date-time) | Estimated time the order will be delivered to the recipient | false |
deliveryFee | object | Delivery fee charged for this order. See DeliveryFee. | false |
validUntil | string (date-time) | Expiry time of the delivery promise | false |
status | enum (DeliveryPromiseStatus) | Delivery promise status: valid, or invalid | false |
errorInfo | object (ErrorInfo) | Error details if the delivery reservation failed. See ErrorInfo. | true |
DeliveryRecipient
| Property | Type | Description | Optional |
|---|---|---|---|
phoneNumber | string | Recipient's phone number | false |
name | string | Recipient's name | false |
notes | string | Delivery instructions or notes | true |
courierFacingName | string | Name shown to the courier (may differ from recipient name) | true |
dropOffLocation | object | Drop-off location for the delivery. See DropOffLocation. | false |
DropOffLocation
| Property | Type | Description | Optional |
|---|---|---|---|
position | object | Geographic coordinates of the drop-off location. See DeliveryPosition. | false |
address | object | Postal address of the drop-off location. See DeliveryAddress. | false |
DeliveryPosition
| Property | Type | Description | Optional |
|---|---|---|---|
format | string | Coordinate format identifier | false |
longitude | string | Longitude of the drop-off location | false |
latitude | string | Latitude of the drop-off location | false |
DeliveryAddress
| Property | Type | Description | Optional |
|---|---|---|---|
line1 | string | Address line 1 | false |
line2 | string | Address line 2 | true |
buildingNumber | string | Building number | true |
postalCode | string | Postal/ZIP code | true |
city | string | City | false |
countryIsoCode | string | ISO 3166-1 alpha-2 country code | true |
DeliveryFee
| Property | Type | Description | Optional |
|---|---|---|---|
title | string | Display name for the delivery fee | false |
price | object (Price) | Price of the delivery fee. See Price. | false |
ReadyTime
| Property | Type | Description | Optional |
|---|---|---|---|
desired | string (date-time) | The time the guest requested the order to be ready | false |
estimated | string (date-time, nullable) | The estimated ready time, set by POS via posData.estimatedReadyTime | true |
DeliveryDropOffTime
| Property | Type | Description | Optional |
|---|---|---|---|
desired | string (date-time) | The drop-off time the guest requested | false |
estimated | string (date-time, nullable) | The estimated drop-off time from the delivery provider | true |
JSON Examples
Links
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"
}
}