Skip to content
Documentation Menu

OCPP 2.0.1 Part 2 — Errata v2.0

Source: OCPP 2.0.1 Part 2 — Errata v2.0 (140 pages). Items are tagged (v1) for those introduced in errata v1.0 and (v2) for those new to v2.0.

This file is an index of every errata item, grouped by spec section and by which message/use case the correction applies to. For each item the bracket reference (e.g. [14], [592]) is the OCA tracker id; the page number is the original Part 2 page being corrected.

3. General

  • 3.1 (v1) Requirements take precedence over text [14].
  • 3.2 (v1) Error in changelog [381].
  • 3.3 (v1) Respond to request before sending result messages [397].
  • 3.4 (v2) ChargingState = EVDetected should be read as EVConnected [545].
  • 3.5 (v2) Recommendation on restoring a connection [567].

4. Use case A — Security

  • 4.1 (v1) p.19 — Note about needing correct date to validate certificates [496].
  • 4.2 (v1) p.20 — Type of BasicAuthPassword [489] — introduces a new primitive passwordString; updates Security Profiles 1 and 2.
  • 4.3 (v1) p.20 — Note about changed password encoding between OCPP 1.6 and 2.0.1 [431] — touches Security Profiles 1 and 2.
  • 4.4 (v1) p.20 — Unnecessary precondition removed for A00.FR.205 [429].
  • 4.5 (v1) p.20 — Implicit CSMS requirement made explicit [440].
  • 4.6 (v1) p.23 — Wrong precondition in requirements [444].
  • 4.7 (v1) p.24 — Provision for accepting Charging Station with expired certificate [401].
  • 4.8 (v1) p.29 — Recommendations for handling expired manufacturer certificate [400].
  • 4.9 (v1) p.31 — Additional requirements for updating a CS certificate, including new SecurityCtrlr variables.
  • 4.10 (v1) Clarification for reconnection with new certificate [149] — applies to A02.FR.08 (p.33) and A03.FR.08 (p.36).

5. Use case B — Provisioning

  • 5.1 (v1) p.45 — Heartbeat interval must be > 0 [370] — adds minLimit to HeartbeatInterval config variable.
  • 5.2 (v1) p.54 — Return first instance when no instance specified [476].
  • 5.3 (v2) p.54 — Return only specified instance with GetVariablesRequest [608].
  • 5.4 (v2) p.55 — B06: missing requirement when exceeding ItemsPerMessageGetVariables [605].
  • 5.5 (v1) p.56 — B07: requirement for CSMS to request FullInventory is missing [511].
  • 5.6 (v1) p.56 — B08: conflicting requirements [355].
  • 5.7 (v2) p.59 — B08: missing requirement when exceeding ItemsPerMessageGetReport [615].
  • 5.8 (v2) p.59 — B08: handling of empty variables/instances in GetReport [565].
  • 5.9 (v2) p.62 — B10: requirement note should have been a separate requirement; missing preconditions.
  • 5.10 (v2) p.63 — B11: allow Unavailable notification during reset [581].
  • 5.11 (v1) p.66 — Incomplete preconditions in B12 [442].

6. Use case C — Authorization

  • 6.1 (v1) p.74 — Part of requirement is actually a precondition [439].
  • 6.2 (v2) p.74 — C01.FR.06: AuthorizeResponse must return groupIdToken [641].
  • 6.3 (v1) p.75 — Requirement to avoid authorizing multiple idTokens in a transaction [514].
  • 6.4 (v1) p.83 — Sequence diagram of use case C05 [435].
  • 6.5 (v1) p.84 — Description and remarks of C05 [503, 504].
  • 6.6 (v2) p.89 — C07: certificate in AuthorizeRequest contains certificate chain [533] — touches both the C07 requirements and the AuthorizeRequest field description (p.338).
  • 6.7 (v2) p.94 — Improved requirements for groupIdToken [601].
  • 6.8 (v1) p.94 — C09.FR.11 is partly incorrect [513].
  • 6.9 (v2) p.101 — C13.FR.02 / C13.FR.04 are about authorizing, not starting [640].
  • 6.10 (v1) p.105 — chargingState in requirement C15.FR.03 [464].
  • 6.11 (v2) p.105 — Incorrect TxStartPoint = PowerPathClosed reference in requirement precondition.

7. Use case E — Transactions

  • 7.1 (v2) p.114 — Improved definition of transaction [538].
  • 7.2 (v1) p.115 — Setting for OCPP 1.6 transaction compatibility [516].
  • 7.3 (v1) p.116 — Using seqNo in TransactionEventRequest when EVSE is not known [525].
  • 7.4 (v2) p.116 — Solution for ever-increasing seqNo per EVSE may lead to race condition and eventual overflow [592].
  • 7.5 (v2) p.116 — Clarification for optional fields in TransactionEventRequest [101].
  • 7.6 (v2) p.119 — References to AlignedDataSignReadings instead of SampledDataSignReadings [626] — touches scenario S4 (p.119) and requirements E01.FR.04, E02.FR.14, E03.FR.10, E04.FR.10, E05.FR.06, E07.FR.12, E08.FR.12, E09.FR.08, E10.FR.07, E11.FR.08, E12.FR.10.
  • 7.7 (v2) p.122 — Obsolete references to power relay for PowerPathClosed [600] — affects E01 S5 objective, E01.FR.05, E06 S5, E06.FR.06.
  • 7.8 (v2) p.123 — E01.FR.12: TransactionEventResponse must also return groupIdToken [642].
  • 7.9 (v2) p.123 — Requirements about chargingState and SuspendedEV [582].
  • 7.10 (v2) p.125 — E02: invalid remark about multiple authorizations [568].
  • 7.11 (v2) p.125 — Sequence diagram error: idToken.id shown more than once [591].
  • 7.12 (v1) p.126 — E02.FR.05 new note about NotifyEvent [437].
  • 7.13 (v1) p.126 — Precondition E02.FR.06 is incomplete [438].
  • 7.14 (v1) p.126 — Missing requirement about authorization during transaction [514, 547].
  • 7.15 (v2) p.126 — Broken table caused a requirement to be hidden.
  • 7.16 (v1) p.130 — Precondition E03.FR.04 is incomplete [435].
  • 7.17 (v2) p.139 — Handling of EVConnectionTimeout better defined [627] — affects E03 and F02.
  • 7.18 (v2) p.136 — E05.FR.02 should not contain PowerPathClosed [604].
  • 7.19 (v2) p.137 — chargingState in E05.FR.09 [596, 647].
  • 7.20 (v2) p.140 — E06: scenario S4 is not valid [537].
  • 7.21 (v2) p.142 — E06: missing a common stopping scenario [540].
  • 7.22 (v1) p.143 — Confusing precondition in E06.FR.06 [506].
  • 7.23 (v1) p.143 — Requirements for eventType=Started don't belong in E06/E07 [453] (E06.FR.11, E06.FR.17, E07.FR.08, E07.FR.13).
  • 7.24 (v2) p.143 — E07 should use TxStopPoint = Authorized [541].
  • 7.25 (v1) p.144 — E07 sequence diagram is not complete.
  • 7.26 (v2) p.145 — Report idToken for stopping authorization [583].
  • 7.27 (v1) p.162 — Misspelled field name in requirements/remark [452].

8. Use case F — Remote Control

  • 8.1 (v2) p.169 — F01: requirements unclear about when transaction starts [580].
  • 8.2 (v1) p.169 — Missing requirements for rejecting request [449, 509].
  • 8.3 (v1) p.170 — Requirement missing for remoteStartId [517].
  • 8.4 (v2) p.170 — F01/F02: ChargingProfile in RequestStartTransaction [558] — touches F01, F02, and the description of remoteStartId (p.358).
  • 8.5 (v1) p.171 — F02 sequence diagram error [435] (description + TxStartPoint = Authorized [549]).
  • 8.6 (v2) p.171 — F02: sequence diagram for TxStartPoint = EVConnected [579].
  • 8.7 (v1) p.172 — Some E03 requirements also apply to F02 [441].
  • 8.8 (v2) p.172 — Relevant F01 requirements copied to F02 Remote Start First [590].
  • 8.9 (v2) p.174 — F03: replace TxStartPoint by TxStopPoint [557].
  • 8.10 (v2) p.174 — F03: some requirements only valid for TxStopPoint = EVConnected [563].
  • 8.11 (v1) p.180 — F06.FR.07 description improvement [451].
  • 8.12 (v1) p.180 — Note to F06.FR.11 is contradicting F06.FR.12.
  • 8.13 (v1) p.180 — F06.FR.12: evseId cannot be 0 [450].

9. Use case G — Availability

  • 9.1 (v2) p.184 — G01: added alternative scenario using NotifyEvent [530].
  • 9.2 (v2) p.184 — Missing requirements for StatusNotification [569] — adds connect/disconnect state-transition overview.
  • 9.3 (v2) p.184 — StatusNotifications for multiple connectors on an EVSE [530].
  • 9.4 (v1) p.188 — Precondition of G03.FR.05 is incomplete [368].

10. Use case H — Reservation

  • 10.1 (v1) p.197 — Merging two requirements [445].
  • 10.2 (v1) p.197 — Missing requirement about reserving for evseId [472, 505].
  • 10.3 (v1) p.197 — H01.FR.20 needs to be split [447, 472].
  • 10.4 (v2) p.197 — Use field reservationId instead of id in ReserveNow [584].
  • 10.5 (v2) p.203 — Incorrect dataType reference AvailabilityType should be operationalStatus.

11. Use case I — Tariff and Cost

  • 11.1 (v1) p.207 — I02: show running total cost in TransactionEventResponse [361] — updates I02 requirements (p.208) and TransactionEventResponse (p.367).

12. Use case J — Meter Values

  • 12.1 (v1) p.214 — Limit the amount of meter values in TransactionEvent(Ended) [371] — touches §2.1 and J02 requirements.
  • 12.2 (v2) p.215 — Incorrect sentence in description for AlignedDataTxEndedInterval [624] (p.439).
  • 12.3 (v1) p.216 — Including phases for register meter values [328] — adds new config variable SampledDataRegisterValuesWithoutPhases (p.439).
  • 12.4 (v1) p.218 — Missing requirement for dealing with AlignedDataDuringIdle [457].
  • 12.5 (v1) p.218 — Wrong placement of Aligned/SampledDataSignReadingsJ01.FR.16 belongs to J02; J02.FR.15 belongs to J01.
  • 12.6 (v2) p.220 — J02: improved definition of J01.FR.11 [535].
  • 12.7 (v1) p.221 — J03: dealing with ISO 15118 signed metering receipts is unclear [352, 353] — touches J03 rows 7/10 and J03.FR.03.

13. Use case K — Smart Charging

  • 13.1 (v2) p.231 — K.2.6.1: error in JSON examples [552].
  • 13.2 (v1) p.233 — K01: recommendation to not limit duration of TxProfile [519].
  • 13.3 (v2) p.233 — Transaction does not fall back to TxDefaultProfile when TxProfile ends early [603].
  • 13.4 (v1) p.234 — K01: SetChargingProfile cannot replace external constraints [507].
  • 13.5 (v2) p.234 — K01: improved explanation of TxDefaultProfile on evseId = 0 [593] — updates requirements at p.234 and p.251 (GetChargingProfileRequest).
  • 13.6 (v2) p.236 — K01: numberPhases / phaseToUse mismatch with EVSE capabilities [577] — updates description of numberPhases (p.374).
  • 13.7 (v1) p.236 — K01: missing requirement for startSchedule [510].
  • 13.8 (v2) p.235 — Definition of start of a relative charging profile [638] — updates ChargingScheduleType (p.373) and ChargingProfileKindEnumType (p.395).
  • 13.9 (v2) p.238 — K02: incorrect note of K02.FR.03 [597].
  • 13.10 (v1) p.245 — K05: Remote Start Transaction with Charging Profile [354] — updates §2.10 ChargingProfile (p.373).
  • 13.11 (v2) p.245 — K05: added requirements from F01/F02 [558].
  • 13.12 (v1) p.250 — Unclear precondition of K08.FR.06 [462].
  • 13.13 (v1) p.251 — Requirements K09 GetChargingProfiles [406] — updates GetChargingProfileRequest (p.346).
  • 13.14 (v1) p.252 — K10: requirements are incomplete [502].
  • 13.15 (v1) p.253 — K01.FR.34 refers to ChargingSchedulePeriodType, should be ChargingScheduleType [363].
  • 13.16 (v1) p.254 — Charging profile ids for external constraints profiles [365].
  • 13.17 (v1) p.259 — K15: recommendation for NotifyEVChargingScheduleRequest [349] — affects K15, K16, K17.
  • 13.18 p.259 — Improved requirement definitions regarding NotifyEVChargingScheduleRequest [349].
  • 13.19 (v1) p.260 — K15: improved error handling description; note added to K15.FR.05.
  • 13.20 (v1) p.260 — Note to K15.FR.07 about composite schedule.
  • 13.21 (v1) p.261 — K15.FR.17 has incomplete precondition [366].

14. Use case L — Firmware Management

  • 14.1 (v2) p.271, p.277 — Sequence diagrams allow reboot before status = Installed [639] (L01 + L02).
  • 14.2 (v2) p.273 — Firmware update process graph is incomplete [634].
  • 14.3 (v1) p.273 — Missing requirement if firmware verification fails [455].
  • 14.4 (v1) p.274, p.278 — Changed note of L01.FR.13 [456] (L01 + L02).
  • 14.5 (v2) p.274 — Changed preconditions for DownloadScheduled [614] (L01 + L02).
  • 14.6 (v1) p.275, p.279 — Requirement for DownloadFailed missing [384].
  • 14.7 (v2) p.275, p.279 — Requirement for Installed is unclear [634].
  • 14.8 (v2) p.275 — Requirement for SecurityEvent FirmwareUpdated [648].
  • 14.9 (v2) p.275 — Allow the CS to report InstallRebooting after installing but before activating new firmware.

15. Use case M — ISO 15118 Certificate Management

  • 15.1 (v2) p.285 — Improved sequence diagram (Figure 121).
  • 15.2 (v1) p.288 — Improving definition of V2GRootCertificate [283].
  • 15.3 (v1) p.292 — M01/M02: contract certificate pool [288] — updates M01.FR.01 and M02.FR.01.
  • 15.4 (v1) p.294 — Some occurrences of typeOfCertificate instead of certificateType [389].
  • 15.5 (v2) p.296 — M05: reference to sub-CA certificate instead of root certificate [388].
  • 15.6 (v1) p.296 — M04: a CS should be allowed to prevent deletion of the last certificate of a defined type — updates DeleteCertificateStatusEnumType (p.399).
  • 15.7 (v1) p.296 — M04.FR.06 misses status code [471].
  • 15.8 (v2) p.296 — M04: deletion of certificate also deletes its child certificates [309].
  • 15.9 (v2) p.298 — M05: missing requirement about replacing a certificate [617].
  • 15.10 (v2) p.299 — M06.FR.04 refers to wrong status [576].

16. Use case N — Diagnostics

  • 16.1 (v1) p.303 — Misspelled enumeration in N01.FR.10 [443].
  • 16.2 (v1) p.303 — Requirements for GetLogRequest are incomplete [497].
  • 16.3 (v2) p.303 — LogStatusNotification for AcceptedCanceled made explicit [594].
  • 16.4 (v1) p.305 — N02 GetMonitoringReport: conflicting requirements [355].
  • 16.5 (v2) p.305 — N02: handling of empty variables/instances in GetMonitoringReport [565].
  • 16.6 (v2) p.306 — N03: SetMonitoringBaseRequest clarification [616].
  • 16.7 (v1) p.307 — Misspelled type in N04.FR.05 [372].
  • 16.8 (v1) p.308 — N04.FR.10 is too restrictive [358].
  • 16.9 (v1) p.308 — Precondition incomplete in N04.FR.11 [373].
  • 16.10 (v1) p.308 — Precondition unclear in N04.FR.16 [374].
  • 16.11 (v2) p.308 — N04: requirement missing that hard-wired monitors cannot be changed [628].
  • 16.12 (v2) p.308 — N04: recommend GetMonitoringReport after reboot [643].
  • 16.13 (v2) p.310 — N06: requirement missing when exceeding ItemsPerMessage / BytesPerMessage [620].
  • 16.14 (v1) p.310 — Error in N06.FR.05 [369].
  • 16.15 (v2) p.311 — N07: remark about OfflineMonitoringEventQueuingSeverity [633].
  • 16.16 (v2) p.311 — Typo in N07.FR.04 [633].
  • 16.17 (v1) p.311 — N07.FR.06 uses variableMonitoringId [477].
  • 16.18 (v1) p.312 — Wrong precondition in N07.FR.14 [356].
  • 16.19 (v1) p.312 — Added note to N07.FR.16 and N07.FR.17 [359].
  • 16.20 (v1) p.312 — Moved requirements about periodic monitors from N07 to N08 [367]N08.FR.01 replaced by N08.FR.06 and N08.FR.07.

17. Use case P — Data Transfer

  • 17.1 (v2) p.331 — Added example for using JSON in DataTransfer.data [574].

18. Messages

  • 18.1 (v2) p.339 — Error in description of CertificateSignedRequest [425].
  • 18.2 (v1) p.344 — Typographical error in FirmwareNotificationRequest [480].
  • 18.3 (v2) p.345 — Enlarging exiResponse in Get15118EVCertificate [637] — also updates the device-model variable.
  • 18.4 (v2) p.349 — Better definition of retries [586] — applies to GetLogRequest (p.349), PublishFirmwareRequest (p.456), UpdateFirmwareRequest (p.468).
  • 18.5 (v1) p.351 — Remark at InstallCertificateRequest [283].
  • 18.6 (v2) p.358 — Description of groupIdToken in RequestStartTransactionRequest [645].
  • 18.7 (v1) p.365 — Wrong description of timestamp in StatusNotificationRequest [379].
  • 18.8 (v2) p.366 — Description of IdToken in TransactionEventRequest [583].

19. Datatypes

  • 19.1 (v2) p.371 — Description of CertificateHashDataType [542].
  • 19.2 (v1) p.380 — Description of MessageInfoType [481].
  • 19.3 (v2) p.382 — Description of OCSPRequestDataType [542].
  • 19.4 (v1) p.386 — SetVariablesRequest can have empty string [488].

20. Enumerations

  • 20.1 (v1) p.400 — Wrong description of EventTriggerEnumType.Alerting [351].
  • 20.2 (v1) p.404 — LocationEnumType.Inlet description [494].
  • 20.3 (v2) p.406 — Voltage: improved description [544].
  • 20.4 (v1) p.409 — Enumeration value for OCPP 2.0.1 missing [501].

21. Referenced Components and Variables

  • 21.1 (v1) p.420 — List of Components and Variables in XLS format [145].
  • 21.2 (v1) p.420 — Added reference to part 1; updates Charging Infrastructure-related variables (p.446).
  • 21.3 (v1) p.422 — Improved description of OfflineThreshold [487].
  • 21.4 (v2) p.423 — Variable UnlockOnEVSideDisconnect does not have an evse attribute.
  • 21.5 (v2) p.432 — DeviceDataCtrlr.Items/BytesPerMessage also applies to GetMonitoringReport [649] — updates ItemsPerMessageGetReport and BytesPerMessageGetReport.
  • 21.6 (v1) p.426 — Variable ClockCtrlr.TimeAdjustmentReportingThreshold [492].
  • 21.7 (v1) p.427 — Variable SecurityCtrlr.BasicAuthPassword [489].
  • 21.8 (v2) p.428 — Improved description of OrganizationName [393].
  • 21.9 (v1) p.428 — Note with AdditionalRootCertificateCheck variable [479].
  • 21.10 (v1) p.429 — Improved description of AuthEnabled [485].
  • 21.11 (v1) p.430 — New optional variable DisableRemoteAuthorization [486].
  • 21.12 (v1) p.431 — New optional variable DisablePostAuthorize [484].
  • 21.13 (v1) p.434 — Better description of TxStartPoint / TxStopPoint [348].
  • 21.14 (v1) p.435 — Note to SampledDataSignReadings [526].
  • 21.15 (v2) p.438 — Variable AlignedDataSendDuringIdle does not have evse attribute.
  • 21.16 (v2) p.438 — AlignedDataSignReadings only applies to meter values in TransactionEvent [625].
  • 21.17 (v1) p.439 — Note to PublicKeyWithSignedMeterValue [460].
  • 21.18 (v2) p.440 — Improved description of ChargingProfileMaxStackLevel [551].
  • 21.19 (v2) p.442 — Typo in description of QueueAllMessages [546].
  • 21.20 (v1) p.445 — New optional MonitoringCtrlr variables [357].
  • 21.21 (v1) p.446 — CustomImplementationEnabled is located in wrong section [387].
  • 21.22 (v1) p.447 — Reporting new connector types [478].
  • 21.23 (v1) p.449 — New variables for ISO15118Ctrlr about protocol version in use [378].
  • 21.24 (v2) p.449 — Variables about ISO15118Ctrlr protocol versions moved to ConnectedEV [598].
  • 21.25 (v1) p.449 — New configuration variables for ISO15118Ctrlr [180, 443] — adds ISO15118PnCEnabled, ISO15118CtrlrEvseId, ISO15118RequestMeteringReceipt.
  • 21.26 (v2) p.449 — ISO15118Ctrlr.PnCEnabled description improved; new variables: ISO15118V2GCertificateInstallationEnabled, ISO15118ContractCertificateInstallationEnabled.
  • 21.27 (v2) p.449 — Setting Plug-and-Charge variables [564, 571] — adds SeccId, CountryName, OrganizationName, EvseId.

22. Appendix 1 — Security Events

  • 22.1 (v2) p.3 — Certain security events must be marked as Critical [585].
  • 22.2 (v2) p.3 — Unclear which security events are mandatory to implement and how that relates to Critical events.

23. Appendix 3 — Standardized Components

  • 23.1 (v1) p.8 — DefaultMessageTimeout missing for OCPPCommCtrlr [482].
  • 23.2 (v1) p.8 — Description of NetworkConfigurationPriority for OCPPCommCtrlr [483].
  • 23.3 (v1) p.9 — BasicAuthPassword of SecurityCtrlr [490].
  • 23.4 (v1) p.14 — New component ConnectedEV.
  • 23.5 (v2) p.14 — ConnectedEV: new EnergyCapacity variable [553].

24. Appendix 5 — Reason Codes

  • 24.1 (v1) New reason code: MissingDeviceModelInfo [383].

Cross-reference: errata items per action file

The errata items that materially change a specific message field, response status, or behaviour are listed against the corresponding action file. Items that only fix typos or reorganize prose are not listed here.

File in ocpp2.0.1/Errata items
Authorize.md6.6 (certificate chain in AuthorizeRequest), 6.2 (groupIdToken in AuthorizeResponse)
BootNotification.md5.1 (HeartbeatInterval > 0)
CertificateSigned.md18.1 (description)
DataTransfer.md17.1 (JSON-in-data example)
DeleteCertificate.md15.6 (DeleteCertificateStatusEnumType add prevention status), 15.8 (delete cascades to children)
FirmwareStatusNotification.md18.2 (typo in name), 14.7 (Installed requirement), 14.9 (InstallRebooting allowed after install)
Get15118EVCertificate.md18.3 (enlarged exiResponse)
GetLog.md18.4 (retries definition)
InstallCertificate.md18.5 (remark), 15.9 (replacing a certificate)
MeterValues.md / TransactionEvent.md12.1 (limit meter values in TransactionEvent(Ended)), 12.2 (description), 12.3 (new config var), 12.5–12.7 (sign-readings placement)
NotifyEVChargingSchedule.md13.17, 13.18 (recommendations)
PublishFirmware.md / UpdateFirmware.md18.4 (retries definition)
RequestStartTransaction.md8.4 (charging profile rules), 18.6 (groupIdToken description)
ReserveNow.md10.4 (reservationId field naming)
Reset.md5.10 (allow Unavailable notification during reset)
SetChargingProfile.md13.4 (cannot replace external), 13.5 (evseId = 0 semantics), 13.6 (numberPhases), 13.8 (relative kind), 13.10 (ChargingProfile updates)
SignCertificate.md / CertificateSigned.md4.10 (reconnect with new certificate)
StatusNotification.md9.1, 9.2, 9.3 (alternative scenario, missing requirements, multi-connector)
TransactionEvent.md7.1 (transaction definition), 7.4 (seqNo overflow), 7.5 (optional fields), 7.8 (groupIdToken in response), 11.1 (running cost), 18.8 (IdToken description)
UnlockConnector.md(no material errata)
UpdateFirmware.md14.x (sequence + state graph), 18.4 (retries)