Skip to main content
Wasl sends a Status Update webhook to your registered endpoint whenever an order’s delivery status changes. This gives your integration real-time visibility into driver assignment, pickup, in-transit movement, and delivery completion — without needing to poll for updates. Use this event to keep your customers informed and to update your own order management records. The payload includes the driver’s current GPS coordinates and a tracking link. The tracking link points to pickup tracking until the driver collects the order, then automatically switches to delivery tracking once the order is picked up.
The completed_at field is an empty string ("") until the delivery is completed. Once complete, it contains the delivery timestamp. Check for an empty string rather than a null value.

Delivery Direction

This webhook is sent by Wasl to your server — you do not call this endpoint yourself.

Payload Fields

string
The full name of the driver assigned to this order.
string
The driver’s phone number, formatted with a country code (e.g. +965123321).
float
The driver’s current location latitude as a decimal degree value.
float
The driver’s current location longitude as a decimal degree value.
A URL your customers can use to track the order in real time. Points to pickup tracking before collection, and switches to delivery tracking once the order is picked up.
string
The UTC timestamp of delivery completion. Returns an empty string ("") if the delivery is not yet complete.
string
The Wasl-assigned order number for this delivery.
string
The order ID you provided when creating the order. Use this to match the event to your internal records.
integer
A numeric code representing the current delivery status of the order.
float
The delivery fee for this order.
float
The delivery distance in kilometres.
string
A secret token for verifying that the request originated from Wasl. Always validate this before processing the payload. See the Webhooks Overview for details.

Example Payload

Payload

Handling the Event

After validating the webhook_token, a typical handler will:
  1. Look up the order in your system using vendor_order_id.
  2. Update the order’s status to match order_status.
  3. Store or surface the tracking_link for the customer.
  4. If completed_at is non-empty, mark the order as delivered and record the completion time.
  5. Return HTTP 200 to acknowledge receipt.
Surface the tracking_link to your customers as soon as a driver is assigned. Real-time tracking significantly reduces support enquiries about delivery ETAs.