Skip to content
Documentation Menu

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 Occupied state as defined in previous OCPP versions is no longer relevant. The Occupied state is split into five new statuses: Preparing, Charging, SuspendedEV, SuspendedEVSE and Finishing.

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, Unavailable and Faulted. The status of ConnectorId 0 has no direct connection to the status of the individual Connectors (>0).

IMPORTANT: If charging is suspended both by the EV and the EVSE, status SuspendedEVSE SHALL have precedence over status SuspendedEV.

IMPORTANT: When a Charge Point or a Connector is set to status Unavailable by a Change Availability command, the Unavailable status MUST be persistent across reboots. The Charge Point MAY use the Unavailable status internally for other purposes (e.g. while updating firmware or waiting for an initial Accepted RegistrationStatus).

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 MinimumStatusDuration setting. The time set in MinimumStatusDuration will be added to this default delay. Setting MinimumStatusDuration to zero SHALL NOT override the default manufacturer's minimal status duration.

IMPORTANT: ChargePointErrorCode EVCommunicationError SHALL only be used with status Preparing, SuspendedEV, SuspendedEVSE and Finishing and 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:

  1. The Charge Point SHOULD send a StatusNotification.req PDU with its current status if the status changed while the Charge Point was offline.
  2. The Charge Point MAY send a StatusNotification.req PDU to report an error that occurred while the Charge Point was offline.
  3. The Charge Point SHOULD NOT send StatusNotification.req PDUs 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.
  4. The StatusNotification.req messages 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):

AvailablePreparingChargingSuspendedEVSuspendedEVSEFinishingReservedUnavailableFaulted
AvailableA2A3A4A5A7A8A9
PreparingB1B3B4B5B9
ChargingC1C4C5C6C8C9
SuspendedEVD1D3D5D6D8D9
SuspendedEVSEE1E3E4E6E8E9
FinishingF1F2F8F9
ReservedG1G2G8G9
UnavailableH1H2H3H4H5H9
FaultedI1I2I3I4I5I6I7I8

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 NameField TypeCard.Description
connectorIdinteger (>= 0)1..1Required. 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.
errorCodeChargePointErrorCode1..1Required. This contains the error code reported by the Charge Point.
infoCiString50Type0..1Optional. Additional free format information related to the error.
statusChargePointStatus1..1Required. This contains the current status of the Charge Point.
timestampdateTime0..1Optional. The time for which the status is reported. If absent, time of receipt of the message will be assumed.
vendorIdCiString255Type0..1Optional. This identifies the vendor-specific implementation.
vendorErrorCodeCiString50Type0..1Optional. This contains the vendor-specific error code.

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"
}
  • MinimumStatusDuration
  • StopTransactionOnEVSideDisconnect
  • UnlockConnectorOnEVSideDisconnect
  • ConnectorPhaseRotation

Schema

Source: schemas/StatusNotification.json, schemas/StatusNotificationResponse.json (OCPP 1.6, JSON Schema draft-04)

Request schema (JSON Schema)
Response schema (JSON Schema)