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

FieldTypeRequiredDescription
locationanyURIRequiredWhere to download the firmware. Typically HTTP(S) or FTP.
retrieveDatedateTimeRequiredWhen to start the download.
retriesintegerOptionalHow many times to retry a failed download.
retryIntervalintegerOptionalSeconds to wait between retries.
json
[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 {}.

json
[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.