> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://catena.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://catena.ferndocs.com/_mcp/server.

# Vehicle modified

POST 

Emitted when a vehicle is modified in our database.

e.g. The record fetched from the TSP is different from what we had stored in our database and it prompted us to update the existing record.

Reference: https://catena.ferndocs.com/api-reference/notifications/webhook-events/vehicle-modified

## Request

### Payload

- `version` (string, required) — Version of the schema used for this event
- `data` (list of BaseVehicle, required) — The event payload, with one or more records of the specified type
- `webhook_id` (string, required) — Unique identifier for the webhook subscription that triggered this delivery
- `event_name` (string, optional, default: vehicle.modified)
- `timestamp` (datetime, optional, nullable) — ISO 8601 timestamp when the event occurred
- `id` (string, optional, nullable) — Unique identifier for this specific event instance (UUID v7 for time-ordered sorting)
- `delivery_attempt` (integer, optional, default: 0) — The number of times the event has been attempted to be delivered

## Types

### BaseVehicle

Base vehicle event.

- `id` (string, required) — Internal unique identifier for the telematics event record (Catena PK).
- `fleet_id` (string, required) — The Catena fleet this record belongs to (multi-tenant scope).
- `fleet_ref` (string, required, nullable) — The reference of the fleet in the partner system
- `source_name` (enum, required) — The underlying telematics platform that provided this data (e.g., `samsara`, `motive`, `hos247`). Note: Some platforms like `hos247` offer white-labeling, so multiple TSPs may share the same source_name — use `tsp_id` or `tsp_slug` to identify the specific ELD provider.
  - Allowed values: `ada`, `ai_eld`, `air_eld`, `alfa_eld`, `alpha_eld`, `als`, `anytrek_pro`, `anytrek_classic`, `apex_eld`, `apollo`, `apollocloud`, `ascend`, `att`, `awaregps`, `azuga`, `bigroad`, `bluehorse_eld`, `blueinktech`, `bouncie`, `budgetgps`, `catena_simulator`, `captain_eld`, `carrier_lynx`, `chronos`, `club_eld`, `cogo_eld`, `counting_trucks_eld`, `cyntrx`, `digital_eld`, `dragon_eld`, `dreyev`, `drive_hos`, `drive_hos_v2`, `driver_tech`, `dsg_elogs`, `dynamic_eld`, `eighteighteight_eld`, `eld_88`, `eld_books`, `eld_mandate`, `eld_mandate_prime`, `eroad`, `eva_eld`, `evo_eld`, `expressway_eld`, `extreme_eld`, `ezlogz`, `ez_lynk`, `factor_eld`, `firstgate`, `fleetcomplete`, `fleetcompletehub`, `fleethunt`, `fleetpulse`, `fleetsharp`, `fleetup`, `fm`, `fordpro`, `forwardthinking`, `forza_eld`, `geotab`, `gpsinsight`, `gpstab`, `gpstrackit`, `grand_eld`, `greenlight`, `groundhog`, `hcss`, `hos247`, `hutch`, `intellishift`, `ironman_eld`, `isaac`, `jjkeller`, `kinexaiot`, `knight_eld`, `konexial`, `lioneight`, `linxup`, `loop_eld`, `lucid_eld`, `luna_eld`, `lytx`, `lytxv3`, `mapon`, `matrack`, `maven`, `mdm_eld`, `michelin_connected_fleet`, `mobilefleet`, `moonlight_eld`, `motion_eld`, `motive`, `my_drivebook`, `my_logs_eld`, `nero`, `netradyne`, `new_eld_world`, `nextgen_eld`, `nextraq`, `nexus_eld`, `omnitracs`, `1sew_eld`, `onestep`, `ontime_eld`, `optima`, `optimus_tracker`, `orbcomm`, `orient_eld`, `ozod_eld`, `panda_eld`, `patriot_eld`, `payd`, `peak_eld`, `pedigree`, `peoplenet`, `phillips_connect`, `phoenix`, `pop_eld`, `prologs`, `proride_eld`, `qualitylogs_eld`, `randmcnally`, `rastrac`, `raven`, `redfox`, `regulog_eld`, `ridehub`, `rigbot`, `roadeazy`, `roadready`, `rock_eld`, `rollingtrans`, `routemate`, `route_one_eld`, `royal_eld`, `safelane`, `samsara`, `selectivedrive`, `simba_eld`, `skybitz`, `smart_elds`, `sparkle_eld`, `spireon`, `sts_eld`, `sun_eld`, `surfsight`, `swift`, `switchboard`, `synergy_eld`, `teletracnavman`, `teletracnavman_director`, `telogis`, `tenna`, `teslemetry`, `thermo_king`, `think`, `tive`, `topcompliance_eld`, `traccar`, `trackease_eld`, `trackpro`, `traclog`, `transflo`, `trimac`, `trimble`, `truckford`, `truckspy`, `truckx`, `trueroad_eld`, `tt`, `txt_eld`, `us_fast_eld`, `verizon_connect`, `vista_eld`, `vistracks`, `vlog_eld`, `vulcansols_eld`, `wialon`, `webfleet`, `wizefleet_eld`, `xplore_eld`, `zigzag_eld`, `zms_eld`, `zonar`, `zubie`
- `connection_id` (string, required) — The specific fleet↔TSP connection through which this record was sourced.
- `source_id` (string, required) — The ID of the record in the TSP or a deterministic ID/Hash generated from a composite unique key
- `created_at` (datetime, required) — Immutable: first time this record was ingested into our system.
- `updated_at` (datetime, required) — Last time we modified this record in our system.
- `occurred_at` (datetime, required) — When the underlying event/observation occurred, as reported by the TSP, or the moment it was ingested by us if not available.
- `tsp_id` (string, optional, nullable) — Unique identifier of the TSP at Catena Telematics from which this record was ingested.
- `tsp_slug` (string, optional, nullable) — Human readable slug of the TSP at Catena Telematics from which this record was ingested.
- `deleted_at` (datetime, optional, nullable) — Logical delete marker: when the TSP stopped reporting this record.
- `execution_id` (string, optional, nullable) — Identifier for the ingestion execution that processed this record (for tracing).
- `schedule_id` (string, optional, nullable) — Identifier for the ingestion schedule that triggered this record's processing (for tracing).
- `extras` (map from string to any, optional, nullable) — Additional data available in the TSP (e.g., we may have `external_id`, `provider_resource_id`, etc. — this field captures all those extra attributes in a flexible way).
- `vehicle_name` (string, optional, nullable) — Display name or unit number for the vehicle.
- `oem` (string, optional, nullable) — Manufacturer (OEM) of the vehicle.
- `model_type` (string, optional, nullable) — Manufacturer model or type designation (e.g., 'Class 8 Tractor', 'Pickup').
- `model_year` (integer, optional, nullable) — Model year (four-digit, e.g., 2022).
- `vin` (string, optional, nullable) — Vehicle Identification Number (VIN), typically 17 characters; if available.
- `engine_vin` (string, optional, nullable) — Engine serial number or engine VIN, if available.
- `license_plate_region` (string, optional, nullable) — Plate region/subdivision (state/province code, e.g., 'CA', 'ON').
- `license_plate_country` (string, optional, nullable) — Plate country code (ISO-3166-1 alpha-2, e.g., 'US', 'CA').
- `started_at` (datetime, optional, nullable) — Timestamp when this vehicle record became active/in service (UTC).
- `ended_at` (datetime, optional, nullable) — Timestamp when this vehicle record ended/out of service (UTC).
- `is_active` (boolean, optional, nullable) — Indicates whether the vehicle is currently active/in service.
- `status` (string, optional, nullable) — Operational status label (e.g., 'IN_SERVICE', 'OUT_OF_SERVICE', 'MAINTENANCE').
- `notes` (string, optional, nullable) — Free-text notes about the vehicle (plain text).
- `eld_id` (string, optional, nullable) — Telematics/ELD device identifier associated with this vehicle, if any.
- `eld_serial_number` (string, optional, nullable) — Telematics/ELD device serial number, if any.
- `eld_device_type` (string, optional, nullable) — Telematics/ELD device type or model family (vendor-specific).
- `eld_product_id` (string, optional, nullable) — Telematics/ELD vendor product identifier (catalog/model code).
- `total_axles` (integer, optional, nullable) — Total number of axles on the vehicle.
- `vehicle_groups` (map from string to any, optional, nullable) — JSON map of group memberships/tags for this vehicle (segmentation/permissions).
- `external_id` (string, optional, nullable) — External vehicle identifier as known in the TSP or customer's system.
- `speed_unit` (string, optional, nullable) — Unit of measure for speed metrics (e.g., 'km/h', 'mph').
- `odometer_unit` (string, optional, nullable) — Unit of measure for odometer readings (e.g., 'km', 'mi').
- `fuel_unit` (string, optional, nullable) — Unit of measure for fuel quantities (e.g., 'gallons', 'liters').
- `fuel_capacity` (string, optional, nullable) — Fuel capacity as provided by the source (text with units, e.g., '100 gallons').
- `engine_type` (string, optional, nullable) — Engine/fuel type (e.g., 'diesel', 'gasoline', 'electric', 'hybrid').