> 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.

# Trailer status modified

POST 

Emitted when a trailer status is modified in our database.

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

## Request

### Payload

- `version` (string, required) — Version of the schema used for this event
- `data` (list of BaseTrailerStatus, 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: trailer_status.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

### BaseTrailerStatus

Base trailer status 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.
- `source_trailer_id` (string, required) — External source system trailer identifier (from the TSP).
- `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).
- `trailer_id` (string, optional, nullable) — Internal trailer identifier (Catena FK).
- `power_on` (boolean, optional, nullable) — Whether the reefer unit is powered on.
- `power_source` (enum, optional, nullable) — Power source for the reefer unit (e.g., AC shore power, truck battery).
  - Allowed values: `GASOLINE`, `DIESEL`, `DIESEL`, `ELECTRICITY`, `HYBRID`, `UNKNOWN`
- `battery_voltage` (double, optional, nullable) — Electrical voltage of the reefer battery in volts.
- `battery_percent` (double, optional, nullable) — Battery level reported as a percentage.
- `battery_status` (enum, optional, nullable) — Normalized health status of the battery.
  - Allowed values: `NORMAL`, `LOW`, `CRITICAL`, `UNKNOWN`
- `reefer_operational_status` (enum, optional, nullable) — Whether the reefer is actively cooling (normalized status).
  - Allowed values: `ON`, `OFF`, `STANDBY`, `UNKNOWN`
- `operation_mode` (enum, optional, nullable) — Cooling strategy or operation mode of the reefer.
  - Allowed values: `CONTINUOUS`, `START_STOP`, `UNKNOWN`
- `control_mode` (enum, optional, nullable) — Vendor-specific control mode/code for regulation.
  - Allowed values: `INTELLIGENT`, `OPTISET`, `UNKNOWN`
- `source_control_mode` (string, optional, nullable) — Raw control mode value as reported by the source device (e.g. BANA, MEAT).
- `door_open` (boolean, optional, nullable) — Whether any monitored door is currently open.
- `cargo_status` (enum, optional, nullable) — Normalized cargo status label from the reefer unit.
  - Allowed values: `LOADED`, `EMPTY`, `UNKNOWN`
- `fuel_level` (double, optional, nullable) — Fuel level reported as a percentage.
- `reefer_engine_hours` (double, optional, nullable) — Engine runtime reported by the reefer unit (hours).
- `ambient_temperature` (double, optional, nullable) — Ambient temperature near the reefer unit in kelvin.
- `zones` (list of TrailerZoneStatus, optional, nullable) — Zone-aware temperatures and door/cargo status for each compartment.
- `remote_probe_statuses` (list of RemoteProbeStatus, optional, nullable) — Status of remote temperature/humidity probes attached to the reefer.
- `pre_trip_status` (TrailerPretripStatus, optional, nullable) — Pretrip inspection status, if provided.
- `suction_pressure_kpa` (double, optional, nullable) — Suction pressure in kilopascals measured by the reefer.
- `discharge_pressure_kpa` (double, optional, nullable) — Discharge pressure in kilopascals measured by the reefer.
- `humidity_percent` (double, optional, nullable) — Ambient humidity near the reefer unit (percent).
- `active_alarms` (list of TrailerAlarm, optional, nullable) — Active alarms present on the reefer unit at the time of polling.
- `location` (Point, optional, nullable) — Location encoded as a GeoJSON Point.
- `h3_index_11` (long, optional, nullable) — H3 index (resolution 11) derived from the location, if available.

### TrailerZoneStatus

Temperature and control status for a specific reefer zone/compartment.

- `zone` (integer, required) — 1-based index of the cooling zone.
- `setpoint_temperature` (double, optional, nullable) — Target temperature for this zone in kelvin.
- `return_air_temperature` (double, optional, nullable) — Temperature of air returning from the cargo area in kelvin.
- `discharge_air_temperature` (double, optional, nullable) — Temperature of the air leaving the reefer unit in kelvin.
- `control_sensor` (enum, optional, nullable) — Sensor the controller uses for regulation, when available.
  - Allowed values: `RETURN_AIR`, `DISCHARGE_AIR`, `CARGO_PROBE`, `REMOTE_PROBE`, `AMBIENT`, `UNKNOWN`
- `door_open` (boolean, optional, nullable) — Whether the monitored door for this zone is open.
- `thermal_status` (string, optional, nullable) — Reported thermal status, when provided.
- `cargo_status` (string, optional, nullable) — Reported cargo status for this zone.

### RemoteProbeStatus

Status of a remote temperature/humidity probe.

- `probe_id` (string, required) — Identifier for the remote probe
- `temperature` (double, optional, nullable) — Temperature measured by the probe in kelvin.
- `humidity_percent` (double, optional, nullable) — Relative humidity reported by the probe (percent).

### TrailerPretripStatus

Information captured during a reefer pre-trip inspection.

- `result` (string, optional, nullable) — Result of the pre-trip check, if available.
- `initiated_at` (datetime, optional, nullable) — Timestamp when the pretrip started.
- `completed_at` (datetime, optional, nullable) — Timestamp when the pretrip completed.

### TrailerAlarm

Active alarm condition on the reefer unit.

- `code` (enum, optional, nullable) — Normalized alarm code, if known.
  - Allowed values: `temperature_out_of_range`, `setpoint_deviation`, `sensor_failure`, `power_loss`, `battery_low`, `battery_critical`, `electrical_fault`, `fuel_low`, `engine_fault`, `engine_shutdown`, `door_open_while_running`, `unexpected_door_open`, `refrigeration_fault`, `pressure_out_of_range`, `cooling_ineffective`, `pretrip_failed`, `pretrip_not_performed`, `unknown`
- `source_code` (string, optional, nullable) — Raw alarm code as reported by the source device.
- `description` (string, optional, nullable) — Human-readable alarm description.
- `severity` (string, optional, nullable) — Severity label provided by the device.

### Point

Point Model

- `type` ("Point", required)
- `coordinates` (PointCoordinates, required)
- `bbox` (PointBbox, optional, nullable)

### PointCoordinates

- Position2D: list of string
- Position3D: list of string

### PointBbox

- list of any
- list of any