Events
McEasy provides real-time events through webhooks to help you monitor and track your fleet operations. These events are categorized into different types and delivered in JSON format.
📡 Event Categories
Below is a categorized list of events your webhook service will receive:
🚗 General Data Update
| ID | Name | Code | Description | 
|---|---|---|---|
| 1 | Location | DVC-DU1/L1 | Provides real-time location data from the vehicle. | 
| 2 | Temperature | DVC-DU1/T1 | Provides temperature sensor data from the vehicle. | 
| 3 | Fuel | DVC-DU1/F1 | Provides fuel level updates, including percentage and liters remaining. | 
🚛 Fleet Task Data Update
| ID | Name | Code | Description | 
|---|---|---|---|
| 15 | Status Fleet Task | API-DU1/SF1 | Updates on fleet task statuses such as scheduled, started, or ended. | 
| 16 | POP/POD | API-DU1/PP1 | Updates on Proof of Pickup (POP) and Proof of Delivery (POD). | 
| 17 | Location with Fleet Task | DVC-DU1/LF1 | Provides real-time location data from vehicles that actively executing Fleet Tasks. | 
⚡️ Quick Assignment Data Update
| ID | Name | Code | Description | 
|---|---|---|---|
| 29 | Quick Assignment Transition Status | API-DU1/QS1 | Updates on quick assignment status such as transition to draft, scheduled, started, ended and canceled. | 
| 30 | Quick Assignment Transition Point Status | DVC-DU1/QPS1 | Updates on quick assignment point status such as visiting, visited, missed visit or not visited based on vehicle location | 
| 31 | Update Quick Assignment | API-DU1/Q1 | Updates on any of quick assignment fields. | 
| 32 | Quick Assignment POP POD | API-DU1/QPP1 | Updates on Proof of Pickup (POP) and Proof of Delivery (POD). | 
⚠️ General Alarm
| ID | Name | Code | Description | 
|---|---|---|---|
| 5 | Geofence | DVC-A1/G1 | Notifies if a vehicle enters or exits a designated geographic area. | 
| 6 | Temperature | DVC-A1/T1 | Notifies if the temperature sensor readings exceed or drop below thresholds. | 
| 7 | Fuel | DVC-A1/F1 | Detects sudden fuel drops, indicating possible leakage or theft. | 
| 8 | Door | DVC-A1/D1 | Notifies when the vehicle doors are opened or closed. | 
| 9 | Tamper | DVC-A1/T2 | Indicates interference with the tracking device or vehicle system. | 
| 13 | Engine | DVC-A1/E1 | Notifies when the vehicle engine is turned on or off. | 
| 14 | SOS | DVC-A1/S1 | Emergency alert triggered manually by the driver in distress. | 
| 26 | Shock | DVC-A1/S4 | Detects sudden vehicle impact or collision. | 
🚗 Driving Behavior Alarm
| ID | Name | Code | Description | 
|---|---|---|---|
| 4 | Overspeed | DVC-A1/O1 | Triggers when a vehicle exceeds a predefined speed limit. | 
| 10 | Harsh Braking | DVC-A1/HB1 | Triggers when a vehicle suddenly decelerates, indicating harsh braking. | 
| 11 | Harsh Acceleration | DVC-A1/HA1 | Alerts when a vehicle accelerates too quickly, potentially indicating reckless driving. | 
| 12 | Sharp Turn | DVC-A1/ST1 | Notifies when a vehicle makes an abrupt turn, which may suggest unsafe driving behavior. | 
🛑 Driver Monitoring Alarm
| ID | Name | Code | Description | 
|---|---|---|---|
| 18 | Fatigue | DVC-A1/F2 | Detects signs of driver fatigue, such as prolonged eye closure. | 
| 19 | Close Eye | DVC-A1/CE1 | Alerts when the driver's eyes remain closed beyond a set threshold. | 
| 20 | Yawn | DVC-A1/Y1 | Triggers when yawning is detected, signaling possible driver drowsiness. | 
| 21 | Distraction | DVC-A1/D2 | Identifies when the driver is looking away from the road for an extended period. | 
| 22 | Smoking | DVC-A1/S2 | Detects if the driver is smoking while operating the vehicle. | 
| 23 | Phone Call | DVC-A1/PC1 | Alerts when the driver is using a mobile phone while driving. | 
| 24 | Missing Face | DVC-A1/MF1 | Notifies when the driver's face is not detected by the monitoring system. | 
| 25 | Seatbelt | DVC-A1/S3 | Detects whether the driver is not wearing a seatbelt while driving. | 
📄 JSON Data Structure
Location Data Update (DVC-DU/L1)
{
    license_plate: string,
    hull_no: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    speed: int,
    direction: int,
    engine_on: bool,
    last_packet: string,
    last_receive: string,
    last_motion: string,
    motion_status: string
}
Temperature Data Update (DVC-DU/T1)
{
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    temperature_num: int,
    temperature: float,
    engine_on: bool
}
Fuel Data Update (DVC-DU/F1)
{
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    liter: float,
    percentage: float,
    engine_on: bool
}
Overspeed Alarm (DVC-A1/O1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    speed: int
}
Geofence Alarm (DVC-A1/G1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    condition: string, // Going in or out of geofence. Possible values: in, out
    geofence: string // Name of the geofence
}
Temperature Alarm (DVC-A1/T1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    condition: string, // Higher or Lower than alert threshold. Possible values: lower, higher
    temperature: float,
    origin: string // Origin of the temperature alert. Possible values: refrigerator, engine
}
Fuel Alarm (DVC-A1/F1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    condition: string, // Gaining or Losing fuel. Possible values: gain, loss
    percentage: float,
    capacity: float
}
Door Alarm (DVC-A1/D1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    door_num: int, // Indicates which door sensor it is. Possible values: 1, 2
    condition: string, // Is door opened or closed. Possible values: open, close
    address: string // Address of the coordinates
}
Tamper Alarm (DVC-A1/T2)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float
}
Harsh Braking Alarm (DVC-A1/HB1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float
}
Harsh Acceleration Alarm (DVC-A1/HA1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float
}
Engine Alarm (DVC-A1/E1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float
    condition: string, // Is engine on or off. Possible values: On, Off
}
SOS Alarm (DVC-A1/S1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float
}
Status Fleet Task (API-DU1/SF1)
{
    event_code: string,
    fo_number: string,
    vehicle_id: integer,
    license_plate: string,
    driver: string,
    driver_contact: string,
    expected_departure_on: string,
    estimated_arrival_on: string,
    actual_departure_on: string,
    actual_arrival_on: string,
    company_id: integer,
    status: string,
    delivery_orders: [
        {
            number: string,
            origin_address: {
                name: string,
                full_name: string,
                geolocation: string,
                geolocation_type: string
            },
            destination_address: {
                name: string,
                full_name: string,
                geolocation: string,
                geolocation_type: string
            },
            expected_pickup_on: string,
            expected_delivered_on: string,
            status: {
                name: string
            },
            shipment_number: string,
            timestamp: {
                picked_on: string,
                delivered_on: string
            },
            user_definition_fields: [
                {
                    key: string,
                    name: string,
                    value: any
                }
            ]
        }
    ],
    unassigned_delivery_orders: [
        // Same structure as delivery_orders
    ],
    assigned_delivery_orders: [
        // Same structure as delivery_orders
    ]
}
Pop Pod Data Update (API-DU1/PP1)
{
    event_code: string,
    fo_number: string,
    vehicle_id: integer,
    license_plate: string,
    driver: string,
    driver_contact: string,
    expected_departure_on: string,
    estimated_arrival_on: string,
    actual_departure_on: string,
    actual_arrival_on: string,
    company_id: integer,
    status: string,
    delivery_orders: [
        {
            number: string,
            origin_address: {
                name: string,
                full_name: string,
                geolocation: string,
                geolocation_type: string
            },
            destination_address: {
                name: string,
                full_name: string,
                geolocation: string,
                geolocation_type: string
            },
            expected_pickup_on: string,
            expected_delivered_on: string,
            status: {
                name: string
            },
            shipment_number: string,
            timestamp: {
                picked_on: string,
                delivered_on: string
            },
            user_definition_fields: [
                {
                    key: string,
                    name: string,
                    value: any
                }
            ]
        }
    ],
    unassigned_delivery_orders: [
        // Same structure as delivery_orders
    ],
    assigned_delivery_orders: [
        // Same structure as delivery_orders
    ]
}
Quick Assignment Transition Status (API-DU1/QS1)
Notes
- All timestamps follow the RFC 3339 format (e.g., 2006-01-02T15:04:05Z).
- All durations are represented using the ISO 8601 duration format (e.g., P(n)Y(n)M(n)DT(n)H(n)M(n)S).
- The webhook payload includes the complete quick assignment object, not just the updated fields.
{
    "company_id": integer,
    "id": string,
    "number": string,
    "status": {
        "raw_type": string, // e.g., "DRAFT", "SCHEDULED", "STARTED", "ENDED", "CANCELED"
        "name": string,
        "color": string,
        "status_fields": string
    },
    "vehicle": {
        "id": integer,
        "license_plate": string
    },
    "driver": {
        "id": integer,
        "name": string,
        "phone": string
    },
    "phone_number": string,
    "expected_departure_on": string,
    "estimated_arrival_on": string,
    "actual_departure_on": string,
    "actual_arrival_on": string,
    "autocomplete_source": string,
    "current_point_location": {
        "id": string,
        "visit_status": {
            "raw_type": string, // e.g., "ON_TIME", "LATE", "POTENTIAL_ON_TIME", "POTENTIAL_LATE", "WILL_VISITED", "VISITING", "VISITED", "MISSED_VISIT", "NOT_VISITED"
            "name": string,
            "background_color": string,
            "foreground_color": string
        },
        "status": {
            "raw_type": string, // e.g., "WILL_VISITED", "VISITING", "VISITED", "MISSED_VISIT", "NOT_VISITED"
            "name": string,
            "background_color": string,
            "foreground_color": string
        },
        "address": {
            "id": string,
            "type": string, // e.g., "MASTER_DATA", "GOOGLE_MAP"
            "name": string,
            "full_name": string,
            "geolocation": {
                "type": string,
                "coordinate": {
                    "latitude": float,
                    "longitude": float
                },
                "polygon": [
                    {
                        "latitude": float,
                        "longitude": float
                    }
                ],
                "radius": float
            }
        },
        "estimated_arrival_on": string,
        "estimated_departure_on": string,
        "actual_arrival_on": string,
        "actual_departure_on": string
    },
    "note": string,
    "custom_field": {},
    "created_on": string,
    "created_by": string,
    "updated_on": string,
    "updated_by": string,
    "total_distance_plan": float,
    "total_duration_plan": string,
    "total_distance_actual": float,
    "total_duration_actual": string,
    "points": [
        {
            "id": string,
            "fleet_task_instant_id": string,
            "status": {
                "raw_type": string, // e.g., "WILL_VISITED", "VISITING", "VISITED", "MISSED_VISIT", "NOT_VISITED"
                "name": string,
                "background_color": string,
                "foreground_color": string
            },
            "plan_sequence": integer,
            "actual_sequence": integer,
            "type": string, // e.g., "START", "DEFAULT", "END"
            "address": {
                "id": string,
                "type": string,
                "name": string,
                "full_name": string,
                "geolocation": {
                    "type": string,
                    "coordinate": {
                        "latitude": float,
                        "longitude": float
                    },
                    "polygon": [
                        {
                            "latitude": float,
                            "longitude": float
                        }
                    ],
                    "radius": float
                }
            },
            "target_time_arrival": string,
            "target_time_departure": string,
            "actual_time_arrival": string,
            "actual_time_departure": string,
            "actual_service_time": string,
            "actual_distance": float,
            "estimated_time_arrival": string,
            "estimated_time_departure": string,
            "estimated_distance": float,
            "estimated_duration": string,
            "late_arrival_time": string,
            "late_departure_time": string,
            "late_service_time": string,
            "service_time": string,
            "activity_label": {
                "raw_type": string, // e.g., "PICKUP", "DROP"
                "name": string
            },
            "note": string,
            "proof": {
                "contact_person_name": string,
                "note": string,
                "created_on": string,
                "created_by": string,
                "updated_on": string,
                "updated_by": string
            },
            "attachment": {
                "photos": [
                    {
                        "id": string,
                        "point_id": string,
                        "created_on": string,
                        "created_by": string,
                        "url": string
                    }
                ],
                "document": {
                    "id": string,
                    "point_id": string,
                    "created_on": string,
                    "created_by": string,
                    "url": string
                }
            }
        }
    ]
}
Quick Assignment Transition Point Status (DVC-DU1/QPS1)
Same structure as Quick Assignment Transition Status (API-DU1/QS1)
Update Quick Assignment (API-DU1/Q1)
Same structure as Quick Assignment Transition Status (API-DU1/QS1)
Quick Assignment POP POD (API-DU1/QPP1)
Same structure as Quick Assignment Transition Status (API-DU1/QS1)
Location with Fleet Task Data Update (DVC-DU/LF1)
{
    license_plate: string,
    hull_no: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    speed: int,
    direction: int,
    engine_on: bool,
    last_packet: string,
    last_receive: string,
    last_motion: string,
    motion_status: string
}
Fatigue Alarm (DVC-A1/F2)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Close Eye Alarm (DVC-A1/CE1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Yawn Alarm (DVC-A1/Y1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Distraction Alarm (DVC-A1/D2)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Smoking Alarm (DVC-A1/S2)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Phone Call Alarm (DVC-A1/PC1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Missing Face Alarm (DVC-A1/MF1)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Seatbelt Alarm (DVC-A1/S3)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
Shock Alarm (DVC-A1/S4)
{
    event_timestamp: string,
    license_plate: string,
    imei: string,
    driver: string,
    latitude: float,
    longitude: float,
    geofences: [string],
    engine_on: bool,
    link: string
}
🎯 Notes
- All timestamps are in UTC timezone
- Boolean fields use true/falsevalues
- Arrays are enclosed in square brackets []
- Some alarms include a linkfield directing to relevant media or logs.
- If you have any questions, please reach out to our support team.