List Team Transactions
curl --request GET \
--url https://api.plugchoice.com/v3/teams/{team}/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.plugchoice.com/v3/teams/{team}/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.plugchoice.com/v3/teams/{team}/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plugchoice.com/v3/teams/{team}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.plugchoice.com/v3/teams/{team}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.plugchoice.com/v3/teams/{team}/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plugchoice.com/v3/teams/{team}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"status": "<string>",
"charger": {
"uuid": "<string>",
"identity": "<string>",
"reference": "<string>",
"site": {
"uuid": "<string>",
"name": "<string>"
},
"is_mid": true
},
"connector_id": 123,
"id_tag": "<string>",
"started_at": "<string>",
"stopped_at": "<string>",
"meter_start": 123,
"meter_stop": 123,
"meter_stop_estimated": true,
"total_kwh": 123,
"stop_reason": "<string>",
"needs_review": true,
"review_reason": "<string>",
"imported": true,
"source": "<string>"
}
],
"filter_options": {
"statuses": [
{}
]
}
}Transactions
List Team Transactions
GET
/
v3
/
teams
/
{team}
/
transactions
List Team Transactions
curl --request GET \
--url https://api.plugchoice.com/v3/teams/{team}/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.plugchoice.com/v3/teams/{team}/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.plugchoice.com/v3/teams/{team}/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plugchoice.com/v3/teams/{team}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.plugchoice.com/v3/teams/{team}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.plugchoice.com/v3/teams/{team}/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plugchoice.com/v3/teams/{team}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"status": "<string>",
"charger": {
"uuid": "<string>",
"identity": "<string>",
"reference": "<string>",
"site": {
"uuid": "<string>",
"name": "<string>"
},
"is_mid": true
},
"connector_id": 123,
"id_tag": "<string>",
"started_at": "<string>",
"stopped_at": "<string>",
"meter_start": 123,
"meter_stop": 123,
"meter_stop_estimated": true,
"total_kwh": 123,
"stop_reason": "<string>",
"needs_review": true,
"review_reason": "<string>",
"imported": true,
"source": "<string>"
}
],
"filter_options": {
"statuses": [
{}
]
}
}Returns a paginated list of transactions across all chargers the team has sensitive access to. Uses cursor-based pagination (simple pagination) for infinite scroll support.
string
required
The UUID of the team.
string
Filter by transaction status. One of
active or finished.string
Search by transaction ID (numeric), Card UID, or Chargepoint ID.
string
Sort field. One of
started_at, stopped_at, total_kwh, meter_start, or meter_stop. Prefix with - for descending order. Defaults to -started_at.integer
Page number for pagination. 25 results per page.
Response
array
Array of transaction objects.
Show transaction
Show transaction
integer
The transaction ID.
string
The transaction status. One of
active or finished.object
The charger associated with this transaction. May be
null.Show charger
Show charger
string
The UUID of the charger.
string
The Chargepoint ID of the charger.
string
The reference label of the charger. May be
null.object
boolean
Whether the charger model is MID certified. May be
null if unknown.integer
The OCPP connector ID used for this transaction. May be
null.string
The RFID tag or token used to authorize the transaction.
string
ISO 8601 timestamp of when the transaction started.
string
ISO 8601 timestamp of when the transaction stopped.
null for active transactions.integer
The meter reading at the start of the transaction in Wh.
integer
The meter reading at the end of the transaction in Wh.
null for active transactions.boolean
true when no StopTransaction was received and Plugchoice inferred meter_stop, from
the last meter value or from the next transaction’s start reading on the same connector.number
The total energy consumed in kWh, rounded to 2 decimal places.
string
The reason the transaction was stopped (e.g.,
Local, Remote, EVDisconnected). null for active transactions.boolean
Whether the charger reported a meter stop its meter cannot have counted and the transaction is awaiting review.
meter_stop then holds the highest value the connector’s meter supports, not the charger’s reading.string
Why the charger’s meter stop was not booked as reported:
meter_below_start, exceeds_connector_meter, exceeds_physical_max or no_meter_reading. Kept after the review is resolved. null when the reading was booked as reported.boolean
Whether the transaction was imported through the API rather than reported by the charger over OCPP.
string
The system the transaction was imported from, e.g.
Plugchoice app. null for transactions reported by the charger.⌘I