Courier Update Status Run in API Explorer
Ask AI
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
pickupTimeETAchanges by more than 30 seconds - If
deliveryTimeETAchanges 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 |
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"
}