Mark a Delivery Done
Record that the van dropped a delivery booking off at the customer's address, or collected it at the end of the hire.
POST /v1/bookings/{id}/actions/deliver
POST /v1/bookings/{id}/actions/collect
These are the same as pressing Delivered or Collected on the Today screen, the delivery run sheet or the phone app, so every surface shows the same thing afterwards.
Authenticationโ
Requires a valid API key with bookings:write scope.
What each one doesโ
| Endpoint | Applies when | Result |
|---|---|---|
deliver | fulfillment_method is delivery | Sets delivery.delivered_at and marks the rental items picked_up |
collect | fulfillment_method is delivery and return_method is collection | Sets delivery.collected_at and marks the rental items returned |
- Calling either one again on a booking that is already marked is not an error. The first time stays.
- Each one adds a note to the booking history.
- If the items cannot move yet (an unfinished pre-departure check, for example), the time is still recorded and the booking
statusstays where it was. Readstatuson the response. - Picking up a delivery booking with
POST /v1/bookings/{id}/actions/pickupalso setsdelivered_at, and undoing that pickup withactions/revert-pickupclears it again.
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | Booking ID |
Request exampleโ
curl -X POST "https://app.equipdash.com/api/v1/bookings/123/actions/deliver" \
-H "Authorization: Bearer eqd_live_your_api_key"
Success responseโ
Returns 200 OK with the updated booking:
{
"data": {
"id": 123,
"status": "picked_up",
"fulfillment_method": "delivery",
"return_method": "collection",
"delivery": {
"delivered_at": "2026-10-06T09:12:00+00:00",
"collected_at": null
}
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-10-06T09:12:00+00:00"
}
}
Error: not a deliveryโ
{
"error": {
"code": "delivery_handover_failed",
"message": "This booking is a pickup, so there is nothing to deliver."
},
"meta": { "request_id": "req_abc123" }
}
Errorsโ
| Status | Code | Description |
|---|---|---|
404 | resource_not_found | The booking does not exist, or belongs to another supplier |
403 | insufficient_scope | The API key is missing bookings:write |
422 | delivery_handover_failed | The booking is a pickup, or (for collect) the customer brings it back themselves. The message says which |