Link copied

Functional Block: B

Types Reference: Shared types referenced below are defined in OCPP-2.0.1-DataTypes.md.
Types used only within this block are documented inline below.

#Messages


#BootNotification

Direction: CS → CSMS

#BootNotificationRequest

Field Type Required Constraints Description
chargingStation ChargingStationType Yes
reason BootReasonEnumType Yes
customData CustomDataType No
Example BootNotificationRequest
{
  "chargingStation": {
    "model": "string",
    "vendorName": "string"
  },
  "reason": "ApplicationReset"
}

#BootNotificationResponse

Field Type Required Constraints Description
currentTime string (date-time) Yes This contains the CSMS’s current time.
interval integer Yes When Status is Accepted, this contains the heartbeat interval in seconds. If the CSMS returns something other than Accepted, the value of the interval field indicates the minimum wait time before sending a next BootNotification request.
status RegistrationStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#Heartbeat

Direction: CS → CSMS

#HeartbeatRequest

Field Type Required Constraints Description
customData CustomDataType No

#HeartbeatResponse

Field Type Required Constraints Description
currentTime string (date-time) Yes Contains the current time of the CSMS.
customData CustomDataType No

#StatusNotification

Direction: CS → CSMS

#StatusNotificationRequest

Field Type Required Constraints Description
connectorId integer Yes The id of the connector within the EVSE for which the status is reported.
connectorStatus ConnectorStatusEnumType Yes
evseId integer Yes The id of the EVSE to which the connector belongs for which the the status is reported.
timestamp string (date-time) Yes The time for which the status is reported. If absent time of receipt of the message will be assumed.
customData CustomDataType No
Example StatusNotificationRequest
{
  "connectorId": 0,
  "connectorStatus": "Available",
  "evseId": 0,
  "timestamp": "2024-01-15T10:30:00Z"
}

#StatusNotificationResponse

No required fields. An empty {} is a valid response.


#GetVariables

Direction: CSMS → CS

#GetVariablesRequest

Field Type Required Constraints Description
getVariableData GetVariableDataType[] Yes minItems: 1
customData CustomDataType No
Example GetVariablesRequest
{
  "getVariableData": [
    {
      "component": "{...}",
      "variable": "{...}"
    }
  ]
}

#GetVariablesResponse

Field Type Required Constraints Description
getVariableResult GetVariableResultType[] Yes minItems: 1
customData CustomDataType No

#SetVariables

Direction: CSMS → CS

#SetVariablesRequest

Field Type Required Constraints Description
setVariableData SetVariableDataType[] Yes minItems: 1
customData CustomDataType No
Example SetVariablesRequest
{
  "setVariableData": [
    {
      "attributeValue": "string",
      "component": "{...}",
      "variable": "{...}"
    }
  ]
}

#SetVariablesResponse

Field Type Required Constraints Description
setVariableResult SetVariableResultType[] Yes minItems: 1
customData CustomDataType No

#GetBaseReport

Direction: CSMS → CS

#GetBaseReportRequest

Field Type Required Constraints Description
reportBase ReportBaseEnumType Yes
requestId integer Yes The Id of the request.
customData CustomDataType No
Example GetBaseReportRequest
{
  "reportBase": "ConfigurationInventory",
  "requestId": 0
}

#GetBaseReportResponse

Field Type Required Constraints Description
status GenericDeviceModelStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#GetReport

Direction: CSMS → CS

#GetReportRequest

Field Type Required Constraints Description
requestId integer Yes The Id of the request.
componentCriteria ComponentCriterionEnumType[] No minItems: 1, maxItems: 4 This field contains criteria for components for which a report is requested
componentVariable ComponentVariableType[] No minItems: 1
customData CustomDataType No
Example GetReportRequest
{
  "requestId": 0
}

#GetReportResponse

Field Type Required Constraints Description
status GenericDeviceModelStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#NotifyReport

Direction: CS → CSMS

#NotifyReportRequest

Field Type Required Constraints Description
generatedAt string (date-time) Yes Timestamp of the moment this message was generated at the Charging Station.
requestId integer Yes The id of the GetReportRequest or GetBaseReportRequest that requested this report
seqNo integer Yes Sequence number of this message. First message starts at 0.
reportData ReportDataType[] No minItems: 1
tbc boolean No “to be continued” indicator. Indicates whether another part of the report follows in an upcoming notifyReportRequest message. Default value when omitted is false. Default: False
customData CustomDataType No
Example NotifyReportRequest
{
  "generatedAt": "2024-01-15T10:30:00Z",
  "requestId": 0,
  "seqNo": 0
}

#NotifyReportResponse

No required fields. An empty {} is a valid response.


#Reset

Direction: CSMS → CS

#ResetRequest

Field Type Required Constraints Description
type ResetEnumType Yes
evseId integer No This contains the ID of a specific EVSE that needs to be reset, instead of the entire Charging Station.
customData CustomDataType No
Example ResetRequest
{
  "type": "Immediate"
}

#ResetResponse

Field Type Required Constraints Description
status ResetStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#DataTransfer

Direction: Both

#DataTransferRequest

Field Type Required Constraints Description
vendorId string Yes maxLength: 255 This identifies the Vendor specific implementation
data any No Data without specified length or format. This needs to be decided by both parties (Open to implementation).
messageId string No maxLength: 50 May be used to indicate a specific message or implementation.
customData CustomDataType No
Example DataTransferRequest
{
  "vendorId": "string"
}

#DataTransferResponse

Field Type Required Constraints Description
status DataTransferStatusEnumType Yes
data any No Data without specified length or format, in response to request.
statusInfo StatusInfoType No
customData CustomDataType No

#SetNetworkProfile

Direction: CSMS → CS

#SetNetworkProfileRequest

Field Type Required Constraints Description
configurationSlot integer Yes Slot in which the configuration should be stored.
connectionData NetworkConnectionProfileType Yes
customData CustomDataType No
Example SetNetworkProfileRequest
{
  "configurationSlot": 0,
  "connectionData": {
    "ocppVersion": "OCPP12",
    "ocppTransport": "JSON",
    "ocppCsmsUrl": "string",
    "messageTimeout": 0,
    "securityProfile": 0,
    "ocppInterface": "Wired0"
  }
}

#SetNetworkProfileResponse

Field Type Required Constraints Description
status SetNetworkProfileStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#Local Types

Types used only within this block's messages.

#APNAuthenticationEnumType

Authentication method.

Value
CHAP
NONE
PAP
AUTO

Used in: SetNetworkProfile


#BootReasonEnumType

This contains the reason for sending this message to the CSMS.

Value
ApplicationReset
FirmwareUpdate
LocalReset
PowerUp
RemoteReset
ScheduledReset
Triggered
Unknown
Watchdog

Used in: BootNotification


#ComponentCriterionEnumType

Value
Active
Available
Enabled
Problem

Used in: GetReport


#ConnectorStatusEnumType

This contains the current status of the Connector.

Value
Available
Occupied
Reserved
Unavailable
Faulted

Used in: StatusNotification


#DataEnumType

Data type of this variable.

Value
string
decimal
integer
dateTime
boolean
OptionList
SequenceList
MemberList

Used in: NotifyReport


#DataTransferStatusEnumType

This indicates the success or failure of the data transfer.

Value
Accepted
Rejected
UnknownMessageId
UnknownVendorId

Used in: DataTransfer


#GetVariableStatusEnumType

Result status of getting the variable.

Value
Accepted
Rejected
UnknownComponent
UnknownVariable
NotSupportedAttributeType

Used in: GetVariables


#MutabilityEnumType

Defines the mutability of this attribute. Default is ReadWrite when omitted.

Default: ReadWrite

Value
ReadOnly
WriteOnly
ReadWrite

Used in: NotifyReport


#OCPPInterfaceEnumType

Applicable Network Interface.

Value
Wired0
Wired1
Wired2
Wired3
Wireless0
Wireless1
Wireless2
Wireless3

Used in: SetNetworkProfile


#OCPPTransportEnumType

Defines the transport protocol (e.g. SOAP or JSON). Note: SOAP is not supported in OCPP 2.0, but is supported by other versions of OCPP.

Value
JSON
SOAP

Used in: SetNetworkProfile


#OCPPVersionEnumType

Defines the OCPP version used for this communication function.

Value
OCPP12
OCPP15
OCPP16
OCPP20

Used in: SetNetworkProfile


#RegistrationStatusEnumType

This contains whether the Charging Station has been registered within the CSMS.

Value
Accepted
Pending
Rejected

Used in: BootNotification


#ReportBaseEnumType

This field specifies the report base.

Value
ConfigurationInventory
FullInventory
SummaryInventory

Used in: GetBaseReport


#ResetEnumType

This contains the type of reset that the Charging Station or EVSE should perform.

Value
Immediate
OnIdle

Used in: Reset


#ResetStatusEnumType

This indicates whether the Charging Station is able to perform the reset.

Value
Accepted
Rejected
Scheduled

Used in: Reset


#SetNetworkProfileStatusEnumType

Result of operation.

Value
Accepted
Rejected
Failed

Used in: SetNetworkProfile


#SetVariableStatusEnumType

Result status of setting the variable.

Value
Accepted
Rejected
UnknownComponent
UnknownVariable
NotSupportedAttributeType
RebootRequired

Used in: SetVariables


#VPNEnumType

Type of VPN

Value
IKEv2
IPSec
L2TP
PPTP

Used in: SetNetworkProfile


#APNType

Collection of configuration data needed to make a data-connection over a cellular network. NOTE: When asking a GSM modem to dial in, it is possible to specify which mobile operator should be used. This can be done with the mobile country code (MCC) in combination with a mobile network code (MNC). Example: If your preferred network is Vodafone Netherlands, the MCC=204 and the MNC=04 which means the key PreferredNetwork = 20404 Some modems allows to specify a preferred network, which means, if this network is not available, a different network is used. If you specify UseOnlyPreferredNetwork and this network is not available, the modem will not dial in.

Field Type Required Constraints Description
apn string Yes maxLength: 512 The Access Point Name as an URL.
apnAuthentication APNAuthenticationEnumType Yes
apnPassword string No maxLength: 20 APN Password.
apnUserName string No maxLength: 20 APN username.
preferredNetwork string No maxLength: 6 Preferred network, written as MCC and MNC concatenated. See note.
simPin integer No SIM card pin code.
useOnlyPreferredNetwork boolean No Default: false. Use only the preferred Network, do not dial in when not available. See Note. Default: False
customData CustomDataType No

Used in: SetNetworkProfile


#ChargingStationType

The physical system where an Electrical Vehicle (EV) can be charged.

Field Type Required Constraints Description
model string Yes maxLength: 20 Defines the model of the device.
vendorName string Yes maxLength: 50 Identifies the vendor (not necessarily in a unique manner).
firmwareVersion string No maxLength: 50 This contains the firmware version of the Charging Station.
modem ModemType No
serialNumber string No maxLength: 25 Vendor-specific device identifier.
customData CustomDataType No

Used in: BootNotification


#ComponentVariableType

Class to report components, variables and variable attributes and characteristics.

Field Type Required Constraints Description
component ComponentType Yes
variable VariableType No
customData CustomDataType No

Used in: GetMonitoringReport, GetReport


#GetVariableDataType

Class to hold parameters for GetVariables request.

Field Type Required Constraints Description
component ComponentType Yes
variable VariableType Yes
attributeType AttributeEnumType No
customData CustomDataType No

Used in: GetVariables


#GetVariableResultType

Class to hold results of GetVariables request.

Field Type Required Constraints Description
attributeStatus GetVariableStatusEnumType Yes
component ComponentType Yes
variable VariableType Yes
attributeStatusInfo StatusInfoType No
attributeType AttributeEnumType No
attributeValue string No maxLength: 2500 Value of requested attribute type of component-variable. This field can only be empty when the given status is NOT accepted. The Configuration Variable ReportingValueSize can be used to limit GetVariableResult.attributeValue, VariableAttribute.value and EventData.actualValue. The max size of these values will always remain equal.
customData CustomDataType No

Used in: GetVariables


#ModemType

Defines parameters required for initiating and maintaining wireless communication with other devices.

Field Type Required Constraints Description
iccid string No maxLength: 20 This contains the ICCID of the modem’s SIM card.
imsi string No maxLength: 20 This contains the IMSI of the modem’s SIM card.
customData CustomDataType No

Used in: BootNotification


#NetworkConnectionProfileType

The NetworkConnectionProfile defines the functional and technical parameters of a communication link.

Field Type Required Constraints Description
messageTimeout integer Yes Duration in seconds before a message send by the Charging Station via this network connection times-out. The best setting depends on the underlying network and response times of the CSMS. If you are looking for a some guideline: use 30 seconds as a starting point.
ocppCsmsUrl string Yes maxLength: 512 URL of the CSMS(s) that this Charging Station communicates with.
ocppInterface OCPPInterfaceEnumType Yes
ocppTransport OCPPTransportEnumType Yes
ocppVersion OCPPVersionEnumType Yes
securityProfile integer Yes This field specifies the security profile used when connecting to the CSMS with this NetworkConnectionProfile.
apn APNType No
vpn VPNType No
customData CustomDataType No

Used in: SetNetworkProfile


#ReportDataType

Class to report components, variables and variable attributes and characteristics.

Field Type Required Constraints Description
component ComponentType Yes
variable VariableType Yes
variableAttribute VariableAttributeType[] Yes minItems: 1, maxItems: 4
variableCharacteristics VariableCharacteristicsType No
customData CustomDataType No

Used in: NotifyReport


#SetVariableDataType

Field Type Required Constraints Description
attributeValue string Yes maxLength: 1000 Value to be assigned to attribute of variable. The Configuration Variable ConfigurationValueSize can be used to limit SetVariableData.attributeValue and VariableCharacteristics.valueList. The max size of these values will always remain equal.
component ComponentType Yes
variable VariableType Yes
attributeType AttributeEnumType No
customData CustomDataType No

Used in: SetVariables


#SetVariableResultType

Field Type Required Constraints Description
attributeStatus SetVariableStatusEnumType Yes
component ComponentType Yes
variable VariableType Yes
attributeStatusInfo StatusInfoType No
attributeType AttributeEnumType No
customData CustomDataType No

Used in: SetVariables


#VPNType

VPN Configuration settings

Field Type Required Constraints Description
key string Yes maxLength: 255 VPN shared secret.
password string Yes maxLength: 20 VPN Password.
server string Yes maxLength: 512 VPN Server Address
type VPNEnumType Yes
user string Yes maxLength: 20 VPN User
group string No maxLength: 20 VPN group.
customData CustomDataType No

Used in: SetNetworkProfile


#VariableAttributeType

Attribute data of a variable.

Field Type Required Constraints Description
constant boolean No If true, value that will never be changed by the Charging Station at runtime. Default when omitted is false. Default: False
mutability MutabilityEnumType No
persistent boolean No If true, value will be persistent across system reboots or power down. Default when omitted is false. Default: False
type AttributeEnumType No
value string No maxLength: 2500 Value of the attribute. May only be omitted when mutability is set to 'WriteOnly'. The Configuration Variable ReportingValueSize can be used to limit GetVariableResult.attributeValue, VariableAttribute.value and EventData.actualValue. The max size of these values will always remain equal.
customData CustomDataType No

Used in: NotifyReport


#VariableCharacteristicsType

Fixed read-only parameters of a variable.

Field Type Required Constraints Description
dataType DataEnumType Yes
supportsMonitoring boolean Yes Flag indicating if this variable supports monitoring.
maxLimit number No Maximum possible value of this variable. When the datatype of this Variable is String, OptionList, SequenceList or MemberList, this field defines the maximum length of the (CSV) string.
minLimit number No Minimum possible value of this variable.
unit string No maxLength: 16 Unit of the variable. When the transmitted value has a unit, this field SHALL be included.
valuesList string No maxLength: 1000 Allowed values when variable is Option/Member/SequenceList. * OptionList: The (Actual) Variable value must be a single value from the reported (CSV) enumeration list. * MemberList: The (Actual) Variable value may be an (unordered) (sub-)set of the reported (CSV) valid values list. * SequenceList: The (Actual) Variable value may be an ordered (priority, etc) (sub-)set of the reported (CSV) valid values. This is a comma separated list. The Configuration Variable ConfigurationValueSize can be used to limit SetVariableData.attributeValue and VariableCharacteristics.valueList. The max size of these values will always remain equal.
customData CustomDataType No

Used in: NotifyReport