StatusNotification

Reports a connector's state. Now addressed by EVSE and connector, and faults have moved out.

Version
OCPP 2.0.1
Direction
Charge Point → CSMS
Functional block
Availability

StatusNotification also exists in OCPP 1.6, with a different payload. See the OCPP 1.6 version.

Two changes from 1.6, both consequences of the new model. First, a connector is addressed by evseId and connectorId rather than one flat number — the EVSE is the new level between station and socket.

Second, and more disruptive: there is no `errorCode` field. Faults are no longer reported here. They travel in NotifyEvent, driven by the variable monitoring system. Anything in a 1.6 CSMS that reads ChargePointErrorCode from StatusNotification has no equivalent to read in 2.0.1.

Request

FieldTypeRequiredDescription
timestampdateTimeRequiredWhen the status changed. Required in 2.0.1, unlike 1.6.
connectorStatusConnectorStatusEnumTypeRequiredThe connector's state.
evseIdintegerRequiredThe EVSE the connector belongs to.
connectorIdintegerRequiredThe connector within that EVSE.
json
[2, "19223201", "StatusNotification", {
  "timestamp": "2026-09-09T10:22:11Z",
  "connectorStatus": "Occupied",
  "evseId": 1,
  "connectorId": 1
}]

Response

No fields — the payload is an empty object {}.

json
[3, "19223201", {}]

Values

ConnectorStatusEnumType

ValueMeaning
AvailableIdle and ready.
OccupiedIn use. Covers 1.6's Preparing, Charging, SuspendedEV, SuspendedEVSE and Finishing.
ReservedHeld by a reservation.
UnavailableOut of service.
FaultedA fault is present. The detail arrives in NotifyEvent.

Implementation notes

Five 1.6 statuses collapsed into `Occupied`. If your reporting distinguishes Charging from SuspendedEV, that information now comes from TransactionEvent, not from here.

`timestamp` is required now. It was optional in 1.6 and frequently omitted, which broke offline replay. That hole is closed.

Fault detail lives in NotifyEvent. Plan the migration of any error-code reporting before switching a fleet to 2.0.1.