OCPI 2.3.0 - Bookings Module - Sender Interface (2.3.0)

Download OpenAPI specification:

The Sender Interface is implemented by the CPO. It allows the eMSP to fetch BookingLocation and Calendar data, and to retrieve the list of Bookings. The eMSP can also create new Bookings via the POST endpoint.

Schemas

OCPIResponse

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
}

EVSEPosition

string <enum> (EVSEPosition)
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"

VehicleType

string <open-enum> (VehicleType)
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"

ConnectorFormat

string <enum> (ConnectorFormat)
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"

ConnectorType

string <open-enum> (ConnectorType)
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"

PowerType

string <enum> (PowerType)
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"

BookingOption

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 > ]
Items 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 the EVSE relative to the parking space.

vehicle_types
Array of strings <open-enum> (VehicleType) [ items <open-enum > ]
Items 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.

The vehicle types that the parking is designed to accommodate.

connector_format
Array of strings <enum> (ConnectorFormat) [ items <enum > ]
Items 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 (socket/cable) of the installed connector.

connector_types
Array of strings <open-enum> (ConnectorType) [ items <open-enum > ]
Items 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 type of the installed connector.

power_types
Array of strings <enum> (PowerType) [ items <enum > ]
Items 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 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": [
    ],
  • "vehicle_types": [
    ],
  • "connector_format": [
    ],
  • "connector_types": [
    ],
  • "power_types": [
    ],
  • "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
required
boolean

Is a reservation required.

ad_hoc
number

Number of ad_hoc charging options available.

{
  • "reservation_required": true,
  • "ad_hoc": 0
}

AccessMethod

string <enum> (AccessMethod)
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"

BookingTerms

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 > ]
Items 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.

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": [
    ],
  • "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_terms": "http://example.com"
}

Timeslot

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
}

Calendar

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": [
    ],
  • "last_updated": "2019-08-24T14:15:22Z"
}

BookingLocation

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": {
    },
  • "policy": {
    },
  • "tariff_ids": [
    ],
  • "booking_terms": {
    },
  • "calendars": [
    ],
  • "last_updated": "2019-08-24T14:15:22Z"
}

TokenType

string <open-enum> (TokenType)
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"

BookingToken

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)
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

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"
}

ReservationStatus

string <enum> (ReservationStatus)
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"

CanceledReason

string <enum> (CanceledReason)
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"

Role

string <enum> (Role)
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

cancellation_reason
required
string <enum> (CanceledReason)
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.

The reason why the booking is canceled.

who_canceled
required
string <enum> (Role)
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.

Who canceled the booking.

{
  • "cancellation_reason": "POWER_OUTAGE",
  • "who_canceled": "CPO"
}

AccessInformation

method
required
string <enum> (AccessMethod)
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.

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"
}

ReservationRequestStatus

string <enum> (ReservationRequestStatus)
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"

Period

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"
}

BookingRequest

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": {
    },
  • "location_id": "string",
  • "booking_location_id": "string",
  • "tokens": [
    ],
  • "access_information": [
    ],
  • "period": {
    },
  • "authorization_reference": "string",
  • "power_required": 0,
  • "canceled": {
    }
}

BookingRequestStatus

request_status
required
string <enum> (ReservationRequestStatus)
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).

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": {
    },
  • "request_received": "2019-08-24T14:15:22Z"
}

Booking

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)
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.

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": {
    },
  • "location_id": "string",
  • "booking_tokens": [
    ],
  • "tariff_ids": [
    ],
  • "period": {
    },
  • "reservation_status": "PENDING",
  • "canceled": {
    },
  • "access_information": [
    ],
  • "authorization_reference": "string",
  • "booking_terms": {
    },
  • "booking_requests": [
    ],
  • "last_updated": "2019-08-24T14:15:22Z"
}

Bookings

Get list of BookingLocations

Fetch a paginated list of BookingLocation objects. If date_from and/or date_to are provided, only BookingLocations with last_updated between the given date_from (including) and date_to (excluding) will be returned.

Authorizations:
ocpiAuthorization
query Parameters
date_from
string <date-time>

Only return objects that have last_updated after or equal to this Date/Time (inclusive).

date_to
string <date-time>

Only return objects that have last_updated up to this Date/Time, but not including (exclusive).

offset
integer >= 0
Default: 0

The offset of the first object returned. Default is 0.

limit
integer >= 1

Maximum number of objects to GET.

timeslot_from
string <date-time>

Only return BookingLocations with timeslots starting after or equal to this DateTime (inclusive).

timeslot_to
string <date-time>

Only return BookingLocations with timeslots ending before this DateTime (exclusive).

header Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "status_code": 1000,
  • "status_message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": [
    ]
}

Get a BookingLocation

Retrieve a specific BookingLocation object by its booking_location_id.

Authorizations:
ocpiAuthorization
path Parameters
booking_location_id
required
string <= 36 characters

BookingLocation.id of the BookingLocation object.

header Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "status_code": 1000,
  • "status_message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Get a Calendar

Retrieve a specific Calendar object by its booking_location_id and calendar_id.

Authorizations:
ocpiAuthorization
path Parameters
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.

header Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "status_code": 1000,
  • "status_message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Get list of Bookings

Fetch a paginated list of Booking objects. If date_from and/or date_to are provided, only Bookings with last_updated between the given date_from (including) and date_to (excluding) will be returned.

Authorizations:
ocpiAuthorization
query Parameters
date_from
string <date-time>

Only return objects that have last_updated after or equal to this Date/Time (inclusive).

date_to
string <date-time>

Only return objects that have last_updated up to this Date/Time, but not including (exclusive).

offset
integer >= 0
Default: 0

The offset of the first object returned. Default is 0.

limit
integer >= 1

Maximum number of objects to GET.

header Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "status_code": 1000,
  • "status_message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": [
    ]
}

Create a new Booking

Create a new Booking. The request body is a BookingRequest. The response contains the created Booking object.

Authorizations:
ocpiAuthorization
header Parameters
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.

Request Body schema: application/json
required

BookingRequest object to create a new Booking.

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.

Responses

Request samples

Content type
application/json
{
  • "country_code": "st",
  • "party_id": "str",
  • "request_id": "string",
  • "booking_option": {
    },
  • "location_id": "string",
  • "booking_location_id": "string",
  • "tokens": [
    ],
  • "access_information": [
    ],
  • "period": {
    },
  • "authorization_reference": "string",
  • "power_required": 0,
  • "canceled": {
    }
}

Response samples

Content type
application/json
{
  • "status_code": 1000,
  • "status_message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}