> ## Documentation Index
> Fetch the complete documentation index at: https://docs.catenatelematics.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v2.9.0

> 4 changes across providers, compliance and fleet, including a breaking change

**Released 17th June 2026**

<Warning>
  **This release includes a breaking change:** the `scheduled` value was removed from the execution `status` field. See [Execution Status Cleanup](#execution-status-cleanup) below.
</Warning>

## DVIR Log Enhancements

This minor release expands the DVIR log schema with new status tracking and certification fields, giving you richer inspection data across all DVIR log responses.

<Check>
  **Backward compatible:** The new DVIR fields are additive. No existing DVIR fields have been removed or modified, and no migration is required for them.
</Check>

### Schema Changes

<AccordionGroup>
  <Accordion title="DVIR log — new fields" icon="clipboard-check">
    Three new fields have been added to the `BaseDvirLog` schema and are reflected in all DVIR log responses, including `DvirLogAdded` and `DvirLogModified` webhook payloads.

    | Field | Type | Description |
    | - | - | - |
    | `status` | `DvirStatusEnum` | Inspection status of the DVIR log. |
    | `certified_by` | `string` | Name of the person who certified the inspection. |
    | `certify_date` | `string` | Date and time the inspection was certified. |

    **Example response (partial):**

    ```json theme={null}
    {
      "id": "dvir_abc123",
      "status": "certified",
      "certified_by": "Jane Smith",
      "certify_date": "2026-06-17T08:30:00Z",
      "certify_comment": "No defects found. Vehicle is safe to operate."
    }
    ```
  </Accordion>

  <Accordion title="New DvirStatusEnum schema" icon="list">
    A new `DvirStatusEnum` schema has been added to the API, representing the possible inspection statuses for a DVIR log. Use the `status` field on DVIR log responses to determine the current certification state of an inspection.
  </Accordion>
</AccordionGroup>

### Affected endpoints

The following endpoints return DVIR log objects and now include the new fields:

* `GET /v2/telematics/dvir-logs` — List DVIR logs
* `GET /v2/telematics/dvir-logs/{dvir_log_id}` — Get a single DVIR log
* Webhook payloads for `dvir_log.added` and `dvir_log.modified` events

## Execution Status Cleanup

This release removes the `scheduled` value from the `ExecutionStatusEnum` in the Integrations API. Execution records no longer use this status — consumers filtering or branching on `scheduled` should update their integration accordingly.

<Warning>
  **Breaking change:** The `scheduled` enum value has been removed from the `status` field on execution records. Any code that checks for or handles `status === "scheduled"` must be updated.
</Warning>

### Schema Changes

<AccordionGroup>
  <Accordion title="ExecutionStatusEnum — removed scheduled value" icon="list">
    The `scheduled` value has been removed from the `status` field returned by:

    * `GET /v2/integrations/connections/{connection_id}/schedules/{schedule_id}/executions`

    **Before:**

    ```json theme={null}
    {
      "status": "scheduled" // no longer valid
    }
    ```

    **After:**

    The `status` field will only contain one of the remaining valid values. Remove any handling for `"scheduled"` from your integration.

    **Migration:**

    ```python theme={null}
    # Before — handled scheduled status
    if execution["status"] == "scheduled":
        handle_scheduled(execution)

    # After — remove the scheduled branch
    # "scheduled" is no longer returned; handle only the remaining statuses
    ```
  </Accordion>
</AccordionGroup>

### Migration checklist

<Steps>
  <Step title="Audit status handling">
    Search your codebase for any references to `"scheduled"` in the context of execution status values and remove or replace them.
  </Step>

  <Step title="Update conditional logic">
    If you branch on `status === "scheduled"` to determine whether an execution is pending, use the appropriate remaining status value instead.
  </Step>

  <Step title="Update stored enumerations">
    If you store or validate execution status values in a database schema, enum type, or configuration, remove `scheduled` from those definitions.
  </Step>
</Steps>

## Fleet TSP Data

This release adds TSP (Telematics Service Provider) association data to fleet analytics responses, giving you richer context about which providers are connected to each fleet.

<Check>
  **Backward-compatible addition:** All existing integrations continue to work without modification. The new `tsps` field is additive.
</Check>

### New response fields

<AccordionGroup>
  <Accordion title="Fleet analytics — tsps field" icon="sparkles">
    The `GET /v2/intelligence/analytics/fleets` endpoint now includes a `tsps` property on each `FleetSummary` object in the response. This field exposes the TSP connections associated with each fleet, using the new `FleetTsp` schema.

    **Endpoint:** `GET /v2/intelligence/analytics/fleets`

    **New field in response items:**

    | Field | Type | Description |
    | - | - | - |
    | `tsps` | `FleetTsp[]` | List of TSP connections associated with the fleet. |

    **Example response (abbreviated):**

    ```json theme={null}
    {
      "items": [
        {
          "fleet_id": "f1a2b3c4-...",
          "name": "Acme Trucking",
          "tsps": [
            {
              "provider": "samsara",
              "status": "active"
            }
          ]
        }
      ]
    }
    ```
  </Accordion>
</AccordionGroup>

## Schedule Fetch Window End Time

This release adds a new `fetch_window_end_at` field to schedule and execution objects across the Integrations API, giving you finer control over the time window used when fetching data from telematics service providers.

<Check>
  **Backward-compatible addition:** This change is additive. No existing fields or endpoints have been removed or modified by it.
</Check>

### New Fields

<AccordionGroup>
  <Accordion title="fetch_window_end_at on schedules and executions" icon="calendar-day">
    The `fetch_window_end_at` field is now available on schedule and execution objects. It defines the end boundary of the time window used when fetching data from a TSP during a scheduled run.

    **Affected schemas:**

    * `ScheduleRead` — returned when reading a schedule
    * `ScheduleCreate` — accepted when creating a schedule
    * `ScheduleUpdate` — accepted when updating a schedule
    * `ExecutionRead` — returned when reading execution history

    **Affected endpoints:**

    | Method | Endpoint |
    | - | - |
    | `GET` | `/v2/integrations/connections/{connection_id}/schedules` |
    | `POST` | `/v2/integrations/connections/{connection_id}/schedules` |
    | `GET` | `/v2/integrations/connections/{connection_id}/schedules/{schedule_id}` |
    | `PATCH` | `/v2/integrations/connections/{connection_id}/schedules/{schedule_id}` |
    | `POST` | `/v2/integrations/connections/{connection_id}/schedules/{schedule_id}/activate` |
    | `POST` | `/v2/integrations/connections/{connection_id}/schedules/activate-schedules` |
    | `GET` | `/v2/integrations/connections/{connection_id}/schedules/{schedule_id}/executions` |

    **Example — creating a schedule with a fetch window end time:**

    ```bash theme={null}
    POST /v2/integrations/connections/{connection_id}/schedules
    Content-Type: application/json

    {
      "fetch_window_end_at": "2026-06-17T22:00:00Z"
    }
    ```

    **Example — schedule response including the new field:**

    ```json theme={null}
    {
      "id": "sch_abc123",
      "connection_id": "conn_xyz456",
      "fetch_window_end_at": "2026-06-17T22:00:00Z"
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Need help?

<CardGroup cols={2}>
  <Card title="API reference" icon="book" href="/api-reference/telematics-api">
    View complete endpoint documentation with current API structure.
  </Card>

  <Card title="Contact support" icon="life-ring" href="mailto:support@catenaclearing.io">
    Questions about this release? Our team is here to help.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.