StatusNotification
Reports a connector's state, and any fault, to the CSMS. The main source of availability data.
- Version
- OCPP 1.6
- Direction
- Charge Point → CSMS
- Feature profile
- Core
StatusNotification also exists in OCPP 2.0.1, with a different payload. See the OCPP 2.0.1 version.
StatusNotification tells the CSMS what a connector is doing and whether anything is wrong with it. It is sent whenever the status changes, and it is what every availability dashboard and uptime metric is ultimately built from.
connectorId: 0 is special: it refers to the charge point as a whole rather than to any individual connector. A fault that takes out the whole station is reported on connector 0.
Request
| Field | Type | Required | Description |
|---|---|---|---|
connectorId | integer | Required | The connector this applies to. 0 means the charge point itself. |
errorCode | ChargePointErrorCode | Required | The fault, or NoError when healthy. |
status | ChargePointStatus | Required | The connector's current state. |
timestamp | dateTime | Optional | When the status changed. Strongly recommended — without it the CSMS has to guess. |
info | CiString50 | Optional | Free-text detail about the current status. |
vendorId | CiString255 | Optional | Identifies the vendor namespace for vendorErrorCode. |
vendorErrorCode | CiString50 | Optional | Manufacturer-specific error code. |
[2, "19223201", "StatusNotification", {
"connectorId": 1,
"errorCode": "NoError",
"status": "Charging",
"timestamp": "2026-09-09T10:22:11.000Z"
}]Response
No fields — the payload is an empty object {}.
[3, "19223201", {}]Values
ChargePointStatus
| Value | Meaning |
|---|---|
Available | Idle and ready for a new session. |
Preparing | A user has been detected — cable plugged, or token presented — but charging has not started. |
Charging | Delivering energy to the vehicle. |
SuspendedEV | Session is open but the VEHICLE has paused the draw. Usually a full battery. |
SuspendedEVSE | Session is open but the CHARGER has paused delivery. Usually load management or a smart charging limit. |
Finishing | The session has ended; the connector is not yet available again. |
Reserved | Held by a reservation. |
Unavailable | Administratively out of service, via ChangeAvailability. |
Faulted | A fault is present. errorCode says which. |
ChargePointErrorCode
| Value | Meaning |
|---|---|
NoError | No fault. Sent with normal status changes. |
ConnectorLockFailure | Failure to lock or unlock the connector. |
EVCommunicationError | Communication with the vehicle failed. Often a Control Pilot problem. |
GroundFailure | Ground fault circuit interrupter tripped. |
HighTemperature | Internal temperature too high. |
InternalError | Fault in an internal hardware or software component. |
LocalListConflict | Local authorization list version conflict during an update. |
OverCurrentFailure | Over-current protection tripped. |
OverVoltage | Supply voltage above the permitted range. |
PowerMeterFailure | The power meter failed. |
PowerSwitchFailure | The power switch or contactor failed. |
ReaderFailure | The RFID reader failed. |
ResetFailure | A requested reset failed. |
UnderVoltage | Supply voltage below the permitted range. |
WeakSignal | Wireless communication signal too weak. |
OtherError | A fault that none of the other codes describes. |
Implementation notes
SuspendedEV and SuspendedEVSE get swapped constantly. EV means the car stopped drawing; EVSE means the charger stopped supplying. Getting them backwards makes load-management behaviour look like vehicle behaviour in every report built on top.
`timestamp` is optional and should not be. Without it the CSMS timestamps on receipt, so any queued message delivered after a reconnect gets the wrong time. Send it.
A charger must send StatusNotification for every connector after boot, so the CSMS starts from a known state.