SendLocalList

Pushes the local authorization list to the charge point, as a full replacement or a differential update.

Version
OCPP 1.6
Direction
CSMS → Charge Point
Feature profile
Local Auth List Management

SendLocalList also exists in OCPP 2.0.1, with a different payload. See the OCPP 2.0.1 version.

SendLocalList writes the offline authorization list. Full replaces the list entirely; Differential applies changes on top of what the charger already has.

In a differential update, an entry with no idTagInfo means delete this token. That is the only way to remove an entry, and it is easy to miss.

Request

FieldTypeRequiredDescription
listVersionintegerRequiredThe version number this update produces.
updateTypeUpdateTypeRequiredFull to replace, Differential to apply changes.
localAuthorizationListAuthorizationData[]OptionalThe entries. Each has an idTag and an optional idTagInfo.
json
[2, "19223201", "SendLocalList", {
  "listVersion": 43,
  "updateType": "Differential",
  "localAuthorizationList": [
    { "idTag": "04A1B2C3D4E580", "idTagInfo": { "status": "Accepted" } },
    { "idTag": "04FFEEDDCCBB00" }
  ]
}]

Response

FieldTypeRequiredDescription
statusUpdateStatusRequiredResult of the update.
json
[3, "19223201", {
  "status": "Accepted"
}]

Values

UpdateType

ValueMeaning
FullReplace the entire list with the entries supplied.
DifferentialApply the entries as changes to the existing list.

UpdateStatus

ValueMeaning
AcceptedThe update was applied.
FailedThe update failed.
NotSupportedThe charge point does not support the local list.
VersionMismatchThe supplied listVersion is not higher than the one held.

Implementation notes

An entry without `idTagInfo` is a deletion. In the example above, 04FFEEDDCCBB00 is being removed from the list, not added with default permissions.

`VersionMismatch` means your version number was not higher. Recover by calling GetLocalListVersion and sending a version above what the charger reports — not by retrying the same number.

A Full update with an empty or absent list clears the list entirely.

SendLocalListMaxLength limits how many entries fit in one message. Large fleets need to chunk differential updates.