Admin API skeemid ja näited
See fail määrab Endpointide viites nimetatud korduvkasutatavad JSON-tüübid. ? tähendab sisendis valikulist; | null tähendab, et omadus on väljundis olemas ja võib olla null, kui endpoint ei ütle teisiti. DateTime on RFC 3339 string; päringu kuupäevad-kellaajad peavad sisaldama nihet.
Primitiiv- ja teatmetüübid
PositiveInt = integer > 0
NonnegativeInt = integer >= 0
DateTime = RFC3339 string, for example "2026-08-24T12:30:00Z"
NamedLookup = { id: PositiveInt, name: string }
SiteRef = { id: PositiveInt, name: string|null }
Cost = { currency: string, net: number, tax: number, total: number }
Tundmatuid tulevasi välju tuleks ignoreerida. ID-d on JSON-arvud, välja arvatud läbipaistmatud kursorid ja portaali hallatavad pääsutõendite ID-d. API ei tagasta tooreid RFID UID-sid, laadijate paroole, tööruumi pääsutõendeid, contractId, teenusepakkujate saladusi ega varjamata saladuselaadseid konfiguratsiooniväärtusi.
Päringu tüübiteisendus ja tundmatud omadused
API ei rakenda üht globaalset arvuteisenduse poliitikat:
- Iga ressursitee ID ja arvuline päringuparameeter aktsepteerib kümnendstringi, näiteks
"12", kui see vastab dokumenteeritud täisarvu/vahemiku piirangule. - Tööruumi
countryId; asukohacountryId/timezoneId; laadija asukoha/pistiku ja käskude arvulised väljad; kõik tariifi arvulised väljad ja kõik laadimisprofiili arvulised väljad teisendatakse ka arvulistest JSON-stringidest. - Asukoha laius-/pikkuskraad, laadija
smartMode, kõik võimsushalduse ja aruandeajakava arvud ning kasutaja/RFID/juurdepääsu/piirangute/kohaliku kasutaja sisu ID-d ja väärtused nõuavad JSON-arve ega läbi tüübiteisendust. - Tariifide, laadimisprofiilide, aruandeajakavade ja kasutajate sisuobjektid lükkavad tundmatud omadused veaga
422tagasi. Tööruumi, asukoha, võimsushalduse, muude laadija-/aruandeobjektide ja päringute objektid ignoreerivad tundmatuid omadusi.
Need on transpordikäitumise üksikasjad, mitte soovitus: kliendid peaksid arvulised sisuväljad saatma JSON-arvudena.
Tööruumi ja asukoha tüübid
Workspace = {
id: PositiveInt,
name: string,
email: string|null,
website: string|null,
address: {
line1: string|null, line2: string|null, postalCode: string|null,
city: string|null, state: string|null, countryId: PositiveInt,
countryCode: string, countryName: string
},
createdAt: DateTime,
updatedAt: DateTime
}
Site = {
id: PositiveInt,
name: string,
description: string|null,
address: {
line1: string|null, line2: string|null, postalCode: string|null,
city: string|null, state: string|null, countryId: PositiveInt,
countryCode: string, countryName: string
},
timezone: { id: PositiveInt, name: string },
latitude: number|null,
longitude: number|null,
chargerCount: integer
}
SiteSession = {
id: PositiveInt,
charger: { id: PositiveInt, name: string },
portId: PositiveInt,
connectorId: integer,
active: boolean,
startedAt: DateTime,
stoppedAt: DateTime|null,
durationSeconds: integer|null,
energyWh: number,
costs: Cost[]
}
MetricsWindow = {
from: DateTime, to: DateTime, sessionLimit: integer,
sessionsIncluded: integer, totalsCapped: boolean
}
GET /sites/:siteId tagastab { site, recentSessions, totals, metricsWindow }. Selle site lisab omatava laadija/pistiku oleku asukoha põhiprojektsioonile; totals sisaldab sessions, energyWh, energyKwh, durationSeconds ja costs: Cost[].
Asukoha teatmeandmed on { countries: {countryId, countryCode, name}[], timezones: {timezoneId, name}[] } arvuliste ID-de ja stringnimede/-koodidega.
DashboardSession = {
id: PositiveInt, chargerId: PositiveInt, connectorId: PositiveInt,
userId: PositiveInt|null, userName: string|null, chargerName: string|null,
site: SiteRef|null, status: string|null, energyWh: number,
startedAt: DateTime|null, stoppedAt: DateTime|null,
costs: Array<{ currency: string|null, price: number, tax: number }>
}
Dashboard = {
window: { from: DateTime, to: DateTime, maxSessions: 1000 },
stats: { chargerCount: integer, onlineChargerCount: integer, siteCount: integer, userCount: integer },
sessions: DashboardSession[],
analytics: {
totals: { sessions: integer, energyWh: number, durationSeconds: integer, costs: Array<{currency:string, amount:number}> },
daily: Array<{ date:string, sessions:integer, energyWh:number, costs:Array<{currency:string, amount:number}> }>,
sites: Array<{ id:PositiveInt, name:string|null, sessions:integer, energyWh:number, costs:Array<{currency:string, amount:number}> }>,
chargers: Array<{ id:PositiveInt, name:string|null, siteId:PositiveInt|null, siteName:string|null, sessions:integer, energyWh:number, costs:Array<{currency:string, amount:number}> }>
}
}
SiteDetailCharger = {
id: PositiveInt, name: string|null, identifier: string|null, status: string,
connection: { lastSeenAt: DateTime|null, leaseExpiresAt: DateTime|null }|null,
connectors: Array<{ evseId:PositiveInt, evseNumber:integer, portId:PositiveInt, connectorId:integer, status:string|null }>,
sessionCount: integer,
totals: { sessions:integer, energyWh:number, energyKwh:number, durationSeconds:integer, costs:Cost[] }
}
Tööruumi osalise uuenduse ja vastuse näide:
PATCH /v2/admin
Authorization: Bearer evc_ws_<selector>.<secret>
Idempotency-Key: workspace-contact-20260824
Content-Type: application/json
{"email":"ops@example.com","city":"Riga"}
{
"workspace": {
"id": 7,
"name": "Example CPO",
"email": "ops@example.com",
"website": null,
"address": {
"line1": "1 Example Street",
"line2": null,
"postalCode": "LV-1001",
"city": "Riga",
"state": null,
"countryId": 1,
"countryCode": "LV",
"countryName": "Latvia"
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-08-24T12:30:00.000Z"
}
}
Asukoha loomise/uuendamise näide (vaikeväärtustega väljad võib ära jätta):
{
"name": "Main depot",
"addressLine1": "1 Example Street",
"city": "Riga",
"countryId": 1,
"timezoneId": 1,
"latitude": 56.9496,
"longitude": 24.1052
}
Võimsushalduse vastus
PowerConfiguration = {
site: { id: PositiveInt, updatedAt: DateTime },
chargepoints: Array<{
id: PositiveInt, name: string|null,
compatible: boolean, compatibility: string, // values come from shared capability projection
...additional smart-charging capability flags
}>,
pools: Array<{
id: PositiveInt, parentId: PositiveInt|null, name: string|null,
limit: integer, defaultLimit: integer|null, mode: integer|string|null
}>,
assignments: Array<{
poolId: PositiveInt, chargepointId: PositiveInt, priority: integer,
chargingProfileId: PositiveInt|null,
chargingProfileSynced: integer|null,
limit: number|null
}>,
meterSources: Array<{
id: PositiveInt, poolId: PositiveInt, sourceId: PositiveInt,
provider: string, name: string|null, externalId: string,
measurementMode: string, valueMode: string,
reserveA: integer, offlineSafeA: integer, ttlSeconds: integer,
enabled: boolean, lastComputedLimitA: number|null,
lastComputedAt: DateTime|null, lastStatus: string|null,
lastSeenAt: DateTime|null, effectiveLimitA: number|null
}>,
connectors: Array<{
id: PositiveInt, connectorId: integer, chargepointId: PositiveInt,
status: string|null
}>
}
Täiendavate ühilduvusväljade täpsed nimed tekitab smartChargingCompatibility(); selle abifunktsiooni tagastustüüpi pole lähtekoodis eraldi nimetatud. See on ainus vastuseosa, mille suletud väljaloendit ei saa eksporditud tüübist määrata, seega märgitakse lisaväljad tahtlikult ebaselgeks, mitte ei mõelda välja.
Asendamise näide:
{
"pools": [
{
"name": "Depot supply",
"limit": 125,
"meterSources": [
{
"externalId": "meter-42",
"measurementMode": "available_headroom",
"enabled": true
}
],
"children": [
{"chargepointId": 11, "priority": 10},
{"name": "Secondary", "limit": 32, "children": []}
]
}
]
}
Laadijatüübid
Charger = {
id: PositiveInt, name: string, identifier: string, cpoId: PositiveInt,
site: { id: PositiveInt, name: string }, status: string,
isPublic: boolean, invertedRfid: boolean, smartMode: integer,
automationDisabled: boolean, provisioned: boolean,
connection: {
protocol: string|null, lastSeenAt: DateTime|null, leaseExpiresAt: DateTime|null
} | null,
evses: Array<{ id: PositiveInt, number: integer, status: string|null }>,
connectors: Array<{
evseId: PositiveInt, evseNumber: integer, status: string|null,
id: PositiveInt, connectorId: integer, portNumber: integer,
format: { id: PositiveInt, name: string, description: string|null },
type: { id: PositiveInt, name: string, description: string|null },
powerType: { id: PositiveInt, name: string, description: string|null },
maxVoltage: number, maxAmperage: number, maxElectricPower: number,
maxPowerKw: number
}>,
createdAt: DateTime, updatedAt: DateTime
}
ChargerDetail = Charger & {
configuration: Array<{
chargepointConfigId: PositiveInt, key: string,
value: string|null, readonly: boolean|number, setByServer: boolean|number,
modified: DateTime
}>,
firmware: { status: string|null, statusAt: DateTime|null, version: string|null, bootAt: DateTime|null },
counts: { localUsers: integer, sessions: integer, tariffAssignments: integer, profileAssignments: integer }
}
Loendiprojektsioon lisab piiratud mõõdikuväljad ja tagastab metricsWindow; detailiprojektsioon kasutab ülaltoodud kuju. Tundlike võtmete konfiguratsiooniväärtused on täpselt "[REDACTED]".
PublicReadiness = {
ready: boolean,
missingRequirements: Array<"site_coordinates"|"connector_tariffs"|"billing_plan"|"stripe_connect"|"legacy_payment_data">,
commercialGateEnabled: boolean, siteCoordinatesDefined: boolean,
allConnectorsHaveTariffs: boolean, connectorsMissingTariffs: integer[],
connectorCount: integer, paymentDataDefined: boolean,
billingAccountId: PositiveInt|null, planCode: string|null,
billingPlanEligible: boolean, stripeConnectReady: boolean,
stripeConnectState: "active"|"action_required"|"pending"|"not_configured",
connectorIds: integer[], missingTariffConnectorIds: integer[]
}
RedactedOcppLog = {
ocppServerLogId: PositiveInt, timestamp: DateTime, logLevelId: PositiveInt,
logAction: string|null, logDirection: string|null, logMessage: string|null,
messageId: string|null, transactionLogId: PositiveInt|null,
logLevel: { name:string }|null
}
CompositeSchedule = {
id: PositiveInt, chargepointId: PositiveInt, connectorId: integer,
evseId: PositiveInt|null, scheduleStart: DateTime, duration: integer,
minChargingRate: number|null, chargingRateUnitId: PositiveInt,
chargingRateUnit: string|null, chargingRateUnitDescription: string|null,
periods: Array<{ id:PositiveInt, startPeriod:number, limit:number, numberPhases:integer|null, phaseToUse:integer|null }>
}
Edukas pistiku osaline uuendus tagastab täpselt { portId, connectorId, ocpiConnectorFormatEnumId, ocpiConnectorTypeEnumId, ocpiPowerTypeEnumId, maxVoltage, maxAmperage, maxElectricPower }.
connectorLookups sisaldab järgmisi teatmekujusid: vormingud kasutavad { ocpiConnectorFormatEnumId, name, description }; tüübid { ocpiConnectorTypeEnumId, name, description, icon }; voolutüübid { ocpiPowerTypeEnumId, name, shortDescr, description, numPhases }.
Loomise ja pistiku uuendamise näited:
{"name":"Warehouse 1","identifier":"cp-warehouse-1","password":"initial-secret","siteId":3}
{
"connectorFormatId": 1,
"connectorTypeId": 2,
"powerTypeId": 1,
"maxVoltage": 400,
"maxAmperage": 32,
"maxElectricPower": 22000
}
Käsuvastuste objektid sisaldavad status: string. Trigger sisaldab lisaks connectorResults: { connectorId: number, status: string }[]; koondajakava lisaks connectorId ja compositeSchedule (või null). Olekud on salvestatud OCPP/järgnevate süsteemide tulemused ja marsruut ei piira neid suletud loeteluga.
Aruandetüübid
ReportSession = {
id: PositiveInt,
charger: { id: PositiveInt, name: string, site: { id: PositiveInt, name: string }|null },
portId: PositiveInt, connectorId: integer,
user: { id: PositiveInt, name: string }|null,
active: boolean, energyWh: number,
startedAt: DateTime, stoppedAt: DateTime|null,
durationSeconds: integer|null, costs: Cost[]
}
ReportSchedule = {
id: PositiveInt, workspaceId: PositiveInt, enabled: boolean,
recipientEmail: string, format: "csv"|"pdf", sendDay: integer,
sendTime: string, createdAt: DateTime, updatedAt: DateTime,
lastDeliveryPeriod: string|null, lastDeliveryStatus: string|null,
lastDeliveryAttemptAt: DateTime|null, lastDeliveryAttemptCount: integer,
lastDeliveredPeriod: string|null, lastDeliveredAt: DateTime|null
}
ReportDataResponse = {
items: ReportSession[],
pageTotals: { sessions:integer, energyWh:number, durationSeconds:integer, costs:Cost[] },
page: { limit:integer, nextCursor:string|null },
range: { from:DateTime, to:DateTime, toExclusive:true }
}
MeasurementPoint = { meterValueId:PositiveInt, timestamp:DateTime, elapsedSeconds:integer, value:number }
Measurement = {
name:string,
unit:{ symbol:string|null, description:string|null },
lines:Array<{ phase:string, points:MeasurementPoint[] }>
}
MeasurementsResponse = {
transactionLogId:PositiveInt, measurements:Measurement[],
page:{ limit:integer, nextCursor:string|null, sampleValuesTruncated:boolean, sampleLimitPerMeterValue:64 }
}
Ajakava päringu ja vastuse näide:
{"enabled":true,"recipientEmail":"reports@example.com","format":"csv","sendDay":5,"sendTime":"08:30"}
{
"schedule": {
"id": 4,
"workspaceId": 7,
"enabled": true,
"recipientEmail": "reports@example.com",
"format": "csv",
"sendDay": 5,
"sendTime": "08:30",
"createdAt": "2026-08-01T10:00:00.000Z",
"updatedAt": "2026-08-24T12:30:00.000Z",
"lastDeliveryPeriod": null,
"lastDeliveryStatus": null,
"lastDeliveryAttemptAt": null,
"lastDeliveryAttemptCount": 0,
"lastDeliveredPeriod": null,
"lastDeliveredAt": null
}
}
Tariifitüübid
TariffComponent = {
id: PositiveInt,
type: NamedLookup, season: NamedLookup,
validFromMonth: number|null, validToMonth: number|null,
validFromWeekDay: number|null, validToWeekDay: number|null,
validFromHour: number|null, validToHour: number|null,
priority: number, price: number
}
Tariff = {
id: PositiveInt, cpoId: PositiveInt, name: string,
type: NamedLookup,
site: { id: PositiveInt, name: string, timezone: string|null }|null,
currency: { id: PositiveInt, code: string, sign: string },
biddingZone: { id: PositiveInt, code: string, name: string }|null,
tax: number, fallbackPrice: number|null, price: number|null,
components: TariffComponent[], assignmentCount: integer
}
TariffAssignment = {
id: PositiveInt, chargerId: PositiveInt, connectorId: integer,
tariff: { id: PositiveInt, name: string, currency: { code: string, sign: string } },
createdAt: DateTime, updatedAt: DateTime
}
MarketPrice = {
id: PositiveInt, value: number, currencyId: PositiveInt,
startsAt: integer, endsAt: integer,
startsAtIso: DateTime, endsAtIso: DateTime, intervalMinutes: number
}
TariffLookups = {
currencies:Array<{id:PositiveInt,code:string,sign:string,fractionalUnit:string,enabled:boolean,minimalValue:integer}>,
biddingZones:Array<{id:PositiveInt,code:string,name:string,currencyId:PositiveInt,enabled:boolean}>,
currencyRates:Array<{currencyId:PositiveInt,rate:number,updatedAt:DateTime}>,
componentTypes:NamedLookup[], seasons:NamedLookup[], tariffTypes:NamedLookup[]
}
Tariifi ja komponentide näited:
{"name":"Public AC","currencyCode":"EUR","biddingZoneId":1,"tax":21}
{
"components": [
{"typeId":1,"seasonId":1,"priority":0,"price":0.25,"validFromHour":0,"validToHour":24}
]
}
Laadimisprofiilide tüübid
SchedulePeriod = { id: PositiveInt, startPeriod: number, limit: number, numberOfPhases: integer|null }
ChargingProfile = {
id: PositiveInt, cpoId: PositiveInt, label: string, description: string|null,
stackLevel: number, location: NamedLookup, purpose: NamedLookup,
kind: NamedLookup, recurrency: NamedLookup|null,
validFrom: DateTime|null, validTo: DateTime|null,
startSchedule: DateTime|null, durationSeconds: number|null,
rateUnit: NamedLookup, minChargingRate: number|null,
schedule: SchedulePeriod[], assignmentCount: integer,
createdAt: DateTime, updatedAt: DateTime
}
ProfileAssignment = {
id: PositiveInt, chargerId: PositiveInt, connectorId: integer,
synced: boolean, syncCode: integer,
syncStatus: "accepted"|"rejected"|"unknown",
profile: { id: PositiveInt, label: string, stackLevel: number, purpose: string, kind: string|null },
createdAt: DateTime, updatedAt: DateTime
}
ChargingProfileLookups = {
locations:NamedLookup[], purposes:NamedLookup[], kinds:NamedLookup[],
recurrencyKinds:NamedLookup[],
rateUnits:Array<{id:PositiveInt,name:string,supported:boolean}>,
allowedRateUnits:string[]
}
Loomise ja ajakava näited:
{
"label":"Depot cap","locationId":3,"stackLevel":1,"purposeId":1,"kindId":1,
"recurrencyKindId":null,"validFrom":null,"validTo":null,"startSchedule":null,
"rateUnitId":1,"minChargingRate":6,
"schedule":[{"startPeriod":0,"limit":32,"numberOfPhases":3}]
}
{"rateUnitId":1,"periods":[{"startPeriod":0,"limit":16,"numberOfPhases":3}]}
Kasutajatüübid
RFID = { id: PositiveInt, maskedUid: string, name: string|null, type: string, valid: boolean }
AccessItem = { id: PositiveInt, chargerId: PositiveInt, chargerName: string, expiresAt: DateTime|null, site: SiteRef|null }
Access = { allChargers: boolean, chargerIds: PositiveInt[], items: AccessItem[] }
Limit = { id: PositiveInt, limitTypeId: PositiveInt, label: string, energyValue: integer, timeValue: integer }
User = {
id: PositiveInt, membershipId: PositiveInt, name: string, email: string,
rfids: RFID[], access: AccessItem[], limitCount: integer
}
UserDetail = User & {
phone: string|null, createdAt: DateTime|null, limits: Limit[]
}
Vehicle = {
id: PositiveInt, name: string|null, provider: string|null, status: string|null,
vin: string|null, identifier: string|null, model: string|null,
batteryCapacityWh: number|null, createdAt: DateTime,
telemetry: { soc: number|null, chargeLimitSoc: number|null, recordedAt: DateTime|null }|null
}
LocalUser = {
id: PositiveInt, customerId: PositiveInt, name: string, email: string,
expiresAt: DateTime|null, systemManaged: boolean
}
LocalUserMutation = {
chargepointLocalUserId: PositiveInt,
customerId: PositiveInt,
expiryDate: DateTime|null,
customer: {} // `contractId` is removed by the workspace-admin response boundary
}
LocalUserUpdate = { id:PositiveInt, customerId:PositiveInt, expiresAt:DateTime|null }
Invitation = {
email:string, name:string, chargerIds:PositiveInt[], rfids:string[]
}
UserListResponse = {
items:User[], invitations:Invitation[], chargers:Array<{id:PositiveInt,name:string,identifier:string|null,site:SiteRef|null}>,
page:{ nextCursor:number|string|null, memberNextCursor:number|null, invitationNextCursor:string|null, limit:integer }
}
UserSession = {
id:PositiveInt, chargerId:PositiveInt, chargerName:string|null,
connectorId:PositiveInt, site:SiteRef|null, energyWh:number,
startedAt:DateTime|null, stoppedAt:DateTime|null
}
POST /chargers/:chargerId/local-users muudatuse vastus ja POST /chargers/:chargerId/local-users/invitations olemasoleva kliendi tulemus tagastavad LocalUserMutation; PATCH /chargers/:chargerId/local-users/:localUserId tagastab LocalUserUpdate. Loendi endpoint kasutab LocalUser. Kliendid peavad neid käsitlema teadlikult erinevate vastusetüüpidena.
Kasutaja/kutse/RFID/juurdepääsu näited:
{"email":"driver@example.com","name":"Example Driver"}
{
"email":"new.driver@example.com",
"name":"New Driver",
"rfid":"04AABBCCDD",
"allChargers":false,
"chargerIds":[11,12]
}
{"uid":"04AABBCCDD","name":"Blue card"}
{"allChargers":false,"chargerIds":[11,12]}
Edukad kirjutamised ei tagasta kunagi toorest RFID UID-d. Näiteks:
{"rfid":{"id":31,"maskedUid":"******CCDD","name":"Blue card","type":"RFID","valid":true}}
Tühjad ja kahendvormingus edukad vastused
204tähendab vastusesisu puudumist.- Edukas laadija QR-vastus on PNG-baidid, mitte JSON.
- Edukas aruandeeksport on CSV- või PDF-baidid, mitte JSON.
- Kummagi kahendendpointi nurjumise JSON-sisu kohta vt Vastuste ja vigade leping.
Ülejäänud muutmispäringute sisunäited
Selle ainult näiteid sisaldava tabeli teed on suhtelised /v2/admin suhtes; täispikad teed on Endpointide viites. Pikemad ülaltoodud näited hõlmavad tööruumi, asukohta, võimsushaldust, laadija loomist/pistikuseadeid, aruandeajakavu, tariife/komponente, laadimisprofiile/ajakavu, kasutajaid/kutseid, RFID-d ja juurdepääsu asendamist. Iga muu sisuga muudatus kasutab üht neist täpsetest näidiskujudest:
| Endpoint | JSON-sisu näide |
|---|---|
PATCH /chargers/:chargerId | {"name":"Warehouse east","siteId":4,"invertedRfid":false,"smartMode":1,"automationDisabled":false}; aktsepteeritakse mis tahes mittetühja alamhulka |
PATCH /chargers/:chargerId/credentials | {"password":"replacement-secret"} |
PATCH /chargers/:chargerId/public-listing | {"isPublic":true} |
PATCH /chargers/:chargerId/configuration | {"key":"HeartbeatInterval","value":"60"} |
POST /chargers/:chargerId/firmware | {"url":"https://firmware.example.com/charger-v2.bin"} |
POST /chargers/:chargerId/commands/reset | {"resetType":"Soft"} |
POST /chargers/:chargerId/commands/availability | {"availabilityType":"Operative"} |
POST /chargers/:chargerId/commands/trigger | {"messageType":"StatusNotification"} |
POST /chargers/:chargerId/commands/unlock | {"connectorId":1} |
POST /chargers/:chargerId/commands/composite-schedule | {"connectorId":0,"durationSeconds":86400,"chargingRateUnit":"W"} |
POST /chargers/:chargerId/tariff-assignments | {"tariffId":17,"connectorId":0} |
PATCH /chargers/:chargerId/tariff-assignments/:assignmentId | {"tariffId":17,"connectorId":1} |
POST või PATCH /chargers/:chargerId/profile-assignments[...] | {"profileId":8,"connectorId":1} |
PATCH /users/:userId | {"name":"Updated Driver"} |
POST /users/invitations/resend või DELETE /users/invitations | {"email":"new.driver@example.com"} |
PATCH /users/:userId/rfids/:rfidId | {"name":"Replacement label"}; null tühjendab sildi |
POST /users/:userId/limits | {"limitTypeId":1,"energyValue":20000,"timeValue":0} |
PATCH /users/:userId/limits/:limitId | {"energyValue":25000} |
POST /chargers/:chargerId/local-users | {"customerId":42,"expiresAt":"2026-12-31T23:59:59Z"} |
POST /chargers/:chargerId/local-users/invitations või selle DELETE vaste | {"email":"driver@example.com"} |
PATCH /chargers/:chargerId/local-users/:localUserId | {"expiresAt":null} |
Muudel muudatustel pole päringu sisu. Need nõuavad endiselt täpselt üht Idempotency-Key päist.
Täiendavad edukate vastuste näited
Tühjad loendid on kehtivad ja muudavad ülataseme ümbrised üheselt mõistetavaks:
{"items":[],"metricsWindow":{"from":"2026-05-26T00:00:00.000Z","to":"2026-08-24T00:00:00.000Z","sessionLimit":10000,"sessionsIncluded":0,"totalsCapped":false},"connectorLookups":{"formats":[],"types":[],"powerTypes":[]}}
{"items":[],"pageTotals":{"sessions":0,"energyWh":0,"durationSeconds":0,"costs":[]},"page":{"limit":50,"nextCursor":null},"range":{"from":"2026-07-01T00:00:00.000Z","to":"2026-08-01T00:00:00.000Z","toExclusive":true}}
{"status":"Accepted"}
{"status":"Accepted","connectorResults":[{"connectorId":1,"status":"Accepted"}]}
{"sent":true,"format":"csv","rowCount":12,"range":{"from":"2026-07-01T00:00:00.000Z","to":"2026-08-01T00:00:00.000Z"}}
{"items":[],"invitations":[],"chargers":[],"page":{"nextCursor":null,"memberNextCursor":null,"invitationNextCursor":null,"limit":50}}
Objekte sisaldavate vastuste puhul asendage Endpointide viites loetletud ümbrises ülaltoodud jaotiste täpne nimega DTO; näiteks tariifi loomine on { "tariff": Tariff }, profiili loomine { "profile": ChargingProfile } ja kasutaja loomine { "user": User }.