Download OpenAPI specification:Download
The Charger Operations API provides control over Charging Stations, charging sessions ("Transactions"), and their power consumption.
Transactions, where the EV driver has plugged in the charging cable, can be authorized with the Start Transaction
endpoint. An ongoing transaction can remotely be stopped with the Stop Transction
endpoint.
Charging Stations status can be remotely managed, such as with the Change Availability of Connector
and Restart Charging Station
endpoints.
Power use of the Charging Stations can be controlled with the Power Limit-endpoints on a Charging Station, Connector and Transaction level. For further control and scheduling power use, you may pass in OCPP 2.0.1-compliant Smart Charging Profiles with the Smart Charging Profile-endpoints. For controlling power usage of Locations with multiple Charging Stations, please see the Load Balancing API.
Push a charging profile to a specific charging station. The charging profile, as according to OCPP 2.0.1, dictates the power allocation to the station over time, enabling smart charging and energy management capabilities.
OK
response required | string (ChargingProfileStatusEnumType) Returns whether the Charging Station has been able to process the message successfully. This does not guarantee the schedule will be followed to the letter. There might be other constraints the Charging Station may need to take into account. | ||||||
object (StatusInfoType_2) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "chargingProfile": {
- "chargingProfileKind": "Absolute",
- "chargingProfilePurpose": "ChargingStationExternalConstraints",
- "chargingSchedule": [
- {
- "chargingRateUnit": "A",
- "chargingSchedulePeriod": [
- {
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "limit": 0,
- "numberPhases": 0,
- "phaseToUse": 0,
- "startPeriod": 0
}
], - "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "duration": 0,
- "id": 0,
- "minChargingRate": 0,
- "salesTariff": {
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "id": 0,
- "numEPriceLevels": 0,
- "salesTariffDescription": "string",
- "salesTariffEntry": [
- {
- "consumptionCost": [
- null
], - "customData": {
- "vendorId": null,
- "property1": null,
- "property2": null
}, - "ePriceLevel": 0,
- "relativeTimeInterval": {
- "customData": null,
- "duration": null,
- "start": null
}
}
]
}, - "startSchedule": "string"
}
], - "condition": {
- "whenNoCloudConnection": true,
- "whenSessionNotAuthorized": true
}, - "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "id": 0,
- "meta": {
- "comment": "string",
- "createdAt": "string",
- "createdBy": "string"
}, - "recurrencyKind": "Daily",
- "stackLevel": 0,
- "transactionId": "string",
- "validFrom": "string",
- "validTo": "string"
}
}
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Remove a charging profile or multiple matching charging profiles, on a specific charging station, resetting its power management to a default state.
object (ClearChargingProfileType) Charging_ Profile urn:x-oca:ocpp:uid:2:233255 A ChargingProfile consists of a ChargingSchedule, describing the amount of power or current that can be delivered per time interval. | |||||||||
| |||||||||
chargingProfileId | number |
OK
response required | string (ClearChargingProfileStatusEnumType) Indicates if the Charging Station was able to execute the request. | ||||||
object (StatusInfoType) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "chargingProfileCriteria": {
- "chargingProfilePurpose": "ChargingStationExternalConstraints",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "evseId": 0,
- "stackLevel": 0
}, - "chargingProfileId": 0
}
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Push a charging profile to a specific charging station's connector (evseId
).
The charging profile, as according to OCPP 2.0.1, dictates the power allocation to the station over time,
enabling smart charging and energy management capabilities.
required | object (ChargingProfile) | ||||||||||||||||||||||||
|
OK
response required | string (ChargingProfileStatusEnumType) Returns whether the Charging Station has been able to process the message successfully. This does not guarantee the schedule will be followed to the letter. There might be other constraints the Charging Station may need to take into account. | ||||||
object (StatusInfoType_2) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "chargingProfile": {
- "chargingProfileKind": "Absolute",
- "chargingProfilePurpose": "ChargingStationExternalConstraints",
- "chargingSchedule": [
- {
- "chargingRateUnit": "A",
- "chargingSchedulePeriod": [
- {
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "limit": 0,
- "numberPhases": 0,
- "phaseToUse": 0,
- "startPeriod": 0
}
], - "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "duration": 0,
- "id": 0,
- "minChargingRate": 0,
- "salesTariff": {
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "id": 0,
- "numEPriceLevels": 0,
- "salesTariffDescription": "string",
- "salesTariffEntry": [
- {
- "consumptionCost": [
- null
], - "customData": {
- "vendorId": null,
- "property1": null,
- "property2": null
}, - "ePriceLevel": 0,
- "relativeTimeInterval": {
- "customData": null,
- "duration": null,
- "start": null
}
}
]
}, - "startSchedule": "string"
}
], - "condition": {
- "whenNoCloudConnection": true,
- "whenSessionNotAuthorized": true
}, - "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "id": 0,
- "meta": {
- "comment": "string",
- "createdAt": "string",
- "createdBy": "string"
}, - "recurrencyKind": "Daily",
- "stackLevel": 0,
- "transactionId": "string",
- "validFrom": "string",
- "validTo": "string"
}
}
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Change the status of a specific connector in a charging station. It allows the operator to enable or disable a particular connector for charging.
{- "disableTextReason": "string",
- "type": "Inoperative"
}
{- "responseFromStation": "Accepted"
}
Remotely reboot a specific charging station. Useful for maintenance, updates, or resolving operational issues without onsite intervention.
OK
responseFromStation required | string
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "type": "Immediate"
}
{- "responseFromStation": "Accepted"
}
Set the power limit for a specific Connector (evseId
), controlling the maximum power
it can draw during charging sessions. This aids in energy management and load balancing.
The power limit will be taken into effect typically within a few seconds.
chargingProfileId | number Override charging profile ID. Unique within the charger. Defaults to 3000-5282 depending on options. |
comment | string Add a meta comment to the charging plan |
condition | string Special condition which must match for this power limit to be active. |
relativeDelay | number If given, this power limit will not take place immediately, but only after this many seconds after charging started. May be used with or without the `condition' option. Number given in seconds. |
stackLevel | number Priority - higher the number, the higher the number. Defaults to 0 (except 1000 if there is a condition) |
OK
response required | string (ChargingProfileStatusEnumType) Returns whether the Charging Station has been able to process the message successfully. This does not guarantee the schedule will be followed to the letter. There might be other constraints the Charging Station may need to take into account. | ||||||
object (StatusInfoType) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "limit": {
- "acMaxPowerA": 0,
- "acMaxPowerKw": 0,
- "dcMaxPowerKw": 0
}
}
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Remove the power limit on a specific charging station's connector (evseId
),
resetting its power management to a default state.
OK
response required | string (ClearChargingProfileStatusEnumType) Indicates if the Charging Station was able to execute the request. | ||||||
object (StatusInfoType) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Set the power limit for a specific Charging Station, controlling the maximum power it can draw during charging sessions. This aids in energy management and load balancing. The available power will be distributed amongst all active charging sessions.
The power limit will be taken into effect typically within a few seconds.
chargingProfileId | number Override charging profile ID. Unique within the charger. Defaults to 3000-5282 depending on options. |
comment | string Add a meta comment to the charging plan |
condition | string Special condition which must match for this power limit to be active. |
relativeDelay | number If given, this power limit will not take place immediately, but only after this many seconds after charging started. May be used with or without the `condition' option. Number given in seconds. |
stackLevel | number Priority - higher the number, the higher the number. Defaults to 0 (except 1000 if there is a condition) |
OK
response required | string (ChargingProfileStatusEnumType) Returns whether the Charging Station has been able to process the message successfully. This does not guarantee the schedule will be followed to the letter. There might be other constraints the Charging Station may need to take into account. | ||||||
object (StatusInfoType) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "limit": {
- "acMaxPowerA": 0,
- "acMaxPowerKw": 0,
- "dcMaxPowerKw": 0
}
}
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Remove the power limit on a specific charging station, resetting its power management to a default state.
OK
response required | string (ClearChargingProfileStatusEnumType) Indicates if the Charging Station was able to execute the request. | ||||||
object (StatusInfoType) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Set the power limit for a specific Transaction, controlling the maximum power it can draw during charging. This aids in energy management and load balancing.
The power limit will be taken into effect typically within a few seconds.
chargingProfileId | number Override charging profile ID. Unique within the charger. Defaults to 3000-5282 depending on options. |
comment | string Add a meta comment to the charging plan |
condition | string Special condition which must match for this power limit to be active. |
relativeDelay | number If given, this power limit will not take place immediately, but only after this many seconds after charging started. May be used with or without the `condition' option. Number given in seconds. |
stackLevel | number Priority - higher the number, the higher the number. Defaults to 0 (except 1000 if there is a condition) |
OK
response required | string (ChargingProfileStatusEnumType) Returns whether the Charging Station has been able to process the message successfully. This does not guarantee the schedule will be followed to the letter. There might be other constraints the Charging Station may need to take into account. | ||||||
object (StatusInfoType) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "limit": {
- "acMaxPowerA": 0,
- "acMaxPowerKw": 0,
- "dcMaxPowerKw": 0
}
}
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Remove the power limit on a specific transaction, resetting its power management to a default state.
OK
response required | string (ClearChargingProfileStatusEnumType) Indicates if the Charging Station was able to execute the request. | ||||||
object (StatusInfoType) Element providing more information about the status. | |||||||
|
Unauthorized - Authorization: Bearer header is missing, invalid, expired, or user has no permission
{- "response": "Accepted",
- "statusInfo": {
- "additionalInfo": "string",
- "customData": {
- "vendorId": "string",
- "property1": null,
- "property2": null
}, - "reasonCode": "string"
}
}
Authorize or restart a charging session on a specific charging station's connector. Used usually after (payment) has been authorized to allow the charging to start.
May be used to re-start a stopped charging session. Note that in DC charging, not all passenger cars support restarting the charging without unplugging and plugging in the cable again - it is more widely supported with commercial vehicles.
authorizationReference | string or null Reference to the authorization given by an external party, will be attached to the session | ||||||||||||||||||||
object (ChargingProfileType) Charging_ Profile urn:x-oca:ocpp:uid:2:233255 A ChargingProfile consists of ChargingSchedule, describing the amount of power or current that can be delivered per time interval. | |||||||||||||||||||||
| |||||||||||||||||||||
contractId | string Uniquely identifies the EV Driver contract token within the eMSP’s platform (and suboperator platforms). Recommended to follow the specification for eMA ID from "eMI3 standard version V1.0" (http://emi3group.com/documents-links/) "Part 2: business objects." Passed in by external party in OCPI command (StartSession). | ||||||||||||||||||||
emspCountryCode | string Country code of related eMSP (OCPI) Source: 'OCPI-from-country-code'-routing header | ||||||||||||||||||||
emspPartyId | string Party id of related eMSP (OCPI) Source: 'OCPI-from-party-id'-routing header | ||||||||||||||||||||
idToken | string or null Token the Charge Point has to use to start a new session | ||||||||||||||||||||
idTokenIssuer | string or null | ||||||||||||||||||||
idTokenType | string (IdTokenType) Enum: "AD_HOC_USER" "APP_USER" "OTHER" "RFID" | ||||||||||||||||||||
ocpiConnectionProfileId | string ID of the ocpiConnectionProfile used when remote starting via ocpi. Source: authtoken.sub | ||||||||||||||||||||
object or null Vehicle identification from an external source | |||||||||||||||||||||
{ }
{- "transactionStartResponse": {
- "status": "Accepted"
}
}
Remotely stop an ongoing charging session ("transaction"), allowing operators or users to end a charging session as needed.
{- "transactionStopResponse": {
- "status": "Accepted",
- "property1": null,
- "property2": null
}
}