Subscriptions and Order Webhooks

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: