Skip to main content

Dashboard – Car rental reservations (v1)

Base path

/api/v1/workspace/:workspaceId/carrental

All endpoints require workspace JWT and staff permission carrental.manage.

Endpoints

MethodPathDescription
GET/:workspaceId/carrental/reservationsList reservations (query: status, branchId, vehicleId, from, to, page, limit).
GET/:workspaceId/carrental/reservations/:idGet reservation by ID.
POST/:workspaceId/carrental/reservationsCreate reservation (body: branchId, vehicleId, customerId, pickupAt, dropoffAt, pickupLocationType, dropoffLocationType, etc.).
POST/:workspaceId/carrental/reservations/:id/approveApprove (PENDING → APPROVED).
POST/:workspaceId/carrental/reservations/:id/rejectReject (PENDING → REJECTED).
POST/:workspaceId/carrental/reservations/:id/cancelCancel reservation.
POST/:workspaceId/carrental/reservations/:id/ready-for-deliveryMark ready for delivery (APPROVED → READY_FOR_DELIVERY).
POST/:workspaceId/carrental/reservations/:id/deliverDeliver (multipart: checkout handover – fuel, odometer, checklist, media, signatures).
POST/:workspaceId/carrental/reservations/:id/returnReturn (multipart: checkin handover + optional extra fees as ledger EXTRAS).
POST/:workspaceId/carrental/reservations/:id/completeComplete (RETURNED_PENDING_INSPECTION → COMPLETED).

Status transitions are enforced server-side; invalid transitions return 400 with a clear message.

Common errors

  • 400: Invalid status transition or validation failed.
  • 401: Unauthorized.
  • 403: Forbidden.
  • 404: Reservation or workspace not found.
  • 500: Server error.