UpdateFirmware
Tells the charge point to download and install firmware from a URL at a given time.
- Version
- OCPP 1.6
- Direction
- CSMS → Charge Point
- Feature profile
- Firmware Management
UpdateFirmware also exists in OCPP 2.0.1, with a different payload. See the OCPP 2.0.1 version.
UpdateFirmware hands the charge point a location to fetch firmware from and a time to fetch it. The charger downloads, installs and reboots on its own schedule, reporting progress through FirmwareStatusNotification.
retrieveDate is required, and scheduling it in the future is how fleet operators stagger updates rather than having every station download at once.
Request
| Field | Type | Required | Description |
|---|---|---|---|
location | anyURI | Required | Where to download the firmware. Typically HTTP(S) or FTP. |
retrieveDate | dateTime | Required | When to start the download. |
retries | integer | Optional | How many times to retry a failed download. |
retryInterval | integer | Optional | Seconds to wait between retries. |
[2, "19223201", "UpdateFirmware", {
"location": "https://firmware.example.com/ac22-duo/2.5.0.bin",
"retrieveDate": "2026-09-10T02:00:00.000Z",
"retries": 3,
"retryInterval": 600
}]Response
No fields — the payload is an empty object {}.
[3, "19223201", {}]Implementation notes
The response is empty — it confirms nothing. There is no status field, so an empty response means only that the charger received the request. Progress comes exclusively through FirmwareStatusNotification.
The charge point fetches the firmware itself, so the URL must be reachable from the charger's network, not from your backend's. On a cellular fleet behind a private APN this is a frequent surprise.
OCPP 1.6 has no signature or checksum field. Integrity is entirely the vendor's problem, which is a good reason to insist on HTTPS.