Order Webhooks

Order webhook urls can be configured in our portal under the Business > Webhooks > Order section.
Webhooks are triggered whenever Order Status changes.

Property

Type

Provided

Description

orderId

string

true

Order Id created in our system.

storeExternalId

string

true

Unique Id of the pickup location generated in your system and configured in our system.

orderExternalId

string

true

Unique Id of the order generated in your system and configured in our system. Can be configured to be non-unique.

groupId

string

false

Group ID allows you to group a number of orders together. It further helps in providing a combined post-purchase experience for these orders.

tips

decimal

true

Tip amount for driver in major units as decimals.
E.g; 9.00.

In case of US Dollars above value will be9.00 cents or $9.00

orderValue

decimal

true

The value of the order in major units as decimals. E.g; 101.00.

In case of US Dollars above value will be101.00 cents or $101.00

pickupTime

Time Window

true

Time Window in which the package will be ready to be picked up. null defaults to ASAP.

dropoffTime

Time Window

true

Time Window in which the package must be delivered by.null defaults to ASAP.

deliveryContact

Contact

true

Customer contact details.

deliveryAddress

Address

true

Delivery address details.

packages

Package

true

Package details.

isSpirit

bool

true

Checks whether order contains Spirit as true or false .

isBeerOrWine

bool

true

Checks whether order contains Beer or Wine as true or false .

isTobacco

bool

true

Checks whether order contains Tobacco as true or false .

isFragile

bool

true

Checks whether order items is Fragile or not as true or false .

isRx

bool

true

Checks whether order items is Rx or not as true or false .

hasRefrigeratedItems

bool

true

Checks whether order items are Refrigerated or not as true or false .

hasPerishableItems

bool

true

Checks whether order items are Perishable or not as true or false .

notifications *

Notification

true

Recipients for order status update notifications.

estimatedPickupTime

integer

true

Provider Estimated Pickup Start Time. Unix time in milliseconds e.g., 1500616800000.

estimatedPickupTimeEnds

integer

true

Provider Estimated Pickup End Time. Unix time in milliseconds e.g., 1500616800000.

estimatedDeliveryTime

integer

true

Provider Estimate Delivery Start Time. Unix time in milliseconds e.g., 1500616800000.

estimatedDeliveryTimeEnds

integer

true

Provider Estimate Delivery End Time. Unix time in milliseconds e.g., 1500616800000.

labelLink *

string

true

Label link that contains the label provided by DS or by the provider.

labels

Array of Label

true

Label details for the order. This attribute should only be used in case where Labels module is not subscribed. Otherwise see labelLink.

provider

string

true

Providers name.

This field will only available after Order Dispatched status.

amount

integer

true

Estimated amount that the provider will charge.
The amount in minor units without decimals. E.g; 1295.

In case of US Dollars above value will be1295 cents or $12.95

currencyCode

string

true

ISO 4217 alphabetical code, e.g. USD.

brandExternalId

string

true

Unique Id of the brand generated in your system and configured in our system.

timeZone

string

true

Timezone of the pickup location.

pickupContact

Contact

true

Contact Details of the pickup location.

pickupAddress

Address

true

Address of the pickup location.

pickupTime

Time Window

true

Order pickup time.

status

string

true

Order Statuses e.g., ORDER_DISPATCH.

tenantId

string

true

Unique Id to identify each tenant / business.

deliveryInstructions

string

true

Delivery instructions for drop-off.

lastUpdatedAt

string

true

updated date and time of order in UTC format.

createdAt

string

true

Create date and time of order in UTC format.

signature

Signature

true

Signature requirement for the delivery.

driver

Driver

true

Courier details associated to the delivery. Available if provided by the Provider, else null.

Generally this information is available after Order Assigned status in case of Delivery Orders.

In case of Pickup Orders if Customer has delegated pickup to someone else.
The same field is repurposed to store the information of that Pickup Person.

vehicle

Vehicle

true

Vehicle details associated with the delivery. Available if provided by the Provider, else null.

In case of Pickup Orders it will contain vehicle information of the Customer.

attachments

array of File

true

Array of files associated with the delivery. Available if provided by the Provider, else null.

This field can contain Proof of Pickup , Proof of Delivery or Signature images.

This information will be available at various status of the lifecycle of the order.
Eg. Proof of Delivery will always be available with Order Delivered webhook.

lastLocation

Last Location Details

true

Last geo-coordinates of the delivery. Available if provided by the provider, else null.

type

string

false

Order type selected/given for the order (delivery/in-store-pickup/
curbside
/shipping).

serviceType

string

true

Providers type chosen for the order.

serviceId

string

true

Providers Id chosen for the order.

shipments

array of Shipment

false

In case of shipping order, array of shipment details.

itemList

array of Item - Order

true

Array of items in the order. Dimension and weight details of the products help in orchestrating the best provider. Details offer improved post-purchase experiences.

alternateLocation

Alternate Location

false

Alternate location details in case order is to be delivered to alternate location.

batchId

string

false

Unique id generated by DS system for the batch.

batchSequence

integer

false

Condition number in batch rule which this order satisfied.

hostedTrackingUrl *

string

false

If you are using the hosted tracking feature then this key will contain the link for hosted tracking url for the specific order.

customerWebflowUrl *

string

false

If you are using the pickup webflow feature this key will contain the link for the specific order.

trackingUrl

string

true

Order tracking URL given by provider.
If you have enabled the Live Tracking Page ( Paid Feature ) that will be sent instead of provider's tracking Url.

isSelfHealed

boolean

false

If the already dispatched order is processed again due to an exception.
It's notified using this flag.

feedback

Object

false

Feedback shared by the Customer for the respective order. Feedback can be added using our Post Purchase modules like Live Tracking , Hosted Tracking or Pickup Webflow.

providerBatch

Provider Batch

false

Providers optimising deliveries based on routes may batch orders together. This object will contain the IDs to help identify the orders that were batched by the Provider.

webhookType

string

true

Type of the webhook update. It can be one of the following\ status : To inform about the status change,\ information : Intermediary updates for unnormalized lifecycle of the provider ,\ location : Location updates from the provider.

subStatus

string

false

Sub-statuses give information about sub-flows which might happen for certain statuses.
E.g. In case of ORDER_UNDELIVERABLE, you might receive RETURN_STARTED, RETURN_AT_LOCATION or RETURN_COMPLETED which signifies the Return to Store sub-flow that happens when Order reaches to Undeliverable status.

eventReason

Event Reason

false

Event Reason provided by the provider

exceptionDetails

Exception Details

false

Exception details for the Retries of an order configured in Exception Management.

returnStoreId

string

true

Unique Id of the pickup location generated in your system and configured in our system.

undeliverableOrderReturnLocation

Undeliverable Order Return Location

true

Return Location for Undeliverable Orders, so that driver can take the package at this Location, if the Order was Undeliverable.

deliveryDistance

decimal

true

Distance in a straight line from Pickup Location to Delivery Address (miles).

drivingDistance

decimal

false

Estimated driving distance from Pickup Location to Delivery Address (miles).

This information becomes available after the Place Order response is sent.

Keys marked with * are subscription-based.

{
    "event": "event.courier_update",
    "note": "Processed by Delivery Solutions",
    "status": "ORDER_UNDELIVERABLE",
    "receivedAt": "June 23rd 2022, 11:41:16 pm",
    "trackingNumber": "del_fGVo7rZjTfiTYWluoLXcpA",
    "provider": "Point Pickup",
    "orderId": "62b53cfbc85b10d7ffe3882f",
    "orderExternalId": "24June0001",
    "groupId": "100405",
    "tenantId": "trackers_business",
    "statusUser": "Delivery Solutions",
    "orderAttributes": {},
    "storeExternalId": "Postmates_Store",
    "attachments": [],
    "driver": {
        "name": "Elena N. driver",
        "phone": "+17204667578",
        "photo": "",
        "driverExternalId": "",
        "driverId": "",
        "orgUnit": ""
    },
    "vehicle": {
        "type": "car/taxi",
        "color": "",
        "number": "",
        "vehicleExternalId": "",
        "vehicleId": ""
    },
    "lastLocation": {
        "updatedAt": "2022-06-24T04:41:09.330Z",
        "longitude": -118.44801605583696,
        "latitude": 34.21976775539418
    },
    "amount": 600,
    "trackingUrl": "https://s.dl-s.co/hcl3p6RRzW4",
    "providerTrackingUrl": "https://www.ubereats.com/orders/7c6568ee-b663-4df8-9361-696ea0b5dca4",
    "customerWebflowUrl": "",
    "estimatedPickupTime": 1656045035000,
    "estimatedPickupTimeByZone": "June 23rd 2022, 11:44 pm CDT",
    "estimatedDeliveryTime": 1656059435000,
    "estimatedDeliveryTimeByZone": "June 23rd 2022, 11:52 pm CDT",
    "pickupInstructions": "store pickupInstructions",
    "deliveryInstructions": null,
    "deliveryContact": {
        "name": "Mei Wan",
        "phone": "+1 201-555-1023",
        "customerId": "",
        "email": "",
        "notifySms": true,
        "notifyEmail": true
    },
    "deliveryAddress": {
        "street": "8849 North Sam Houston Parkway West",
        "street2": "",
        "apartmentNumber": "",
        "city": "Houston",
        "state": "TX",
        "zipcode": "77064",
        "country": "US",
        "latitude": 29.9259823,
        "longitude": -95.5523879
    },
    "pickUpAddress": {
        "street": "8849 North Sam Houston Parkway West",
        "street2": "",
        "secondary": "",
        "city": "Houston",
        "zipcode": "77064",
        "country": "US",
        "state": "TX",
        "latitude": 29.9259823,
        "longitude": -95.5523879
    },
    "hostedTrackingUrl": "https://s.dl-s.co/yMM_ftdtEsF",
    "errors": [],
    "estimatedPickupTimeStarts": null,
    "estimatedPickupTimeEnds": 1656045999000,
    "estimatedDeliveryTimeStarts": null,
    "estimatedDeliveryTimeEnds": 1656048222000,
    "labelLink": "https://sandbox.api.deliverysolutions.co/api/v2/label?orderId=62b53cfbc85b10d7ffe3882f&token=NjJiNTNjZmJjODViMTBkN2ZmZTM4ODJm",
    "timeZone": "America/Chicago",
    "receivedAtEpoch": 1656045676018,
    "currency": "cents",
    "currencyCode": "USD",
    "alternateLocation": null,
    "type": "delivery",
    "serviceType": "Delivery",
    "isTipsPosted": false,
    "tips": null,
    "fee": null,
    "proposedProviders": [],
    "feedback": null,
    "clonedFrom": "62b4adcdc85b10d7ffdd82be",
    "serviceId": "delivery",
    "pickupTime": {
        "startsAt": 1656044855530
    },
    "dropoffTime": {
        "endsAt": 1656044915530
    },
    "isSelfHealed": false,
    "providerBatch": {
        "batchId": "62b46cfbc12b18e7bae1986f"
    },
    "subStatus": "RETURN_AT_LOCATION",
    "eventReason": {
        "code": "DRIVER_REFUSED",
        "title": "Driver refused to pickup the order",
        "note": "CD-011 - Driver: Refused Order",
        "status": "ORDER_UNDELIVERABLE",
        "subStatus": "RETURN_AT_LOCATION",
        "updatedAtEpoch": 1666817167059
    },
    "exceptionDetails": {
        "lastTriggered": "preDispatch",
        "preDispatch": {
            "exceptionType": "phone-number-failure"
        }
    },
    "undeliverableOrderReturnLocation": {
        "address": {
            "street": "502 Park Avenue",
            "street2": "",
            "secondary": "",
            "city": "New York",
            "zipcode": "10022",
            "country": "US",
            "state": "NY",
            "latitude": 40.76321409999999,
            "longitude": -73.9698963
        },
        "contact": {
            "name": "John Smith",
            "phone": "+1 201-555-0123"
        },
        "name": "WareHouse 301",
        "pickupInstructions": "Valid driver’s license or government issued photo ID is required"
    },
    "returnStoreId": "301",
 		"deliveryDistance": 2,
    "drivingDistance": 3
}