Link copied

Feature Profile: Core

Generated from the official OCA JSON schemas for OCPP 1.6 edition 2.
Field names, types, required status, enum values, and constraints are
extracted mechanically. No manual editing applied.

#Messages


#Authorize

Direction: CP → CS

Validate an idTag before or during a transaction.

#Authorize.req

Field Type Required Constraints Description
idTag string Yes maxLength: 20
Example Authorize.req
{
  "idTag": "ABCDEF1234"
}

#Authorize.conf

Field Type Required Constraints Description
idTagInfo object Yes

idTagInfo object:

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Blocked, Expired, Invalid, ConcurrentTx
expiryDate string (date-time) No
parentIdTag string No maxLength: 20
Example Authorize.conf
{
  "idTagInfo": {
    "status": "Accepted"
  }
}

#BootNotification

Direction: CP → CS

Charge Point registers with the Central System after (re)boot.

#BootNotification.req

Field Type Required Constraints Description
chargePointModel string Yes maxLength: 20
chargePointVendor string Yes maxLength: 20
chargeBoxSerialNumber string No maxLength: 25
chargePointSerialNumber string No maxLength: 25
firmwareVersion string No maxLength: 50
iccid string No maxLength: 20
imsi string No maxLength: 20
meterSerialNumber string No maxLength: 25
meterType string No maxLength: 25
Example BootNotification.req
{
  "chargePointModel": "ABCDEF1234",
  "chargePointVendor": "ABCDEF1234"
}

#BootNotification.conf

Field Type Required Constraints Description
currentTime string (date-time) Yes
interval integer Yes
status string (enum) Yes Values: Accepted, Pending, Rejected
Example BootNotification.conf
{
  "currentTime": "2024-01-15T10:30:00Z",
  "interval": 0,
  "status": "Accepted"
}

#ChangeAvailability

Direction: CS → CP

Change a connector or the entire Charge Point to operative/inoperative.

#ChangeAvailability.req

Field Type Required Constraints Description
connectorId integer Yes
type string (enum) Yes Values: Inoperative, Operative
Example ChangeAvailability.req
{
  "connectorId": 0,
  "type": "Inoperative"
}

#ChangeAvailability.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Rejected, Scheduled
Example ChangeAvailability.conf
{
  "status": "Accepted"
}

#ChangeConfiguration

Direction: CS → CP

Set a configuration key on the Charge Point.

#ChangeConfiguration.req

Field Type Required Constraints Description
key string Yes maxLength: 50
value string Yes maxLength: 500
Example ChangeConfiguration.req
{
  "key": "string",
  "value": "string"
}

#ChangeConfiguration.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Rejected, RebootRequired, NotSupported
Example ChangeConfiguration.conf
{
  "status": "Accepted"
}

#ClearCache

Direction: CS → CP

Clear the Charge Point's authorization cache.

#ClearCache.req

No fields (empty object {}).

Example ClearCache.req
{}

#ClearCache.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Rejected
Example ClearCache.conf
{
  "status": "Accepted"
}

#DataTransfer

Direction: CP ↔ CS

Vendor-specific data exchange (bidirectional).

#DataTransfer.req

Field Type Required Constraints Description
vendorId string Yes maxLength: 255
data string No
messageId string No maxLength: 50
Example DataTransfer.req
{
  "vendorId": "string"
}

#DataTransfer.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Rejected, UnknownMessageId, UnknownVendorId
data string No
Example DataTransfer.conf
{
  "status": "Accepted"
}

#GetConfiguration

Direction: CS → CP

Read one or more configuration keys from the Charge Point.

#GetConfiguration.req

Field Type Required Constraints Description
key string[] No
Example GetConfiguration.req
{}

#GetConfiguration.conf

Field Type Required Constraints Description
configurationKey object[] No

configurationKey[] items:

Field Type Required Constraints Description
key string Yes maxLength: 50
readonly boolean Yes
value string No maxLength: 500
unknownKey string[] No
Example GetConfiguration.conf
{}

#Heartbeat

Direction: CP → CS

Keepalive — Charge Point signals it is still connected.

#Heartbeat.req

No fields (empty object {}).

Example Heartbeat.req
{}

#Heartbeat.conf

Field Type Required Constraints Description
currentTime string (date-time) Yes
Example Heartbeat.conf
{
  "currentTime": "2024-01-15T10:30:00Z"
}

#MeterValues

Direction: CP → CS

Send periodic or clock-aligned meter readings.

#MeterValues.req

Field Type Required Constraints Description
connectorId integer Yes
meterValue object[] Yes

meterValue[] items:

Field Type Required Constraints Description
sampledValue object[] Yes

sampledValue[] items:

Field Type Required Constraints Description
value string Yes
context string (enum) No Values: Interruption.Begin, Interruption.End, Sample.Clock, Sample.Periodic, Transaction.Begin, Transaction.End, Trigger, Other
format string (enum) No Values: Raw, SignedData
location string (enum) No Values: Cable, EV, Inlet, Outlet, Body
measurand string (enum) No Values: 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 string (enum) No Values: L1, L2, L3, N, L1-N, L2-N, L3-N, L1-L2, L2-L3, L3-L1
unit string (enum) No Values: Wh, kWh, varh, kvarh, W, kW, VA, kVA, var, kvar, A, V, K, Celcius, Celsius, Fahrenheit, Percent
timestamp string (date-time) Yes
transactionId integer No
Example MeterValues.req
{
  "connectorId": 0,
  "meterValue": [
    {
      "sampledValue": [
        {
          "value": "string"
        }
      ],
      "timestamp": "2024-01-15T10:30:00Z"
    }
  ]
}

#MeterValues.conf

No fields (empty object {}).

Example MeterValues.conf
{}

#RemoteStartTransaction

Direction: CS → CP

Central System requests the Charge Point to start a transaction.

#RemoteStartTransaction.req

Field Type Required Constraints Description
idTag string Yes maxLength: 20
chargingProfile object No

chargingProfile object:

Field Type Required Constraints Description
chargingProfileId integer Yes
chargingProfileKind string (enum) Yes Values: Absolute, Recurring, Relative
chargingProfilePurpose string (enum) Yes Values: ChargePointMaxProfile, TxDefaultProfile, TxProfile
chargingSchedule object Yes

chargingSchedule object:

Field Type Required Constraints Description
chargingRateUnit string (enum) Yes Values: A, W
chargingSchedulePeriod object[] Yes

chargingSchedulePeriod[] items:

Field Type Required Constraints Description
limit number Yes multipleOf: 0.1
startPeriod integer Yes
numberPhases integer No
duration integer No
minChargingRate number No multipleOf: 0.1
startSchedule string (date-time) No
stackLevel integer Yes
recurrencyKind string (enum) No Values: Daily, Weekly
transactionId integer No
validFrom string (date-time) No
validTo string (date-time) No
connectorId integer No
Example RemoteStartTransaction.req
{
  "idTag": "ABCDEF1234"
}

#RemoteStartTransaction.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Rejected
Example RemoteStartTransaction.conf
{
  "status": "Accepted"
}

#RemoteStopTransaction

Direction: CS → CP

Central System requests the Charge Point to stop a transaction.

#RemoteStopTransaction.req

Field Type Required Constraints Description
transactionId integer Yes
Example RemoteStopTransaction.req
{
  "transactionId": 0
}

#RemoteStopTransaction.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Rejected
Example RemoteStopTransaction.conf
{
  "status": "Accepted"
}

#Reset

Direction: CS → CP

Reboot the Charge Point (Hard or Soft).

#Reset.req

Field Type Required Constraints Description
type string (enum) Yes Values: Hard, Soft
Example Reset.req
{
  "type": "Hard"
}

#Reset.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Rejected
Example Reset.conf
{
  "status": "Accepted"
}

#StartTransaction

Direction: CP → CS

Charge Point reports that a transaction has started.

#StartTransaction.req

Field Type Required Constraints Description
connectorId integer Yes
idTag string Yes maxLength: 20
meterStart integer Yes
timestamp string (date-time) Yes
reservationId integer No
Example StartTransaction.req
{
  "connectorId": 0,
  "idTag": "ABCDEF1234",
  "meterStart": 0,
  "timestamp": "2024-01-15T10:30:00Z"
}

#StartTransaction.conf

Field Type Required Constraints Description
idTagInfo object Yes

idTagInfo object:

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Blocked, Expired, Invalid, ConcurrentTx
expiryDate string (date-time) No
parentIdTag string No maxLength: 20
transactionId integer Yes
Example StartTransaction.conf
{
  "idTagInfo": {
    "status": "Accepted"
  },
  "transactionId": 0
}

#StatusNotification

Direction: CP → CS

Charge Point reports a connector status or error change.

#StatusNotification.req

Field Type Required Constraints Description
connectorId integer Yes
errorCode string (enum) Yes Values: ConnectorLockFailure, EVCommunicationError, GroundFailure, HighTemperature, InternalError, LocalListConflict, NoError, OtherError, OverCurrentFailure, PowerMeterFailure, PowerSwitchFailure, ReaderFailure, ResetFailure, UnderVoltage, OverVoltage, WeakSignal
status string (enum) Yes Values: Available, Preparing, Charging, SuspendedEVSE, SuspendedEV, Finishing, Reserved, Unavailable, Faulted
info string No maxLength: 50
timestamp string (date-time) No
vendorErrorCode string No maxLength: 50
vendorId string No maxLength: 255
Example StatusNotification.req
{
  "connectorId": 0,
  "errorCode": "ConnectorLockFailure",
  "status": "Available"
}

#StatusNotification.conf

No fields (empty object {}).

Example StatusNotification.conf
{}

#StopTransaction

Direction: CP → CS

Charge Point reports that a transaction has ended.

#StopTransaction.req

Field Type Required Constraints Description
meterStop integer Yes
timestamp string (date-time) Yes
transactionId integer Yes
idTag string No maxLength: 20
reason string (enum) No Values: EmergencyStop, EVDisconnected, HardReset, Local, Other, PowerLoss, Reboot, Remote, SoftReset, UnlockCommand, DeAuthorized
transactionData object[] No

transactionData[] items:

Field Type Required Constraints Description
sampledValue object[] Yes

sampledValue[] items:

Field Type Required Constraints Description
value string Yes
context string (enum) No Values: Interruption.Begin, Interruption.End, Sample.Clock, Sample.Periodic, Transaction.Begin, Transaction.End, Trigger, Other
format string (enum) No Values: Raw, SignedData
location string (enum) No Values: Cable, EV, Inlet, Outlet, Body
measurand string (enum) No Values: 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 string (enum) No Values: L1, L2, L3, N, L1-N, L2-N, L3-N, L1-L2, L2-L3, L3-L1
unit string (enum) No Values: Wh, kWh, varh, kvarh, W, kW, VA, kVA, var, kvar, A, V, K, Celcius, Celsius, Fahrenheit, Percent
timestamp string (date-time) Yes
Example StopTransaction.req
{
  "meterStop": 0,
  "timestamp": "2024-01-15T10:30:00Z",
  "transactionId": 0
}

#StopTransaction.conf

Field Type Required Constraints Description
idTagInfo object No

idTagInfo object:

Field Type Required Constraints Description
status string (enum) Yes Values: Accepted, Blocked, Expired, Invalid, ConcurrentTx
expiryDate string (date-time) No
parentIdTag string No maxLength: 20
Example StopTransaction.conf
{}

#UnlockConnector

Direction: CS → CP

Remotely unlock a connector (for cable removal).

#UnlockConnector.req

Field Type Required Constraints Description
connectorId integer Yes
Example UnlockConnector.req
{
  "connectorId": 0
}

#UnlockConnector.conf

Field Type Required Constraints Description
status string (enum) Yes Values: Unlocked, UnlockFailed, NotSupported
Example UnlockConnector.conf
{
  "status": "Unlocked"
}