The webhook functionality is available in a basic or advanced option. For more explanation of Webhooks please see this article.
Basic Webhook
A basic webhook sends a pre-determined set of basic JSON formatted data from your system to a third-party system via HTTP POST when a status event occurs (such as picked up or delivered). For example, this could be sending an update from your system to your trading partner when you’ve completed a pickup or delivery for one of their orders.
Because basic webhooks are used to notify trading partners that an action has been taken on an order, the content of the message may not provide significant detail. Trading partners will likely prefer to request a full order update from the API as a follow up call for more information.
Examples
For primary order status events (such as confirmed, at pickup, picked up, delivered, etc.), basic data includes the order ID, event type, and any date/time stamps for that job (if captured by the driver at the time of transmission)
See example here for fields and descriptions.
Events: DELIVERED, PICKEDUP, ATDELIVERY, ATPICKUP, PLACED, CONFIRMED, DELIVERYSIGNATURE, RECEIVEDATDOCK, STATUSUPDATE
JSON
{
"orderId": 12345.0,
"eventType": "DELIVERED",
"eventTimeStamp": "2022-05-26T02:33:02Z",
"statusInfo": {
"ordered": "2022-05-26T00:52:00Z",
"receivedAtDock": "2022-05-26T01:21:00Z",
"dispatched": "2022-05-26T01:16:00Z",
"rejectByDriver": "2022-05-26T02:18:00Z",
"confirmed": "2022-05-26T01:16:00Z",
"atPickup": "2022-05-26T01:20:00Z",
"pickedUp": "2022-05-26T01:20:00Z",
"atDelivery": "2022-05-26T02:18:00Z",
"delivered": "2022-05-26T02:33:00Z",
"pod": "J Smith"
}
}
List of Items
Field Name | Data Type | Description |
---|
orderId | Decimal (19.2) | The internal id of the order |
eventType | String | The event that generated the output (one of the events listed above) |
eventTimeStamp | Datetime (UTC ISO 8601) | The date time of the event |
statusInfo | Object | Additional information as available and returned if the status occurred |
| Datetime (UTC ISO 8601) | The ordered date time Always returned |
| Datetime (UTC ISO 8601) | The received at dock date time Only returned if the order has been marked received at dock |
| Datetime (UTC ISO 8601) | The dispatched date time Only returned if the order has been dispatched |
| Datetime (UTC ISO 8601) | The reject by driver date time Only returned if order was rejected by driver |
| Datetime (UTC ISO 8601) | The confirmed date time Only returned if order has been marked as confirmed |
| Datetime (UTC ISO 8601) | The at pickup date time Only returned if the driver has marked the order as “Arrived” at the the pickup location |
| Datetime (UTC ISO 8601) | The picked up date time Only returned if order has been picked up and marked it as completed |
| Datetime (UTC ISO 8601) | The at delivery date time Only returned if the driver has marked the order as “Arrived” at the delivery location |
| Datetime (UTC ISO 8601) | The delivered date time Only returned if the order has been delivered and marked completed |
| String (50) | The pod name of the order Only returned if there is a pod name |
For additional order status events (such as canceled, invoiced, driver assigned, status code added, etc.), basic data includes the order ID, event type, and date/timestamps for the event
See example here for fields and descriptions.
Events: CANCELED, CONSOLIDATED, INVOICED, DRIVERASSIGNED, DRIVERUNASSIGNED, RATECHANGED, STATUSCODEADDED, STATUSCODEUPDATED, PARCELEXCEPTIONADDED, NEXTDELIVERY, NEXTPICKUP, VERIFIEDFORBILLING, REJECTEDBYDRIVER
JSON
{
"orderId": 12345.0,
"eventType": "DRIVERASSIGNED",
"eventTimeStamp": "2022-05-26T01:13:40Z"
}
List of Items
Field Name | Data Type | Description |
---|
orderId | Decimal in (19.2) | The internal id of the order |
eventType | String | The event that generated the output (one of the events listed above) |
eventTimeStamp | Datetime (UTC ISO 8601) | The date time of the event |
For address change status events, basic data includes the order ID, date/timestamp of the event, and address information
See example here for fields and descriptions.
Events: ADDRESSCHANGE
JSON
{
"orderId": 12345.0,
"eventType": "ADDRESSCHANGED",
"eventTimeStamp": "2022-05-26T01:36:32Z",
"OriginName": "Origin Customer",
"OriginAddress": "800 N 75th Ave",
"OriginAddress2": "",
"OriginCity": "Phoenix",
"OriginState": "AZ",
"OriginZip": "85043",
"OriginPlus4": " ",
"DestName": "Destination Customer",
"DestAddress": "135 W Hillview St",
"DestAddress2": "",
"DestCity": "Mesa",
"DestState": "AZ",
"DestZip": "85201",
"DestPlus4": " "
}
List of Items
Field Name | Data Type | Description |
---|
orderId | Decimal (19.2) | The internal id of the order |
eventType | String | The event that generated the output (only ADDRESSCHANGED) |
eventTimeStamp | Datetime (UTC ISO 8601) | The date time of event |
OriginName | String (50) | Origin name |
OriginAddress | String (50) | Origin address |
OriginAddress2 | String (50) | Origin address line 2 |
OriginCity | String (50) | Origin city |
OriginState | String (2) | Origin state |
OriginZip | String (5) | Origin zip |
OriginPlus4 | String (4) | Origin plus4 |
DestName | String (50) | Destination name |
DestAddress | String (50) | Destination address |
DestAddress2 | String (50) | Destination address line 2 |
DestCity | String (50) | Destination city |
DestState | String (2) | Destination state |
DestZip | String (5) | Destination zip |
DestPlus4 | String (4) | Destination plus4 |
For primary route stop status events (such as arrived, completed, signature, etc.), basic data includes the route stop ID, event type, and any date/time stamps for that job (if captured by the driver at the time of transmission)
See example here for fields and descriptions.
Events: COMPLETED, ARRIVED, SIGNATURE, POD
JSON
{
"pkId": 12345,
"eventType": "COMPLETED",
"eventTimeStamp": "2022-05-26T02:59:17Z",
"statusInfo": {
"arrived": "2022-05-26T02:44:25Z",
"completed": "2022-05-26T02:58:39Z",
"pod": "J Smith"
}
}
List of Items
Field Name | Data Type | Description |
---|
pkid | Integer | The internal id of the route stop |
eventType | String | The event that generated the output (one of the events listed above) |
eventTimeStamp | Datetime (UTC ISO 8601) | The date time of event |
statusInfo | | Additional information as available. |
| Datetime (UTC ISO 8601) | The arrived date time Only returned if driver has been marked arrived at the route stop |
| Datetime (UTC ISO 8601) | The completed date time Only returned if route stop has been marked as completed |
| String (50) | The pod name of the route stop Only returned if there is a pod name |
For additional route stop status events (such as consolidated, deactivated, status code added, etc.), basic data includes the route stop ID, event type, and date/timestamp of the event
See example here for fields and descriptions.
Events: ACTIVATED, ASSIGNEDTODRIVER, CONSOLIDATED, CREATED, DEACTIVATED, PARCELEXCEPTIONADDED, STATUSCODEADDED, STATUSCODEUPDATED, UNASSIGNEDFROMDRIVER
JSON
{
"pkId": 12345,
"eventType": "ACTIVATED",
"eventTimeStamp": "2022-05-26T02:42:05Z""
}
List of Items
Field Name | Data Type | Description |
---|
pkId | Integer | The internal id of the route stop |
eventType | String | The event that generated the output (one of the events listed above) |
eventTimeStamp | Datetime (UTC ISO 8601) | The date time of event |
You can download examples below.
Event Descriptions
Customer Level Status Event | Description |
---|
Delivered | On Demand order has been delivered to the destination location |
PickedUp | On Demand order has been picked up from the origin location |
AtDelivery | Driver has arrived at the destination location |
AtPickup | Driver has arrived at the origin location |
Placed | On Demand order has been created |
Confirmed | On Demand order has been marked as confirmed by the driver assigned to the order |
DeliverySignature | A signature has been collected by the driver at the destination location |
ReceivedAtDock | On Demand order has been marked as received at dock |
StatusUpdate | A status update has been requested/triggered for an On Demand order by a user to provide the latest status details of the order |
Canceled | On Demand order has been canceled |
Consolidated | On Demand order being placed has been consolidated/merged onto an already existing order |
Invoiced | On Demand order has been invoiced |
DriverAssigned | On Demand order has been assigned to a driver |
DriverUnassigned | The driver assigned to the On Demand order has been removed from the order |
RateChanged | The rate on the On Demand order has been changed |
StatusCodeAdded | A status code has been added to the On Demand Order |
StatusCodeUpdated | An existing status code has been updated on the On Demand order |
ParcelExceptionAdded | An exception has been added to a parcel that is assigned to the On Demand Order |
NextDelivery | The On Demand order has been marked as the next delivery to take place |
NextPickup | The On Demand order has been marked as the next pickup to take place |
VerifiedForBilling | The On Demand order have been marked as verified for billing |
RejectedByDriver | The On Demand order has been rejected by the assigned driver |
AddressChange | The On Demand order had an address changed for either the origin or the destination |
Completed | The route stop has been marked as completed |
Arrived | The driver has arrived at the route stop location |
Signature | A signature has been collected for the route stop |
POD | A POD has been collected for the route stop |
Activated | The route stop has been activated |
AssignedToDriver | The route stop has been assigned to a driver |
Consolidated | The route stop being created has been consolidated/merged onto an already existing stop |
Created | Route Stop has been created |
Deactivated | Route stop has been deactivated |
ParcelExceptionAdded | An exception has been added to a parcel linked to the route stop |
StatusCodeAdded | A status code has been added to the route stop |
StatusCodeUpdated | An existing status code has been updated on the route stop |
UnassignedFromDriver | The driver assigned to the route stop has been removed |