RequestStartTransaction

RemoteControl CSMS->CS OCPP 2.0.1

Sent by the CSMS to remotely start a transaction on a Charging Station. Replaces RemoteStartTransaction from OCPP 1.6J with a richer model including remoteStartId for request tracking.

Quick Reference

Required Fields

idToken IdTokenType

Identifier to use for the transaction (object with idToken + type)

remoteStartId integer

Unique ID for this remote start request, used to correlate with the subsequent TransactionEvent

Optional Fields

evseId integer

EVSE on which to start the transaction. If omitted, the Charging Station can choose

chargingProfile ChargingProfileType

Charging profile to apply to the transaction

groupIdToken IdTokenType

Group identifier token for multi-user scenarios

Example Payload

{
  "remoteStartId": 1,
  "idToken": {
    "idToken": "AABBCCDD",
    "type": "ISO14443"
  },
  "evseId": 1
}

Example Full Frame

[
  2,
  "msg-001",
  "RequestStartTransaction",
  {
    "remoteStartId": 1,
    "idToken": {
      "idToken": "AABBCCDD",
      "type": "ISO14443"
    },
    "evseId": 1
  }
]

Format: [MessageType, MessageId, Action, Payload]

Overview

RequestStartTransaction allows the CSMS to remotely initiate a charging session on a Charging Station. It replaces RemoteStartTransaction from OCPP 1.6J and adds remoteStartId for reliable request correlation.

When to Send

  • When a user starts a session via a mobile app or backend system
  • For scheduled charging sessions
  • To start a session on behalf of a fleet management system

Expected Response

The Charging Station responds with:

  • status: Accepted or Rejected
  • transactionId (optional): If the Charging Station can immediately provide it

After a successful response, watch for a TransactionEvent with triggerReason: "RemoteStart" and transactionInfo.remoteStartId matching the sent remoteStartId.

Key Differences from OCPP 1.6J

OCPP 1.6JOCPP 2.0.1
RemoteStartTransactionRequestStartTransaction
No request IDremoteStartId (required)
idTag (string)idToken (object)
connectorIdevseId

Usage Notes

  • The remoteStartId is essential for correlating this request with the TransactionEvent that follows
  • If evseId is omitted, the Charging Station selects an available EVSE
  • The Charging Station may still reject if the EVSE is occupied or faulted

Best Practices

  1. Always use remoteStartId — Use an incrementing counter or unique integer per request
  2. Track the TransactionEvent — Verify transactionInfo.remoteStartId matches your sent ID
  3. Set a timeout — If no TransactionEvent with matching remoteStartId arrives within a reasonable time, assume the start failed

Testing Tips

  • Test the full flow: send RequestStartTransaction → verify Accepted → verify TransactionEvent with remoteStartId
  • Test rejection when EVSE is already occupied
  • Test with and without evseId specified

Common Errors

TypeConstraintViolation

Cause: idToken sent as a plain string

Solution: idToken is an object with idToken and type fields in OCPP 2.0.1

GenericError

Cause: remoteStartId missing

Solution: remoteStartId is required in OCPP 2.0.1 to track the request against a subsequent TransactionEvent