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
| Field | Type | Required | Description |
|---|---|---|---|
connectorId | integer | Required | The connector in use. Must be greater than 0 — a transaction cannot run on connector 0. |
idTag | IdToken | Required | The identifier that authorized the session. |
meterStart | integer | Required | Meter reading in Wh at the start of the session. |
timestamp | dateTime | Required | When the session started. |
reservationId | integer | Optional | The reservation this session fulfils, if any. |
[2, "19223201", "StartTransaction", {
"connectorId": 1,
"idTag": "04A1B2C3D4E580",
"meterStart": 1204500,
"timestamp": "2026-09-09T10:22:00.000Z"
}]Response
| Field | Type | Required | Description |
|---|---|---|---|
transactionId | integer | Required | Identifies this transaction in MeterValues and StopTransaction. |
idTagInfo | IdTagInfo | Required | The authorization decision, re-evaluated at session start. |
[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.