RequestStartTransaction

Asks the station to start a session. The 2.0.1 name for RemoteStartTransaction.

Version
OCPP 2.0.1
Direction
CSMS → Charge Point
Functional block
Remote Control

Renamed from 1.6's RemoteStartTransaction, and it now carries a remoteStartId the CSMS chooses. That id comes back in the resulting TransactionEvent, which is how you correlate a start request with the session it produced — something 1.6 left you to guess at.

As in 1.6, Accepted means the station will try, not that charging has begun.

Request

FieldTypeRequiredDescription
idTokenIdTokenTypeRequiredThe token to charge the session against.
remoteStartIdintegerRequiredCorrelation id, returned in transactionInfo.remoteStartId.
evseIdintegerOptionalWhich EVSE. Omit to let the station choose.
groupIdTokenIdTokenTypeOptionalGroup token, where the station needs it to authorize.
chargingProfileChargingProfileTypeOptionalA TxProfile to apply to the resulting session.
json
[2, "19223201", "RequestStartTransaction", {
  "evseId": 1,
  "remoteStartId": 90210,
  "idToken": { "idToken": "04A1B2C3D4E580", "type": "ISO14443" }
}]

Response

FieldTypeRequiredDescription
statusRequestStartStopStatusEnumTypeRequiredWhether the station will attempt the start.
statusInfoStatusInfoTypeOptionalReason code.
transactionIdstringOptionalThe transaction id, when the station can supply it immediately.
json
[3, "19223201", {
  "status": "Accepted",
  "transactionId": "a1b2c3d4-0002"
}]

Values

RequestStartStopStatusEnumType

ValueMeaning
AcceptedThe station will attempt it.
RejectedThe station will not.

Implementation notes

Use `remoteStartId` rather than timing. Matching a start request to a session by guessing which TransactionEvent arrived next is how apps attribute a session to the wrong user on a busy station.

Accepted is still only an acknowledgement. The session exists when a TransactionEvent with eventType: "Started" arrives.