Platform Capabilities
Taxi & Private Hire › Products › Capability › Platform Capabilities
Generally available
The platform-wide catalogue of capabilities — wheelchair access, child seat, pet-friendly, premium/luxury, English-speaking driver, and so on. The catalogue is global and shared across tenants; each tenant opts into the capabilities it offers. Capabilities are matched efficiently against what each trip requires at dispatch time.
Example request
POST /client/{clientId}/capability
{
"name": "<string>"
}
Example shape, derived from the Capability fields — indicative,
not the authoritative schema (that arrives with the API reference).
Endpoints
| Method | Path | |
|---|---|---|
POST | /client/{clientId}/capability · primary | |
GET | /client/{clientId}/capability/{capabilityId} | |
POST | /client/{clientId}/capability/{capabilityId} |
Full request/response schemas and an interactive explorer will live in the API reference (coming soon).
Use cases
Operator flows that exercise this feature.
config risk: low
Add a capability to the platform catalogue (driver skill / vehicle feature).
POST/client/{clientId}/capability
Related
Fields
| Field | Type | Description |
|---|---|---|
entityType | TransporterEntity · DRIVER | VEHICLE | Which entity this capability applies to: VEHICLE (declared on a Vehicle row) or DRIVER (declared on a Driver row). Drives where the capability appears in the editor UI. |
name | string | Human-readable name (e.g. "Wheelchair Accessible", "Child Seat"). Used as the FE label fallback when a tenant ClientCapability doesn't override it. |
value | int | Reserved column — previously used for per-capability capacity counts, now unused. Kept on the schema for backward compatibility with old tariff configs. |
standard | bool | When true, new client/tenant onboarding auto-assigns this capability — gives every tenant the basic capability set without manual setup. |
behaviour | CapabilityBehaviourEnum · BASIC | ENGINE_TYPE | VEHICLE_CHARACTERISTIC | DRIVER_CAPABILITY | Category grouping: BASIC (always available), PASSENGER (passenger-counted seating), LUGGAGE (luggage-counted), CHARGEABLE (priceable add-on), etc. Drives both editor grouping and pricing-pipeline behaviour. |
requiresLicence | bool | When true, the driver / vehicle needs a recorded licence or training document on file before this capability can be enabled on their row. Default false. |
uniqueSystemRef | string | Globally-unique key (e.g. "wheelchair_access") used by integrations to reference the capability without depending on display names. Stable across tenants. |
bitPosition | smallint | Bit position (0–127) used to pack the capability set into a 128-bit bitmask. Lets dispatch match capability requirements with a single bitwise AND rather than a per-capability iteration. |
internalKey | string | Optional client-supplied external reference / idempotency key. When present, lets external systems correlate platform-side records back to their own source-of-truth ids. Not persisted to a column — populated by the request handler when the caller sets it. |
__objectType | string | Discriminator string (entity class short-name) emitted alongside the id in serialized output. Resolved at read time by `getObjectType()`; lets the FE dispatch entity-specific rendering without inspecting the URL. |
id | bigint | Snowflake-style primary key (unsigned BIGINT). Generated by `IdFactory` at create time; surfaced to the FE / API as a `G`-prefixed string and stripped back to plain bigint server-side before Doctrine lookup. |
createdDate | integer | Unix timestamp the row was first persisted. Set in the entity's PrePersist hook; never rewritten on subsequent updates. |
updatedDate | integer | Unix timestamp the row was last touched. Bumped on every commit that hits the Doctrine UoW for this entity; drives FE invalidation + the listing change cursor. |
passiveUpdatedDate | int | Read-through alias for `updatedDate` exposed under different serializer groups. Lets the FE distinguish "real edit" from "background touch" projections without changing the underlying column. |
listingUpdatedDate | int | Listing-projection timestamp surfaced only under the `listMode` group. Driven by `TripCache` and other listing-shape refreshers separately from `updatedDate` so a listing rebuild doesn't trigger detail-page invalidation. |