Skip to content
Documentation Menu

Transaction Event

Source: OCPP 2.0.1 Part 2 — Specification (Edition 2, 2022-12-15) — Section 1.60 (Messages); Use Cases E01–E15 (Functional Block E. Transactions)

Overview

TransactionEventRequest is the single message used in OCPP 2.0.1 to report the entire lifecycle of a transaction — replacing OCPP 1.6's StartTransaction, StopTransaction, and transaction-related MeterValues / StatusNotification.

For each transaction, the Charging Station sends a sequence of TransactionEvent messages with eventType:

  • Started — exactly once, at the start of the transaction.
  • Updated — zero or more times during the transaction (meter samples, state changes, charging session events, etc.).
  • Ended — exactly once, at the end.

The triggerReason indicates why the message is being sent (Authorized, CablePluggedIn, ChargingStateChanged, EVCommunicationLost, EnergyLimitReached, MeterValuePeriodic, RemoteStart, etc.). seqNo lets the CSMS detect missing messages.

The CSMS responds with TransactionEventResponse, which may include idTokenInfo (for authorization decisions on Started events that carried an idToken), running/total cost, charging priority, and an updated personal display message.

Sequence Diagram

Charging Station  ──── TransactionEventRequest(Started) ────▶  CSMS
                       (eventType, timestamp, triggerReason, seqNo,
                        transactionInfo, idToken?, evse?, meterValue[]?)
Charging Station  ◀─── TransactionEventResponse ────  CSMS
                       (idTokenInfo?, totalCost?, chargingPriority?, updatedPersonalMessage?)

(zero or more TransactionEventRequest(Updated) ↔ Response)

Charging Station  ──── TransactionEventRequest(Ended) ────▶  CSMS
Charging Station  ◀─── TransactionEventResponse ────  CSMS

Initiator

Charging Station → CSMS

Fields

Field NameField TypeCard.Description
eventTypeTransactionEventEnumType1..1Required. Started / Updated / Ended.
timestampdateTime1..1Required. When the event occurred.
triggerReasonTriggerReasonEnumType1..1Required. Reason the CS is sending this message.
seqNointeger1..1Required. Incremental sequence number per transaction.
offlineboolean0..1Optional. Indicates the event happened while CS was offline. Default false.
numberOfPhasesUsedinteger0..1Optional. Phases used, if reportable.
cableMaxCurrentinteger0..1Optional. Maximum current of the connected cable in A.
reservationIdinteger0..1Optional. Id of the reservation that terminates as a result of this transaction.
transactionInfoTransactionType1..1Required. Transaction-specific info (transactionId, charging state, time spent charging, stoppedReason, remoteStartId).
idTokenIdTokenType0..1Optional. The identifier (presented for start or stop). Required when an authorization happens or ends.
evseEVSEType0..1Optional. The EVSE/connector used.
meterValueMeterValueType0..*Optional. Relevant meter values for this event.

TransactionEventEnumType values

Started, Updated, Ended.

TriggerReasonEnumType values (selection)

Authorized, CablePluggedIn, ChargingRateChanged, ChargingStateChanged, Deauthorized, EnergyLimitReached, EVCommunicationLost, EVConnectTimeout, MeterValueClock, MeterValuePeriodic, TimeLimitReached, Trigger, UnlockCommand, StopAuthorized, EVDeparted, EVDetected, RemoteStop, RemoteStart, AbnormalCondition, SignedDataReceived, ResetCommand.

Examples

{
  "eventType": "Started",
  "timestamp": "2026-04-27T12:34:56Z",
  "triggerReason": "Authorized",
  "seqNo": 0,
  "transactionInfo": {
    "transactionId": "tx-1234",
    "chargingState": "Charging",
    "remoteStartId": 7
  },
  "idToken": { "idToken": "044943121F1A80", "type": "ISO14443" },
  "evse": { "id": 1, "connectorId": 1 },
  "meterValue": [
    {
      "timestamp": "2026-04-27T12:34:56Z",
      "sampledValue": [
        { "value": 12500.0, "context": "Transaction.Begin", "measurand": "Energy.Active.Import.Register", "unitOfMeasure": { "unit": "Wh" } }
      ]
    }
  ]
}

Schema

Source: schemas/TransactionEventRequest.json, schemas/TransactionEventResponse.json (OCPP 2.0.1 FINAL)

Request schema (JSON Schema)
Response schema (JSON Schema)