Status Notification
Source: OCPP 1.6 Specification — Section 4.9 (Operation), Sections 6.47 / 6.48 (Messages)
Overview
A Charge Point sends a notification to the Central System to inform the Central System about a status change or an error within the Charge Point.
IMPORTANT: The
Occupiedstate as defined in previous OCPP versions is no longer relevant. TheOccupiedstate is split into five new statuses:Preparing,Charging,SuspendedEV,SuspendedEVSEandFinishing.
NOTE: EVSE is used in Status Notification instead of Socket or Charge Point for future compatibility.
IMPORTANT: A Charge Point Connector MAY have any of the 9 statuses. For
ConnectorId 0, only a limited set is applicable, namely:Available,UnavailableandFaulted. The status ofConnectorId 0has no direct connection to the status of the individual Connectors (>0).
IMPORTANT: If charging is suspended both by the EV and the EVSE, status
SuspendedEVSESHALL have precedence over statusSuspendedEV.
IMPORTANT: When a Charge Point or a Connector is set to status
Unavailableby a Change Availability command, theUnavailablestatus MUST be persistent across reboots. The Charge Point MAY use theUnavailablestatus internally for other purposes (e.g. while updating firmware or waiting for an initialAcceptedRegistrationStatus).
To limit the number of transitions, the Charge Point MAY omit sending a StatusNotification.req if it was active for less time than defined in the optional configuration key MinimumStatusDuration. This way, a Charge Point MAY choose not to send certain StatusNotification.req PDUs.
NOTE: A Charge Point manufacturer MAY have implemented a minimal status duration for certain status transitions separate of the
MinimumStatusDurationsetting. The time set inMinimumStatusDurationwill be added to this default delay. SettingMinimumStatusDurationto zero SHALL NOT override the default manufacturer's minimal status duration.
IMPORTANT:
ChargePointErrorCodeEVCommunicationErrorSHALL only be used with statusPreparing,SuspendedEV,SuspendedEVSEandFinishingand be treated as warning.
When a Charge Point is configured with StopTransactionOnEVSideDisconnect set to false, a transaction is running and the EV becomes disconnected on EV side, then a StatusNotification.req with the state SuspendedEV SHOULD be sent to the Central System, with the errorCode field set to NoError. The current transaction is not stopped.
When a Charge Point is configured with StopTransactionOnEVSideDisconnect set to true, a transaction is running and the EV becomes disconnected on EV side, then a StatusNotification.req with the state Finishing SHOULD be sent to the Central System, with the errorCode field set to NoError. The current transaction is stopped.
When a Charge Point connects to a Central System after having been offline, it updates the Central System about its status according to the following rules:
- The Charge Point SHOULD send a
StatusNotification.reqPDU with its current status if the status changed while the Charge Point was offline. - The Charge Point MAY send a
StatusNotification.reqPDU to report an error that occurred while the Charge Point was offline. - The Charge Point SHOULD NOT send
StatusNotification.reqPDUs for historical status change events that happened while the Charge Point was offline and that do not inform the Central System of Charge Point errors or the Charge Point's current status. - The
StatusNotification.reqmessages MUST be sent in the order in which the events that they describe occurred.
Upon receipt of a StatusNotification.req PDU, the Central System SHALL respond with a StatusNotification.conf PDU.
Sequence Diagram
Figure 20. Sequence Diagram: Status Notification
Charge Point ──── StatusNotification.req ────▶ Central System
(connectorId, errorCode, status, info?, timestamp?, vendorId?, vendorErrorCode?)
Charge Point ◀─── StatusNotification.conf ──── Central System
Initiator
Charge Point → Central System
Connector Status Transition Table
The table below describes which status transitions are possible (applicable to ConnectorId > 0):
| Available | Preparing | Charging | SuspendedEV | SuspendedEVSE | Finishing | Reserved | Unavailable | Faulted | |
|---|---|---|---|---|---|---|---|---|---|
| Available | A2 | A3 | A4 | A5 | A7 | A8 | A9 | ||
| Preparing | B1 | B3 | B4 | B5 | B9 | ||||
| Charging | C1 | C4 | C5 | C6 | C8 | C9 | |||
| SuspendedEV | D1 | D3 | D5 | D6 | D8 | D9 | |||
| SuspendedEVSE | E1 | E3 | E4 | E6 | E8 | E9 | |||
| Finishing | F1 | F2 | F8 | F9 | |||||
| Reserved | G1 | G2 | G8 | G9 | |||||
| Unavailable | H1 | H2 | H3 | H4 | H5 | H9 | |||
| Faulted | I1 | I2 | I3 | I4 | I5 | I6 | I7 | I8 |
Transition Triggers (selected)
- A2 — Usage initiated (e.g. plug insert, idTag presented, RemoteStartTransaction.req).
- A7 — A Reserve Now message reserves the connector.
- A8 — A Change Availability sets the connector to Unavailable.
- A9 / B9 / C9 / D9 / E9 / F9 / G9 / H9 — A fault is detected that prevents further charging operations.
- B1 — Intended usage ended (plug removed, second idTag presentation, time-out).
- B3 — All prerequisites met and charging starts.
- C1 — Charging session ends, no user action required (e.g. fixed cable removed on EV side).
- C4 — Charging stops upon EV request (e.g. S2 opened).
- C5 — Charging stops upon EVSE request (e.g. smart charging restriction).
- C6 — Stopped by user / Remote Stop, further user action needed.
- C8 — Session ends, no user action, connector scheduled to become Unavailable.
- D3 — Charging resumes upon EV request.
- D5 — EVSE suspends charging (e.g. smart charging).
- E3 — Charging resumes when EVSE restriction is lifted.
- F1 — All user actions completed.
- F2 — User restarts session (reconnects cable, presents idTag).
- G1 — Reservation expires or Cancel Reservation received.
- G2 — Reservation identity is presented.
- H1 — Connector set Available by Change Availability.
- I1–I8 — Fault resolved, status returns to pre-fault state.
Fields
| Field Name | Field Type | Card. | Description |
|---|---|---|---|
| connectorId | integer (>= 0) | 1..1 | Required. The id of the connector for which the status is reported. Id 0 (zero) is used if the status is for the Charge Point main controller. |
| errorCode | ChargePointErrorCode | 1..1 | Required. This contains the error code reported by the Charge Point. |
| info | CiString50Type | 0..1 | Optional. Additional free format information related to the error. |
| status | ChargePointStatus | 1..1 | Required. This contains the current status of the Charge Point. |
| timestamp | dateTime | 0..1 | Optional. The time for which the status is reported. If absent, time of receipt of the message will be assumed. |
| vendorId | CiString255Type | 0..1 | Optional. This identifies the vendor-specific implementation. |
| vendorErrorCode | CiString50Type | 0..1 | Optional. This contains the vendor-specific error code. |
No fields are defined.
ChargePointStatus values
Available, Preparing, Charging, SuspendedEVSE, SuspendedEV, Finishing, Reserved, Unavailable, Faulted.
ChargePointErrorCode values
ConnectorLockFailure, EVCommunicationError, GroundFailure, HighTemperature, InternalError, LocalListConflict, NoError, OtherError, OverCurrentFailure, OverVoltage, PowerMeterFailure, PowerSwitchFailure, ReaderFailure, ResetFailure, UnderVoltage, WeakSignal.
Examples
{
"connectorId": 1,
"errorCode": "NoError",
"status": "Charging",
"timestamp": "2026-04-27T12:34:56Z"
}{
"connectorId": 2,
"errorCode": "OverCurrentFailure",
"info": "Over-current on L2",
"status": "Faulted",
"timestamp": "2026-04-27T12:35:10Z",
"vendorId": "com.vendorx.charging",
"vendorErrorCode": "OC-L2-001"
}{}Related Configuration Keys
MinimumStatusDurationStopTransactionOnEVSideDisconnectUnlockConnectorOnEVSideDisconnectConnectorPhaseRotation
Schema
Source:
schemas/StatusNotification.json,schemas/StatusNotificationResponse.json(OCPP 1.6, JSON Schema draft-04)