Order Webhooks

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

PropertyTypeProvidedDescription
orderIdstringtrueOrder Id created in our system.
storeExternalIdstringtrueUnique Id of the pickup location generated in your system and configured in our system.
orderExternalIdstringtrueUnique Id of the order generated in your system and configured in our system. Can be configured to be non-unique.
groupIdstringfalseGroup ID allows you to group a number of orders together. It further helps in providing a combined post-purchase experience for these orders.
tipsdecimaltrueTip 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
orderValuedecimaltrueThe 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
pickupTimeTime WindowtrueTime Window in which the package will be ready to be picked up. null defaults to ASAP.
dropoffTimeTime WindowtrueTime Window in which the package must be delivered by.null defaults to ASAP.
deliveryContactContacttrueCustomer contact details.
deliveryAddressAddresstrueDelivery address details.
packagesPackagetruePackage details.
isSpiritbooltrueChecks whether order contains Spirit as true or false .
isBeerOrWinebooltrueChecks whether order contains Beer or Wine as true or false .
isTobaccobooltrueChecks whether order contains Tobacco as true or false .
isFragilebooltrueChecks whether order items is Fragile or not as true or false .
isRxbooltrueChecks whether order items is Rx or not as true or false .
hasRefrigeratedItemsbooltrueChecks whether order items are Refrigerated or not as true or false .
hasPerishableItemsbooltrueChecks whether order items are Perishable or not as true or false .
notifications *NotificationtrueRecipients for order status update notifications.
estimatedPickupTimeintegertrueProvider Estimated Pickup Start Time. Unix time in milliseconds e.g., 1500616800000.
estimatedPickupTimeEndsintegertrueProvider Estimated Pickup End Time. Unix time in milliseconds e.g., 1500616800000.
estimatedDeliveryTimeintegertrueProvider Estimate Delivery Start Time. Unix time in milliseconds e.g., 1500616800000.
estimatedDeliveryTimeEndsintegertrueProvider Estimate Delivery End Time. Unix time in milliseconds e.g., 1500616800000.
labelLink *stringtrueLabel link that contains the label provided by DS or by the provider.
labelsArray of LabeltrueLabel details for the order. This attribute should only be used in case where Labels module is not subscribed. Otherwise see labelLink.
providerstringtrueProviders name.

This field will only available after Order Dispatched status.
amountintegertrueEstimated 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
currencyCodestringtrueISO 4217 alphabetical code, e.g. USD.
brandExternalIdstringtrueUnique Id of the brand generated in your system and configured in our system.
timeZonestringtrueTimezone of the pickup location.
pickupContactContacttrueContact Details of the pickup location.
pickupAddressAddresstrueAddress of the pickup location.
pickupTimeTime WindowtrueOrder pickup time.
statusstringtrueOrder Statuses e.g., ORDER_DISPATCH.
tenantIdstringtrueUnique Id to identify each tenant / business.
deliveryInstructionsstringtrueDelivery instructions for drop-off.
lastUpdatedAtstringtrueupdated date and time of order in UTC format.
createdAtstringtrueCreate date and time of order in UTC format.
signatureSignaturetrueSignature requirement for the delivery.
driverDrivertrueCourier 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.
vehicleVehicletrueVehicle 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.
attachmentsarray of FiletrueArray 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.
lastLocationLast Location DetailstrueLast geo-coordinates of the delivery. Available if provided by the provider, else null.
typestringfalseOrder type selected/given for the order (delivery/in-store-pickup/
/shipping).
serviceTypestringtrueProviders type chosen for the order.
serviceIdstringtrueProviders Id chosen for the order.
shipmentsarray of ShipmentfalseIn case of shipping order, array of shipment details.
itemListarray of Item - OrdertrueArray of items in the order. Dimension and weight details of the products help in orchestrating the best provider. Details offer improved post-purchase experiences.
alternateLocationAlternate LocationfalseAlternate location details in case order is to be delivered to alternate location.
batchIdstringfalseUnique id generated by DS system for the batch.
batchSequenceintegerfalseCondition number in batch rule which this order satisfied.
hostedTrackingUrl *stringfalseIf you are using the hosted tracking feature then this key will contain the link for hosted tracking url for the specific order.
customerWebflowUrl *stringfalseIf you are using the pickup webflow feature this key will contain the link for the specific order.
trackingUrlstringtrueOrder 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.
isSelfHealedbooleanfalseIf the already dispatched order is processed again due to an exception.
It's notified using this flag.
feedbackObjectfalseFeedback 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.
providerBatchProvider BatchfalseProviders 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.
webhookTypestringtrueType 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.
subStatusstringfalseSub-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.
eventReasonEvent ReasonfalseEvent Reason provided by the provider
exceptionDetailsException DetailsfalseException details for the Retries of an order configured in Exception Management.
returnStoreIdstringtrueUnique Id of the pickup location generated in your system and configured in our system.
undeliverableOrderReturnLocationUndeliverable Order Return LocationtrueReturn Location for Undeliverable Orders, so that driver can take the package at this Location, if the Order was Undeliverable.
deliveryDistancedecimaltrueDistance in a straight line from Pickup Location to Delivery Address (miles).
drivingDistancedecimalfalseEstimated 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
}