Skip to main content

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โ€‹

EndpointApplies whenResult
deliverfulfillment_method is deliverySets delivery.delivered_at and marks the rental items picked_up
collectfulfillment_method is delivery and return_method is collectionSets 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 status stays where it was. Read status on the response.
  • Picking up a delivery booking with POST /v1/bookings/{id}/actions/pickup also sets delivered_at, and undoing that pickup with actions/revert-pickup clears it again.

Path Parametersโ€‹

ParameterTypeDescription
idintegerBooking 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โ€‹

StatusCodeDescription
404resource_not_foundThe booking does not exist, or belongs to another supplier
403insufficient_scopeThe API key is missing bookings:write
422delivery_handover_failedThe booking is a pickup, or (for collect) the customer brings it back themselves. The message says which