Glossary - POS Orders
| Parameters | Meaning | Type |
|---|---|---|
_created | Order created timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ | string |
_updated | Updated order timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ | string |
_etag | Version hash used for optimistic concurrency control; changes on every update | string |
_id | Unique identifier of the order in Deliverect. Please note cancel requests are processed as new orders with "status": 100 and bearing original order _id (see cancellation guide here) | string |
account | Unique customer account ID in Deliverect | string |
channelOrderId | The full unique ID from the delivery channel. Together with the channel is guaranteed to be unique for 48h after pickup. | string |
channelOrderDisplayId | Alternative order ID set by ordering channel, primarily for convenience and readability. This is not unique and typically a shortened version of channelOrderIdconsisting of 4-5 alphanumeric characters, although may go up to 12 characters. | string |
channelOrderKey | Alternative ID when is supported | string |
posId | The POS order ID | string |
posReceiptId | Provided by the POS in response to incoming orders as a reference to a specific POS receipt. | string |
posLocationId | Location ID set in Deliverect to identify the POS (used as part of POS Registration action) | string |
posStatus | Current order status as tracked from the POS side (mirrors status) | integer |
| posStatusHistory | History of status changes as reported by the POS | array |
posStatusHistory.timeStamp | UTC yyyy-MM-ddTHH:mm:ssZ | string |
posStatusHistory.orderStatus | Deliverect order status at time of the POS update | integer |
posStatusHistory.posOrderStatus | Raw status code as returned by the POS | integer |
posCustomerId | Customer identifier as recognized by the POS | string |
location | Unique ID for the POS to identify the store location | string |
locationName | Display name of the store/location the order belongs to | string |
channelLink | Unique identifier of the channel (merchant store) in Deliverect. Retrieve all Ids per account via GET Channel Links | string |
status | Order status (see list here) | integer |
| statusHistory | All status history at time of order injection | |
statusHistory.timeStamp | All timestamps are in UTC yyyy-MM-ddTHH:mm:ssZ | string |
statusHistory.status | Order status (full list here) | integer |
statusHistory.response | In case of error, it will be populated here | string |
statusHistory.source | Source of status update 1=POS 2=Channel and 5= Internal | integer |
statusHistory.eventId | Internal event ID associated with this status change | string |
| packaging | object | |
packaging.includeCutlery | Specifies if cutlery/utensils should be included or not | boolean |
by | Order source (if known) e.g. 'app' or 'mobile' not the same as"channel" that specifies the ordering platform (see guide here) | string |
orderType | Type of order (see full list here) | integer |
isCatering | Indicates whether the order is flagged as catering | boolean |
tabletless | Indicates the order was received without a tablet integration | boolean |
ageCheck | Indicates whether an age-restricted item check is required | boolean |
channel | Unique ID of the channel (see GET Integrated channels) | integer |
| channelStatusHistory | History of status updates exchanged with the channel | array |
channelStatusHistory.timeStamp | UTC yyyy-MM-ddTHH:mm:ssZ | string |
channelStatusHistory.channelEvent | Event type code sent to the channel | integer |
channelStatusHistory.orderStatus | Deliverect order status at time of the event | integer |
channelStatusHistory.channelStatus | Channel-specific status string | string |
channelStatusHistory.success | Whether the update to the channel succeeded | boolean |
channelStatusHistory.response | Raw response returned by the channel | string |
channelStatusHistory.properties | Additional event-specific properties (e.g. pickupTime) | object |
menus | Menu ID(s) associated with the order | array |
pos | Unique ID of the POS | integer |
rating | Legacy | array of objects |
pickupTime | Pickup time order timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ | string |
estimatedPickupTime | Estimated pickup time order timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ <Legacy_label /> | string |
pickupTimeETA | Estimated pickup time, if available from the delivery provider | string |
preparationTime | Quoted preparation time, in minutes | integer |
prepTimeAdjustments | Adjustments applied to the preparation time | array |
deliveryTime | Delivery time order timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ | string |
deliveryTimeETA | Estimated delivery time, if available from the delivery provider | string |
deliveryIsAsap | Signifies if the order is required as soon as possible | boolean |
| courier | Details of courier | |
courier.firstName | Courier's first name | string |
courier.lastName | Courier's last name | string |
courier.phoneNumber | Courier's phone number | string |
courier.deliveryBy | Identifies who is delivering an order. There are only two possible variations; • If ordering platform is handling delivery, they'd specify their channel name e.g. "Order.com" • If restaurant is managing self delivery or fulfilment is handled by 3rd party, "restaurant" must be specified | string |
courier.status | See here | integer |
courier.count | Number of couriers/packages assigned to the delivery | integer |
| courierUpdateHistory | ||
courierUpdateHistory.status | See here all the Statuses | integer |
courierUpdateHistory.received | Timestamp when the update was received | string |
courierUpdateHistory.courier | Courier info updates | object |
courierUpdateHistory.courier.transportType | Courier's mode of transport at time of update | string |
courierUpdateHistory.courier.lastKnownLocation | Courier's last known GPS coordinates | object |
courierUpdateHistory.courier.vehicle | Courier vehicle details — type, make, model, isAutonomous | object |
courierUpdateHistory.arrivalTime | Courier arrival time | string |
courierUpdateHistory.deliveryTime | Courier delivery time | string |
courierUpdateHistory.source | The source from where the update is coming;
| integer |
courierUpdateHistory.externalJobId | External delivery job/task ID from the delivery provider | string |
courierUpdateHistory.notifyChannel | Whether the channel should be notified of this courier update | boolean |
historyDriverUpdates | Legacy | array |
deliveryJobIds | Delivery job IDs associated with the order | array |
deliverySystems | Delivery system(s) engaged for fulfilment | array |
failedDeliverySystems | Delivery system(s) that failed to fulfil the order | array |
| customer | customer is the end-consumer | object |
customer._id | Unique ID of the customer record | string |
customer.hash | Hashed/anonymized customer identifier | string |
customer.name | Name of the customer | string |
customer.companyName | Company name | string |
customer.phoneNumber | e.g "+31618776767" | string |
customer.phoneAccessCode | Phone access code used to contact channel support (e.g. 1123) | string |
customer.email | email address where provided | string |
customer.note | note from the customer (e.g. "Call once you arrive") | string |
customer.tin | tax identification number | string |
customer.billingAddress | Billing address object (e.g. street) | object |
customer.sendUpdates | Whether the customer opted in to receive order updates | boolean |
customers | Multiple customers associated with an order (e.g. group/table orders) | array |
| deliveryAddress | Provided address for an order | object |
deliveryAddress.street | This includes the street number where provided e.g. "Stationsstraat 79e" | string |
deliveryAddress.postalCode | e.g. "3811 MH" | string |
deliveryAddress.city | e.g. "Amersfoort" | string |
deliveryAddress.country | e.g. "Netherlands" | string |
deliveryAddress.coordinates.coordinates | Longitude and Latitude expressed as below; | array |
deliveryAddress.source | "source" is sent to POS where address information exists. "source" should help POS to handle address variations from different countries. | string |
deliveryAddress.extraAddressInfo | e.g. (second floor) | string |
| deliveryInfo | Delivery logistics details | object |
deliveryInfo.packageSize | Size classification of the delivery package | string |
deliveryInfo.transportType | Mode of transport used for delivery | string |
deliveryInfo.dropoffType | Type of dropoff (e.g. handed to customer, left at door) | string |
orderIsAlreadyPaid | Statement of whether an order was paid online or not | boolean |
taxTotal | taxTotal is the sum of deliveryTax + serviceChargeTax + deliveryCostTax. | integer |
| taxes | All taxes applied to an order (in tax exclusive regions only) | |
taxes.name | e.g. VAT | string |
taxes.taxClassId | e.g 0, 1 or 2 | integer |
taxes.total | The composite total of all taxes | integer |
taxRemitted | Some ordering platforms collect and pay taxes and share this info with us as a value-remitted tax. | integer |
| payment | object | |
payment.amount | Total amount tendered . It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | integer |
payment.type | Payment method applied (full list here) | integer |
payment.due | Any outstanding amount to be collected from the customer if there is a cash (unpaid) order. It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | integer |
payment.rebate | This includes any discounts offered by the channels. POS may need this information for reporting purposes. The ordering customer needs to pay the amount without the rebate, but the restaurant will receive the total amount from the channel. It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | integer |
| payment.commissionType | The type of commission rate charged can be categorised by the channel | string |
payments | Array form of payment records, each with its own id; appears alongside the singular payment object | array |
note | Overall note for an order | string |
table | With 'Eat-in' orders ( "orderType": 3 ) a table identifier can be sent (see more details here) | string |
| items | All the items included in a order | |
items._id | Unique identifier of the item line within the order | string |
items.plu | Unique reference for the product | string |
items.name | The name of the Product and the Modifier | string |
items.kitchenName | An optional additional name for the product that will be sent through with the order | string |
items.price | Price set for the Product and the Modifier. It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | integer |
items.bottleDepositPrice | Where a deposit fee has been applied this will show the cost applied | integer |
items.quantity | Quantity of item ordered, for subItems quantity, see guide here | integer |
items.productType | Specific type of item here | integer |
items.section | Retail category/section name the item belongs to | string |
items.ticketSectionId | Reference ID linking the item to a kitchen/prep ticket section | string |
items.workstations | Workstation(s) assigned to prepare the item | array |
items.channelItemId | Unique item ID as provided by the ordering channel | string |
items.remark | A note specific to an individual item | string |
items.isInternal | Non-applicable to generic POS integrations | boolean |
items.categoryInfo | Category metadata for the item (shape not yet observed populated) | object |
items.packaging | Per-item packaging details — count, reusable, packedItems | object |
items.productTags | Indicates the tags contained inside a product | array |
items.subItems | All subitems are items associated with the product ordered. The quantity is multiplied by however many top-level items are ordered see guide here | array |
items.subItems.inBundle | Indicates the subItems is contained inside a bundle | boolean |
items.subItems.modifierAction | Specifies the delta of ingredient group modifiers, the action is either NO | ADD (see guide here) | boolean |
items.isCombo | Indicates a product sold is part of a combo | boolean |
items.sortOrder | The 'stepped' order of any auto-applied items, where 0 is the first item to be listed (see guide here) | integer |
items.discountReferenceId | Singular discount reference — appears alongside discountReferenceIds | integer |
items.discountReferenceIds | An array of identifiers for each discount applied to an item (see guide here) | array |
items.unavailableActions | Actions not permitted on this item (e.g. substitution, removal, amendment) | array |
| items.amendedItem | Present when an item's quantity or product was changed post-submission (e.g. retail substitution) | object |
amendedItem.type | quantity_change or substitution | string |
amendedItem.orderItemId | ID of the affected order item | string |
amendedItem.plu | PLU of the originally ordered (pre-amendment) product | string |
amendedItem.quantity | Original/adjusted quantity | integer |
amendedItem.name | Original product name | string |
amendedItem.price | Original product price | integer |
amendedItem.snoozedPlus | PLU(s) temporarily excluded/snoozed as part of the substitution | array |
removedItems | Items removed from the order after submission | array |
decimalDigits | Decimal precision of order and payment amounts | integer |
numberOfCustomers | Indicates how many diners (applicable to table ordering) | integer |
channelOrderRawId | Deliverect internal ID of an order | string |
channelOrderHistoryRawIds | Legacy | |
reportingHistory | Reporting/analytics event history for the order | array |
serviceCharge | Service charge applied It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100 | integer |
deliveryCost | Delivery cost applied It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100 | integer |
fixedCost | Fixed cost applied to the order | integer |
bagFee | A surcharge applied for the packaging It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100 | integer |
tip | A tip intended for the restaurant operator It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100 | integer |
driverTip | A tip intended for the driver/courier It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100 | integer |
smallOrderFee | A surcharge applied by channels who impose minimum basket fees It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100 | integer |
discountTotal | Ordering platforms may offer multiple forms of discount e.g. % discount. A discount total is sent as a minus value representing the deduction from the total order (see guide here) It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | negative integer |
| discounts | All applied discounts within an order | |
discounts.type | Mapped channel discount type from the list of Discount Types in Deliverect. | string |
discounts.provider | The issuer of the discount i.e. the one who bears the discounted amount list of provider types in Deliverect | Enum |
discounts.name | The name of the discount. | string |
discounts.channelDiscountCode | The unique discount code used by the channel | string |
discounts.referenceId | A unique identifier of the discount, where applicable, this will show against items included in discount | integer |
discounts.value | It is the flat amount of money or percentage covered by the discount which is stored with precision 2, so $1.50 -> 150,# 25.1% -> 2510 | integer |
discounts.amount | Actual amount discounted e.g. 10% off on $50 bill, the value will be It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | integer |
discounts. amountRestaurant | The amount of the restaurant's contribution to the discount It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | integer |
discounts. amountChannel | The amount of the channel's contribution to the discount It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100. | integer |
capacityUsages | Legacy | |
recent | Legacy | boolean |
resolvedBy | Legacy | string |
brandId | Appears where customer operates multiple brands from one location Get account brands | string |
testOrder | only applicable as 'true' in staging environment via menu preview orders | boolean |
timezone | e.g. "Europe/London"(see TZ list here) | string |
date | Order created date in format YMD | integer |
tags | Custom tag(s) applied to the store location, typically a brand name e.g. "tags": ["Best Burger"] | array |
| _links | HATEOAS-style self-reference links for the resource | object |
_links.self.title | Resource title (e.g. "order") | string |
_links.self.href | Relative API path to the resource | string |
rawPOSOrders | Legacy Internal snapshot(s) of the order payload as submitted to/from the POS at each processing stage — for internal debugging use, not intended for integrator consumption | array |
