Skip to content
Documentation Menu

Set Charging Profile

Source: OCPP 2.0.1 Part 2 — Specification (Edition 2, 2022-12-15) — Section 1.51 (Messages); Use Cases K01 — SetChargingProfile, K02 — Central Smart Charging, K05 — Remote Start Transaction with Charging Profile (Functional Block K. SmartCharging)

Overview

The CSMS sends SetChargingProfileRequest to install a charging profile on the Charging Station. The profile applies to a specific EVSE — evseId = 0 carries an overall limit for the whole Charging Station (used with ChargingStationMaxProfile or ChargingStationExternalConstraints purposes).

The Charging Station re-evaluates its collection of profiles when a new one is installed and selects which one becomes active based on chargingProfilePurpose precedence and stackLevel.

Sequence Diagram

CSMS  ──── SetChargingProfileRequest ────▶  Charging Station
            (evseId, chargingProfile)
CSMS  ◀─── SetChargingProfileResponse ────  Charging Station
            (status, statusInfo?)

Initiator

CSMS → Charging Station

Fields

Field NameField TypeCard.Description
evseIdinteger (>= 0)1..1Required. EVSE the profile applies to. 0 for ChargingStationMaxProfile / ChargingStationExternalConstraints (overall limit) or TxDefaultProfile (each EVSE).
chargingProfileChargingProfileType1..1Required. The charging profile.

ChargingProfilePurposeEnumType values

  • ChargingStationExternalConstraints — External limit set on Charging Station as a whole.
  • ChargingStationMaxProfile — Overall limit on the Charging Station.
  • TxDefaultProfile — Default profile applied at the start of every transaction (per EVSE or all).
  • TxProfile — Profile for a specific transaction.

ChargingProfileStatusEnumType values

Accepted, Rejected.

Examples

{
  "evseId": 1,
  "chargingProfile": {
    "id": 100,
    "stackLevel": 0,
    "chargingProfilePurpose": "TxProfile",
    "chargingProfileKind": "Absolute",
    "transactionId": "tx-1234",
    "chargingSchedule": [
      {
        "id": 1,
        "startSchedule": "2026-04-27T13:00:00Z",
        "duration": 3600,
        "chargingRateUnit": "W",
        "chargingSchedulePeriod": [
          { "startPeriod": 0,    "limit": 11000.0, "numberPhases": 3 },
          { "startPeriod": 1800, "limit": 7400.0,  "numberPhases": 3 }
        ]
      }
    ]
  }
}

Schema

Source: schemas/SetChargingProfileRequest.json, schemas/SetChargingProfileResponse.json (OCPP 2.0.1 FINAL)

Request schema (JSON Schema)
Response schema (JSON Schema)