Download OpenAPI specification:
The Sender Interface is typically implemented by market roles like the eMSP or SCSP. It receives the asynchronous responses from the Charge Point via the CPO, and updated ActiveChargingProfiles when the CPO knows the profile has changed.
For the POST method: The URL structure is open for the Sender to define. The URL is provided to the Receiver via the response_url field. The path shown here is a typical implementation pattern.
For the PUT method: The endpoint structure is {chargingprofiles_endpoint_url}/{session_id}.
| Enum | Description |
|---|---|
| ACCEPTED | ChargingProfile request accepted by the EVSE. |
| REJECTED | ChargingProfile request rejected by the EVSE. |
| UNKNOWN | No Charging Profile(s) were found by the EVSE matching the request. |
Result of a ChargingProfile request that the EVSE sends via the CPO to the eMSP.
"ACCEPTED"| Enum | Description |
|---|---|
| W | Watts (power). This is the total allowed charging power. It is usually more convenient to use this for DC charging. |
| 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. |
Unit in which a charging profile is defined.
"W"| start_period required | integer Start of the period, in seconds from the start of profile. The value of StartPeriod also defines the stop time of the previous period. |
| limit required | number Charging rate limit during the profile period, in the applicable chargingRateUnit, for example in Amperes (A) or Watts (W). Accepts at most one digit fraction (e.g. 8.1). |
{- "start_period": 0,
- "limit": 0
}| start_date_time | string <date-time> Starting point of an absolute profile. If absent the profile will be relative to start of charging. | ||||||
| duration | integer Duration of the charging profile in seconds. If the duration is left empty, the last period will continue indefinitely or until end of the transaction in case start_date_time is absent. | ||||||
| charging_rate_unit required | string <enum> (ChargingRateUnit)
The unit of measure. | ||||||
| min_charging_rate | number 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). | ||||||
Array of objects (ChargingProfilePeriod) List of ChargingProfilePeriod elements defining maximum power or current usage over time. |
{- "start_date_time": "2019-08-24T14:15:22Z",
- "duration": 0,
- "charging_rate_unit": "W",
- "min_charging_rate": 0,
- "charging_profile_period": [
- {
- "start_period": 0,
- "limit": 0
}
]
}| start_date_time required | string <date-time> Date and time at which the Charge Point has calculated this ActiveChargingProfile. All time measurements within the profile are relative to this timestamp. |
required | object (ChargingProfile) Charging profile structure defines a list of charging periods. |
{- "start_date_time": "2019-08-24T14:15:22Z",
- "charging_profile": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "duration": 0,
- "charging_rate_unit": "W",
- "min_charging_rate": 0,
- "charging_profile_period": [
- {
- "start_period": 0,
- "limit": 0
}
]
}
}| result required | string <enum> (ChargingProfileResultType)
The EVSE will indicate if it was able to process the request for the ActiveChargingProfile | ||||||||
object (ActiveChargingProfile) The requested ActiveChargingProfile, if the result field is set to: ACCEPTED |
{- "result": "ACCEPTED",
- "profile": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "charging_profile": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "duration": 0,
- "charging_rate_unit": "W",
- "min_charging_rate": 0,
- "charging_profile_period": [
- {
- "start_period": 0,
- "limit": 0
}
]
}
}
}| result required | string <enum> (ChargingProfileResultType)
The EVSE will indicate if it was able to process the new/updated charging profile. |
{- "result": "ACCEPTED"
}| result required | string <enum> (ChargingProfileResultType)
The EVSE will indicate if it was able to process the removal of the charging profile (ClearChargingProfile). |
{- "result": "ACCEPTED"
}| status_code required | integer OCPI status code, 1000 for success. |
| status_message | string An optional status message which may help when debugging. |
| timestamp required | string <date-time> The time this message was generated. |
| data | any Response data object or list of objects. |
{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}Receive the asynchronous response from the Charge Point.
As the Sender interface is called by the Receiver (typically CPO) on the URL given response_url in the Sender request to the Receiver interface. It is up to the implementation of the Sender (typically SCSP) to determine what parameters are put in the URL. The Sender sends a URL in the POST method body to the Receiver. The Receiver is required to use this URL for the asynchronous response by the Charge Point. It is advised to make this URL unique for every request to differentiate simultaneous commands, for example by adding a unique id as a URL segment.
| X-Request-ID required | string Every request SHALL contain a unique request ID, the response to this request SHALL contain the same ID. It is advised to use GUID/UUID as values. |
| X-Correlation-ID required | string Every request/response SHALL contain a unique correlation ID, every response to this request SHALL contain the same ID. It is advised to use GUID/UUID as values. When a Hub forwards a request to a party, the request SHALL contain the same X-Correlation-ID HTTP header (with the same value). |
| OCPI-from-country-code | string = 2 characters 'country code' of the connected party this message is sent from. |
| OCPI-from-party-id | string = 3 characters 'party id' of the connected party this message is sent from. |
| OCPI-to-country-code | string = 2 characters 'country code' of the connected party this message is to be sent to. |
| OCPI-to-party-id | string = 3 characters 'party id' of the connected party this message is to be sent to. |
Choice: one of three. ActiveChargingProfileResult: Result of the GET ActiveChargingProfile request, from the Charge Point. ChargingProfileResult: Result of the PUT ChargingProfile request, from the Charge Point. ClearProfileResult: Result of the DELETE ChargingProfile request, from the Charge Point.
| result required | string <enum> (ChargingProfileResultType)
The EVSE will indicate if it was able to process the request for the ActiveChargingProfile | ||||||||
object (ActiveChargingProfile) The requested ActiveChargingProfile, if the result field is set to: ACCEPTED |
{- "result": "ACCEPTED",
- "profile": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "charging_profile": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "duration": 0,
- "charging_rate_unit": "W",
- "min_charging_rate": 0,
- "charging_profile_period": [
- {
- "start_period": 0,
- "limit": 0
}
]
}
}
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}Updates the Sender (typically SCSP) when the Receiver (typically CPO) knows the ActiveChargingProfile has changed.
The Receiver SHALL call this interface every time it knows changes have been made that influence the ActiveChargingProfile for an ongoing session AND the Sender has at least once successfully called the charging profile Receiver PUT interface for this session (SetChargingProfile). If the Receiver doesn’t know the ActiveChargingProfile has changed (EVSE does not notify the Receiver (typically CPO) of the change) it is not required to call this interface.
The Receiver SHALL NOT call this interface for any session where the Sender has never, successfully called the charging profile Receiver PUT interface for this session (SetChargingProfile).
The Receiver SHALL send a useful relevant duration of ActiveChargingProfile to send to the Sender. As a guide: between 5 and 60 minutes. If the Sender wants a longer ActiveChargingProfile the Sender can always do a GET with a longer duration.
| session_id required | string <= 36 characters Session.id of the Session object. |
| X-Request-ID required | string Every request SHALL contain a unique request ID, the response to this request SHALL contain the same ID. It is advised to use GUID/UUID as values. |
| X-Correlation-ID required | string Every request/response SHALL contain a unique correlation ID, every response to this request SHALL contain the same ID. It is advised to use GUID/UUID as values. When a Hub forwards a request to a party, the request SHALL contain the same X-Correlation-ID HTTP header (with the same value). |
| OCPI-from-country-code | string = 2 characters 'country code' of the connected party this message is sent from. |
| OCPI-from-party-id | string = 3 characters 'party id' of the connected party this message is sent from. |
| OCPI-to-country-code | string = 2 characters 'country code' of the connected party this message is to be sent to. |
| OCPI-to-party-id | string = 3 characters 'party id' of the connected party this message is to be sent to. |
The new ActiveChargingProfile. If there is no longer any charging profile active, the ActiveChargingProfile SHALL reflect this by showing the maximum charging capacity of the EVSE.
| start_date_time required | string <date-time> Date and time at which the Charge Point has calculated this ActiveChargingProfile. All time measurements within the profile are relative to this timestamp. |
required | object (ChargingProfile) Charging profile structure defines a list of charging periods. |
{- "start_date_time": "2019-08-24T14:15:22Z",
- "charging_profile": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "duration": 0,
- "charging_rate_unit": "W",
- "min_charging_rate": 0,
- "charging_profile_period": [
- {
- "start_period": 0,
- "limit": 0
}
]
}
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}