Purpose: Complete reference of all reusable data types and enumerations in OCPP 2.0.1.
Generated from the official OCA JSON schemas.See also: Message schemas by functional block:
Schemas — Provisioning |
Schemas — Authorization |
Schemas — Transactions |
Schemas — SmartCharging |
Schemas — Firmware |
Schemas — Security |
Schemas — Diagnostics |
Schemas — Availability |
Schemas — Reservation |
Schemas — Display |
16 Enum Types | 18 Composite Types
#Table of Contents
#Enums
- AttributeEnumType
- AuthorizationStatusEnumType
- ChargingLimitSourceEnumType
- ChargingProfileKindEnumType
- ChargingProfilePurposeEnumType
- ChargingRateUnitEnumType
- CostKindEnumType
- GenericDeviceModelStatusEnumType
- GenericStatusEnumType
- HashAlgorithmEnumType
- IdTokenEnumType
- MessageFormatEnumType
- MessagePriorityEnumType
- MessageStateEnumType
- MonitorEnumType
- RecurrencyKindEnumType
#Composite Types
- AdditionalInfoType
- CertificateHashDataType
- ChargingProfileType
- ChargingSchedulePeriodType
- ChargingScheduleType
- ComponentType
- ConsumptionCostType
- CostType
- CustomDataType
- EVSEType
- IdTokenInfoType
- IdTokenType
- MessageContentType
- RelativeTimeIntervalType
- SalesTariffEntryType
- SalesTariffType
- StatusInfoType
- VariableType
#Enums
#AttributeEnumType
Attribute type for which value is requested. When absent, default Actual is assumed.
Default: Actual
| Value |
|---|
Actual |
Target |
MinSet |
MaxSet |
Used in: GetVariables, NotifyReport, SetVariables
#AuthorizationStatusEnumType
Current status of the ID Token.
| Value |
|---|
Accepted |
Blocked |
ConcurrentTx |
Expired |
Invalid |
NoCredit |
NotAllowedTypeEVSE |
NotAtThisLocation |
NotAtThisTime |
Unknown |
Used in: Authorize, SendLocalList, TransactionEvent
#ChargingLimitSourceEnumType
Represents the source of the charging limit.
| Value |
|---|
EMS |
Other |
SO |
CSO |
Used in: ClearedChargingLimit, GetChargingProfiles, NotifyChargingLimit, ReportChargingProfiles
#ChargingProfileKindEnumType
Indicates the kind of schedule.
| Value |
|---|
Absolute |
Recurring |
Relative |
Used in: ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#ChargingProfilePurposeEnumType
Specifies to purpose of the charging profiles that will be cleared, if they meet the other criteria in the request.
| Value |
|---|
ChargingStationExternalConstraints |
ChargingStationMaxProfile |
TxDefaultProfile |
TxProfile |
Used in: ClearChargingProfile, GetChargingProfiles, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#ChargingRateUnitEnumType
The unit of measure Limit is expressed in.
| Value |
|---|
W |
A |
Used in: GetCompositeSchedule, NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#CostKindEnumType
The kind of cost referred to in the message element amount
| Value |
|---|
CarbonDioxideEmission |
RelativePricePercentage |
RenewableGenerationPercentage |
Used in: NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#GenericDeviceModelStatusEnumType
This field indicates whether the Charging Station was able to accept the request.
| Value |
|---|
Accepted |
Rejected |
NotSupported |
EmptyResultSet |
Used in: GetBaseReport, GetMonitoringReport, GetReport, SetMonitoringBase
#GenericStatusEnumType
Returns whether the CSMS has been able to process the message successfully. It does not imply any approval of the charging schedule.
| Value |
|---|
Accepted |
Rejected |
Used in: GetCompositeSchedule, NotifyEVChargingSchedule, PublishFirmware, SetMonitoringLevel, SignCertificate
#HashAlgorithmEnumType
Used algorithms for the hashes provided.
| Value |
|---|
SHA256 |
SHA384 |
SHA512 |
Used in: Authorize, CustomerInformation, DeleteCertificate, GetCertificateStatus, GetInstalledCertificateIds
#IdTokenEnumType
Enumeration of possible idToken types.
| Value |
|---|
Central |
eMAID |
ISO14443 |
ISO15693 |
KeyCode |
Local |
MacAddress |
NoAuthorization |
Used in: Authorize, CustomerInformation, RequestStartTransaction, ReserveNow, SendLocalList, TransactionEvent
#MessageFormatEnumType
Format of the message.
| Value |
|---|
ASCII |
HTML |
URI |
UTF8 |
Used in: Authorize, NotifyDisplayMessages, SendLocalList, SetDisplayMessage, TransactionEvent
#MessagePriorityEnumType
With what priority should this message be shown
| Value |
|---|
AlwaysFront |
InFront |
NormalCycle |
Used in: GetDisplayMessages, NotifyDisplayMessages, SetDisplayMessage
#MessageStateEnumType
During what state should this message be shown. When omitted this message should be shown in any state of the Charging Station.
| Value |
|---|
Charging |
Faulted |
Idle |
Unavailable |
Used in: GetDisplayMessages, NotifyDisplayMessages, SetDisplayMessage
#MonitorEnumType
The type of this monitor, e.g. a threshold, delta or periodic monitor.
| Value |
|---|
UpperThreshold |
LowerThreshold |
Delta |
Periodic |
PeriodicClockAligned |
Used in: NotifyMonitoringReport, SetVariableMonitoring
#RecurrencyKindEnumType
Indicates the start point of a recurrence.
| Value |
|---|
Daily |
Weekly |
Used in: ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#Composite Types
#AdditionalInfoType
Contains a case insensitive identifier to use for the authorization and the type of authorization to support multiple forms of identifiers.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
additionalIdToken |
string | Yes | maxLength: 36 | This field specifies the additional IdToken. |
type |
string | Yes | maxLength: 50 | This defines the type of the additionalIdToken. This is a custom type, so the implementation needs to be agreed upon by all involved parties. |
customData |
CustomDataType | No |
Used in: Authorize, CustomerInformation, RequestStartTransaction, ReserveNow, SendLocalList, TransactionEvent
#CertificateHashDataType
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
hashAlgorithm |
HashAlgorithmEnumType | Yes | ||
issuerKeyHash |
string | Yes | maxLength: 128 | Hashed value of the issuers public key |
issuerNameHash |
string | Yes | maxLength: 128 | Hashed value of the Issuer DN (Distinguished Name). |
serialNumber |
string | Yes | maxLength: 40 | The serial number of the certificate. |
customData |
CustomDataType | No |
Used in: CustomerInformation, DeleteCertificate, GetInstalledCertificateIds
#ChargingProfileType
A ChargingProfile consists of ChargingSchedule, describing the amount of power or current that can be delivered per time interval.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
chargingProfileKind |
ChargingProfileKindEnumType | Yes | ||
chargingProfilePurpose |
ChargingProfilePurposeEnumType | Yes | ||
chargingSchedule |
ChargingScheduleType[] | Yes | minItems: 1, maxItems: 3 | |
id |
integer | Yes | Id of ChargingProfile. | |
stackLevel |
integer | Yes | Value determining level in hierarchy stack of profiles. Higher values have precedence over lower values. Lowest level is 0. | |
recurrencyKind |
RecurrencyKindEnumType | No | ||
transactionId |
string | No | maxLength: 36 | SHALL only be included if ChargingProfilePurpose is set to TxProfile. The transactionId is used to match the profile to a specific transaction. |
validFrom |
string (date-time) | No | Point in time at which the profile starts to be valid. If absent, the profile is valid as soon as it is received by the Charging Station. | |
validTo |
string (date-time) | No | Point in time at which the profile stops to be valid. If absent, the profile is valid until it is replaced by another profile. | |
customData |
CustomDataType | No |
Used in: ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#ChargingSchedulePeriodType
Charging schedule period structure defines a time period in a charging schedule.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
limit |
number | Yes | Charging rate limit during the schedule period, in the applicable chargingRateUnit, for example in Amperes (A) or Watts (W). Accepts at most one digit fraction (e.g. 8.1). | |
startPeriod |
integer | Yes | Start of the period, in seconds from the start of schedule. The value of StartPeriod also defines the stop time of the previous period. | |
numberPhases |
integer | No | The number of phases that can be used for charging. If a number of phases is needed, numberPhases=3 will be assumed unless another number is given. | |
phaseToUse |
integer | No | Values: 1..3, Used if numberPhases=1 and if the EVSE is capable of switching the phase connected to the EV, i.e. ACPhaseSwitchingSupported is defined and true. It’s not allowed unless both conditions above are true. If both conditions are true, and phaseToUse is omitted, the Charging Station / EVSE will make the selection on its own. | |
customData |
CustomDataType | No |
Used in: GetCompositeSchedule, NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#ChargingScheduleType
Charging schedule structure defines a list of charging periods, as used in: GetCompositeSchedule.conf and ChargingProfile.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
chargingRateUnit |
ChargingRateUnitEnumType | Yes | ||
chargingSchedulePeriod |
ChargingSchedulePeriodType[] | Yes | minItems: 1, maxItems: 1024 | |
id |
integer | Yes | Identifies the ChargingSchedule. | |
duration |
integer | No | Duration of the charging schedule in seconds. If the duration is left empty, the last period will continue indefinitely or until end of the transaction if chargingProfilePurpose = TxProfile. | |
minChargingRate |
number | No | Minimum charging rate supported by the EV. The unit of measure is defined by the chargingRateUnit. This parameter is intended to be used by a local smart charging algorithm to optimize the power allocation for in the case a charging process is inefficient at lower charging rates. Accepts at most one digit fraction (e.g. 8.1) | |
salesTariff |
SalesTariffType | No | ||
startSchedule |
string (date-time) | No | Starting point of an absolute schedule. If absent the schedule will be relative to start of charging. | |
customData |
CustomDataType | No |
Used in: NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#ComponentType
A physical or logical component
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
name |
string | Yes | maxLength: 50 | Name of the component. Name should be taken from the list of standardized component names whenever possible. Case Insensitive. strongly advised to use Camel Case. |
evse |
EVSEType | No | ||
instance |
string | No | maxLength: 50 | Name of instance in case the component exists as multiple instances. Case Insensitive. strongly advised to use Camel Case. |
customData |
CustomDataType | No |
Used in: GetMonitoringReport, GetReport, GetVariables, NotifyDisplayMessages, NotifyEvent, NotifyMonitoringReport, NotifyReport, SetDisplayMessage, SetVariableMonitoring, SetVariables
#ConsumptionCostType
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
cost |
CostType[] | Yes | minItems: 1, maxItems: 3 | |
startValue |
number | Yes | The lowest level of consumption that defines the starting point of this consumption block. The block interval extends to the start of the next interval. | |
customData |
CustomDataType | No |
Used in: NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#CostType
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
amount |
integer | Yes | The estimated or actual cost per kWh | |
costKind |
CostKindEnumType | Yes | ||
amountMultiplier |
integer | No | Values: -3..3, The amountMultiplier defines the exponent to base 10 (dec). The final value is determined by: amount * 10 ^ amountMultiplier | |
customData |
CustomDataType | No |
Used in: NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#CustomDataType
This class does not get 'AdditionalProperties = false' in the schema generation, so it can be extended with arbitrary JSON properties to allow adding custom data.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
vendorId |
string | Yes | maxLength: 255 |
Used in: Authorize, BootNotification, CancelReservation, CertificateSigned, ChangeAvailability, ClearCache, ClearChargingProfile, ClearDisplayMessage, ClearVariableMonitoring, ClearedChargingLimit, CostUpdated, CustomerInformation, DataTransfer, DeleteCertificate, FirmwareStatusNotification, Get15118EVCertificate, GetBaseReport, GetCertificateStatus, GetChargingProfiles, GetCompositeSchedule, GetDisplayMessages, GetInstalledCertificateIds, GetLocalListVersion, GetLog, GetMonitoringReport, GetReport, GetTransactionStatus, GetVariables, Heartbeat, InstallCertificate, LogStatusNotification, MeterValues, NotifyChargingLimit, NotifyCustomerInformation, NotifyDisplayMessages, NotifyEVChargingNeeds, NotifyEVChargingSchedule, NotifyEvent, NotifyMonitoringReport, NotifyReport, PublishFirmware, PublishFirmwareStatusNotification, ReportChargingProfiles, RequestStartTransaction, RequestStopTransaction, ReservationStatusUpdate, ReserveNow, Reset, SecurityEventNotification, SendLocalList, SetChargingProfile, SetDisplayMessage, SetMonitoringBase, SetMonitoringLevel, SetNetworkProfile, SetVariableMonitoring, SetVariables, SignCertificate, StatusNotification, TransactionEvent, TriggerMessage, UnlockConnector, UnpublishFirmware, UpdateFirmware
#EVSEType
Electric Vehicle Supply Equipment
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
id |
integer | Yes | EVSE Identifier. This contains a number (> 0) designating an EVSE of the Charging Station. | |
connectorId |
integer | No | An id to designate a specific connector (on an EVSE) by connector index number. | |
customData |
CustomDataType | No |
Used in: ChangeAvailability, GetMonitoringReport, GetReport, GetVariables, NotifyDisplayMessages, NotifyEvent, NotifyMonitoringReport, NotifyReport, SetDisplayMessage, SetVariableMonitoring, SetVariables, TransactionEvent, TriggerMessage
#IdTokenInfoType
Contains status information about an identifier. It is advised to not stop charging for a token that expires during charging, as ExpiryDate is only used for caching purposes. If ExpiryDate is not given, the status has no end date.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
status |
AuthorizationStatusEnumType | Yes | ||
cacheExpiryDateTime |
string (date-time) | No | Date and Time after which the token must be considered invalid. | |
chargingPriority |
integer | No | Priority from a business point of view. Default priority is 0, The range is from -9 to 9. Higher values indicate a higher priority. The chargingPriority in TransactionEventResponse overrules this one. | |
evseId |
integer[] | No | minItems: 1 | Only used when the IdToken is only valid for one or more specific EVSEs, not for the entire Charging Station. |
groupIdToken |
IdTokenType | No | ||
language1 |
string | No | maxLength: 8 | Preferred user interface language of identifier user. Contains a language code as defined in RFC5646. |
language2 |
string | No | maxLength: 8 | Second preferred user interface language of identifier user. Don’t use when language1 is omitted, has to be different from language1. Contains a language code as defined in RFC5646. |
personalMessage |
MessageContentType | No | ||
customData |
CustomDataType | No |
Used in: Authorize, SendLocalList, TransactionEvent
#IdTokenType
Contains a case insensitive identifier to use for the authorization and the type of authorization to support multiple forms of identifiers.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
idToken |
string | Yes | maxLength: 36 | IdToken is case insensitive. Might hold the hidden id of an RFID tag, but can for example also contain a UUID. |
type |
IdTokenEnumType | Yes | ||
additionalInfo |
AdditionalInfoType[] | No | minItems: 1 | |
customData |
CustomDataType | No |
Used in: Authorize, CustomerInformation, RequestStartTransaction, ReserveNow, SendLocalList, TransactionEvent
#MessageContentType
Contains message details, for a message to be displayed on a Charging Station.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
content |
string | Yes | maxLength: 512 | Message contents. |
format |
MessageFormatEnumType | Yes | ||
language |
string | No | maxLength: 8 | Message language identifier. Contains a language code as defined in RFC5646. |
customData |
CustomDataType | No |
Used in: Authorize, NotifyDisplayMessages, SendLocalList, SetDisplayMessage, TransactionEvent
#RelativeTimeIntervalType
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
start |
integer | Yes | Start of the interval, in seconds from NOW. | |
duration |
integer | No | Duration of the interval, in seconds. | |
customData |
CustomDataType | No |
Used in: NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#SalesTariffEntryType
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
relativeTimeInterval |
RelativeTimeIntervalType | Yes | ||
consumptionCost |
ConsumptionCostType[] | No | minItems: 1, maxItems: 3 | |
ePriceLevel |
integer | No | min: 0.0 | Defines the price level of this SalesTariffEntry (referring to NumEPriceLevels). Small values for the EPriceLevel represent a cheaper TariffEntry. Large values for the EPriceLevel represent a more expensive TariffEntry. |
customData |
CustomDataType | No |
Used in: NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#SalesTariffType
NOTE: This dataType is based on dataTypes from ISO 15118-2.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
id |
integer | Yes | SalesTariff identifier used to identify one sales tariff. An SAID remains a unique identifier for one schedule throughout a charging session. | |
salesTariffEntry |
SalesTariffEntryType[] | Yes | minItems: 1, maxItems: 1024 | |
numEPriceLevels |
integer | No | Defines the overall number of distinct price levels used across all provided SalesTariff elements. | |
salesTariffDescription |
string | No | maxLength: 32 | A human readable title/short description of the sales tariff e.g. for HMI display purposes. |
customData |
CustomDataType | No |
Used in: NotifyChargingLimit, NotifyEVChargingSchedule, ReportChargingProfiles, RequestStartTransaction, SetChargingProfile
#StatusInfoType
Element providing more information about the status.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
reasonCode |
string | Yes | maxLength: 20 | A predefined code for the reason why the status is returned in this response. The string is case-insensitive. |
additionalInfo |
string | No | maxLength: 512 | Additional text to provide detailed information. |
customData |
CustomDataType | No |
Used in: BootNotification, CancelReservation, CertificateSigned, ChangeAvailability, ClearCache, ClearChargingProfile, ClearDisplayMessage, ClearVariableMonitoring, CustomerInformation, DataTransfer, DeleteCertificate, Get15118EVCertificate, GetBaseReport, GetCertificateStatus, GetChargingProfiles, GetCompositeSchedule, GetDisplayMessages, GetInstalledCertificateIds, GetLog, GetMonitoringReport, GetReport, GetVariables, InstallCertificate, NotifyEVChargingNeeds, NotifyEVChargingSchedule, PublishFirmware, RequestStartTransaction, RequestStopTransaction, ReserveNow, Reset, SendLocalList, SetChargingProfile, SetDisplayMessage, SetMonitoringBase, SetMonitoringLevel, SetNetworkProfile, SetVariableMonitoring, SetVariables, SignCertificate, TriggerMessage, UnlockConnector, UpdateFirmware
#VariableType
Reference key to a component-variable.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
name |
string | Yes | maxLength: 50 | Name of the variable. Name should be taken from the list of standardized variable names whenever possible. Case Insensitive. strongly advised to use Camel Case. |
instance |
string | No | maxLength: 50 | Name of instance in case the variable exists as multiple instances. Case Insensitive. strongly advised to use Camel Case. |
customData |
CustomDataType | No |
Used in: GetMonitoringReport, GetReport, GetVariables, NotifyEvent, NotifyMonitoringReport, NotifyReport, SetVariableMonitoring, SetVariables