API reference
The complete operator API surface. Each endpoint can be called live against the sandbox (api-dev) — set your Client ID and a token once in the Try-it dialog and it persists as you browse. Request bodies are pre-filled from the schema; edit before sending.
477 operations across 13 domains. Click Try it on any endpoint to call it against the sandbox — set your Client ID and token once (top of the dialog) and it persists as you browse.
Fleet 112
GET /client/{clientId}/customer/{customerId}/drivercustomer List drivercustomer POST /client/{clientId}/customer/{customerId}/drivercustomer Create drivercustomer DELETE /client/{clientId}/customer/{customerId}/drivercustomer/{prefId} Delete drivercustomer POST /client/{clientId}/customer/{customerId}/drivercustomer/{prefId} Update drivercustomer PUT /client/{clientId}/customer/{customerId}/drivercustomer/{prefId} Update drivercustomer GET /client/{clientId}/driver List driver POST /client/{clientId}/driver Create driver GET /client/{clientId}/driver/{driverId} Get driver POST /client/{clientId}/driver/{driverId} Update driver PUT /client/{clientId}/driver/{driverId} Update driver DELETE /client/{clientId}/driver/{driverId}/clientcapability/{capabilityId} Delete clientcapability POST /client/{clientId}/driver/{driverId}/clientcapability/{capabilityId} Update clientcapability PUT /client/{clientId}/driver/{driverId}/clientcapability/{capabilityId} Update clientcapability GET /client/{clientId}/driver/{driverId}/drivercustomer List drivercustomer POST /client/{clientId}/driver/{driverId}/drivercustomer Create drivercustomer DELETE /client/{clientId}/driver/{driverId}/drivercustomer/{prefId} Delete drivercustomer POST /client/{clientId}/driver/{driverId}/drivercustomer/{prefId} Update drivercustomer PUT /client/{clientId}/driver/{driverId}/drivercustomer/{prefId} Update drivercustomer GET /client/{clientId}/driver/{driverId}/driverdocument List driverdocument POST /client/{clientId}/driver/{driverId}/driverdocument Create driverdocument GET /client/{clientId}/driver/{driverId}/driverdocument/{driverdocumentId} Get driverdocument POST /client/{clientId}/driver/{driverId}/driverdocument/{driverdocumentId} Update driverdocument PUT /client/{clientId}/driver/{driverId}/driverdocument/{driverdocumentId} Update driverdocument GET /client/{clientId}/driver/{driverId}/driverdocument/search List search GET /client/{clientId}/driver/{driverId}/driverscp List driverscp POST /client/{clientId}/driver/{driverId}/driverscp Create driverscp DELETE /client/{clientId}/driver/{driverId}/driverscp/{prefId} Delete driverscp POST /client/{clientId}/driver/{driverId}/driverscp/{prefId} Update driverscp PUT /client/{clientId}/driver/{driverId}/driverscp/{prefId} Update driverscp DELETE /client/{clientId}/driver/{driverId}/fleet/{fleetId} Delete fleet POST /client/{clientId}/driver/{driverId}/fleet/{fleetId} Update fleet PUT /client/{clientId}/driver/{driverId}/fleet/{fleetId} Update fleet DELETE /client/{clientId}/driver/{driverId}/vehicle/{vehicleId} Delete vehicle POST /client/{clientId}/driver/{driverId}/vehicle/{vehicleId} Update vehicle PUT /client/{clientId}/driver/{driverId}/vehicle/{vehicleId} Update vehicle GET /client/{clientId}/driver/me/eligible-vehicles Vehicles the authenticated driver may start a shift on. POST /client/{clientId}/driver/me/end-shift End the current shift. GET /client/{clientId}/driver/me/messages The driver own inbox plus their paired vehicle inbox. POST /client/{clientId}/driver/me/messages/{id}/read Mark one of the driver messages as read. PUT /client/{clientId}/driver/me/messages/{id}/read Mark one of the driver messages as read. POST /client/{clientId}/driver/me/start-shift Start a shift, pairing the driver to a vehicle. GET /client/{clientId}/driver/me/surge Active surge clusters the driver can join, and their own standing. POST /client/{clientId}/driver/me/surge/subscribe Opt into a surge pool (enrol, open mode, first declare). POST /client/{clientId}/driver/me/surge/unsubscribe Opt out of a surge pool. GET /client/{clientId}/drivercustomer List drivercustomer POST /client/{clientId}/drivercustomer Create drivercustomer DELETE /client/{clientId}/drivercustomer/{prefId} Delete drivercustomer GET /client/{clientId}/drivercustomer/{prefId} Get drivercustomer POST /client/{clientId}/drivercustomer/{prefId} Update drivercustomer PUT /client/{clientId}/drivercustomer/{prefId} Update drivercustomer GET /client/{clientId}/driverdocument List driverdocument POST /client/{clientId}/driverdocument Create driverdocument GET /client/{clientId}/driverdocument/{driverdocumentId} Get driverdocument POST /client/{clientId}/driverdocument/{driverdocumentId} Update driverdocument PUT /client/{clientId}/driverdocument/{driverdocumentId} Update driverdocument GET /client/{clientId}/driverdocument/search List search GET /client/{clientId}/driverscp List driverscp POST /client/{clientId}/driverscp Create driverscp DELETE /client/{clientId}/driverscp/{prefId} Delete driverscp GET /client/{clientId}/driverscp/{prefId} Get driverscp POST /client/{clientId}/driverscp/{prefId} Update driverscp PUT /client/{clientId}/driverscp/{prefId} Update driverscp GET /client/{clientId}/fleet/{fleetId} Get fleet POST /client/{clientId}/fleet/{fleetId} Update fleet PUT /client/{clientId}/fleet/{fleetId} Update fleet DELETE /client/{clientId}/fleet/{fleetId}/brand/{brandId} Delete brand POST /client/{clientId}/fleet/{fleetId}/brand/{brandId} Update brand PUT /client/{clientId}/fleet/{fleetId}/brand/{brandId} Update brand DELETE /client/{clientId}/fleet/{fleetId}/queue/{queueId} Delete queue POST /client/{clientId}/fleet/{fleetId}/queue/{queueId} Update queue PUT /client/{clientId}/fleet/{fleetId}/queue/{queueId} Update queue GET /client/{clientId}/fleetgroup/{fleetGroupId} Get fleetgroup POST /client/{clientId}/fleetgroup/{fleetGroupId} Update fleetgroup PUT /client/{clientId}/fleetgroup/{fleetGroupId} Update fleetgroup GET /client/{clientId}/scp/{scpId}/driverscp List driverscp POST /client/{clientId}/scp/{scpId}/driverscp Create driverscp DELETE /client/{clientId}/scp/{scpId}/driverscp/{prefId} Delete driverscp POST /client/{clientId}/scp/{scpId}/driverscp/{prefId} Update driverscp PUT /client/{clientId}/scp/{scpId}/driverscp/{prefId} Update driverscp GET /client/{clientId}/vehicle/{vehicleId} Get vehicle POST /client/{clientId}/vehicle/{vehicleId} Update vehicle PUT /client/{clientId}/vehicle/{vehicleId} Update vehicle DELETE /client/{clientId}/vehicle/{vehicleId}/clientcapability/{clientCapabilityId} Delete clientcapability POST /client/{clientId}/vehicle/{vehicleId}/clientcapability/{clientCapabilityId} Update clientcapability PUT /client/{clientId}/vehicle/{vehicleId}/clientcapability/{clientCapabilityId} Update clientcapability DELETE /client/{clientId}/vehicle/{vehicleId}/driver/{driverId} Delete driver POST /client/{clientId}/vehicle/{vehicleId}/driver/{driverId} Update driver PUT /client/{clientId}/vehicle/{vehicleId}/driver/{driverId} Update driver DELETE /client/{clientId}/vehicle/{vehicleId}/fleet/{fleetId} Delete fleet POST /client/{clientId}/vehicle/{vehicleId}/fleet/{fleetId} Update fleet PUT /client/{clientId}/vehicle/{vehicleId}/fleet/{fleetId} Update fleet GET /client/{clientId}/vehicle/{vehicleId}/vehicledocument List vehicledocument POST /client/{clientId}/vehicle/{vehicleId}/vehicledocument Create vehicledocument GET /client/{clientId}/vehicle/{vehicleId}/vehicledocument/{vehicledocumentId} Get vehicledocument POST /client/{clientId}/vehicle/{vehicleId}/vehicledocument/{vehicledocumentId} Update vehicledocument PUT /client/{clientId}/vehicle/{vehicleId}/vehicledocument/{vehicledocumentId} Update vehicledocument GET /client/{clientId}/vehicle/{vehicleId}/vehicledocument/search List search GET /client/{clientId}/vehicledocument List vehicledocument POST /client/{clientId}/vehicledocument Create vehicledocument GET /client/{clientId}/vehicledocument/{vehicledocumentId} Get vehicledocument POST /client/{clientId}/vehicledocument/{vehicledocumentId} Update vehicledocument PUT /client/{clientId}/vehicledocument/{vehicledocumentId} Update vehicledocument GET /client/{clientId}/vehicledocument/search List search GET /client/{clientId}/vehicleowner/{vehicleOwnerId} Get vehicleowner POST /client/{clientId}/vehicleowner/{vehicleOwnerId} Update vehicleowner PUT /client/{clientId}/vehicleowner/{vehicleOwnerId} Update vehicleowner GET /client/{clientId}/vehicletype/{vehicleTypeId} Get vehicletype POST /client/{clientId}/vehicletype/{vehicleTypeId} Update vehicletype PUT /client/{clientId}/vehicletype/{vehicleTypeId} Update vehicletype DELETE /client/{clientId}/vehicletype/{vehicleTypeId}/clientcapability/{clientCapabilityId} Delete clientcapability POST /client/{clientId}/vehicletype/{vehicleTypeId}/clientcapability/{clientCapabilityId} Update clientcapability PUT /client/{clientId}/vehicletype/{vehicleTypeId}/clientcapability/{clientCapabilityId} Update clientcapability Trip 81
GET /client/{clientId}/health/alerts Get active health alerts sorted by severity then age. POST /client/{clientId}/health/alerts/{alertId}/resolve Resolve a single health alert. POST /client/{clientId}/health/alerts/bulk-resolve Bulk resolve multiple health alerts with the same resolution. GET /client/{clientId}/health/summary Get health summary — traffic light counts. POST /client/{clientId}/health/trip/{tripId}/mute Mute all health alerts for a specific trip. POST /client/{clientId}/health/trip/{tripId}/unmute Unmute health alerts for a specific trip. GET /client/{clientId}/notifications/badges Operator notification badge counts (unread messages + health pressure). GET /client/{clientId}/quote List quote GET /client/{clientId}/quote/{quoteId} Get quote POST /client/{clientId}/quote/check Create check POST /client/{clientId}/quote/trip Create trip GET /client/{clientId}/rejected-trip List rejected trip GET /client/{clientId}/scheduleexclusiongroup List scheduleexclusiongroup POST /client/{clientId}/scheduleexclusiongroup Create scheduleexclusiongroup DELETE /client/{clientId}/scheduleexclusiongroup/{id} Delete scheduleexclusiongroup GET /client/{clientId}/scheduleexclusiongroup/{id} Get scheduleexclusiongroup POST /client/{clientId}/scheduleexclusiongroup/{id} Update scheduleexclusiongroup PUT /client/{clientId}/scheduleexclusiongroup/{id} Update scheduleexclusiongroup GET /client/{clientId}/traffic/corridors Observed traffic corridors. GET /client/{clientId}/traffic/heatmap Traffic-correction heatmap over an area. GET /client/{clientId}/trip List trip POST /client/{clientId}/trip Create trip GET /client/{clientId}/trip/{tripId} Get trip POST /client/{clientId}/trip/{tripId} Update trip POST /client/{clientId}/trip/{tripId}/assign/{transporterId} Update assign POST /client/{clientId}/trip/{tripId}/copy Create copy DELETE /client/{clientId}/trip/{tripId}/designate Delete designate POST /client/{clientId}/trip/{tripId}/designate Create designate GET /client/{clientId}/trip/{tripId}/dispatch-audit/{transporterId} Get dispatch audit GET /client/{clientId}/trip/{tripId}/dispatch-log List dispatch log GET /client/{clientId}/trip/{tripId}/dossier List dossier POST /client/{clientId}/trip/{tripId}/edit/release Release the soft edit-mode lock. Idempotent — calling it on a trip
that isn't in edit mode is a no-op success. FE calls this on close /
cancel-without-save; if it never lands (network failure, FE crash) the
timestamp auto-expires after EDIT_MODE_BUFFER_SECONDS so background
writers aren't permanently blocked. POST /client/{clientId}/trip/{tripId}/guard-override Create guard override GET /client/{clientId}/trip/{tripId}/guard-status List guard status GET /client/{clientId}/trip/{tripId}/health List health POST /client/{clientId}/trip/{tripId}/health/resolve Create resolve GET /client/{clientId}/trip/{tripId}/logs List logs POST /client/{clientId}/trip/{tripId}/merge/candidates Create candidates GET /client/{clientId}/trip/{tripId}/pricing-preview Projected TripCharge rows for a trip, computed via the same
resolver + calculator path as the persisted billing flow at trip
completion. Nothing is written. POST /client/{clientId}/trip/{tripId}/reclaim Create reclaim GET /client/{clientId}/trip/{tripId}/schedule List schedule GET /client/{clientId}/trip/{tripId}/schedule_plan List schedule plan POST /client/{clientId}/trip/{tripId}/schedule_plan Create schedule plan GET /client/{clientId}/trip/{tripId}/schedule/{tripScheduleId} Get schedule POST /client/{clientId}/trip/{tripId}/schedule/{tripScheduleId} Update schedule POST /client/{clientId}/trip/{tripId}/status Create status DELETE /client/{clientId}/trip/{tripId}/tripsegment Delete tripsegment GET /client/{clientId}/trip/{tripId}/tripsegment List tripsegment HEAD /client/{clientId}/trip/{tripId}/tripsegment Access tripsegment OPTIONS /client/{clientId}/trip/{tripId}/tripsegment Access tripsegment PATCH /client/{clientId}/trip/{tripId}/tripsegment Update tripsegment POST /client/{clientId}/trip/{tripId}/tripsegment Create tripsegment PUT /client/{clientId}/trip/{tripId}/tripsegment Update tripsegment TRACE /client/{clientId}/trip/{tripId}/tripsegment Access tripsegment DELETE /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId} Delete tripsegment GET /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId} Get tripsegment POST /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId} Update tripsegment POST /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId}/copy Create copy POST /client/{clientId}/trip/{tripId}/tripsegment/{tripSegmentId}/promote Create promote GET /client/{clientId}/trip/{tripId}/work List work POST /client/{clientId}/trip/{tripId}/work Create work GET /client/{clientId}/trip/count List count POST /client/{clientId}/trip/merge Create merge POST /client/{clientId}/trip/merge/analyze Create analyze GET /client/{clientId}/trip/optimizable Slim trip data for the optimizer service. GET /client/{clientId}/trip/optimizable-accounts Returns accounts that have opted into automated merge optimization. GET /client/{clientId}/trip/sync List sync DELETE /client/{clientId}/tripprofile/{tripProfileId} Delete tripprofile GET /client/{clientId}/tripprofile/{tripProfileId} Get tripprofile POST /client/{clientId}/tripprofile/{tripProfileId} Update tripprofile PUT /client/{clientId}/tripprofile/{tripProfileId} Update tripprofile POST /client/{clientId}/tripsegment/{tripSegmentId}/capture Capture the segment's preauth (full or partial). Optional body
`{ "amountToCapture": int }`. When omitted, captures the full
preauthorised amount. DELETE /client/{clientId}/tripsegment/{tripSegmentId}/clientcapability/{clientCapabilityId} Delete clientcapability PUT /client/{clientId}/tripsegment/{tripSegmentId}/clientcapability/{clientCapabilityId} Update clientcapability POST /client/{clientId}/tripsegment/{tripSegmentId}/dropoff-verify Operator manual override for SCP dropoff verification — used when the
driver-side PIN flow can't complete (driver app down, phone dead,
legitimate edge case). Idempotent: re-verifying is a no-op. Sets
`dropoff_verified_at` to now and `dropoff_verified_by` to the acting
user for audit. Driver-side PIN entry ships in PR5b; until then this
endpoint is the only verification path. POST /client/{clientId}/tripsegment/{tripSegmentId}/preauth Create a card preauth for the segment using the upstream processor. POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/arrived Create arrived POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/call-customer Record a call attempt to the customer for this stop. POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/cancel Create cancel POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/finished Create finished POST /client/{clientId}/tripsegmentstop/{tripSegmentStopId}/noshow Create noshow Customer 55
GET /client/{clientId}/account/{accountId}/customer/{customerId} Get customer POST /client/{clientId}/brand/{brandId}/customer Create customer GET /client/{clientId}/brand/{brandId}/customer/{customerId} Get customer POST /client/{clientId}/brand/{brandId}/customer/{customerId} Update customer GET /client/{clientId}/brand/{brandId}/customer/{customerId}/addresses List addresses DELETE /client/{clientId}/customer-payment-method/{paymentMethodId} Soft-delete — sets `deletedAt` rather than removing the row, so
historical TripPreAuth.processorRef references stay intact. GET /client/{clientId}/customer-payment-method/{paymentMethodId} Get customer payment method POST /client/{clientId}/customer-payment-method/{paymentMethodId} Update — primarily used to flip `isDefault`. Setting it to true
clears the flag on every other active method for the same customer. PUT /client/{clientId}/customer-payment-method/{paymentMethodId} Update — primarily used to flip `isDefault`. Setting it to true
clears the flag on every other active method for the same customer. GET /client/{clientId}/customer/{customerId} Get customer POST /client/{clientId}/customer/{customerId} Update customer PUT /client/{clientId}/customer/{customerId} Update customer DELETE /client/{clientId}/customer/{customerId}/account/{accountId} Delete account POST /client/{clientId}/customer/{customerId}/account/{accountId} Update account PUT /client/{clientId}/customer/{customerId}/account/{accountId} Update account DELETE /client/{clientId}/customer/{customerId}/accountdepartment/{accountDepartmentId} Delete accountdepartment POST /client/{clientId}/customer/{customerId}/accountdepartment/{accountDepartmentId} Update accountdepartment PUT /client/{clientId}/customer/{customerId}/accountdepartment/{accountDepartmentId} Update accountdepartment GET /client/{clientId}/customer/{customerId}/addresses List addresses POST /client/{clientId}/customer/{customerId}/brand/{brandId} Update brand PUT /client/{clientId}/customer/{customerId}/brand/{brandId} Update brand DELETE /client/{clientId}/customer/{customerId}/clientcapability/{capabilityId} Delete clientcapability POST /client/{clientId}/customer/{customerId}/clientcapability/{capabilityId} Update clientcapability PUT /client/{clientId}/customer/{customerId}/clientcapability/{capabilityId} Update clientcapability GET /client/{clientId}/customer/{customerId}/payment-method List active (not soft-deleted) payment methods for a customer,
default first. Used by the operator picker in go-front and by the
customer-sim post-registration to confirm. POST /client/{clientId}/customer/{customerId}/payment-method Register a new tokenised card against a customer. Caller has
already obtained the token from the processor (customer-sim →
mockpay) and is now persisting the reference. GET /client/{clientId}/customer/{customerId}/scp List scp GET /client/{clientId}/customer/{customerId}/scpcustomer List scpcustomer POST /client/{clientId}/customer/{customerId}/scpcustomer Create scpcustomer DELETE /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Delete scpcustomer GET /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Get scpcustomer POST /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Update scpcustomer PUT /client/{clientId}/customer/{customerId}/scpcustomer/{linkId} Update scpcustomer GET /client/{clientId}/customer/{customerId}/tag List tag DELETE /client/{clientId}/customer/{customerId}/tag/{tagName} Delete tag POST /client/{clientId}/customer/{customerId}/tag/{tagName} Update tag GET /client/{clientId}/customer/phone List phone GET /client/{clientId}/scp List scp POST /client/{clientId}/scp The Request argument is injected per-action (not via constructor) so the
payload is always fresh. The shared BaseController cached its first
request body in `__construct`, which broke any test that sent two POSTs
to the same controller instance. DELETE /client/{clientId}/scp/{scpId} Delete scp GET /client/{clientId}/scp/{scpId} Get scp POST /client/{clientId}/scp/{scpId} Update scp PUT /client/{clientId}/scp/{scpId} Update scp GET /client/{clientId}/scp/{scpId}/scpcustomer List scpcustomer POST /client/{clientId}/scp/{scpId}/scpcustomer Create scpcustomer DELETE /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Delete scpcustomer GET /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Get scpcustomer POST /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Update scpcustomer PUT /client/{clientId}/scp/{scpId}/scpcustomer/{linkId} Update scpcustomer GET /client/{clientId}/scpcustomer List scpcustomer POST /client/{clientId}/scpcustomer Create scpcustomer DELETE /client/{clientId}/scpcustomer/{linkId} Delete scpcustomer GET /client/{clientId}/scpcustomer/{linkId} Get scpcustomer POST /client/{clientId}/scpcustomer/{linkId} Update scpcustomer PUT /client/{clientId}/scpcustomer/{linkId} Update scpcustomer Account 54
GET /client/{clientId}/account/{accountId} Get account POST /client/{clientId}/account/{accountId} Update account PUT /client/{clientId}/account/{accountId} Update account GET /client/{clientId}/account/{accountId}/accountdepartment List accountdepartment POST /client/{clientId}/account/{accountId}/accountdepartment Create accountdepartment POST /client/{clientId}/account/{accountId}/accountdepartment/{accountdepartmentId} Update accountdepartment GET /client/{clientId}/account/{accountId}/accountdepartment/{accountDepartmentId}/accountemployee List accountemployee GET /client/{clientId}/account/{accountId}/accountemployee List accountemployee POST /client/{clientId}/account/{accountId}/accountemployee Create accountemployee GET /client/{clientId}/account/{accountId}/accountemployee/{accountEmployeeId} Get accountemployee POST /client/{clientId}/account/{accountId}/accountemployee/{accountEmployeeId} Update accountemployee GET /client/{clientId}/account/{accountId}/accountfield List accountfield POST /client/{clientId}/account/{accountId}/accountfield Create accountfield DELETE /client/{clientId}/account/{accountId}/accountfield/{accountfieldId} Delete accountfield POST /client/{clientId}/account/{accountId}/accountfield/{accountfieldId} Update accountfield POST /client/{clientId}/account/{accountId}/brand/{brandId} Update brand PUT /client/{clientId}/account/{accountId}/brand/{brandId} Update brand DELETE /client/{clientId}/account/{accountId}/clientcapability/{capabilityId} Delete clientcapability POST /client/{clientId}/account/{accountId}/clientcapability/{capabilityId} Update clientcapability PUT /client/{clientId}/account/{accountId}/clientcapability/{capabilityId} Update clientcapability GET /client/{clientId}/account/{accountId}/tag List tag DELETE /client/{clientId}/account/{accountId}/tag/{tagName} Delete tag POST /client/{clientId}/account/{accountId}/tag/{tagName} Update tag GET /client/{clientId}/account/search List search GET /client/{clientId}/accountdepartment List accountdepartment POST /client/{clientId}/accountdepartment Create accountdepartment GET /client/{clientId}/accountdepartment/{accountdepartmentId} Get accountdepartment POST /client/{clientId}/accountdepartment/{accountdepartmentId} Update accountdepartment PUT /client/{clientId}/accountdepartment/{accountdepartmentId} Update accountdepartment GET /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee List accountemployee POST /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee Create accountemployee DELETE /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Delete accountemployee GET /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Get accountemployee POST /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Update accountemployee PUT /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} Update accountemployee POST /client/{clientId}/accountdepartment/{accountdepartmentId}/brand/{brandId} Update brand PUT /client/{clientId}/accountdepartment/{accountdepartmentId}/brand/{brandId} Update brand DELETE /client/{clientId}/accountdepartment/{accountdepartmentId}/clientcapability/{capabilityId} Delete clientcapability POST /client/{clientId}/accountdepartment/{accountdepartmentId}/clientcapability/{capabilityId} Update clientcapability PUT /client/{clientId}/accountdepartment/{accountdepartmentId}/clientcapability/{capabilityId} Update clientcapability GET /client/{clientId}/accountemployee List accountemployee POST /client/{clientId}/accountemployee Create accountemployee GET /client/{clientId}/accountemployee/{accountEmployeeId} Get accountemployee POST /client/{clientId}/accountemployee/{accountEmployeeId} Update accountemployee DELETE /client/{clientId}/accountemployee/{accountEmployeeId}/accountdepartment/{accountDepartmentId} Delete accountdepartment PUT /client/{clientId}/accountemployee/{accountEmployeeId}/accountdepartment/{accountDepartmentId} Update accountdepartment GET /client/{clientId}/accountfield List accountfield POST /client/{clientId}/accountfield Create accountfield DELETE /client/{clientId}/accountfield/{accountfieldId} Delete accountfield GET /client/{clientId}/accountfield/{accountfieldId} Get accountfield POST /client/{clientId}/accountfield/{accountfieldId} Update accountfield PUT /client/{clientId}/accountfield/{accountfieldId} Update accountfield GET /client/{clientId}/brand/{brandId}/accountdepartment/{accountdepartmentId} Get accountdepartment POST /client/{clientId}/brand/{brandId}/accountdepartment/{accountdepartmentId} Update accountdepartment Pricing 50
DELETE /client/{clientId}/modifierinstruction/{instructionId}/tariffband/{tariffbandId} Detach a tariff band from a modifier instruction. POST /client/{clientId}/modifierinstruction/{instructionId}/tariffband/{tariffbandId} Attach a tariff band to a modifier instruction. PUT /client/{clientId}/modifierinstruction/{instructionId}/tariffband/{tariffbandId} Attach a tariff band to a modifier instruction. GET /client/{clientId}/ridesharediscountmodel List ridesharediscountmodel POST /client/{clientId}/ridesharediscountmodel Create ridesharediscountmodel DELETE /client/{clientId}/ridesharediscountmodel/{id} Delete ridesharediscountmodel GET /client/{clientId}/ridesharediscountmodel/{id} Get ridesharediscountmodel POST /client/{clientId}/ridesharediscountmodel/{id} Update ridesharediscountmodel PUT /client/{clientId}/ridesharediscountmodel/{id} Update ridesharediscountmodel GET /client/{clientId}/singlepricedsharediscountmodel List singlepricedsharediscountmodel POST /client/{clientId}/singlepricedsharediscountmodel Create singlepricedsharediscountmodel DELETE /client/{clientId}/singlepricedsharediscountmodel/{id} Delete singlepricedsharediscountmodel GET /client/{clientId}/singlepricedsharediscountmodel/{id} Get singlepricedsharediscountmodel POST /client/{clientId}/singlepricedsharediscountmodel/{id} Update singlepricedsharediscountmodel PUT /client/{clientId}/singlepricedsharediscountmodel/{id} Update singlepricedsharediscountmodel GET /client/{clientId}/tariff/{tariffId} Get tariff POST /client/{clientId}/tariff/{tariffId} Update tariff PUT /client/{clientId}/tariff/{tariffId} Update tariff POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId} Update modifier PUT /client/{clientId}/tariff/{tariffId}/modifier/{modifierId} Update modifier DELETE /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifiergroup/{modifierGroupId} Delete modifiergroup POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifiergroup/{modifierGroupId} Update modifiergroup PUT /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifiergroup/{modifierGroupId} Update modifiergroup GET /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction List the price-column instructions inside a modifier. POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction Create a price-column instruction inside a modifier. DELETE /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction/{instructionId} Delete a price-column instruction. POST /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction/{instructionId} Update a price-column instruction. PUT /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/modifierinstruction/{instructionId} Update a price-column instruction. GET /client/{clientId}/tariff/{tariffId}/modifier/{modifierId}/tariffband List the tariff bands an instruction in this modifier may be attached to. POST /client/{clientId}/tariff/{tariffId}/modifiergroup Create modifiergroup PUT /client/{clientId}/tariff/{tariffId}/modifiergroup Update modifiergroup DELETE /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId} Delete modifiergroup POST /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId} Update modifiergroup PUT /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId} Update modifiergroup POST /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId}/modifier Create modifier PUT /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId}/modifier Update modifier DELETE /client/{clientId}/tariff/{tariffId}/modifiergroup/{modifierGroupId}/modifier/{modifierId} Delete modifier GET /client/{clientId}/tariff/{tariffId}/tariffband List the stepped pricing bands attached to a tariff. POST /client/{clientId}/tariff/{tariffId}/tariffband Create a tariff band (its threshold is auto-set above the current highest band). DELETE /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Delete a tariff band and regenerate the remaining band reference labels. GET /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Get a single tariff band. POST /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Update a tariff band (rejects a threshold that collides with another band). PUT /client/{clientId}/tariff/{tariffId}/tariffband/{tariffbandId} Update a tariff band (rejects a threshold that collides with another band). DELETE /client/{clientId}/tariff/{tariffId}/vehicletype/{vehicleTypeId} Detach a vehicle type from the tariff. POST /client/{clientId}/tariff/{tariffId}/vehicletype/{vehicleTypeId} Attach a vehicle type to the tariff (so the tariff is eligible to price it). PUT /client/{clientId}/tariff/{tariffId}/vehicletype/{vehicleTypeId} Attach a vehicle type to the tariff (so the tariff is eligible to price it). GET /client/{clientId}/tariff/test/{tripSegmentId} Get test GET /client/{clientId}/taxcategory/{taxCategoryId} Get taxcategory POST /client/{clientId}/taxcategory/{taxCategoryId} Update taxcategory PUT /client/{clientId}/taxcategory/{taxCategoryId} Update taxcategory Dispatch 45
POST /client/{clientId}/backupqueuegroup Create backupqueuegroup DELETE /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Delete backupqueuegroup GET /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Get backupqueuegroup POST /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Update backupqueuegroup PUT /client/{clientId}/backupqueuegroup/{backupQueueGroupId} Update backupqueuegroup DELETE /client/{clientId}/backupqueuegroup/{backupQueueGroupId}/queue/{queueId} Delete queue POST /client/{clientId}/backupqueuegroup/{backupQueueGroupId}/queue/{queueId} Update queue PUT /client/{clientId}/backupqueuegroup/{backupQueueGroupId}/queue/{queueId} Update queue POST /client/{clientId}/backupzonegroup Create backupzonegroup DELETE /client/{clientId}/backupzonegroup/{backupZoneGroupId} Delete backupzonegroup GET /client/{clientId}/backupzonegroup/{backupZoneGroupId} Get backupzonegroup POST /client/{clientId}/backupzonegroup/{backupZoneGroupId} Update backupzonegroup PUT /client/{clientId}/backupzonegroup/{backupZoneGroupId} Update backupzonegroup POST /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule Create rule DELETE /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule/{ruleId} Delete rule POST /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule/{ruleId} Update rule PUT /client/{clientId}/backupzonegroup/{backupZoneGroupId}/rule/{ruleId} Update rule DELETE /client/{clientId}/backupzonegroup/{backupZoneGroupId}/zone/{zoneId} Delete zone POST /client/{clientId}/backupzonegroup/{backupZoneGroupId}/zone/{zoneId} Update zone PUT /client/{clientId}/backupzonegroup/{backupZoneGroupId}/zone/{zoneId} Update zone DELETE /client/{clientId}/backupzonegroup/rule/{ruleId}/tripprofile/{tripProfileId} Delete tripprofile POST /client/{clientId}/backupzonegroup/rule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile PUT /client/{clientId}/backupzonegroup/rule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile POST /client/{clientId}/backupzonegrouprule Create backupzonegrouprule DELETE /client/{clientId}/backupzonegrouprule/{ruleId} Delete backupzonegrouprule GET /client/{clientId}/backupzonegrouprule/{ruleId} Get backupzonegrouprule POST /client/{clientId}/backupzonegrouprule/{ruleId} Update backupzonegrouprule PUT /client/{clientId}/backupzonegrouprule/{ruleId} Update backupzonegrouprule POST /client/{clientId}/backupzonegrouprule/{ruleId}/decrease-priority Create decrease priority POST /client/{clientId}/backupzonegrouprule/{ruleId}/increase-priority Create increase priority DELETE /client/{clientId}/backupzonegrouprule/{ruleId}/tripprofile/{tripProfileId} Delete tripprofile POST /client/{clientId}/backupzonegrouprule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile PUT /client/{clientId}/backupzonegrouprule/{ruleId}/tripprofile/{tripProfileId} Update tripprofile GET /client/{clientId}/queue/{queueId} Get queue POST /client/{clientId}/queue/{queueId} Update queue PUT /client/{clientId}/queue/{queueId} Update queue DELETE /client/{clientId}/queue/{queueId}/fleet/{fleetId} Delete fleet POST /client/{clientId}/queue/{queueId}/fleet/{fleetId} Update fleet PUT /client/{clientId}/queue/{queueId}/fleet/{fleetId} Update fleet POST /client/{clientId}/queue/{queueId}/modify_column_priority Create modify column priority PUT /client/{clientId}/queue/{queueId}/modify_column_priority Update modify column priority GET /client/{clientId}/zone/{zoneId} Get zone POST /client/{clientId}/zone/{zoneId} Update zone PUT /client/{clientId}/zone/{zoneId} Update zone GET /client/{clientId}/zone/grouping List grouping Transporter 23
GET /client/{clientId}/transporter/{transporterId} Get transporter POST /client/{clientId}/transporter/{transporterId} Update transporter PUT /client/{clientId}/transporter/{transporterId} Update transporter POST /client/{clientId}/transporter/{transporterId}/force-end-shift Operator force-end-shift action from the Live Shifts board. Tears down the
pairing via the shared EndShiftService (status OFFLINE, driver unpaired,
audited). Operator-only. GET /client/{clientId}/transporter/{transporterId}/locationhistory List locationhistory POST /client/{clientId}/transporter/{transporterId}/offer/{offerId}/accept Create accept POST /client/{clientId}/transporter/{transporterId}/offer/{offerId}/reject Create reject GET /client/{clientId}/transporter/{transporterId}/prebookings List prebookings POST /client/{clientId}/transporter/{transporterId}/prompt/{promptId}/respond Respond to a driver prompt (health check question). GET /client/{clientId}/transporter/{transporterId}/session List session POST /client/{clientId}/transporter/{transporterId}/session/locations Create locations POST /client/{clientId}/transporter/{transporterId}/session/state Create state PUT /client/{clientId}/transporter/{transporterId}/session/state Update state DELETE /client/{clientId}/transporter/{transporterId}/session/zone Delete zone POST /client/{clientId}/transporter/{transporterId}/session/zone/{zoneId} Update zone DELETE /client/{clientId}/transporter/{transporterId}/staging/{tripId} Unstage a previously staged pre-booking trip. POST /client/{clientId}/transporter/{transporterId}/staging/{tripId} Stage a pre-booking trip for this transporter. POST /client/{clientId}/transporter/{transporterId}/staging/{tripId}/confirm Confirm a staged pre-booking trip. Must be called within the confirm window
(releaseDate - confirm_before_release_seconds to releaseDate). POST /client/{clientId}/transporter/{transporterId}/trip/{tripId}/accept Create accept POST /client/{clientId}/transporter/{transporterId}/work Create work GET /client/{clientId}/transporter/live-shifts Live Shifts board (fleet-membership redesign §8) — a read-only list of the
transporters currently on shift (driver + vehicle both paired). Returns a
lean DTO list rather than full Transporter entities: 5 display columns
(driver, vehicle, fleet, on-shift since, last ping) + the ids the two row
actions (force-end-shift / open driver dossier) need. Explicitly NOT a
dispatch board — no map / ETA / trip counts / earnings. GET /client/{clientId}/transporter/queues Returns all zone queue entries grouped by zone, with transporter ref for display. GET /client/{clientId}/transporter/sessions List sessions AreaMetrics 16
GET /client/{clientId}/area-busyness/at-location Busyness at a specific location. GET /client/{clientId}/area-busyness/cells Busyness per H3 cell. GET /client/{clientId}/area-busyness/zone/{zoneId} Busyness for a single zone. GET /client/{clientId}/area-busyness/zone/{zoneId}/heatmap Busyness heatmap for a zone. GET /client/{clientId}/area-busyness/zones Busyness summary for every zone. GET /client/{clientId}/area/demand Live demand per area over a recent window. GET /client/{clientId}/area/metrics Current area metrics for the active fleet scope. POST /client/{clientId}/area/metrics Ingest area metrics (system/background callers). GET /client/{clientId}/area/predict Predicted area demand. GET /client/{clientId}/area/query Query historical area metrics. GET /client/{clientId}/area/supply Live supply (available transporters) per area. GET /client/{clientId}/area/utilisation Transporter utilisation per area. GET /client/{clientId}/area/zone-heatmap Per-zone metrics heatmap. GET /client/{clientId}/capacity-seed/{fleetGroupId} Current cold-start capacity-seed state for a fleet group. POST /client/{clientId}/capacity-seed/{fleetGroupId}/apply Apply the cold-start capacity seed for a fleet group. POST /client/{clientId}/capacity-seed/{fleetGroupId}/preview Preview the capacity seed without applying it. Analytics 16
GET /client/{clientId}/analytics List analytics GET /client/{clientId}/analytics/compare List compare GET /client/{clientId}/analytics/customer-retention/cohorts List cohorts GET /client/{clientId}/analytics/customer-retention/customers List customers GET /client/{clientId}/analytics/customer-retention/customers/{customerId}/trips List trips GET /client/{clientId}/analytics/customer-retention/loyalty List loyalty GET /client/{clientId}/analytics/customer-retention/reasons List reasons GET /client/{clientId}/analytics/fleet/transporter List transporter GET /client/{clientId}/analytics/heatmap List heatmap GET /client/{clientId}/customer/{customerId}/ratings List ratings a customer gave. GET /client/{clientId}/driver/{driverId}/ratings List ratings for a driver. GET /client/{clientId}/transporter/{transporterId}/ratings List ratings for a transporter. DELETE /client/{clientId}/tripsegment/{tripSegmentId}/rating Delete the rating on a trip segment. GET /client/{clientId}/tripsegment/{tripSegmentId}/rating Get the rating for a trip segment. POST /client/{clientId}/tripsegment/{tripSegmentId}/rating Create or update the rating on a trip segment. PUT /client/{clientId}/tripsegment/{tripSegmentId}/rating Create or update the rating on a trip segment. Communication 9
GET /client/{clientId}/message List the operator message threads, inbox or sent items. POST /client/{clientId}/message Send a message to a driver, vehicle or user. DELETE /client/{clientId}/message/{id} Recall (delete) a sent message. POST /client/{clientId}/message/{id}/read Mark a single message as read. PUT /client/{clientId}/message/{id}/read Mark a single message as read. GET /client/{clientId}/message/recipients List addressable message recipients. GET /client/{clientId}/message/thread/{threadId} Get the messages in a thread. POST /client/{clientId}/message/thread/{threadId}/read Mark a thread as read. PUT /client/{clientId}/message/thread/{threadId}/read Mark a thread as read. Brand 6
GET /client/{clientId}/brand/{brandId} Get brand POST /client/{clientId}/brand/{brandId} Update brand PUT /client/{clientId}/brand/{brandId} Update brand DELETE /client/{clientId}/brand/{brandId}/fleet/{fleetId} Delete fleet POST /client/{clientId}/brand/{brandId}/fleet/{fleetId} Update fleet PUT /client/{clientId}/brand/{brandId}/fleet/{fleetId} Update fleet Capability 6
GET /client/{clientId}/capability/{capabilityId} Get capability POST /client/{clientId}/capability/{capabilityId} Update capability PUT /client/{clientId}/capability/{capabilityId} Update capability GET /client/{clientId}/clientcapability/{clientCapabilityId} Get clientcapability POST /client/{clientId}/clientcapability/{clientCapabilityId} Update clientcapability PUT /client/{clientId}/clientcapability/{clientCapabilityId} Update clientcapability Region 4
DELETE /client/{clientId}/region/{regionId} Delete region GET /client/{clientId}/region/{regionId} Get region POST /client/{clientId}/region/{regionId} Update region PUT /client/{clientId}/region/{regionId} Update region