Skip to content
Documentation Menu

Start Transaction

Source: OCPP 1.6 Specification — Section 4.8 (Operation), Sections 6.45 / 6.46 (Messages)

Overview

The Charge Point SHALL send a StartTransaction.req PDU to the Central System to inform about a transaction that has been started. If this transaction ends a reservation (see Reserve Now operation), then the StartTransaction.req MUST contain the reservationId.

Upon receipt of a StartTransaction.req PDU, the Central System SHOULD respond with a StartTransaction.conf PDU. This response PDU MUST include a transaction id and an authorization status value.

The Central System MUST verify validity of the identifier in the StartTransaction.req PDU, because the identifier might have been authorized locally by the Charge Point using outdated information. The identifier, for instance, may have been blocked since it was added to the Charge Point's Authorization Cache.

If the Charge Point has implemented an Authorization Cache, then upon receipt of a StartTransaction.conf PDU the Charge Point SHALL update the cache entry, if the idTag is not in the Local Authorization List, with the IdTagInfo value from the response as described under Authorization Cache.

It is likely that the Central System applies sanity checks to the data contained in a StartTransaction.req it received. The outcome of such sanity checks SHOULD NOT ever cause the Central System to not respond with a StartTransaction.conf. Failing to respond with a StartTransaction.conf will only cause the Charge Point to try the same message again as specified in Error responses to transaction-related messages.

Sequence Diagram

Figure 19. Sequence Diagram: Start Transaction

Charge Point  ──── StartTransaction.req ────▶  Central System
                   (connectorId, idTag, meterStart, reservationId?, timestamp)
Charge Point  ◀─── StartTransaction.conf ────  Central System
                   (idTagInfo, transactionId)

Initiator

Charge Point → Central System

Fields

Field NameField TypeCard.Description
connectorIdinteger (> 0)1..1Required. This identifies which connector of the Charge Point is used.
idTagIdToken1..1Required. This contains the identifier for which a transaction has to be started.
meterStartinteger1..1Required. This contains the meter value in Wh for the connector at start of the transaction.
reservationIdinteger0..1Optional. This contains the id of the reservation that terminates as a result of this transaction.
timestampdateTime1..1Required. This contains the date and time on which the transaction is started.

Examples

{
  "connectorId": 1,
  "idTag": "044943121F1A80",
  "meterStart": 12500,
  "reservationId": 42,
  "timestamp": "2026-04-27T12:34:56Z"
}

Schema

Source: schemas/StartTransaction.json, schemas/StartTransactionResponse.json (OCPP 1.6, JSON Schema draft-04)

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