By using the ‘WebhookUrl’ field or the subscriptions, you can specify a callback URL to get an update when the order is updated status. If the ‘WebhookUrl’ is set when creating an order or if a subscription exists, the API will send an HTTP POST request to that URL with a JSON payload containing the OrderId when the order status is changed. The kind of event that was triggered will be passed in a header called "Event-Type" where possible events are:
- order_created
- order_dispatched
- order_assigned
- driver_arrived_at_pickup
- driver_arrived_at_delivery
- order_picked_up
- proof_of_delivery_added
- order_on_hold
- order_released
- order_scanned_at_checkpoint
- pickup_time_window_updated
- delivery_time_window_updated
- driver_unassigned
- items_added
- items_updated
- items_removed
- tracked_order_items_added
- charges_added
- charges_updated
- charges_removed
- order_delivered
- order_cancelled
- invoice_completed
- invoice_cancelled
- route_created
- route_assigned_to_order
- route_unassigned_from_order
- driver_allocated_to_route
- driver_deallocated_from_route
- route_dispatched
- route_status_changed
- route_deleted
- route_optimized
The following are examples of call-back content :
[OrderCreated]
Header: Event-Type: "order_created"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:32:10.482+00:00",
"EventType": "order_created",
"Status": 0,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"OrderSource": 0
}[OrderDispatchedToDriver]
Header: Event-Type: "order_dispatched"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_dispatched",
"Status": 1,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"DriverId": "9c3e7a21-5b44-4e10-8f2a-6d1c4e9b0a77",
"DriverName": "John Smith",
"DriverNumber": "D-1042"
}[OrderAcceptedByDriver]
Header: Event-Type: "order_assigned"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_assigned",
"Status": 1,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"DriverId": "9c3e7a21-5b44-4e10-8f2a-6d1c4e9b0a77",
"DriverName": "John Smith",
"DriverNumber": "D-1042"
}[DriverArrivedAtPickup]
Header: Event-Type: "driver_arrived_at_pickup"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "driver_arrived_at_pickup",
"Status": 1,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null
}[OrderPickedUp]
Header: Event-Type: order_picked_up
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_picked_up",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"AssignedDriverId": "9c3e7a21-5b44-4e10-8f2a-6d1c4e9b0a77",
"DropoffContactName": "Jane Doe",
"DropoffContactPhoneNumber": "+1-555-201-3344"
}[DriverUnassigned]
Header: Event-Type: driver_unassigned
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "driver_unassigned",
"Status": 0,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"UnassignedDriverId": "9c3e7a21-5b44-4e10-8f2a-6d1c4e9b0a77",
"UnassignedDriverName": "John Smith",
"UnassignedDriverNumber": "D-1042"
}[DriverArrivedAtDelivery]
Header: Event-Type: "driver_arrived_at_delivery"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "driver_arrived_at_delivery",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null
}[OrderDelivered]
Header: Event-Type: "order_delivered"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_delivered",
"Status": 4,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"CustomerName": "Jane Doe",
"AssignedDriverId": "9c3e7a21-5b44-4e10-8f2a-6d1c4e9b0a77",
"DropoffContactName": "Jane Doe",
"DropoffContactPhoneNumber": "+1-555-201-3344"
}[OrderReleased]
Header: Event-Type: "order_released"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_released",
"Status": 0,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null
}[OrderPutOnHold]
Header: Event-Type: "order_on_hold"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_on_hold",
"Status": 0,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"HoldExceptionCode": "a1e4f8b2-3c9d-4e77-9f0a-2b6d8e1c4f55",
"HoldExceptionCodeValue": "DAMAGED",
"HoldExceptionCodeDisplayEn": "Package damaged",
"HoldExceptionCodeDisplayFr": "Colis endommagé",
"HoldExceptionCodeDisplayNamePrimary": "Package damaged",
"HoldExceptionCodeDisplayNameSecondary": "Colis endommagé"
}[OrderCancelled]
Header: Event-Type: "order_cancelled"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_cancelled",
"Status": 91,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null
}[TrackedOrderItemsAdded]
Header: Event-Type: "tracked_order_items_added"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "tracked_order_items_added",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"Items": [
{
"ItemId": "b7a4e1c9-2d5f-4a80-9e13-7c6f3d8a90bb",
"Barcode": "1Z999AA10123456784",
"ScanTime": "2026-09-16T14:34:50.000+00:00",
"ExceptionCodes": [
"Code1",
"Code2"
],
"IsMissing": false,
"Damaged": false,
"CheckpointId": "e2f9c7d4-1a3b-4c5d-8e6f-9a0b1c2d3e4f",
"TrackingType": 0
}
],
"UserId": "3d8f1a2b-4c5e-6f70-8192-a3b4c5d6e7f8"
}[ChargesAdded]
Header: Event-Type: "charges_added"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "charges_added",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"Charges": [
{
"chargeType": "Extra",
"chargeId": "c4d1e8f2-5a3b-4c6d-9e7f-1a2b3c4d5e6f",
"extraFeeTypeId": "9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6",
"unitPrice": 12.50,
"quantity": 1,
"total": 12.50,
"fuelSurcharge": 0.75,
"totalWithFSC": 13.25
},
{
"chargeType": "Delivery",
"chargeId": "d5e2f9a3-6b4c-4d7e-8f90-2a1b3c4d5e6f",
"total": 22.00,
"fuelSurcharge": 1.20,
"totalWithFSC": 23.20
}
]
}[ChargesUpdated]
Header: Event-Type: "charges_updated"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "charges_updated",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"Charges": [
{
"chargeType": "Extra",
"chargeId": "c4d1e8f2-5a3b-4c6d-9e7f-1a2b3c4d5e6f",
"extraFeeTypeId": "9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6",
"unitPrice": 15.00,
"quantity": 2,
"total": 30.00,
"fuelSurcharge": 1.80,
"totalWithFSC": 31.80
},
{
"chargeType": "Delivery",
"chargeId": "d5e2f9a3-6b4c-4d7e-8f90-2a1b3c4d5e6f",
"total": 22.00,
"fuelSurcharge": 1.20,
"totalWithFSC": 23.20
}
]
}[ChargesRemoved]
Header: Event-Type: "charges_removed"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "charges_removed",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"ChargeIds": [
"c4d1e8f2-5a3b-4c6d-9e7f-1a2b3c4d5e6f",
"d5e2f9a3-6b4c-4d7e-8f90-2a1b3c4d5e6f"
]
}[PickupTimeWindowUpdated]
Header: Event-Type: "pickup_time_window_updated"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "pickup_time_window_updated",
"Status": 0,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"PickupFromTime": "2026-09-17T09:00:00.000+00:00",
"PickupToTime": "2026-09-17T12:00:00.000+00:00"
}[DeliveryTimeWindowUpdated]
Header: Event-Type: "delivery_time_window_updated"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "delivery_time_window_updated",
"Status": 0,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"DeliveryFromTime": "2026-09-17T13:00:00.000+00:00",
"DeliveryToTime": "2026-09-17T17:00:00.000+00:00"
}
[ProofOfPickupAdded]
Header: Event-Type: "proof_of_pickup_added"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "proof_of_pickup_added",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"POPImageUrl": "https://<blob-store-base-url>/<tenant-id>/pickup-signatures/CONTOSO123.png",
"CustomerName": "Jane Doe"
}[ReceivedOnPickupFromUpdated]
Header: Event-Type: "received_on_pickup_from_updated"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "received_on_pickup_from_updated",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"CustomerName": "Jane Doe"
}[ReceivedByUpdated]
Header: Event-Type: "received_by_updated"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "received_by_updated",
"Status": 4,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"CustomerName": "Jane Doe"
}[OrderAttachmentUploaded]
Header: Event-Type: "order_attachment_uploaded"
Body:
{
"OrderId": "CONTOSO123",
"Timestamp": "2026-09-16T14:35:02.118+00:00",
"EventType": "order_attachment_uploaded",
"Status": 2,
"Language": "en",
"AccountId": "my-account-id",
"FulfillmentType": 0,
"RouteId": null,
"AttachmentId": "f1e2d3c4-5b6a-4978-8e9f-0a1b2c3d4e5f",
"IsHighRes": false,
"MultiSegmentOrderId": null,
"FileName": "delivery_photo.jpg",
"AttachmentUrl": "https://<blob-store-base-url>/<tenant-id>/CONTOSO123/f1e2d3c4-5b6a-4978-8e9f-0a1b2c3d4e5f"
}
To test subscriptions, you can use a webhook test service such as these:
