Order Notification

Purpose

Digital orders created from Deliverect integrated channels will deliver a webhook event in real-time to a specified endpoint provided by the POS.

This order will contain the products, prices, payment information and any customer info provided by the channel.

Payments

Details on processing payments, taxes, discounts and other charges in the link below;

Status Updates

After responding to confirm receipt of the order webhook, order status updates thereafter should be sent asynchronously via the endpoint below;

Direct Table Ordering

To see how to include support for table ordering for 'eat in' orders, see more details in the link below;

Order Cancellations

Cancellations will also be sent to the order notification webhook URL, see how to receive and process these correctly in the guide below;

Failover Flow

For the failover process when an initial connection isn't possible see details of our retry mechanism in the link below;

Payload

Sent by Deliverect as a JSON payload.

Please note any Deprecated parameters should be ignored

date-time

Time the order was created in Deliverect, in the format yyyy-MM-ddTHH:mm:ss.SSSSSSZ.

date-time

Time the order was last updated in Deliverect, in the format yyyy-MM-ddTHH:mm:ss.SSSSSSZ.

string

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

Unique customer account ID in Deliverect.

string

The full unique ID from the delivery channel. Together with the channel is guaranteed to be unique for 48h after pickup.

string

Alternative order ID set by ordering channel, primarily for convenience and readability. This is not unique and typically a shortened version of channelOrderId consisting of 4-5 alphanumeric characters, although may go up to 12 characters.

string

The POS order ID.

string

Provided by the POS in response to incoming orders as a reference to a specific POS receipt.

string

posLocationId is an identifier of the location known on the POS side, it is stored within the POS config in Deliverect.

string

locationId is the unique ID for the POS to identify the store location.

integer

Current order status (see all Order statuses here).

statusHistory
array of objects

All status changes of the order up to the point the webhook is sent.

statusHistory
packaging
object

Order-level packaging preferences.

string

Order source (if known) e.g. app or mobile, not the same as channel that specifies the ordering platform (see guide here).

integer
enum

Type of order.

  • Pickup: 1
  • Delivery: 2
  • Eat in: 3
  • Curbside: 4
  • Drive thru: 5
Allowed:
integer

Unique ID of the channel (see GET Integrated channels).

integer

Unique ID of the POS.

rating
array of objects
deprecated

Legacy attribute, not to be referenced as part of an integration.

rating
date-time

Time the order is due to be picked up, in the format yyyy-MM-ddTHH:mm:ss.SSSSSSZ.

date-time

Time the order is due to be delivered, in the format yyyy-MM-ddTHH:mm:ss.SSSSSSZ.

boolean

Signifies if the order is required as soon as possible.

courier
object

Details of courier.

courierUpdateHistory
array of objects

History of every courier update received for the order.

courierUpdateHistory
customer
object

Customer is the end-consumer.

deliveryAddress
object

Provided address for an order.

boolean

Statement of whether an order was paid online or not.

taxes
array of objects

All taxes applied to an order (in tax exclusive regions only).

taxes
payment
object

Payment details.

string

Overall note for an order.

items
array of objects

All the items included in an order.

items
integer

Decimal precision of order and payment amounts.

integer

Indicates how many diners (applicable to table ordering).

string

Deliverect internal ID of an order.

channelOrderHistoryRawIds
array of strings
deprecated

Legacy attribute, not to be referenced as part of an integration.

channelOrderHistoryRawIds
integer

Service charge applied. It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100.

integer

Delivery cost applied. It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100.

integer

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

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

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

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

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.

discounts
array of objects

All applied discounts within an order.

discounts
capacityUsages
array of objects
deprecated

Legacy attribute, not to be referenced as part of an integration.

capacityUsages
boolean
deprecated

Legacy attribute, not to be referenced as part of an integration.

string
deprecated

Legacy attribute, not to be referenced as part of an integration.

string

Appears where the customer operates multiple brands from one location (see Get account brands).

boolean

Only applicable as true in staging environment via menu preview orders.

string

Timezone of the location, e.g. Europe/London (see TZ list here).

integer

Order created date in format YMD.

tags
array of strings

Custom tag(s) applied to the store location, typically a brand name, e.g. ["Best Burger"].

tags
integer

Sum of deliveryTax + serviceChargeTax + deliveryCostTax. It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100.

integer

Some ordering platforms collect and pay taxes and share this info as a value-remitted tax. It will be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100.

string

With 'Eat-in' orders ("orderType": 3) a table identifier can be sent (see more details here).

Headers
string
required

Identifies Deliverect as the sender, in the format Deliverect/{version}.

string
required

Signature of the raw request body using your shared secret; recompute it on receipt to verify the request came from Deliverect (see HMAC authentication guide).

Response
200

Return a 2xx status to confirm receipt, then send status updates asynchronously via Update Order Status.

LoadingLoading…