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

# Khali daala

> An empty truck ahead, a return load found: the owner's side and the broker's side, through the key.

Khali daala is the return-load desk on Nazar. A fleet owner opens a card for a truck that will be empty at a place and a time; the card carries what the truck wants and how to reach the owner; a broker or a shipper who has the card's code writes an offer on it, and the offer lands on the owner's desk and nowhere else. There is no public board of empty trucks, on the site or in the API.

The API carries both sides.

## The owner's side

Every tier carries `khali:read`. The key's owner is the fleet's owner, and the gateway speaks to Nazar as them: only their own cards are visible, and only they can open, edit or close one.

| Resource                            | What it does                                                                                                                                                                                                                                                          |
| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GET /v1/khali`                     | Your trucks empty ahead, the cards open for a return load with what each shows, and the offers on each                                                                                                                                                                |
| `POST /v1/khali`                    | Open a card: `vehicle_id` (from `GET /v1/nazar/fleet`), `empty_place` and `from_at`, `home_place`, `body`, `payload_kg`, `wants`, the `contact_name` and `contact_phone` the card shows, `papers_ok` and `papers_note`, `partners` (whether partner desks may see it) |
| `PATCH /v1/khali/{id}`              | Edit a card: `wants`, the contact shown, `from_at`, `partners`                                                                                                                                                                                                        |
| `POST /v1/khali/{id}/close?reason=` | Close a card: `taken` when the load was found, `owner` when you changed your mind                                                                                                                                                                                     |
| `POST /v1/khali/offers/{id}/seen`   | Mark an offer as seen                                                                                                                                                                                                                                                 |

```json theme={"system"}
{ "vehicle_id": 412, "empty_place": "Nagpur", "from_at": "2026-09-24T14:00:00+05:30", "home_place": "Pune", "body": "container", "payload_kg": 25000, "wants": "any load towards Pune", "contact_name": "Rathod Roadlines", "contact_phone": "9876543210", "partners": true }
```

The answer is the card with its `code`. A fleet tool that knows when a delivery ends can open the card the moment the truck is empty; the owner's phone shows it as their own.

Your fleet's Khali events reach your webhooks on any key: `nazar.khali.opened` when a card opens and `nazar.khali.offer` when an offer lands. See [Webhooks](/guides/webhooks).

## The broker's side

Every tier carries `khali:offer`. A code reaches you from the owner or from a partner desk; there is no way to list cards.

| Resource                            | What it does                                                                                                                             |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `GET /v1/khali/card/{code}`         | The card, exactly as the owner chose to show it, with the truck's grades; the read is counted for the owner                              |
| `POST /v1/khali/card/{code}/offers` | An offer: `name`, `phone` and `load` are required; `from_place`, `to_place`, `on_date`, `tonnage_t`, `amount_inr` and `note` where known |

```json theme={"system"}
{ "name": "Sharma Logistics", "phone": "9123456780", "load": "cement, 24 t", "from_place": "Nagpur", "to_place": "Pune", "on_date": "2026-09-25", "tonnage_t": 24, "amount_inr": 42000 }
```

The offer lands on the owner's desk and nowhere else. The owner calls back; the API does not tell you whether an offer was seen or taken. An offer with a missing name, phone or load is refused with `400`.
