OCPP 1.6 Edition 2

Section 7: Types

Based on OCPP 1.6 Edition 2 Specification (Section 7). This reference covers all data types (classes, enumerations, and primitive types) used across OCPP 1.6 messages, referenced by request/response PDUs defined in Section 6.

8 Classes
34 Enumerations
Section 7.1 - 7.49

1. Overview

Introduction

This section defines all data types (classes, enumerations, and primitive types) used across OCPP 1.6 messages. These types are referenced by request/response PDUs defined in Section 6 of the OCPP 1.6 specification.

Classes (Complex Types)

8 structured types with multiple fields, such as ChargingProfile, IdTagInfo, and MeterValue.

Enumerations

34 enumerated types defining valid values for status codes, identifiers, and configuration options used throughout the protocol.

Primitive / String Types

7 basic types including case-insensitive strings of various lengths ( CiString variants) and the IdToken type.

Source: Open Charge Point Protocol 1.6, Edition 2 FINAL (2017-09-28). All types defined here (Section 7.1 - 7.49) are used across the request and response messages defined in Sections 4, 5, and 6.

2. Classes (Complex Types)

Reference

Classes are complex structured types composed of multiple fields. They are used as building blocks within OCPP 1.6 request and response messages.

7.1. AuthorizationData

Elements that constitute an entry of a Local Authorization List update.

Field Name Field Type Card. Description
idTag IdToken 1..1 Required. The identifier to which this authorization applies.
idTagInfo IdTagInfo 0..1 Optional. (Required when UpdateType is Full) This contains information about authorization status, expiry and parent id. For a Differential update the following applies: If this element is present, then this entry SHALL be added or updated in the Local Authorization List. If this element is absent, than the entry for this idtag in the Local Authorization List SHALL be deleted.
JSON Schema
{
  "idTag": { "type": "string", "maxLength": 20 },
  "idTagInfo": {
    "expiryDate": { "type": "string", "format": "date-time" },
    "parentIdTag": { "type": "string", "maxLength": 20 },
    "status": {
      "enum": ["Accepted", "Blocked", "Expired", "Invalid", "ConcurrentTx"]
    }
  }
}

Used in: SendLocalList.req

7.8. ChargingProfile

A ChargingProfile consists of a ChargingSchedule, describing the amount of power or current that can be delivered per time interval.

Field Name Field Type Card. Description
chargingProfileId integer 1..1 Required. Unique identifier for this profile.
transactionId integer 0..1 Optional. Only valid if ChargingProfilePurpose is set to TxProfile, the transactionId MAY be used to match the profile to a specific transaction.
stackLevel integer >= 0 1..1 Required. Value determining level in hierarchy stack of profiles. Higher values have precedence over lower values. Lowest level is 0.
chargingProfilePurpose ChargingProfilePurposeType 1..1 Required. Defines the purpose of the schedule transferred by this message.
chargingProfileKind ChargingProfileKindType 1..1 Required. Indicates the kind of schedule.
recurrencyKind RecurrencyKindType 0..1 Optional. Indicates the start point of a recurrence.
validFrom dateTime 0..1 Optional. 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 Charge Point.
validTo dateTime 0..1 Optional. Point in time at which the profile stops to be valid. If absent, the profile is valid until it is replaced by another profile.
chargingSchedule ChargingSchedule 1..1 Required. Contains limits for the available power or current over time.
JSON Schema
{
  "chargingProfileId": { "type": "integer" },
  "transactionId": { "type": "integer" },
  "stackLevel": { "type": "integer" },
  "chargingProfilePurpose": {
    "enum": ["ChargePointMaxProfile", "TxDefaultProfile", "TxProfile"]
  },
  "chargingProfileKind": {
    "enum": ["Absolute", "Recurring", "Relative"]
  },
  "recurrencyKind": { "enum": ["Daily", "Weekly"] },
  "validFrom": { "type": "string", "format": "date-time" },
  "validTo": { "type": "string", "format": "date-time" },
  "chargingSchedule": { "$ref": "#ChargingSchedule" }
}
// required: ["chargingProfileId", "stackLevel", "chargingProfilePurpose", "chargingProfileKind", "chargingSchedule"]

Used in: SetChargingProfile.req, RemoteStartTransaction.req, GetCompositeSchedule.conf

7.13. ChargingSchedule

Charging schedule structure defines a list of charging periods, as used in: GetCompositeSchedule.conf and ChargingProfile.

Field Name Field Type Card. Description
duration integer 0..1 Optional. 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 in case startSchedule is absent.
startSchedule dateTime 0..1 Optional. Starting point of an absolute schedule. If absent the schedule will be relative to start of charging.
chargingRateUnit ChargingRateUnitType 1..1 Required. The unit of measure Limit is expressed in.
chargingSchedulePeriod ChargingSchedulePeriod[] 1..* Required. List of ChargingSchedulePeriod elements defining maximum power or current usage over time. The startSchedule of the first ChargingSchedulePeriod SHALL always be 0.
minChargingRate decimal 0..1 Optional. Minimum charging rate supported by the electric vehicle. 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)
JSON Schema
{
  "duration": { "type": "integer" },
  "startSchedule": { "type": "string", "format": "date-time" },
  "chargingRateUnit": { "enum": ["W", "A"] },
  "chargingSchedulePeriod": {
    "type": "array",
    "items": { "$ref": "#ChargingSchedulePeriod" }
  },
  "minChargingRate": { "type": "number" }
}
// required: ["chargingRateUnit", "chargingSchedulePeriod"]

7.14. ChargingSchedulePeriod

Charging schedule period structure defines a time period in a charging schedule, as used in: ChargingSchedule.

Field Name Field Type Card. Description
startPeriod integer 1..1 Required. Start of the period, in seconds from the start of schedule. The value of StartPeriod also defines the stop time of the previous period.
limit decimal 1..1 Required. Charging rate limit during the schedule period, in the applicable chargingRateUnit, for example in Amperes or Watts. Accepts at most one digit fraction (e.g. 8.1).
numberPhases integer 0..1 Optional. 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.
JSON Schema
{
  "startPeriod": { "type": "integer" },
  "limit": { "type": "number" },
  "numberPhases": { "type": "integer" }
}
// required: ["startPeriod", "limit"]

7.27. IdTagInfo

Contains status information about an identifier. It is returned in Authorize, Start Transaction and Stop Transaction responses. If expiryDate is not given, the status has no end date.

Field Name Field Type Card. Description
expiryDate dateTime 0..1 Optional. This contains the date at which idTag should be removed from the Authorization Cache.
parentIdTag IdToken 0..1 Optional. This contains the parent-identifier.
status AuthorizationStatus 1..1 Required. This contains whether the idTag has been accepted or not by the Central System.
JSON Schema
{
  "expiryDate": { "type": "string", "format": "date-time" },
  "parentIdTag": { "type": "string", "maxLength": 20 },
  "status": {
    "enum": ["Accepted", "Blocked", "Expired", "Invalid", "ConcurrentTx"]
  }
}
// required: ["status"]

Used in: Authorize.conf, StartTransaction.conf, StopTransaction.conf

7.29. KeyValue

Contains information about a specific configuration key. It is returned in GetConfiguration.conf.

Field Name Field Type Card. Description
key CiString50Type 1..1 Required.
readonly boolean 1..1 Required. False if the value can be set with the ChangeConfiguration message.
value CiString500Type 0..1 Optional. If key is known but not set, this field may be absent.
JSON Schema
{
  "key": { "type": "string", "maxLength": 50 },
  "readonly": { "type": "boolean" },
  "value": { "type": "string", "maxLength": 500 }
}
// required: ["key", "readonly"]

7.33. MeterValue

Collection of one or more sampled values in MeterValues.req and StopTransaction.req. All sampled values in a MeterValue are sampled at the same point in time.

Field Name Field Type Card. Description
timestamp dateTime 1..1 Required. Timestamp for measured value(s).
sampledValue SampledValue[] 1..* Required. One or more measured values.
JSON Schema
{
  "timestamp": { "type": "string", "format": "date-time" },
  "sampledValue": {
    "type": "array",
    "items": { "$ref": "#SampledValue" }
  }
}
// required: ["timestamp", "sampledValue"]

7.43. SampledValue

Single sampled value in MeterValues. Each value can be accompanied by optional fields.

Field Name Field Type Card. Description
value String 1..1 Required. Value as a "Raw" (decimal) number or "SignedData". Field Type is "string" to allow for digitally signed data readings. Decimal numeric values are also acceptable to allow fractional values for measurands such as Temperature and Current.
context ReadingContext 0..1 Optional. Type of detail value: start, end or sample. Default = "Sample.Periodic"
format ValueFormat 0..1 Optional. Raw or signed data. Default = "Raw"
measurand Measurand 0..1 Optional. Type of measurement. Default = "Energy.Active.Import.Register"
phase Phase 0..1 Optional. Indicates how the measured value is to be interpreted. For instance between L1 and neutral (L1-N). Please note that not all values of phase are applicable to all Measurands. When phase is absent, the measured value is interpreted as an overall value.
location Location 0..1 Optional. Location of measurement. Default = "Outlet"
unit UnitOfMeasure 0..1 Optional. Unit of the value. Default = "Wh" if the (default) measurand is an "Energy" type.
JSON Schema
{
  "value": { "type": "string" },
  "context": {
    "enum": [
      "Interruption.Begin", "Interruption.End",
      "Sample.Clock", "Sample.Periodic",
      "Transaction.Begin", "Transaction.End",
      "Trigger", "Other"
    ]
  },
  "format": { "enum": ["Raw", "SignedData"] },
  "measurand": {
    "enum": [
      "Energy.Active.Export.Register",
      "Energy.Active.Import.Register",
      "Energy.Reactive.Export.Register",
      "Energy.Reactive.Import.Register",
      "Energy.Active.Export.Interval",
      "Energy.Active.Import.Interval",
      "Energy.Reactive.Export.Interval",
      "Energy.Reactive.Import.Interval",
      "Power.Active.Export",
      "Power.Active.Import",
      "Power.Offered",
      "Power.Reactive.Export",
      "Power.Reactive.Import",
      "Power.Factor",
      "Current.Import",
      "Current.Export",
      "Current.Offered",
      "Voltage",
      "Frequency",
      "Temperature",
      "SoC",
      "RPM"
    ]
  },
  "phase": {
    "enum": [
      "L1", "L2", "L3", "N",
      "L1-N", "L2-N", "L3-N",
      "L1-L2", "L2-L3", "L3-L1"
    ]
  },
  "location": {
    "enum": ["Cable", "EV", "Inlet", "Outlet", "Body"]
  },
  "unit": {
    "enum": [
      "Wh", "kWh", "varh", "kvarh",
      "W", "kW", "VA", "kVA",
      "var", "kvar", "A", "V",
      "Celsius", "Fahrenheit", "K", "Percent"
    ]
  }
}
// required: ["value"]

3. Enumerations (A-F)

Reference

7.2 AuthorizationStatus

Enumeration

Status in a response to an Authorize.req.

Value Description
Accepted Identifier is allowed for charging.
Blocked Identifier has been blocked. Not allowed for charging.
Expired Identifier has expired. Not allowed for charging.
Invalid Identifier is unknown. Not allowed for charging.
ConcurrentTx Identifier is already involved in another transaction and multiple transactions are not allowed. Only relevant for a StartTransaction.req.

7.3 AvailabilityStatus

Enumeration

Status returned in response to ChangeAvailability.req.

Value Description
Accepted Request has been accepted and will be executed.
Rejected Request has not been accepted and will not be executed.
Scheduled Request has been accepted and will be executed when transaction(s) in progress have finished.

7.4 AvailabilityType

Enumeration

Requested availability change in ChangeAvailability.req.

Value Description
Inoperative Charge point is not available for charging.
Operative Charge point is available for charging.

7.5 CancelReservationStatus

Enumeration

Status in CancelReservation.conf.

Value Description
Accepted Reservation for the identifier has been cancelled.
Rejected Reservation could not be cancelled, because there is no reservation active for the identifier.

7.6 ChargePointErrorCode

Enumeration

Charge Point status reported in StatusNotification.req.

Value Description
ConnectorLockFailure Failure to lock or unlock connector.
EVCommunicationError Communication failure with the vehicle, might be Mode 3 or other communication protocol problem. This is not a real error in the sense that the Charge Point doesn't need to go to the faulted state. Instead, it should go to the SuspendedEVSE state.
GroundFailure Ground fault circuit interrupter has been activated.
HighTemperature Temperature inside Charge Point is too high.
InternalError Error in internal hard- or software component.
LocalListConflict The authorization information received from the Central System is in conflict with the LocalAuthorizationList.
NoError No error to report.
OtherError Other type of error. More information in vendorErrorCode.
OverCurrentFailure Over current protection device has tripped.
OverVoltage Voltage has risen above an acceptable level.
PowerMeterFailure Failure to read electrical/energy/power meter.
PowerSwitchFailure Failure to control power switch.
ReaderFailure Failure with idTag reader.
ResetFailure Unable to perform a reset.
UnderVoltage Voltage has dropped below an acceptable level.
WeakSignal Wireless communication device reports a weak signal.

7.7 ChargePointStatus

Enumeration

Status reported in StatusNotification.req. A status can be reported for the Charge Point main controller (connectorId = 0) or for a specific connector. Status for the Charge Point main controller is a subset of the enumeration: Available, Unavailable or Faulted.

Operative vs Inoperative: States considered Operative are: Available, Preparing, Charging, SuspendedEVSE, SuspendedEV, Finishing, Reserved. States considered Inoperative are: Unavailable, Faulted.

Status Condition
Available When a Connector becomes available for a new user (Operative).
Preparing When a Connector becomes no longer available for a new user but there is no ongoing Transaction yet. Typically a Connector is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay (Operative).
Charging When the contactor of a Connector closes, allowing the vehicle to charge (Operative).
SuspendedEVSE When the EV is connected to the EVSE but the EVSE is not offering energy to the EV, e.g. due to a smart charging restriction, local supply power constraints, or as the result of StartTransaction.conf indicating that charging is not allowed etc. (Operative).
SuspendedEV When the EV is connected to the EVSE and the EVSE is offering energy but the EV is not taking any energy (Operative).
Finishing When a Transaction has stopped at a Connector, but the Connector is not yet available for a new user, e.g. the cable has not been removed or the vehicle has not left the parking bay (Operative).
Reserved When a Connector becomes reserved as a result of a Reserve Now command (Operative).
Unavailable When a Connector becomes unavailable as the result of a Change Availability command or an event upon which the Charge Point transitions to unavailable at its discretion (Inoperative).
Faulted When a Charge Point or connector has reported an error and is not available for energy delivery (Inoperative).

7.9 ChargingProfileKindType

Enumeration

Kind of charging profile, as used in ChargingProfile.

Value Description
Absolute Schedule periods are relative to a fixed point in time defined in the schedule.
Recurring The schedule restarts periodically at the first schedule period.
Relative Schedule periods are relative to a situation-specific start point (such as the start of a Transaction) that is determined by the charge point.

7.10 ChargingProfilePurposeType

Enumeration

Purpose of the charging profile, as used in ChargingProfile.

Value Description
ChargePointMaxProfile Configuration for the maximum power or current available for an entire Charge Point.
TxDefaultProfile Default profile that can be configured in the Charge Point. When a new transaction is started, this profile SHALL be used, unless it was a transaction that was started by a RemoteStartTransaction.req with a ChargeProfile that is accepted by the Charge Point.
TxProfile Profile with constraints to be imposed by the Charge Point on the current transaction, or on a new transaction when this is started via a RemoteStartTransaction.req with a ChargeProfile. A profile with this purpose SHALL cease to be valid when the transaction terminates.

7.11 ChargingProfileStatus

Enumeration

Status returned in response to SetChargingProfile.req.

Value Description
Accepted Request has been accepted and will be executed.
Rejected Request has not been accepted and will not be executed.
NotSupported Charge Point indicates that the request is not supported.

7.12 ChargingRateUnitType

Enumeration

Unit in which a charging schedule is defined, as used in GetCompositeSchedule.req and ChargingSchedule.

Value Description
W Watts (power). This is the TOTAL allowed charging power. If used for AC Charging, the phase current should be calculated via: Current per phase = Power / (Line Voltage * Number of Phases). The "Line Voltage" used in the calculation is not the measured voltage, but the set voltage for the area (hence, 230 of 110 volt). The "Number of Phases" is the numberPhases from the ChargingSchedulePeriod. It is usually more convenient to use this for DC charging. Note that if numberPhases in a ChargingSchedulePeriod is absent, 3 SHALL be assumed.
A Amperes (current). The amount of Ampere per phase, not the sum of all phases. It is usually more convenient to use this for AC charging.

7.20 ClearCacheStatus

Enumeration

Status returned in response to ClearCache.req.

Value Description
Accepted Command has been executed.
Rejected Command has not been executed.

7.21 ClearChargingProfileStatus

Enumeration

Status returned in response to ClearChargingProfile.req.

Value Description
Accepted Request has been accepted and will be executed.
Unknown No Charging Profile(s) were found matching the request.

7.22 ConfigurationStatus

Enumeration

Status in ChangeConfiguration.conf.

Value Description
Accepted Configuration key is supported and setting has been changed.
Rejected Configuration key is supported, but setting could not be changed.
RebootRequired Configuration key is supported and setting has been changed, but change will be available after reboot (Charge Point will not reboot itself).
NotSupported Configuration key is not supported.

7.23 DataTransferStatus

Enumeration

Status in DataTransfer.conf.

Value Description
Accepted Message has been accepted and the contained request is accepted.
Rejected Message has been accepted but the contained request is rejected.
UnknownMessageId Message could not be interpreted due to unknown messageId string.
UnknownVendorId Message could not be interpreted due to unknown vendorId string.

7.24 DiagnosticsStatus

Enumeration

Status in DiagnosticsStatusNotification.req.

Value Description
Idle Charge Point is not performing diagnostics related tasks. Status Idle SHALL only be used as in a DiagnosticsStatusNotification.req that was triggered by a TriggerMessage.req.
Uploaded Diagnostics information has been uploaded.
UploadFailed Uploading of diagnostics failed.
Uploading File is being uploaded.

7.25 FirmwareStatus

Enumeration

Status of a firmware download as reported in FirmwareStatusNotification.req.

Value Description
Downloaded New firmware has been downloaded by Charge Point.
DownloadFailed Charge point failed to download firmware.
Downloading Firmware is being downloaded.
Idle Charge Point is not performing firmware update related tasks. Status Idle SHALL only be used as in a FirmwareStatusNotification.req that was triggered by a TriggerMessage.req.
InstallationFailed Installation of new firmware has failed.
Installing Firmware is being installed.
Installed New firmware has successfully been installed in charge point.

4. Enumerations (G-V)

Reference

7.26 GetCompositeScheduleStatus

Status returned in response to GetCompositeSchedule.req.

Value Description
Accepted Request has been accepted and will be executed
Rejected Request has not been accepted and will not be executed

7.30 Location

Allowable values of the optional "location" field of a value element in SampledValue.

Value Description
Body Measurement inside body of Charge Point (e.g. Temperature)
Cable Measurement taken from cable between EV and Charge Point
EV Measurement taken by EV
Inlet Measurement at network ("grid") inlet connection
Outlet Measurement at a Connector. Default value

7.31 Measurand

Allowable values of the optional "measurand" field of a Value element, as used in MeterValues.req and StopTransaction.req messages. Default value of "measurand" is always "Energy.Active.Import.Register".

Note: Import is energy flow from the Grid to the Charge Point, EV or other load. Export is energy flow from the EV to the Charge Point and/or from the Charge Point to the Grid.

Value Description
Current.Export Instantaneous current flow from EV
Current.Import Instantaneous current flow to EV
Current.Offered Maximum current offered to EV
Energy.Active.Export.Register Numerical value read from the "active electrical energy" (Wh or kWh) register of the (most authoritative) electrical meter measuring energy exported (to the grid)
Energy.Active.Import.Register Numerical value read from the "active electrical energy" (Wh or kWh) register of the (most authoritative) electrical meter measuring energy imported (from the grid supply)
Energy.Reactive.Export.Register Numerical value read from the "reactive electrical energy" (VARh or kVARh) register of the (most authoritative) electrical meter measuring energy exported (to the grid)
Energy.Reactive.Import.Register Numerical value read from the "reactive electrical energy" (VARh or kVARh) register of the (most authoritative) electrical meter measuring energy imported (from the grid supply)
Energy.Active.Export.Interval Absolute amount of "active electrical energy" (Wh or kWh) exported (to the grid) during an associated time "interval"
Energy.Active.Import.Interval Absolute amount of "active electrical energy" (Wh or kWh) imported (from the grid supply) during an associated time "interval"
Energy.Reactive.Export.Interval Absolute amount of "reactive electrical energy" (VARh or kVARh) exported (to the grid) during an associated time "interval"
Energy.Reactive.Import.Interval Absolute amount of "reactive electrical energy" (VARh or kVARh) imported (from the grid supply) during an associated time "interval"
Frequency Instantaneous reading of powerline frequency
Power.Active.Export Instantaneous active power exported by EV. (W or kW)
Power.Active.Import Instantaneous active power imported by EV. (W or kW)
Power.Factor Instantaneous power factor of total energy flow
Power.Offered Maximum power offered to EV
Power.Reactive.Export Instantaneous reactive power exported by EV. (var or kvar)
Power.Reactive.Import Instantaneous reactive power imported by EV. (var or kvar)
RPM Fan speed in RPM
SoC State of charge of charging vehicle in percentage
Temperature Temperature reading inside Charge Point
Voltage Instantaneous AC RMS supply voltage

Important: All "Register" values relating to a single charging transaction, or a non-transactional consumer MUST be monotonically increasing in time.

7.32 MessageTrigger

Type of request to be triggered in a TriggerMessage.req.

Value Description
BootNotification To trigger a BootNotification request
DiagnosticsStatusNotification To trigger a DiagnosticsStatusNotification request
FirmwareStatusNotification To trigger a FirmwareStatusNotification request
Heartbeat To trigger a Heartbeat request
MeterValues To trigger a MeterValues request
StatusNotification To trigger a StatusNotification request

7.34 Phase

Phase as used in SampledValue. Phase specifies how a measured value is to be interpreted. Please note that not all values of Phase are applicable to all Measurands.

Value Description
L1 Measured on L1
L2 Measured on L2
L3 Measured on L3
N Measured on Neutral
L1-N Measured on L1 with respect to Neutral conductor
L2-N Measured on L2 with respect to Neutral conductor
L3-N Measured on L3 with respect to Neutral conductor
L1-L2 Measured between L1 and L2
L2-L3 Measured between L2 and L3
L3-L1 Measured between L3 and L1

7.35 ReadingContext

Values of the context field of a value in SampledValue.

Value Description
Interruption.Begin Value taken at start of interruption
Interruption.End Value taken when resuming after interruption
Other Value for any other situations
Sample.Clock Value taken at clock aligned interval
Sample.Periodic Value taken as periodic sample relative to start time of transaction
Transaction.Begin Value taken at start of transaction
Transaction.End Value taken at end of transaction
Trigger Value taken in response to a TriggerMessage.req

7.36 Reason

Reason for stopping a transaction in StopTransaction.req.

Value Description
DeAuthorized The transaction was stopped because of the authorization status in a StartTransaction.conf
EmergencyStop Emergency stop button was used
EVDisconnected Disconnecting of cable, vehicle moved away from inductive charge unit
HardReset A hard reset command was received
Local Stopped locally on request of the user at the Charge Point. This is a regular termination of a transaction. Examples: presenting an RFID tag, pressing a button to stop
Other Any other reason
PowerLoss Complete loss of power
Reboot A locally initiated reset/reboot occurred. (for instance watchdog kicked in)
Remote Stopped remotely on request of the user. This is a regular termination of a transaction. Examples: termination using a smartphone app, exceeding a (non local) prepaid credit
SoftReset A soft reset command was received
UnlockCommand Central System sent an Unlock Connector command

7.37 RecurrencyKindType

Type of recurrence of a charging profile, as used in ChargingProfile.

Value Description
Daily The schedule restarts every 24 hours, at the same time as in the startSchedule
Weekly The schedule restarts every 7 days, at the same time and day-of-the-week as in the startSchedule

7.38 RegistrationStatus

Result of registration in response to BootNotification.req.

Value Description
Accepted Charge point is accepted by Central System
Pending Central System is not yet ready to accept the Charge Point. Central System may send messages to retrieve information or prepare the Charge Point
Rejected Charge point is not accepted by Central System. This may happen when the Charge Point id is not known by Central System

7.39 RemoteStartStopStatus

The result of a RemoteStartTransaction.req or RemoteStopTransaction.req request.

Value Description
Accepted Command will be executed
Rejected Command will not be executed

7.40 ReservationStatus

Status in ReserveNow.conf.

Value Description
Accepted Reservation has been made
Faulted Reservation has not been made, because connectors or specified connector are in a faulted state
Occupied Reservation has not been made. All connectors or the specified connector are occupied
Rejected Reservation has not been made. Charge Point is not configured to accept reservations
Unavailable Reservation has not been made, because connectors or specified connector are in an unavailable state

7.41 ResetStatus

Result of Reset.req.

Value Description
Accepted Command will be executed
Rejected Command will not be executed

7.42 ResetType

Type of reset requested by Reset.req.

Value Description
Hard Restart (all) the hardware, the Charge Point is not required to gracefully stop ongoing transaction. If possible the Charge Point sends a StopTransaction.req for previously ongoing transactions after having restarted and having been accepted by the Central System via a BootNotification.conf. This is a last resort solution for a not correctly functioning Charge Point, by sending a "hard" reset, (queued) information might get lost
Soft Stop ongoing transactions gracefully and sending StopTransaction.req for every ongoing transaction. It should then restart the application software (if possible, otherwise restart the processor/controller)

7.44 TriggerMessageStatus

Status in TriggerMessage.conf.

Value Description
Accepted Requested notification will be sent
Rejected Requested notification will not be sent
NotImplemented Requested notification cannot be sent because it is either not implemented or unknown

7.46 UnlockStatus

Status in response to UnlockConnector.req.

Value Description
Unlocked Connector has successfully been unlocked
UnlockFailed Failed to unlock the connector: The Charge Point has tried to unlock the connector and has detected that the connector is still locked or the unlock mechanism failed
NotSupported Charge Point has no connector lock, or ConnectorId is unknown

7.47 UpdateStatus

Status in SendLocalList.conf.

Value Description
Accepted Local Authorization List successfully updated
Failed Failed to update the Local Authorization List
NotSupported Update of Local Authorization List is not supported by Charge Point
VersionMismatch Version number in the request for a differential update is less or equal then version number of current list

7.48 UpdateType

Type of update for a SendLocalList.req.

Value Description
Differential Indicates that the current Local Authorization List must be updated with the values in this message
Full Indicates that the current Local Authorization List must be replaced by the values in this message

7.49 ValueFormat

Format that specifies how the value element in SampledValue is to be interpreted.

Value Description
Raw Data is to be interpreted as integer/decimal numeric data
SignedData Data is represented as a signed binary data block, encoded as hex data

5. Primitive / String Types

Reference

7.15 CiString20Type

Type Generic used case insensitive string of 20 characters.

Field Type Description
CiString[20] String is case insensitive.

7.16 CiString25Type

Type Generic used case insensitive string of 25 characters.

Field Type Description
CiString[25] String is case insensitive.

7.17 CiString50Type

Type Generic used case insensitive string of 50 characters.

Field Type Description
CiString[50] String is case insensitive.

7.18 CiString255Type

Type Generic used case insensitive string of 255 characters.

Field Type Description
CiString[255] String is case insensitive.

7.19 CiString500Type

Type Generic used case insensitive string of 500 characters.

Field Type Description
CiString[500] String is case insensitive.

7.28 IdToken

Type Contains the identifier to use for authorization. It is a case insensitive string. In future releases this may become a complex type to support multiple forms of identifiers.

Field Type Description
CiString20Type IdToken is case insensitive.

7.45 UnitOfMeasure

Enumeration Allowable values of the optional "unit" field of a Value element, as used in SampledValue. Default value of "unit" is always "Wh".

Value Description
Wh Watt-hours (energy). Default.
kWh kiloWatt-hours (energy).
varh Var-hours (reactive energy).
kvarh kilovar-hours (reactive energy).
W Watts (power).
kW kilowatts (power).
VA VoltAmpere (apparent power).
kVA kiloVolt Ampere (apparent power).
var Vars (reactive power).
kvar kilovars (reactive power).
A Amperes (current).
V Voltage (r.m.s. AC).
Celsius Degrees (temperature).
Fahrenheit Degrees (temperature).
K Degrees Kelvin (temperature).
Percent Percentage.

6. Type Usage Cross-Reference

Quick Reference

Quick reference showing which types are used in which messages.

Type Used In Messages
AuthorizationData SendLocalList.req
AuthorizationStatus Authorize.conf, StartTransaction.conf, StopTransaction.conf (via IdTagInfo)
AvailabilityStatus ChangeAvailability.conf
AvailabilityType ChangeAvailability.req
CancelReservationStatus CancelReservation.conf
ChargePointErrorCode StatusNotification.req
ChargePointStatus StatusNotification.req
ChargingProfile SetChargingProfile.req, RemoteStartTransaction.req, GetCompositeSchedule.conf
ChargingProfileKindType ChargingProfile
ChargingProfilePurposeType ChargingProfile, ClearChargingProfile.req
ChargingProfileStatus SetChargingProfile.conf
ChargingRateUnitType ChargingSchedule, GetCompositeSchedule.req
ChargingSchedule ChargingProfile, GetCompositeSchedule.conf
ChargingSchedulePeriod ChargingSchedule
ClearCacheStatus ClearCache.conf
ClearChargingProfileStatus ClearChargingProfile.conf
ConfigurationStatus ChangeConfiguration.conf
DataTransferStatus DataTransfer.conf
DiagnosticsStatus DiagnosticsStatusNotification.req
FirmwareStatus FirmwareStatusNotification.req
GetCompositeScheduleStatus GetCompositeSchedule.conf
IdTagInfo Authorize.conf, StartTransaction.conf, StopTransaction.conf
KeyValue GetConfiguration.conf
Location SampledValue
Measurand SampledValue
MessageTrigger TriggerMessage.req
MeterValue MeterValues.req, StopTransaction.req
Phase SampledValue
ReadingContext SampledValue
Reason StopTransaction.req
RecurrencyKindType ChargingProfile
RegistrationStatus BootNotification.conf
RemoteStartStopStatus RemoteStartTransaction.conf, RemoteStopTransaction.conf
ReservationStatus ReserveNow.conf
ResetStatus Reset.conf
ResetType Reset.req
SampledValue MeterValue
TriggerMessageStatus TriggerMessage.conf
UnitOfMeasure SampledValue
UnlockStatus UnlockConnector.conf
UpdateStatus SendLocalList.conf
UpdateType SendLocalList.req
ValueFormat SampledValue

OCPP 1.6 Section 7: Types - CSMS Developer Guide. Based on Open Charge Point Protocol 1.6, Edition 2 FINAL (2017-09-28).