Event Reference
Pipelet delivers 23 distinct event types to webhook subscribers. Each event corresponds to an OCPP 1.6 message — when a station sends one to the Pipelet broker, an event with the same name is enqueued for delivery to every webhook subscribed to it.
The canonical list lives in cpms-headless/gateway/routes/webhooks.py (the EVENT_COLUMNS dict).
Quick lookup
Section titled “Quick lookup”| Event | OCPP direction | Fires when… |
|---|---|---|
Authorize | Station → CSMS | A station is verifying an idTag with the central system. |
BootNotification | Station → CSMS | A station starts up and registers with the CSMS. |
Heartbeat | Station → CSMS | A station sends its periodic keep-alive (typically every 60–300s). |
StartTransaction | Station → CSMS | A charging session begins. |
StopTransaction | Station → CSMS | A charging session ends. |
StatusNotification | Station → CSMS | A connector changes status (Available, Preparing, Charging, Finishing, Faulted, …). |
MeterValues | Station → CSMS | A station reports meter readings during a session. |
DataTransfer | Both | Vendor-specific data exchange. |
ChangeAvailability | CSMS → Station | The CSMS toggles a connector between Operative and Inoperative. |
ChangeConfiguration | CSMS → Station | The CSMS writes an OCPP config key. |
ClearCache | CSMS → Station | The CSMS instructs the station to clear its authorization cache. |
GetConfiguration | CSMS → Station | The CSMS reads OCPP config keys. |
RemoteStartTransaction | CSMS → Station | The CSMS triggers a remote start (e.g. via the Headless API). |
RemoteStopTransaction | CSMS → Station | The CSMS triggers a remote stop. |
Reset | CSMS → Station | The CSMS sends a Soft or Hard reset. |
UnlockConnector | CSMS → Station | The CSMS asks the station to unlock a stuck connector. |
GetDiagnostics | CSMS → Station | The CSMS requests a diagnostics file upload. |
UpdateFirmware | CSMS → Station | The CSMS triggers a firmware update. |
TriggerMessage | CSMS → Station | The CSMS asks a station to re-send a specific message (e.g. BootNotification). |
ReserveNow | CSMS → Station | The CSMS reserves a connector for a specific user. |
SendLocalList | CSMS → Station | The CSMS pushes the local authorization list. |
Connect | Pipelet internal | A station opens its OCPP WebSocket connection. |
Disconnect | Pipelet internal | A station’s OCPP WebSocket connection closes. |
Total: 23 events.
Example payloads
Section titled “Example payloads”StartTransaction
Section titled “StartTransaction”{ "event": "StartTransaction", "station_id": "WALLBOX_001", "timestamp": "2026-04-14T12:34:56.789Z", "payload": { "connectorId": 1, "idTag": "RFID_12345678", "meterStart": 12345, "timestamp": "2026-04-14T12:34:56Z", "transactionId": 42 }}StopTransaction
Section titled “StopTransaction”{ "event": "StopTransaction", "station_id": "WALLBOX_001", "timestamp": "2026-04-14T13:42:11.221Z", "payload": { "transactionId": 42, "timestamp": "2026-04-14T13:42:11Z", "meterStop": 17340, "reason": "Local", "idTag": "RFID_12345678" }}StatusNotification
Section titled “StatusNotification”{ "event": "StatusNotification", "station_id": "WALLBOX_001", "timestamp": "2026-04-14T12:34:50.000Z", "payload": { "connectorId": 1, "errorCode": "NoError", "status": "Preparing", "timestamp": "2026-04-14T12:34:50Z" }}MeterValues
Section titled “MeterValues”{ "event": "MeterValues", "station_id": "WALLBOX_001", "timestamp": "2026-04-14T12:35:56.000Z", "payload": { "connectorId": 1, "transactionId": 42, "meterValue": [ { "timestamp": "2026-04-14T12:35:56Z", "sampledValue": [ { "value": "13456", "measurand": "Energy.Active.Import.Register", "unit": "Wh" }, { "value": "11.2", "measurand": "Power.Active.Import", "unit": "kW" } ] } ] }}Filtering tips
Section titled “Filtering tips”If you need all events for audit purposes, that’s fine — but consider running a dedicated archive consumer rather than mixing high-volume events with low-volume ones.
Querying available events programmatically
Section titled “Querying available events programmatically”curl -H "X-API-Key: hcpms_live_..." \ http://localhost:8080/api/v1/webhooks/eventsReturns the canonical list as JSON — useful for building dynamic UIs.