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
| Field | Type | Required | Description |
|---|---|---|---|
chargingStation | ChargingStationType | Required | model and vendorName are required; serialNumber, firmwareVersion and modem are optional. |
reason | BootReasonEnumType | Required | Why the station is sending BootNotification. |
[2, "19223201", "BootNotification", {
"reason": "PowerUp",
"chargingStation": {
"model": "AC22-Duo",
"vendorName": "AcmeCharging",
"serialNumber": "SN-0001234",
"firmwareVersion": "3.1.0",
"modem": { "iccid": "8944500000000000000", "imsi": "234150000000000" }
}
}]Response
| Field | Type | Required | Description |
|---|---|---|---|
currentTime | dateTime | Required | The CSMS's current time. |
interval | integer | Required | Heartbeat interval when Accepted; retry delay when Pending or Rejected. |
status | RegistrationStatusEnumType | Required | Whether the station is accepted. |
statusInfo | StatusInfoType | Optional | Machine-readable reasonCode plus optional additionalInfo. |
[3, "19223201", {
"currentTime": "2026-09-09T10:15:30Z",
"interval": 300,
"status": "Accepted"
}]Values
BootReasonEnumType
| Value | Meaning |
|---|---|
PowerUp | Normal power-on. |
FirmwareUpdate | Rebooted after a firmware update. |
RemoteReset | Rebooted by a Reset request. |
LocalReset | Reset triggered at the station. |
ScheduledReset | A reset that had been scheduled. |
Triggered | Sent because of TriggerMessage, not an actual boot. |
ApplicationReset | The station's application restarted. |
Watchdog | A watchdog timer forced the restart. |
Unknown | The station cannot determine the reason. |
RegistrationStatusEnumType
| Value | Meaning |
|---|---|
Accepted | Registered; the station may send other messages. |
Pending | Known but not ready. The CSMS may configure it before accepting. |
Rejected | Not 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.