Order Notification

Purpose

When a customer orders from a Deliverect integrated channel, it will immediately deliver a webhook even 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.

Order Model

For a full list of all order attributes and their definitions, see the link below;

Order Types

Each orderType listed below should be supported as part of a POS integration, where the type of order is clearly displayed to the user in the POS interface and on related printed checks and receipts.

TypeInteger Value
pickup1
delivery2
eat in3
curbside4

Direct Table Ordering

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

Payments

Details on processing payments, taxes, discounts and other charges 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;

Example order payload

{
    "_created": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
    "_updated": "YYYY-MM-DDT08:36:46.SSSSSSZ",
    "_id": "62********************7c",
    "account": "61********************a1",
    "channelOrderId": "TEST******4206",
    "channelOrderDisplayId": "T**4206",
    "posId": "",
    "posReceiptId": "",
    "posLocationId": "",
    "location": "61********************b4",
    "channelLink": "61********************c3",
    "status": 1,
    "statusHistory":
    [
        {
            "timeStamp": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
            "status": 4,
            "response": "",
            "source": 2
        },
        {
            "timeStamp": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
            "status": 1,
            "response": "",
            "source": 5
        }
    ],
    "packaging":
    {
        "includeCutlery": false
    },
    "by": "Deliverect",
    "orderType": 2,
    "channel": 1,
    "pos": 10000,
    "rating":[],
    "pickupTime": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
    "deliveryTime": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
    "deliveryIsAsap": true,
    "courier":
    {
        "firstName": "",
        "lastName": "",
        "phoneNumber": "",
        "deliveryBy": "restaurant"
    },
    "courierUpdateHistory":
    [
        {
            "status": 72,
            "received": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
            "courier":{},
            "arrivalTime": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
            "deliveryTime": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
            "source": 5
        }
    ],
    "customer":
    {
        "name": "Jack",
        "companyName": "Deliverect",
        "phoneNumber": "+31615887898",
        "phoneAccessCode": "0020",
        "email": "[email protected]",
        "note": "call me when you arrive",
        "tin": ""
    },
    "deliveryAddress":
    {
        "street": "",
        "postalCode": "",
        "area": "",
        "city": "",
        "country": "",
        "extraAddressInfo": "",
        "coordinates":
        {
            "coordinates":
            [
                80.9,
                -90.3
            ]
        }
    },
    "orderIsAlreadyPaid": true,
    "taxes":[],
    "payment":
    {
        "amount": 650,
        "type": 0,
        "due": 0,
        "rebate": 0,
        "commissionType": ""
    },
    "note": "",
    "items":
    [
        {
            "_id": "68********************3c",
            "plu": "P-BRGR",
            "name": "Burger Combo (Drink not Included)",
            "sortOrder": 0,
            "price": 500,
            "quantity": 1,
            "productType": 1,
            "isCombo": true,
            "subItems":
            [
                {
                    "_id": "68********************3c",
                    "plu": "DRK-01",
                    "name": "Diet Soda",
                    "sortOrder": 0,
                    "price": 100,
                    "quantity": 1,
                    "productType": 1,
                    "subItems":
                    []
                },
                {
                    "_id": "68********************3c",
                    "plu": "P-BURG-CHE",
                    "name": "Cheeseburger",
                    "sortOrder": 0,
                    "price": 0,
                    "quantity": 1,
                    "productType": 1,
                    "inBundle": true,
                    "subItems":
                    [
                        {
                            "_id": "68********************3c",
                            "plu": "P-GHRK",
                            "name": "Extra Gherkin",
                            "sortOrder": 0,
                            "price": 50,
                            "quantity": 2,
                            "productType": 1,
                            "subItems":
                            [],
                            "productTags":
                            []
                        }
                    ],
                    "productTags":
                    []
                }
            ],
            "productTags":
            [
                14
            ]
        }
    ],
    "decimalDigits": 2,
    "numberOfCustomers": 1,
    "channelOrderRawId": "62********************73",
    "channelOrderHistoryRawIds":[],
    "serviceCharge": 0,
    "deliveryCost": 0,
    "bagFee": 0,
    "tip": 0,
    "driverTip": 0,
    "smallOrderFee": 0,
    "discountTotal": -50,
    "discounts":
    [
        {
            "type": "order_flat_off",
            "provider": "channel",
            "name": "Discount",
            "channelDiscountCode": "50OFF",
            "referenceId": "1",
            "value": 50,
            "amount": 50
        }
    ],
    "capacityUsages":[],
    "recent": true,
    "resolvedBy": "",
    "brandId": "61********************60",
    "testOrder": true,
    "timezone": "Europe/Amsterdam",
    "date": 20230414,
    "tags":
    [
        "BRAND X"
    ]
}

Response
Upon successful connection, the initial response to the order notification webhook should be a HTTP 200 or 201 received within 30 seconds.

Status Updates

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

Failover Flow

For the failover process when an initial connection isn't possible and details of our retry mechanism, see the guide here

Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json