Download OpenAPI specification:
The Receiver Interface is implemented by the eMSP. It allows the CPO to push BookingLocation, Calendar, and Booking data to the eMSP. Bookings are Client Owned Objects, so the endpoints contain the required extra fields: country_code, party_id, and the object identifier.
| 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
}| Enum | Description |
|---|---|
| LEFT | The EVSE is to the left of the vehicle. |
| RIGHT | The EVSE is to the right of the vehicle when parked. |
| CENTER | The EVSE is at the center of the impassable narrow end of a parking space. |
The position of an EVSE relative to the EVSE's parking space.
"LEFT"| Enum | Description |
|---|---|
| MOTORCYCLE | A motorcycle. |
| PERSONAL_VEHICLE | A personal vehicle, a passenger car. |
| PERSONAL_VEHICLE_WITH_TRAILER | A personal vehicle with a trailer attached. |
| VAN | A light-duty van with a height smaller than 275 cm. |
| SEMI_TRACTOR | A heavy-duty tractor unit without a trailer. |
| RIGID | A heavy-duty truck without an articulation point. |
| TRUCK_WITH_TRAILER | A heavy-duty truck (tractor or rigid) with a trailer attached. |
| BUS | A bus or a motor coach. |
| DISABLED | A vehicle with a permit for parking spaces for people with disabilities. |
A categorization of vehicles to indicate which type of vehicles can use a certain EVSE.
"MOTORCYCLE"| Enum | Description |
|---|---|
| SOCKET | The connector is a socket; the EV user needs to bring a fitting plug. |
| CABLE | The connector is an attached cable; the EV users car needs to have a fitting inlet. |
The format of the connector, whether it is a socket or a plug.
"SOCKET"| Enum | Description |
|---|---|
| CHADEMO | The connector type is CHAdeMO, DC. |
| CHAOJI | The ChaoJi connector. The new generation charging connector, harmonized between CHAdeMO and GB/T. DC. |
| DOMESTIC_A | Standard/Domestic household, type "A", NEMA 1-15, 2 pins. |
| DOMESTIC_B | Standard/Domestic household, type "B", NEMA 5-15, 3 pins. |
| DOMESTIC_C | Standard/Domestic household, type "C", CEE 7/17, 2 pins. |
| DOMESTIC_D | Standard/Domestic household, type "D", 3 pin. |
| DOMESTIC_E | Standard/Domestic household, type "E", CEE 7/5 3 pins. |
| DOMESTIC_F | Standard/Domestic household, type "F", CEE 7/4, Schuko, 3 pins. |
| DOMESTIC_G | Standard/Domestic household, type "G", BS 1363, Commonwealth, 3 pins. |
| DOMESTIC_H | Standard/Domestic household, type "H", SI-32, 3 pins. |
| DOMESTIC_I | Standard/Domestic household, type "I", AS 3112, 3 pins. |
| DOMESTIC_J | Standard/Domestic household, type "J", SEV 1011, 3 pins. |
| DOMESTIC_K | Standard/Domestic household, type "K", DS 60884-2-D1, 3 pins. |
| DOMESTIC_L | Standard/Domestic household, type "L", CEI 23-16-VII, 3 pins. |
| DOMESTIC_M | Standard/Domestic household, type "M", BS 546, 3 pins. |
| DOMESTIC_N | Standard/Domestic household, type "N", NBR 14136, 3 pins. |
| DOMESTIC_O | Standard/Domestic household, type "O", TIS 166-2549, 3 pins. |
| GBT_AC | Guobiao GB/T 20234.2 AC socket/connector. |
| GBT_DC | Guobiao GB/T 20234.3 DC connector. |
| IEC_60309_2_single_16 | IEC 60309-2 Industrial Connector single phase 16 amperes (usually blue). |
| IEC_60309_2_three_16 | IEC 60309-2 Industrial Connector three phases 16 amperes (usually red). |
| IEC_60309_2_three_32 | IEC 60309-2 Industrial Connector three phases 32 amperes (usually red). |
| IEC_60309_2_three_64 | IEC 60309-2 Industrial Connector three phases 64 amperes (usually red). |
| IEC_62196_T1 | IEC 62196 Type 1 "SAE J1772". |
| IEC_62196_T1_COMBO | Combo Type 1 based, DC. |
| IEC_62196_T2 | IEC 62196 Type 2 "Mennekes". |
| IEC_62196_T2_COMBO | Combo Type 2 based, DC. |
| IEC_62196_T3A | IEC 62196 Type 3A. |
| IEC_62196_T3C | IEC 62196 Type 3C "Scame". |
| MCS | The MegaWatt Charging System (MCS) connector as developed by CharIN. |
| NEMA_5_20 | NEMA 5-20, 3 pins. |
| NEMA_6_30 | NEMA 6-30, 3 pins. |
| NEMA_6_50 | NEMA 6-50, 3 pins. |
| NEMA_10_30 | NEMA 10-30, 3 pins. |
| NEMA_10_50 | NEMA 10-50, 3 pins. |
| NEMA_14_30 | NEMA 14-30, 3 pins, rating of 30 A. |
| NEMA_14_50 | NEMA 14-50, 3 pins, rating of 50 A. |
| PANTOGRAPH_BOTTOM_UP | On-board Bottom-up-Pantograph typically for bus charging. |
| PANTOGRAPH_TOP_DOWN | Off-board Top-down-Pantograph typically for bus charging. |
| SAE_J3400 | SAE J3400, also known as North American Charging Standard (NACS), developed by Tesla, Inc in 2021. |
| TESLA_R | Tesla Connector "Roadster"-type (round, 4 pin). |
| TESLA_S | Tesla Connector "Model-S"-type (oval, 5 pin). Mechanically compatible with SAE J3400 but uses CAN bus for communication instead of power line communication. |
The socket or plug standard of the charging point.
"CHADEMO"| Enum | Description |
|---|---|
| AC_1_PHASE | AC single phase. |
| AC_2_PHASE | AC two phases, only two of the three available phases connected. |
| AC_2_PHASE_SPLIT | AC two phases using split phase system. |
| AC_3_PHASE | AC three phases. |
| DC | Direct Current. |
The type of power at the connector.
"AC_1_PHASE"| evse_uid | string <= 36 characters A bookable EVSE.uid of the EVSE of this Location on which the reservation will be made. Allowed to be set to '#NA' when no EVSE yet assigned to the driver. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| connector_id | string <= 36 characters Connector.id of the Connector of this Location where the booking will happen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| parking_id | string <= 36 characters Reference to the parking identifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| evse_position | Array of strings <enum> (EVSEPosition) [ items <enum > ]
The position of the EVSE relative to the parking space. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| vehicle_types | Array of strings <open-enum> (VehicleType) [ items <open-enum > ]
The vehicle types that the parking is designed to accommodate. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| connector_format | Array of strings <enum> (ConnectorFormat) [ items <enum > ]
The format (socket/cable) of the installed connector. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| connector_types | Array of strings <open-enum> (ConnectorType) [ items <open-enum > ]
The type of the installed connector. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| power_types | Array of strings <enum> (PowerType) [ items <enum > ]
The type of power provided by the EVSE. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_vehicle_weight | number The maximum vehicle weight that can park at the EVSE, in kilograms. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_vehicle_height | number The maximum vehicle height that can park at the EVSE, in centimeters. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_vehicle_length | number The maximum vehicle length that can park at the EVSE, in centimeters. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| max_vehicle_width | number The maximum vehicle width that can park at the EVSE, in centimeters. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| min_parking_space_length | number The minimum length of the parking space, in centimeters. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| min_parking_space_width | number The minimum width of the parking space, in centimeters. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dangerous_goods_allowed | boolean Whether vehicles loaded with dangerous substances are allowed to park at the EVSE. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| drive_through | boolean Whether a vehicle can stop, charge, and proceed without reversing into or out of a parking space. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| refrigeration_outlet | boolean Whether a power outlet is available to power a transport truck's load refrigeration while the vehicle is parked. |
{- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}| reservation_required required | boolean Is a reservation required. |
| ad_hoc | number Number of ad_hoc charging options available. |
{- "reservation_required": true,
- "ad_hoc": 0
}| Enum | Description |
|---|---|
| OPEN | Open access to the site. |
| TOKEN | Using a token that was sent in the booking. |
| LICENSE_PLATE | The license plate(s) of the vehicle that wants to charge. |
| ACCESS_CODE | The access code provided. |
| INTERCOM | Get access to the charging station by ringing the intercom. |
| PARKING_TICKET | Parking ticket required. |
Method to access the booked resource.
"OPEN"| rfid_auth_required | boolean Charging for reserved booking requires authentication by RFID card at charger. | ||||||||||||||
| token_groups_supported | boolean If true, any token within the same token group may be used for the booking. | ||||||||||||||
| remote_auth_supported | boolean If true, charging for reserved booking is possible through remote authentication (Start message through Commands endpoint). | ||||||||||||||
| supported_access_methods required | Array of strings <enum> (AccessMethod) non-empty [ items <enum > ]
What is needed to access the location. | ||||||||||||||
| change_until_minutes required | number Number of minutes before the booking till which it can be changed. | ||||||||||||||
| cancel_until_minutes required | number Number of minutes before the booking till which it can be canceled. | ||||||||||||||
| change_not_allowed | boolean If change is allowed. | ||||||||||||||
| early_start_allowed | boolean If an early start of the session is allowed/possible. | ||||||||||||||
| early_start_time | number Number of minutes early start is allowed/possible. | ||||||||||||||
| noshow_timeout | number The number of minutes after the booking start time that it is considered a no show and booking is released. No timeout if unspecified. | ||||||||||||||
| noshow_fee | boolean If the CPO will charge a no show fee. The amount of the fee can be defined in the booking_terms URL. Will also be in the Tariff part of the BookingLocation. | ||||||||||||||
| late_stop_allowed | boolean If a user can charge longer than requested in the booking. | ||||||||||||||
| late_stop_time | number Number of minutes late stop is allowed/possible. | ||||||||||||||
| overlapping_bookings_allowed | boolean Is it possible to connect the same RFID Token to multiple bookings. | ||||||||||||||
| min_booking_duration | number Minimum booking duration in minutes. | ||||||||||||||
| max_booking_duration | number Maximum booking duration in minutes. | ||||||||||||||
| booking_terms | string <uri> The CPO's URL to the booking terms. |
{- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}| start_date_time required | string <date-time> Start time of this timeslot. |
| end_date_time required | string <date-time> End time of this timeslot. |
| min_power | number Minimum Power guaranteed during this timeslot, in Watts (W). |
| max_power | number Maximum power available during this timeslot, in Watts (W). |
| green_energy_support | boolean Specifies whether green energy is available during this timeslot. |
{- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}| id required | string <= 36 characters ID of the calendar object. |
| begin_from required | string <date-time> Start time of a calendar. |
| end_before required | string <date-time> End time of a calendar. |
| timeslot_increment | integer The minimum allowed booking increment within available timeslot in minutes. |
required | Array of objects (Timeslot) non-empty List of available timeslots. |
| last_updated required | string <date-time> Timestamp for the last calendar change has been made. |
{- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}| country_code required | string = 2 characters ISO-3166 alpha-2 country code of the CPO that 'owns' this BookingLocation. |
| party_id required | string = 3 characters ID of the CPO that 'owns' this BookingLocation (following the ISO-15118 standard). |
| id required | string <= 36 characters The unique id that identifies the BookingLocation in the CPO platform. |
| location_id required | string <= 36 characters Location.id of the Location object of this CPO, on which the reservation can be made. |
object (BookingOption) Specification that can be booked by drivers that want to charge at this Location. | |
object (Policy) The number of charging stations that are bookable at this location and if this is required. | |
| tariff_ids | Array of strings[ items <= 36 characters ] A list of Tariff id's. |
object (BookingTerms) Terms specified for if you book on this location. | |
Array of objects (Calendar) The list of calendars to display the availability on this location. | |
| last_updated required | string <date-time> Timestamp for the last BookingLocation change has been made. |
{- "country_code": "st",
- "party_id": "str",
- "id": "string",
- "location_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "policy": {
- "reservation_required": true,
- "ad_hoc": 0
}, - "tariff_ids": [
- "string"
], - "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "calendars": [
- {
- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}object (BookingOption) Specification of what can be booked at a location, describing EVSE, connector, and parking characteristics. | |
object (Policy) Booking policy for a location. | |
| tariff_ids | Array of strings[ items <= 36 characters ] |
object (BookingTerms) Terms and conditions for the booking. | |
Array of objects (Calendar) | |
| last_updated required | string <date-time> |
{- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "policy": {
- "reservation_required": true,
- "ad_hoc": 0
}, - "tariff_ids": [
- "string"
], - "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "calendars": [
- {
- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}| begin_from | string <date-time> |
| end_before | string <date-time> |
| timeslot_increment | integer |
Array of objects (Timeslot) | |
| last_updated required | string <date-time> |
{- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}| Enum | Description |
|---|---|
| AD_HOC_USER | One time use Token ID generated by a server (or App.) The eMSP uses this to bind a Session to a customer, probably an app user. |
| APP_USER | Token ID generated by a server (or App.) to identify a user of an App. The same user uses the same Token for every Session. |
| EMAID | An EMAID. EMAIDs are used as Tokens when the Charging Station and the vehicle are using ISO 15118 for communication. |
| OTHER | Other type of token |
| RFID | RFID Token |
The type of token.
"AD_HOC_USER"| country_code required | string = 2 characters ISO-3166 alpha-2 country code of the MSP that 'owns' this Token. | ||||||||||||
| party_id required | string = 3 characters ID of the eMSP that 'owns' this Token (following the ISO-15118 standard). | ||||||||||||
| uid required | string <= 36 characters Unique ID by which this Token can be identified. This is the field used by the CPO's system (RFID reader on the Charge Point) to identify this token. | ||||||||||||
| type required | string <open-enum> (TokenType)
Type of the token. | ||||||||||||
| contract_id required | string <= 36 characters Uniquely identifies the EV driver contract token within the eMSP's platform. |
{- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}| Enum | Description |
|---|---|
| PENDING | Booking request pending processing by the CPO. |
| RESERVED | Booking request accepted by the CPO. |
| CANCELED | Booking canceled. |
| FAILED | Request for booking failed (error). |
| NO_SHOW | Booking was not fulfilled because no one showed up, within start time found in the booking terms. |
| FULFILLED | The Booking is fulfilled, fulfilled means that the session is started with the communicated token before the expiry moment has passed. |
| REJECTED | Booking request is rejected after processing by the CPO (e.g., requested time slot unavailable). |
| UNKNOWN | Any other status / unknown status. |
Status of the reservation/booking.
"PENDING"| Enum | Description |
|---|---|
| POWER_OUTAGE | No power available at the site, set by the CPO. |
| BROKEN_CHARGER | The charger is broken and charging is not possible, set by the CPO. |
| FULL | The chargers are full, because someone isn't leaving, set by the CPO. |
| BLOCKED | The reserved charger isn't physically reachable. |
| TRAFFIC | The vehicle can't come in time because of traffic, set by the MSP. |
| BROKEN_VEHICLE | The vehicle broke down and can't make the reservation, set by the MSP. |
| NO_CANCELED | The driver didn't communicate a reason for canceling, set by the MSP. |
| UNKNOWN | Any other status / unknown status. |
Reason for cancellation.
"POWER_OUTAGE"| Enum | Description |
|---|---|
| CPO | Charge Point Operator Role. |
| EMSP | eMobility Service Provider Role. |
| NAP | National Access Point Role (national Database with all Location information of a country). |
| NSP | Navigation Service Provider Role, role like an eMSP (probably only interested in Location information). |
| OTHER | Other role. |
| SCSP | Smart Charging Service Provider Role. |
The role of a party in the OCPI ecosystem.
"CPO"| cancellation_reason required | string <enum> (CanceledReason)
The reason why the booking is canceled. | ||||||||||||||||||
| who_canceled required | string <enum> (Role)
Who canceled the booking. |
{- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}| method required | string <enum> (AccessMethod)
If the location is not freely accessible, how is it accessible with the AccessMethod enum. | ||||||||||||||
| value | string The value for the location access method, e.g. for a license plate "ABC12D" or for an access code "1224". |
{- "method": "OPEN",
- "value": "string"
}| Enum | Description |
|---|---|
| PENDING | Booking request pending processing by the CPO. |
| ACCEPTED | Booking request accepted by the CPO. |
| DECLINED | Booking request declined by the CPO. |
| FAILED | Request for booking failed (error). |
Status of a booking request.
"PENDING"| start_date_time required | string <date-time> Start time of this period. |
| end_date_time required | string <date-time> End time of this period. |
{- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}| country_code required | string = 2 characters ISO-3166 alpha-2 country code of the MSP that requests the booking. |
| party_id required | string = 3 characters ID of the MSP that requests this booking (following the ISO-15118 standard). |
| request_id required | string <= 36 characters Request ID determined by the requesting party. The same request ID SHALL be used for all edits on booking. |
object (BookingOption) Selected specification to charge at this Location. | |
| location_id required | string <= 36 characters Location.id of the Location object of this CPO, on which the reservation can be made. |
| booking_location_id required | string <= 36 characters The unique id that identifies the BookingLocation in the CPO platform. |
Array of objects (BookingToken) Token(s) that can be used to utilise the booking. | |
Array of objects (AccessInformation) Information needed to access the location. | |
required | object (Period) The period for this booking. |
| authorization_reference required | string <= 36 characters Authorization reference for the relevant Session and CDR. |
| power_required | integer The power requested for the reservation in kW. If it isn't the maximum available the CPO can relocate the extra to another session. |
object (Cancellation) To set when requesting to cancel the booking. |
{- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_location_id": "string",
- "tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}, - "authorization_reference": "string",
- "power_required": 0,
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}
}| request_status required | string <enum> (ReservationRequestStatus)
The current state of the booking request. | ||||||||||
required | object (BookingRequest) The booking request that was received. | ||||||||||
| request_received required | string <date-time> Timestamp for when the request was received. |
{- "request_status": "PENDING",
- "booking_request": {
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_location_id": "string",
- "tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}, - "authorization_reference": "string",
- "power_required": 0,
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}
}, - "request_received": "2019-08-24T14:15:22Z"
}| id required | string <= 36 characters ID for the CPO side. | ||||||||||||||||||
| country_code required | string = 2 characters ISO-3166 alpha-2 country code of the CPO that 'owns' this Booking. | ||||||||||||||||||
| party_id required | string = 3 characters ID of the CPO that 'owns' this Booking (following the ISO-15118 standard). | ||||||||||||||||||
| request_id required | string <= 36 characters Request ID determined by the requesting party. The same request ID SHALL be used for all edits on booking. | ||||||||||||||||||
object (BookingOption) Selected specification to charge at this Location. | |||||||||||||||||||
| location_id required | string <= 36 characters Location.id of the Location object of this CPO, on which the reservation can be made. | ||||||||||||||||||
Array of objects (BookingToken) Token(s) that can be used to utilise the booking. | |||||||||||||||||||
| tariff_ids | Array of strings[ items <= 36 characters ] A list of Tariff id's relevant for this booking. | ||||||||||||||||||
required | object (Timeslot) The timeslot for this booking. | ||||||||||||||||||
| reservation_status required | string <enum> (ReservationStatus)
The current state of the reservation. | ||||||||||||||||||
object (Cancellation) Is the booking canceled, why and by whom. | |||||||||||||||||||
Array of objects (AccessInformation) Information needed to access the location. | |||||||||||||||||||
| authorization_reference required | string <= 36 characters Authorization reference for the relevant Session and CDR. | ||||||||||||||||||
required | object (BookingTerms) The accepted booking terms. | ||||||||||||||||||
required | Array of objects (BookingRequestStatus) non-empty All the requests made for this booking. | ||||||||||||||||||
| last_updated required | string <date-time> Timestamp for the last booking change has been made. |
{- "id": "string",
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "tariff_ids": [
- "string"
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}, - "reservation_status": "PENDING",
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}, - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "authorization_reference": "string",
- "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "booking_requests": [
- {
- "request_status": "PENDING",
- "booking_request": {
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_location_id": "string",
- "tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}, - "authorization_reference": "string",
- "power_required": 0,
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}
}, - "request_received": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}object (BookingOption) Specification of what can be booked at a location, describing EVSE, connector, and parking characteristics. | |||||||||||||||||||
| location_id | string <= 36 characters | ||||||||||||||||||
Array of objects (BookingToken) | |||||||||||||||||||
| tariff_ids | Array of strings[ items <= 36 characters ] | ||||||||||||||||||
object (Timeslot) A time period with start and end, optionally with power and energy details. | |||||||||||||||||||
| reservation_status | string <enum> (ReservationStatus)
Status of the reservation/booking. | ||||||||||||||||||
object (Cancellation) Cancellation details. | |||||||||||||||||||
Array of objects (AccessInformation) | |||||||||||||||||||
| authorization_reference | string <= 36 characters | ||||||||||||||||||
object (BookingTerms) Terms and conditions for the booking. | |||||||||||||||||||
Array of objects (BookingRequestStatus) | |||||||||||||||||||
| last_updated required | string <date-time> |
{- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "tariff_ids": [
- "string"
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}, - "reservation_status": "PENDING",
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}, - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "authorization_reference": "string",
- "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "booking_requests": [
- {
- "request_status": "PENDING",
- "booking_request": {
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_location_id": "string",
- "tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}, - "authorization_reference": "string",
- "power_required": 0,
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}
}, - "request_received": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}If the CPO wants to check the status of a BookingLocation object in the eMSP system, it might GET the object from the eMSP for validation purposes.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_location_id required | string <= 36 characters BookingLocation.id of the BookingLocation 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. |
{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "country_code": "st",
- "party_id": "str",
- "id": "string",
- "location_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "policy": {
- "reservation_required": true,
- "ad_hoc": 0
}, - "tariff_ids": [
- "string"
], - "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "calendars": [
- {
- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
}New or updated BookingLocation objects are pushed from the CPO to the eMSP. PUT can be used to send new objects or to replace existing ones.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_location_id required | string <= 36 characters BookingLocation.id of the BookingLocation 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. |
New or updated BookingLocation object.
| country_code required | string = 2 characters ISO-3166 alpha-2 country code of the CPO that 'owns' this BookingLocation. |
| party_id required | string = 3 characters ID of the CPO that 'owns' this BookingLocation (following the ISO-15118 standard). |
| id required | string <= 36 characters The unique id that identifies the BookingLocation in the CPO platform. |
| location_id required | string <= 36 characters Location.id of the Location object of this CPO, on which the reservation can be made. |
object (BookingOption) Specification that can be booked by drivers that want to charge at this Location. | |
object (Policy) The number of charging stations that are bookable at this location and if this is required. | |
| tariff_ids | Array of strings[ items <= 36 characters ] A list of Tariff id's. |
object (BookingTerms) Terms specified for if you book on this location. | |
Array of objects (Calendar) The list of calendars to display the availability on this location. | |
| last_updated required | string <date-time> Timestamp for the last BookingLocation change has been made. |
{- "country_code": "st",
- "party_id": "str",
- "id": "string",
- "location_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "policy": {
- "reservation_required": true,
- "ad_hoc": 0
}, - "tariff_ids": [
- "string"
], - "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "calendars": [
- {
- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}Same as the PUT method, but only the fields/objects that have to be updated have to be present. Any request to the PATCH method SHALL contain the last_updated field.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_location_id required | string <= 36 characters BookingLocation.id of the BookingLocation 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. |
Partial BookingLocation object with only the fields to update.
object (BookingOption) Specification of what can be booked at a location, describing EVSE, connector, and parking characteristics. | |
object (Policy) Booking policy for a location. | |
| tariff_ids | Array of strings[ items <= 36 characters ] |
object (BookingTerms) Terms and conditions for the booking. | |
Array of objects (Calendar) | |
| last_updated required | string <date-time> |
{- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "policy": {
- "reservation_required": true,
- "ad_hoc": 0
}, - "tariff_ids": [
- "string"
], - "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "calendars": [
- {
- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}Retrieve a Calendar as it is stored in the eMSP's system.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_location_id required | string <= 36 characters BookingLocation.id of the BookingLocation object. |
| calendar_id required | string <= 36 characters Calendar.id of the Calendar 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. |
{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
}New or updated Calendar objects are pushed from the CPO to the eMSP.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_location_id required | string <= 36 characters BookingLocation.id of the BookingLocation object. |
| calendar_id required | string <= 36 characters Calendar.id of the Calendar 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. |
New or updated Calendar object.
| id required | string <= 36 characters ID of the calendar object. |
| begin_from required | string <date-time> Start time of a calendar. |
| end_before required | string <date-time> End time of a calendar. |
| timeslot_increment | integer The minimum allowed booking increment within available timeslot in minutes. |
required | Array of objects (Timeslot) non-empty List of available timeslots. |
| last_updated required | string <date-time> Timestamp for the last calendar change has been made. |
{- "id": "string",
- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}Same as the PUT method, but only the fields/objects that have to be updated have to be present. Any request to the PATCH method SHALL contain the last_updated field.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_location_id required | string <= 36 characters BookingLocation.id of the BookingLocation object. |
| calendar_id required | string <= 36 characters Calendar.id of the Calendar 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. |
Partial Calendar object with only the fields to update.
| begin_from | string <date-time> |
| end_before | string <date-time> |
| timeslot_increment | integer |
Array of objects (Timeslot) | |
| last_updated required | string <date-time> |
{- "begin_from": "2019-08-24T14:15:22Z",
- "end_before": "2019-08-24T14:15:22Z",
- "timeslot_increment": 0,
- "available_timeslots": [
- {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}
], - "last_updated": "2019-08-24T14:15:22Z"
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}Retrieve a Booking as it is stored in the eMSP's system.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_id required | string <= 36 characters Booking.id of the Booking object to retrieve. |
| 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. |
{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "id": "string",
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "tariff_ids": [
- "string"
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}, - "reservation_status": "PENDING",
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}, - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "authorization_reference": "string",
- "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "booking_requests": [
- {
- "request_status": "PENDING",
- "booking_request": {
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_location_id": "string",
- "tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}, - "authorization_reference": "string",
- "power_required": 0,
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}
}, - "request_received": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}
}New or updated Booking objects are pushed from the CPO to the eMSP.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_id required | string <= 36 characters Booking.id of the Booking object to retrieve. |
| 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. |
New or updated Booking object.
| id required | string <= 36 characters ID for the CPO side. | ||||||||||||||||||
| country_code required | string = 2 characters ISO-3166 alpha-2 country code of the CPO that 'owns' this Booking. | ||||||||||||||||||
| party_id required | string = 3 characters ID of the CPO that 'owns' this Booking (following the ISO-15118 standard). | ||||||||||||||||||
| request_id required | string <= 36 characters Request ID determined by the requesting party. The same request ID SHALL be used for all edits on booking. | ||||||||||||||||||
object (BookingOption) Selected specification to charge at this Location. | |||||||||||||||||||
| location_id required | string <= 36 characters Location.id of the Location object of this CPO, on which the reservation can be made. | ||||||||||||||||||
Array of objects (BookingToken) Token(s) that can be used to utilise the booking. | |||||||||||||||||||
| tariff_ids | Array of strings[ items <= 36 characters ] A list of Tariff id's relevant for this booking. | ||||||||||||||||||
required | object (Timeslot) The timeslot for this booking. | ||||||||||||||||||
| reservation_status required | string <enum> (ReservationStatus)
The current state of the reservation. | ||||||||||||||||||
object (Cancellation) Is the booking canceled, why and by whom. | |||||||||||||||||||
Array of objects (AccessInformation) Information needed to access the location. | |||||||||||||||||||
| authorization_reference required | string <= 36 characters Authorization reference for the relevant Session and CDR. | ||||||||||||||||||
required | object (BookingTerms) The accepted booking terms. | ||||||||||||||||||
required | Array of objects (BookingRequestStatus) non-empty All the requests made for this booking. | ||||||||||||||||||
| last_updated required | string <date-time> Timestamp for the last booking change has been made. |
{- "id": "string",
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "tariff_ids": [
- "string"
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}, - "reservation_status": "PENDING",
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}, - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "authorization_reference": "string",
- "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "booking_requests": [
- {
- "request_status": "PENDING",
- "booking_request": {
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_location_id": "string",
- "tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}, - "authorization_reference": "string",
- "power_required": 0,
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}
}, - "request_received": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}Same as the PUT method, but only the fields/objects that have to be updated have to be present. Any request to the PATCH method SHALL contain the last_updated field.
| country_code required | string = 2 characters Country code of the CPO that 'owns' this object (ISO-3166 alpha-2). |
| party_id required | string = 3 characters Party ID (Provider ID) of the CPO that 'owns' this object (following the ISO-15118 standard). |
| booking_id required | string <= 36 characters Booking.id of the Booking object to retrieve. |
| 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. |
Partial Booking object with only the fields to update.
object (BookingOption) Specification of what can be booked at a location, describing EVSE, connector, and parking characteristics. | |||||||||||||||||||
| location_id | string <= 36 characters | ||||||||||||||||||
Array of objects (BookingToken) | |||||||||||||||||||
| tariff_ids | Array of strings[ items <= 36 characters ] | ||||||||||||||||||
object (Timeslot) A time period with start and end, optionally with power and energy details. | |||||||||||||||||||
| reservation_status | string <enum> (ReservationStatus)
Status of the reservation/booking. | ||||||||||||||||||
object (Cancellation) Cancellation details. | |||||||||||||||||||
Array of objects (AccessInformation) | |||||||||||||||||||
| authorization_reference | string <= 36 characters | ||||||||||||||||||
object (BookingTerms) Terms and conditions for the booking. | |||||||||||||||||||
Array of objects (BookingRequestStatus) | |||||||||||||||||||
| last_updated required | string <date-time> |
{- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "tariff_ids": [
- "string"
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z",
- "min_power": 0,
- "max_power": 0,
- "green_energy_support": true
}, - "reservation_status": "PENDING",
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}, - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "authorization_reference": "string",
- "booking_terms": {
- "rfid_auth_required": true,
- "token_groups_supported": true,
- "remote_auth_supported": true,
- "supported_access_methods": [
- "OPEN"
], - "change_until_minutes": 0,
- "cancel_until_minutes": 0,
- "change_not_allowed": true,
- "early_start_allowed": true,
- "early_start_time": 0,
- "noshow_timeout": 0,
- "noshow_fee": true,
- "late_stop_allowed": true,
- "late_stop_time": 0,
- "overlapping_bookings_allowed": true,
- "min_booking_duration": 0,
- "max_booking_duration": 0,
}, - "booking_requests": [
- {
- "request_status": "PENDING",
- "booking_request": {
- "country_code": "st",
- "party_id": "str",
- "request_id": "string",
- "booking_option": {
- "evse_uid": "string",
- "connector_id": "string",
- "parking_id": "string",
- "evse_position": [
- "LEFT"
], - "vehicle_types": [
- "MOTORCYCLE"
], - "connector_format": [
- "SOCKET"
], - "connector_types": [
- "CHADEMO"
], - "power_types": [
- "AC_1_PHASE"
], - "max_vehicle_weight": 0,
- "max_vehicle_height": 0,
- "max_vehicle_length": 0,
- "max_vehicle_width": 0,
- "min_parking_space_length": 0,
- "min_parking_space_width": 0,
- "dangerous_goods_allowed": true,
- "drive_through": true,
- "refrigeration_outlet": true
}, - "location_id": "string",
- "booking_location_id": "string",
- "tokens": [
- {
- "country_code": "st",
- "party_id": "str",
- "uid": "string",
- "type": "AD_HOC_USER",
- "contract_id": "string"
}
], - "access_information": [
- {
- "method": "OPEN",
- "value": "string"
}
], - "period": {
- "start_date_time": "2019-08-24T14:15:22Z",
- "end_date_time": "2019-08-24T14:15:22Z"
}, - "authorization_reference": "string",
- "power_required": 0,
- "canceled": {
- "cancellation_reason": "POWER_OUTAGE",
- "who_canceled": "CPO"
}
}, - "request_received": "2019-08-24T14:15:22Z"
}
], - "last_updated": "2019-08-24T14:15:22Z"
}{- "status_code": 1000,
- "status_message": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": null
}