> ## Documentation Index
> Fetch the complete documentation index at: https://help.bodharouteplanner.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Events

> Every event type your webhooks can subscribe to, with example payloads.

## Event types

| Event | Fired when |
| - | - |
| `route.created` | A new route is created |
| `route.updated` | A route's details change (name, schedule date, drivers) |
| `route.dispatched` | A route is dispatched to drivers |
| `route.completed` | All stops on a route are marked complete |
| `stop.completed` | A stop is completed successfully |
| `stop.failed` | A stop is marked as failed (undeliverable, refused, etc.) |
| `stop.updated` | A stop's details change |
| `order.created` | A new order enters the inbox |
| `order.updated` | An order's fields are modified |
| `driver.location_updated` | A driver's GPS location is updated |

***

## Payload examples

### route.dispatched

```json theme={null}
{
  "event": "route.dispatched",
  "timestamp": "2026-10-28T14:30:00.000Z",
  "data": {
    "id": "665f1a2b3c4d5e6f7a8b9c0d",
    "name": "North Bay AM",
    "scheduleDate": "2026-10-28",
    "status": "dispatched",
    "drivers": [
      { "id": "665f1a2b3c4d5e6f7a8b9c01", "name": "Alex Rivera" }
    ],
    "stopCount": 18,
    "createdAt": "2026-10-27T09:00:00.000Z",
    "updatedAt": "2026-10-28T14:30:00.000Z"
  }
}
```

### stop.completed

```json theme={null}
{
  "event": "stop.completed",
  "timestamp": "2026-10-28T15:12:00.000Z",
  "data": {
    "id": "665f1a2b3c4d5e6f7a8b9c0e",
    "type": "delivery",
    "status": "completed",
    "sequence": 3,
    "location": {
      "address": "456 Oak Ave, San Francisco, CA 94102",
      "latitude": 37.7751,
      "longitude": -122.4193
    },
    "recipient": {
      "fullName": "Jane Smith",
      "phone": "+14155551234"
    },
    "routeId": "665f1a2b3c4d5e6f7a8b9c0d",
    "orderIds": ["665f1a2b3c4d5e6f7a8b9c0f"],
    "completedAt": "2026-10-28T15:12:00.000Z"
  }
}
```

### order.created

```json theme={null}
{
  "event": "order.created",
  "timestamp": "2026-10-28T10:30:00.000Z",
  "data": {
    "id": "665f1a2b3c4d5e6f7a8b9c0f",
    "source": "api",
    "externalOrderId": "ORD-2026-1043",
    "status": "ready",
    "recipient": {
      "fullName": "Jane Smith"
    },
    "location": {
      "address": "456 Oak Ave, San Francisco, CA 94102",
      "latitude": 37.7751,
      "longitude": -122.4193
    },
    "createdAt": "2026-10-28T10:30:00.000Z"
  }
}
```

### driver.location\_updated

```json theme={null}
{
  "event": "driver.location_updated",
  "timestamp": "2026-10-28T15:05:00.000Z",
  "data": {
    "driverId": "665f1a2b3c4d5e6f7a8b9c01",
    "name": "Alex Rivera",
    "latitude": 37.7821,
    "longitude": -122.4055,
    "heading": 270,
    "speed": 12.5,
    "recordedAt": "2026-10-28T15:05:00.000Z"
  }
}
```

> [!WARNING]
>
> The `driver.location_updated` event fires frequently — potentially every
> few seconds per active driver. Only subscribe if you need real-time
> tracking; otherwise query the Routes API for last-known positions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.