Account Employees
Taxi & Private Hire › Products › Account › Account Employees
Generally available
Links a Customer to a corporate Account (with optional department membership). Each employee carries their own auth type override, merge preference, and driver/management notes. Bookings made by the underlying Customer charge to the account when the employee link is active; reporting attributes the trips to the right department.
Example request
POST /client/{clientId}/accountemployee
{
"customer": {
"id": "<id>"
},
"accountDepartments": [
{
"id": "<id>"
}
],
"authType": "PIN",
"mergePreference": "INHERIT",
"driverNote": "<string>",
"managementNote": "<string>"
}
Example shape, derived from the AccountEmployee fields — indicative,
not the authoritative schema (that arrives with the API reference).
Endpoints
| Method | Path | |
|---|---|---|
POST | /client/{clientId}/accountemployee · primary | |
POST | /client/{clientId}/account/{accountId}/accountemployee | |
POST | /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee | |
GET | /client/{clientId}/accountemployee/{accountEmployeeId} | |
GET | /client/{clientId}/account/{accountId}/accountemployee/{accountEmployeeId} | |
GET | /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} | |
GET | /client/{clientId}/accountemployee | |
GET | /client/{clientId}/account/{accountId}/accountemployee | |
GET | /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee | |
GET | /client/{clientId}/account/{accountId}/accountdepartment/{accountDepartmentId}/accountemployee | |
POST | /client/{clientId}/accountemployee/{accountEmployeeId} | |
POST | /client/{clientId}/account/{accountId}/accountemployee/{accountEmployeeId} | |
POST | /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} | |
PUT | /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} | |
PUT | /client/{clientId}/accountemployee/{accountEmployeeId}/accountdepartment/{accountDepartmentId} | |
DELETE | /client/{clientId}/accountdepartment/{accountDepartmentId}/accountemployee/{accountEmployeeId} | |
DELETE | /client/{clientId}/accountemployee/{accountEmployeeId}/accountdepartment/{accountDepartmentId} |
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
Set up a corporate account with a department and an employee.
POST/client/{clientId}/accountPOST/client/{clientId}/accountdepartmentPOST/client/{clientId}/accountemployee
config risk: low
Add an employee / booker to a corporate account.
POST/client/{clientId}/accountemployee
Related
Fields
| Field | Type | Description |
|---|---|---|
customer | Customer | The underlying person — Customer record carrying name, phone (E.164), email. One Customer can be employed by multiple accounts via separate AccountEmployee rows. Required. |
account | Account | The corporate account that employs this customer. Bookings by this customer charge to the account when the employee link is active. |
accountDepartments | Collection | Departments this employee belongs to. Zero or many — drives department-level merge scoping and reporting attribution. |
authType | AccountAuthType · PIN | SMS | NONE | MFA | INHERIT | Per-employee auth-method override (badge / PIN / SSO). INHERIT defers to the parent department (and on through to the account). |
mergePreference | MergePreference · INHERIT | NEVER | NONE | ACCOUNT | ACCOUNT_DEPARTMENT | ALL | Per-employee merge-preference override. INHERIT defers to the department / account chain. |
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. |
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. |