POST /courierUpdateStatus

Courier Status Updates

Partners who have signed an agreement with Deliverect can obtain certain courier updates delivered as webhook events.

The data (JSON format) is sent to a specified endpoint in real time and is based on specific triggers when there are changes to either;

  • Delivery status changes
  • The courier handling delivery changes
  • If pickupTimeETA changes by more than 30 seconds
  • If deliveryTimeETA changes by more than 30 seconds

How do you setup a Courier Update webhook?

Please provide your webhook URLs to our Developer Relations team via integrations-support@deliverect.com and they can add this for you.

These can currently be set at either;

Account Level: Receiving courier data for the entire account and for all channels supporting courier updates
Channel Level: Receiving courier data only for specified channels

Delivery Job Statuses

Status Name Meaning Integer Value
EN_ROUTE_TO_PICKUP Courier approaching the pickup location 83
ARRIVED_AT_PICKUP Courier has arrived at the pick up location 85
EN_ROUTE_TO_DROPOFF Courier approaching the drop off location 87
ARRIVED_AT_DROPOFF Courier has arrived at the drop off location 89
DELIVERED Courier has delivered the order 90

❗️ Timestamp is in UTC

all timestamps are set as UTC time as per ISO8601

Update Definitions

Parameters Meaning Type
received Timestamp of when update was generated str
orderId Unique Deliverect order ID str
rawDriverUpdate An empty array not currently in use array of str
updatedOrigin int
pickupTime The correct pickupTime for the order at the point of the status being generated str
courier array of str
courier.firstName str
courier.lastName str
courier.phoneNumber str
courier.deliveryBy The delivery party responsible str
courier.status See a list of statuses above int
deliveryTime The anticipated time of order delivery str
location The unique ID of the Deliverect location str
application/json

Body

object object

Responses

  • 200 application/json

    Ok

POST /courierUpdateStatus
curl \
 --request POST 'http://api.example.com/courierUpdateStatus' \
 --header "Content-Type: application/json" \
 --data '{"received":"YYYY-MM-DDTHH:mm:ss.SSSSSSZ","orderId":"61********************b4","rawDriverUpdate":"{}","updatedOrigin":6,"pickupTime":"YYYY-MM-DDTHH:mm:ss.SSSSSSZ","courier":{"deliveryBy":"","status":83,"firstName":"","lastName":"","phoneNumber":""},"deliveryTime":"YYYY-MM-DDTHH:mm:ss.SSSSSSZ","location":"63********************d2"}'
Request example
{
  "received": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
  "orderId": "61********************b4",
  "rawDriverUpdate": "{}",
  "updatedOrigin": 6,
  "pickupTime": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
  "courier": {
    "deliveryBy": "",
    "status": 83,
    "firstName": "",
    "lastName": "",
    "phoneNumber": ""
  },
  "deliveryTime": "YYYY-MM-DDTHH:mm:ss.SSSSSSZ",
  "location": "63********************d2"
}
Response examples (200)
{
  "message": "Courier update status received successfully"
}