StartTransaction

Tells the CSMS a charging session has begun, and gets back the transactionId used for the rest of it.

Version
OCPP 1.6
Direction
Charge Point → CSMS
Feature profile
Core

StartTransaction opens a charging session. The charge point reports which connector, which token, the meter reading at the start and the time; the CSMS assigns a transactionId that identifies the session in every message that follows.

The meter value is in watt-hours, and it is the charger's lifetime register reading, not a per-session counter starting at zero.

Request

FieldTypeRequiredDescription
connectorIdintegerRequiredThe connector in use. Must be greater than 0 — a transaction cannot run on connector 0.
idTagIdTokenRequiredThe identifier that authorized the session.
meterStartintegerRequiredMeter reading in Wh at the start of the session.
timestampdateTimeRequiredWhen the session started.
reservationIdintegerOptionalThe reservation this session fulfils, if any.
json
[2, "19223201", "StartTransaction", {
  "connectorId": 1,
  "idTag": "04A1B2C3D4E580",
  "meterStart": 1204500,
  "timestamp": "2026-09-09T10:22:00.000Z"
}]

Response

FieldTypeRequiredDescription
transactionIdintegerRequiredIdentifies this transaction in MeterValues and StopTransaction.
idTagInfoIdTagInfoRequiredThe authorization decision, re-evaluated at session start.
json
[3, "19223201", {
  "transactionId": 8814,
  "idTagInfo": { "status": "Accepted" }
}]

Implementation notes

A rejected StartTransaction still gets a transactionId. If idTagInfo.status is anything but Accepted, the charger must stop the session — but the CSMS has already assigned an id, and the charger must use it in the StopTransaction that follows. Implementations that skip the id on rejection break reconciliation.

meterStart is a lifetime register. Energy delivered is meterStop - meterStart, and a charger that resets the register mid-session produces a negative total.

Offline sessions. A charger that starts a transaction while disconnected queues this message and sends it on reconnect, with the original timestamp. The CSMS must accept a start time in the past.