--- sidebar_label: 'Order property reference' sidebar_position: 6 --- # 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\) | HATEOAS links to available actions/state transitions for the order | false | | `orderRefsDict` | object (map\) | 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](#saleschannel-browser), [SalesChannelExternal](#saleschannel-external), [SalesChannelKiosk](#saleschannel-kiosk), [SalesChannelMobileApp](#saleschannel-mobile-app). | false | | `collectionDetails` | object (oneOf, nullable) | How the guest or courier intends to collect the order. See [CollectionDetails Curbside](#collectiondetails-curbside), [CollectionDetails Drive-thru](#collectiondetails-drive-thru), [CollectionDetails Pickup](#collectiondetails-pickup), [CollectionDetails Pickup Locker](#collectiondetails-pickup-locker), [CollectionDetails Room Service](#collectiondetails-room-service), [CollectionDetails Table Service](#collectiondetails-table-service). | true | | `payments` | array\[Payment\] | List of payments applied to the order. See [Payment](#payment). | true | | `paymentSessions` | array\[PaymentSession\] | History of payment sessions initiated by the guest. See [PaymentSession](#paymentsession). | true | | `items` | array\[Item\] | Line items in the order. See [Item](#item). | true | | `posData` | object | Data set by the POS integration after the order has been placed. See [PosData](#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](#discount). | true | | `mainEvents` | array\[EventLog\] | Log of the main state-transition events the order has gone through. See [EventLog](#eventlog). | false | | `storeDetails` | object | Store information. See [StoreDetails](#storedetails). | false | | `deliveryPromise` | object | Delivery reservation details for delivery orders. See [DeliveryPromise](#deliverypromise). | true | | `readyTime` | object | Desired and estimated times for when the order will be ready for collection. See [ReadyTime](#readytime). | true | | `deliveryDropOffTime` | object | Desired and estimated drop-off times for delivery orders. See [DeliveryDropOffTime](#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](#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-minimal), [PaymentMethod Bank Account](#paymentmethod-bank-account), [PaymentMethod Payment Card](#paymentmethod-payment-card), [PaymentMethod EMV 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](#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](#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](#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](#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](#price). | true | | `notes` | object | Free-text note added by the guest for this item. See [Notes](#notes). | true | | `configItems` | array\[Item\] | Modifier items nested under this item (recursive) | true | | `unitIds` | object (map\, 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](#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\) | Approvals that have been granted, keyed by approval type | false | | `needed` | object (map\) | 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](#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](#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](#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](#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](#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](#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](#dropofflocation). | false| ## DropOffLocation | Property | Type | Description | Optional | |---|---|---|---| | `position` | object | Geographic coordinates of the drop-off location. See [DeliveryPosition](#deliveryposition). | false| | `address` | object | Postal address of the drop-off location. See [DeliveryAddress](#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](#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: ```json { "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" } } ```