ReserveNow

Reserves a connector for a specific token until an expiry time.

Version
OCPP 1.6
Direction
CSMS → Charge Point
Feature profile
Reservation

ReserveNow also exists in OCPP 2.0.1, with a different payload. See the OCPP 2.0.1 version.

ReserveNow holds a connector for one user. Until the reservation expires or is cancelled, only the reserved token — or its parent token — may start a session there.

The connector moves to status Reserved, and the reservation ends when the session starts, when it expires, or when CancelReservation arrives.

Request

FieldTypeRequiredDescription
connectorIdintegerRequiredConnector to reserve. 0 means any connector on the charge point.
expiryDatedateTimeRequiredWhen the reservation lapses.
idTagIdTokenRequiredThe token the reservation is held for.
reservationIdintegerRequiredIdentifier for this reservation, chosen by the CSMS.
parentIdTagIdTokenOptionalParent token that may also use the reservation.
json
[2, "19223201", "ReserveNow", {
  "connectorId": 1,
  "expiryDate": "2026-09-09T11:30:00.000Z",
  "idTag": "04A1B2C3D4E580",
  "reservationId": 77
}]

Response

FieldTypeRequiredDescription
statusReservationStatusRequiredWhether the reservation was made.
json
[3, "19223201", {
  "status": "Accepted"
}]

Values

ReservationStatus

ValueMeaning
AcceptedThe reservation was made.
FaultedThe connector is faulted and cannot be reserved.
OccupiedThe connector is in use.
RejectedThe charge point does not support reservations, or refused.
UnavailableThe connector is set Inoperative.

Implementation notes

Reusing a `reservationId` replaces the existing reservation rather than creating a second one. The CSMS owns the id space and is responsible for keeping ids unique.

connectorId: 0 reserves any connector, which means the charge point picks when the driver arrives. Not every model supports this.

An expired reservation should return the connector to Available with a StatusNotification. Chargers that leave it Reserved forever strand the socket.