Skip to content

Vehicle Owners

Taxi & Private HireProductsFleet › Vehicle Owners

Generally available

Records the legal owner of each Vehicle — useful where vehicles are rented, leased, or owned by contractors rather than the tenant itself. Each VehicleOwner can be a person or an entity; carries contact info, tax/identification numbers (jurisdiction-dependent), and links to the Vehicles owned. Supports reporting that separates owner-driver versus contractor vehicles.

Example request

POST /client/{clientId}/vehicleowner

{
  "ref": "<string>",
  "name": "<string>",
  "tradingAlias": "<string>",
  "website": "<string>",
  "primaryGroup": "<string>",
  "billingEmail": "<string>",
  "billingPhone": "<string>",
  "companyNumber": "<string>",
  "taxNumber": "<string>",
  "streetAddress": "<string>",
  "addressArea": "<string>",
  "city": "<string>",
  "state": "<string>",
  "postCode": "<string>",
  "country": "<string>",
  "iban": "<string>",
  "bic": "<string>",
  "vehicles": [
    {
      "id": "<id>"
    }
  ],
  "driverNote": "<string>",
  "managementNote": "<string>",
  "groups": [
    {
      "id": "<id>"
    }
  ]
}

Example shape, derived from the VehicleOwner fields — indicative, not the authoritative schema (that arrives with the API reference).

Endpoints

MethodPath
POST /client/{clientId}/vehicleowner · primary
GET /client/{clientId}/vehicleowner/{vehicleOwnerId}
POST /client/{clientId}/vehicleowner/{vehicleOwnerId}

Full request/response schemas and an interactive explorer will live in the API reference (coming soon).

Fields

FieldTypeDescription
ref string External reference code, unique per tenant. Integration handle for the owner.
name string Legal name of the owner (person or company). Appears on payout reports and compliance exports.
tradingAlias string Trading-as name when the owner operates publicly under a different brand to their legal name.
website string
primaryGroup string
billingEmail string
billingPhone string
companyNumber string Companies-house / registered-business number where the owner is a registered company. Jurisdiction-dependent format.
taxNumber string Tax / VAT registration number for invoicing + payout compliance.
streetAddress string
addressArea string
city string
state string
postCode string
country string
iban string IBAN for payout. Stored verbatim — formatting/validation lives on the FE.
bic string BIC / SWIFT code paired with the IBAN for international payouts.
vehicles Collection Vehicles legally owned by this VehicleOwner. Reverse side of `Vehicle.vehicleOwner`.
driverNote string Notes shared with the Driver and Operator, to be treated as publicly visible and not to include personal information
managementNote string Internal notes for management use only.
groups Collection
deletedAt integer
deletedBy bigint
clientId bigint Tenant scope. Every tenant-aware entity carries this; `ClientFilter` enforces row-level isolation on read; the multi-tenancy routing layer (`/client/{clientId}`) sets it at create time. Surfaced only under `admin` / `tripLog` groups — never to end users.
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.