BootNotification

The first message after connecting. Identifies the charging station and reports why it booted.

Version
OCPP 2.0.1
Direction
Charge Point → CSMS
Functional block
Provisioning

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

As in 1.6, nothing else may be sent until the CSMS answers Accepted. What changed is the shape: the hardware identity moves into a nested chargingStation object with an optional modem, and a new reason field says why the station booted.

reason is the useful addition. A station that reboots on PowerUp is normal; one that keeps reporting FirmwareUpdate or RemoteReset is telling you something.

Request

FieldTypeRequiredDescription
chargingStationChargingStationTypeRequiredmodel and vendorName are required; serialNumber, firmwareVersion and modem are optional.
reasonBootReasonEnumTypeRequiredWhy the station is sending BootNotification.
json
[2, "19223201", "BootNotification", {
  "reason": "PowerUp",
  "chargingStation": {
    "model": "AC22-Duo",
    "vendorName": "AcmeCharging",
    "serialNumber": "SN-0001234",
    "firmwareVersion": "3.1.0",
    "modem": { "iccid": "8944500000000000000", "imsi": "234150000000000" }
  }
}]

Response

FieldTypeRequiredDescription
currentTimedateTimeRequiredThe CSMS's current time.
intervalintegerRequiredHeartbeat interval when Accepted; retry delay when Pending or Rejected.
statusRegistrationStatusEnumTypeRequiredWhether the station is accepted.
statusInfoStatusInfoTypeOptionalMachine-readable reasonCode plus optional additionalInfo.
json
[3, "19223201", {
  "currentTime": "2026-09-09T10:15:30Z",
  "interval": 300,
  "status": "Accepted"
}]

Values

BootReasonEnumType

ValueMeaning
PowerUpNormal power-on.
FirmwareUpdateRebooted after a firmware update.
RemoteResetRebooted by a Reset request.
LocalResetReset triggered at the station.
ScheduledResetA reset that had been scheduled.
TriggeredSent because of TriggerMessage, not an actual boot.
ApplicationResetThe station's application restarted.
WatchdogA watchdog timer forced the restart.
UnknownThe station cannot determine the reason.

RegistrationStatusEnumType

ValueMeaning
AcceptedRegistered; the station may send other messages.
PendingKnown but not ready. The CSMS may configure it before accepting.
RejectedNot accepted. Wait interval seconds before retrying.

Implementation notes

`reason: "Triggered"` is not a boot. It means the CSMS asked for this message with TriggerMessage. Counting it as a restart makes healthy stations look unstable.

statusInfo is new in 2.0.1 and appears on most responses. It carries a reasonCode you can branch on, rather than free text — use it instead of parsing messages.

The 1.6 chargePointVendor/chargePointModel fields are now chargingStation.vendorName/chargingStation.model.