> ## 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.56.0 - Geofence Monitor Webhook Event Schemas

> New webhook event payload schemas for all geofence monitor lifecycle events

**Released 8th September 2026**

## Geofence monitor webhook event schemas

This release adds formal OpenAPI schema definitions for all six geofence monitor webhook event payloads. These schemas describe the exact structure of the request body your webhook endpoint receives when a geofence monitor lifecycle event fires.

<Check>
  **Backward-compatible addition:** This release introduces no breaking changes. Existing integrations continue to work without modification.
</Check>

### New webhook event schemas

<AccordionGroup>
  <Accordion title="Geofence monitor lifecycle events" icon="sparkles">
    Six new webhook event schemas are now defined in the OpenAPI specification:

    | Schema | Event name | Description |
    | - | - | - |
    | `GeofenceMonitorCreated` | `geofence_monitor.created` | Emitted when a geofence monitor is created |
    | `GeofenceMonitorArrived` | `geofence_monitor.arrived` | Emitted when the vehicle reaches the stop it was travelling to. `stop.is_final_stop` distinguishes reaching the destination from reaching an intermediate stop |
    | `GeofenceMonitorDeparted` | `geofence_monitor.departed` | Emitted when the vehicle leaves the stop it was at |
    | `GeofenceMonitorCompleted` | `geofence_monitor.completed` | Emitted when the journey is over, on departure from the final stop rather than on arrival. Waiting for the departure makes the dwell at the destination measurable |
    | `GeofenceMonitorCancelled` | `geofence_monitor.cancelled` | Emitted when a geofence monitor is cancelled before its journey finishes |
    | `GeofenceMonitorExpired` | `geofence_monitor.expired` | Emitted when a monitor passes its `expires_at` while still active. A vehicle still parked at the destination expires rather than completing — use the final stop's `arrived_at` to distinguish the two cases |

    These schemas are built on two shared base schemas:

    | Schema | Description |
    | - | - |
    | `BaseGeofenceMonitorEvent` | Common fields present on all geofence monitor events |
    | `GeofenceMonitorStopEvent` | Stop-level fields included on arrival and departure events |

    **Example: handling a `geofence_monitor.arrived` event**

    ```json theme={null}
    {
      "event": "geofence_monitor.arrived",
      "data": {
        "geofence_monitor_id": "<monitor-uuid>",
        "stop": {
          "geofence_id": "<geofence-uuid>",
          "is_final_stop": false,
          "arrived_at": "2026-09-08T10:30:00Z"
        }
      }
    }
    ```

    **Example: handling a `geofence_monitor.completed` event**

    ```json theme={null}
    {
      "event": "geofence_monitor.completed",
      "data": {
        "geofence_monitor_id": "<monitor-uuid>",
        "completed_at": "2026-09-08T14:15:00Z"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

### Subscribing to geofence monitor events

Use the Notifications API to subscribe your webhook endpoint to any of the following event names:

* `geofence_monitor.created`
* `geofence_monitor.arrived`
* `geofence_monitor.departed`
* `geofence_monitor.completed`
* `geofence_monitor.cancelled`
* `geofence_monitor.expired`
* `geofence_monitor.*` (wildcard — all geofence monitor events)

***

## Need help?

<CardGroup cols={2}>
  <Card title="API reference" icon="book" href="/api-reference/notifications-api">
    View complete endpoint documentation for the Notifications API
  </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.