Skip to content

Tenants

Taxi & Private HireProductsTenancy › Tenants

Generally available

A Client row represents a tenant organisation on the platform. One row per customer, carrying display name, timezone, locale, currency, region, distance metric (km/mile), default country code for phone normalisation, default pricing mode, default merge preference, and operational toggles such as no-show call guard and SCP driver preferences. All other tenant-scoped entities reference the Client by clientId.

Fields

FieldTypeDescription
name string Display name of the tenant organisation. Surfaced on the admin console and across audit logs.
publicKey string Public-facing key for the tenant — used in URLs / integrations where the internal Snowflake ID shouldn't be exposed.
timezone string IANA timezone ID ("Europe/Dublin", "Europe/Paris"). Drives schedule windows, ETA presentation, and reporting buckets.
distanceMetric DistanceMetric · KILOMETRE | MILE KILOMETRE vs MILE — drives distance presentation across the FE and reports.
locale string Default UI locale ("en", "fr", "ar", "ga", "en-US"). Used by Verte for i18n lookup and FE date/number formatting.
currency string ISO 4217 currency code ("EUR", "GBP", "USD"). All price calculations, charges, and payouts use this currency.
region string Geographic region key ("IE", "GB", "FR"). Used by RegionFilter to scope trip / transporter reads and to pick region-specific defaults.
latitude decimal Tenant centre-point latitude. Drives default map centring on the operator console and provides a fallback location for analytics queries that need a city anchor.
longitude decimal Tenant centre-point longitude. Paired with `latitude`.
defaultCountryCode string Default international dial-code ("+353", "+44") used by phone-normalisation when a customer-entered number omits the country prefix.
active boolean Master enable/disable for the tenant. Disabled tenants are blocked at the auth layer; existing data is preserved.
defaultMergePreference MergePreference · INHERIT | NEVER | NONE | ACCOUNT | ACCOUNT_DEPARTMENT | ALL Default MergePreference (NONE / SOFT / HARD) inherited by new Customer / Account / AccountDepartment rows. Customers can override per-booking.
defaultPricingMode PricingMode · FIXED | METERED Default PricingMode for new trips — METERED (priced from actual route) vs FIXED (priced at quote time). Per-trip overrides apply.
planningSweepCapacities json Seat-capacity values the planning sweep considers when iterating trip candidates. Trips whose minSeatCapacity > max(set) are flagged OUT_OF_POLICY. Trim or widen at onboarding for unusual fleet profiles.
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.