- Reference
- OCPI 2.2.1 (CPO)
- Receiver SetChargingProfile
OpenAPI reference
Receiver SetChargingProfile
/chargingprofiles/{session_id}Creates or updates a ChargingProfile for a specific charging session. This gateway currently fail-closes with `NOT_SUPPORTED` until a real ChargingProfiles dispatcher is wired.
API: OCPI 2.2.1 (CPO) · Module: Charging Profiles (CPO)
Base path:/chargingprofiles· Base URL:https://ocpi-api.gridos.co/ocpi/cpo/2.2.1
Overview
PUT /chargingprofiles/{session_id}Absolute URL: https://ocpi-api.gridos.co/ocpi/cpo/2.2.1/chargingprofiles/{session_id}
Creates or updates a ChargingProfile for a specific charging session. This gateway currently fail-closes with NOT_SUPPORTED until a real ChargingProfiles dispatcher is wired.
Requires authentication. Use Authorization: Token <token>. See OCPI credentials.
How to call
Quick Shell sample (set OCPI_TOKEN when auth is required). Full Python and TypeScript under Examples.
curl -sS -X PUT 'https://ocpi-api.gridos.co/ocpi/cpo/2.2.1/chargingprofiles/SESSION1' \
-H "Authorization: Token $OCPI_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"charging_profile":{"charging_rate_unit":"W","charging_profile_period":[{"start_period":0,"limit":11000},{"start_period":3600,"limit":7000},{"start_period":7200,"limit":3500}]},"response_url":"https://example.com/ocpi/emsp/2.2.1/chargingprofiles/result/5678"}'Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | Session.id of the Session object. |
Request body
application/json · Required
Schema: SetChargingProfile
| Field | Type | Required | Description |
|---|---|---|---|
charging_profile | ChargingProfile | Yes | ChargingProfile |
response_url | string | Yes | URL for the async ChargingProfileResult POST. |
Request examples
Example 1
{
"charging_profile": {
"charging_rate_unit": "W",
"charging_profile_period": [
{
"start_period": 0,
"limit": 11000
},
{
"start_period": 3600,
"limit": 7000
},
{
"start_period": 7200,
"limit": 3500
}
]
},
"response_url": "https://example.com/ocpi/emsp/2.2.1/chargingprofiles/result/5678"
}Example 2
{
"charging_profile": {
"charging_rate_unit": "A",
"charging_profile_period": [
{
"start_period": 0,
"limit": 16
},
{
"start_period": 1800,
"limit": 10
}
]
},
"response_url": "https://example.com/ocpi/emsp/2.2.1/chargingprofiles/result/9012"
}Responses
| Status | Description | Schema |
|---|---|---|
200 | Successful Response | ChargingProfileResponseWrapper |
400 | Invalid or missing parameters (HTTP 200, OCPI envelope) | — |
401 | Unauthorized | — |
422 | Validation Error | HTTPValidationError |
200 — successful response
application/json
Schema: ChargingProfileResponseWrapper
| Field | Type | Required | Description |
|---|---|---|---|
status_code | integer | No | Default: 1000 |
status_message | string | No | — |
timestamp | string (date-time) | No | — |
data | ChargingProfileResponse | No | Immediate response to a ChargingProfiles request. |
Response example
{
"data": {
"result": "ACCEPTED",
"timeout": 30
},
"status_code": 1000,
"status_message": "Success",
"timestamp": "2024-01-15T10:00:00Z"
}400 — invalid or missing parameters (HTTP 200, OCPI envelope)
application/json
Response example
{
"status_code": 2001,
"status_message": "Invalid or missing parameters",
"timestamp": "2025-01-01T00:00:00Z",
"doc_url": "https://github.com/ocpplab/ocpi-gateway/blob/main/docs/errors.md#2001-invalid-parameters",
"errors": [
{
"field": "country_code",
"message": "expected 'NL' to match Token A identity",
"type": "value_error.identity_mismatch"
}
]
}401 — unauthorized
application/json
Response example
{
"status_code": 2001,
"status_message": "Unauthorized",
"timestamp": "2025-01-01T00:00:00Z"
}422 — validation error
application/json
Schema: HTTPValidationError
| Field | Type | Required | Description |
|---|---|---|---|
detail | ValidationError[] | No | Detail |
Response example
{
"detail": [
{
"loc": [],
"msg": "string",
"type": "string",
"input": {
"_type": "Input"
},
"ctx": {
"_type": "Context"
}
}
]
}Examples
Shell, Python, and TypeScript (set OCPI_TOKEN when auth is required).
curl -sS -X PUT 'https://ocpi-api.gridos.co/ocpi/cpo/2.2.1/chargingprofiles/SESSION1' \
-H "Authorization: Token $OCPI_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"charging_profile":{"charging_rate_unit":"W","charging_profile_period":[{"start_period":0,"limit":11000},{"start_period":3600,"limit":7000},{"start_period":7200,"limit":3500}]},"response_url":"https://example.com/ocpi/emsp/2.2.1/chargingprofiles/result/5678"}'