code: public void startTransaction(ChargingStationId chargingStationId, EvseId evseId, IdentifyingToken idTag, FutureEventCallback futureEventCallback,
                                   AddOnIdentity addOnIdentity) {
          ChargingStation chargingStation = this.checkChargingStationExistsAndIsRegisteredAndConfigured(chargingStationId);
  
          if (evseId.getNumberedId() > chargingStation.getNumberOfEvses()) {
              throw new IllegalStateException("Cannot start transaction on a unknown evse.");
          }
  
          // authorize the token, the future contains the call to start the transaction
          authorize(chargingStationId, idTag.getToken(), futureEventCallback, addOnIdentity);
      }
docs: Generates a transaction identifier and starts a transaction by dispatching a StartTransactionCommand.
  
  @param chargingStationId   identifier of the charging station.
  @param evseId              evse identifier on which the transaction is started.
  @param idTag               the identification which started the transaction.
  @param futureEventCallback will be called once the authorize result event occurs.
  @param addOnIdentity       identity of the add on that calls this method.