Työtilan Admin API
Työtilan Admin API antaa palvelinten välisille integraatioille mahdollisuuden hallita yhtä EVCharge-työtilaa. Dokumentaatio on tarkoitettu työtilan ylläpitäjille ja ulkoisille API-integraattoreille. API käyttää peruttavia työtilaan sidottuja käyttötunnuksia ja tarkkarajaisia käyttöalueita; asiakkaiden kirjautumistunnuksia ja selainistuntoja ei hyväksytä.
Tämä hakemisto on toteutuksen app-api tarjoaman /v2/admin-API:n ensisijainen kehittäjäviite. Se ei dokumentoi asiakas-/mobiilireittejä eikä ylläpitoportaalin omia HTTP-reittejä.
- Endpoint-pyynnöt ja -vastaukset luettelee kaikki 87 rekisteröityä endpointia, käyttöalueet, parametrit, pyyntörungot ja onnistumisrungot.
- Skeemat ja esimerkit määrittää uudelleenkäytettävät pyyntö-/vastaustyypit ja edustavat JSON-sisällöt.
- Vastaus- ja virhesopimus määrittää jokaisen yhteisen ja endpoint-kohtaisen epäonnistumisrungon.
Perus-URL ja resurssiraja
Kaikki reitit ovat suhteessa käyttöönotettuun app-api-alkuperään:
https://api.evcharge.mobi/v2/admin/...
Työtilan tunnistetta ei hyväksytä URL-osoitteessa, kyselymerkkijonossa tai pyynnön rungossa. Kukin käyttötunnus on sidottu täsmälleen yhteen työtilaan ja API johtaa cpoId-arvon todennetusta tunnuksen identiteetistä. Jos sisäkkäinen kohde, laturi, käyttäjä, tariffi, profiili, määritys tai tapahtuma ei kuulu kyseiseen työtilaan, API palauttaa saman 404 RESOURCE_NOT_FOUND-vastauksen, joka ei paljasta resurssin olemassaoloa.
Käyttötunnuksen hankkiminen
Työtilan ylläpitäjä luo tunnukset työtilan asetusten API-käyttöosiossa. Tunnusten hallintaa ei tarkoituksella tarjota työtilatunnuksille.
- API-käyttö sisältyy jokaiseen tilaukseen, myös Free-tilaukseen. Ylläpitäjällä on oltava työtilan muokkausoikeus.
- Työtilan isännän on otettava Admin API käyttöön asetuksella
adminApiEnabled; muuten kelvollinen tunnus saa endpointistaapp-apiresurssien olemassaoloa paljastamattoman404-vastauksen. - Ylläpitäjä voi myöntää vain omien nykyisten oikeuksiensa ja työtilan käyttöoikeuksien sallimat käyttöalueet.
- Uudet tunnukset voivat olla vanhenemattomia (työtilan asetusten oletus) tai käyttää ylläpitäjän valitsemaa 1–365 kokonaisen päivän voimassaoloa; palvelin laskee rajalliset absoluuttiset vanhenemisajat. Vanhenemattomat tunnukset pysyvät voimassa perumiseen saakka.
- Työtilalla voi olla enintään 50 aktiivista tunnusta.
- Selväkielinen tunnistetieto näytetään kerran. Tallenna se heti salaisuuksien hallintajärjestelmään.
- Nimi, käyttöalueet ja vanhenemisaika ovat muuttumattomia. Kierrätä luomalla korvaava tunnus, ottamalla se käyttöön, varmistamalla se ja perumalla vanha tunnus.
- Peruminen on välitön; perutut rivit pysyvät näkyvissä muuttumattomana, peitettynä työtilahistoriana. Bearer-tunnuksen introspektio- tai pysyvän poiston endpointia ei ole.
app-api ei sisällä endpointia näiden tunnistetietojen myöntämiseen, uusimiseen, luettelemiseen tai perumiseen. Tunnuksen hankkiminen on siis ihmisen ylläpitoportaalissa tehtävä ennakkovaatimus, ei tämän viitteen toinen endpoint.
Älä koskaan sijoita tunnusta versionhallintaan, URL-osoitteisiin, kyselymerkkijonoihin, evästeisiin, lokeihin, analytiikkaan tai virheraportteihin.
Todennus
Lähetä jokaisessa pyynnössä täsmälleen yksi RFC 6750 -tyylinen otsake:
Authorization: Bearer evc_ws_<selector>.<secret>
Tarkka läpinäkymätön tunnistetieto on evc_ws_, jota seuraavat 16-merkkinen kanoninen base64url-valitsin, . ja 43-merkkinen kanoninen base64url-salaisuus. Lähetä koko tunnistetieto muuttamattomana; älä base64-koodaa sitä uudelleen.
API hylkää toistuvat valtuutusotsakkeet, pilkulla yhdistetyt arvot, muut skeemat, tyhjät bearer-arvot, asiakkaiden JWT:t ja muualla kuin tässä otsakkeessa toimitetut tunnistetiedot.
Virheelliset, tuntemattomat, vanhentuneet, perutut tai muuten kelpaamattomat tunnukset saavat saman vastauksen:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer
Cache-Control: no-store
Content-Type: application/json
{
"error": "Unauthorized",
"code": "INVALID_WORKSPACE_TOKEN"
}
Palvelu tarkistaa tunnuksen tilan ja työtilan nykyiset oikeudet jokaisella pyynnöllä. Oikeuden poistaminen voi siksi poistaa kyseiset käyttöalueet käytöstä ennen tunnuksen vanhenemista.
Työtilatunnukset ovat läpinäkymättömiä tunnistetietoja, eivät JWT:itä. Niillä ei ole uusintatunnusta eikä uusintaendpointia ole. Määräaikainen tunnus lakkaa todentamasta absoluuttisena expiresAt-hetkenään; vanhenematon tunnus pysyy voimassa perumiseen asti. Kierrätys tarkoittaa korvaavan tunnistetiedon luomista portaalissa, käyttöönottoa asiakkaalla ja vanhan tunnistetiedon perumista.
Pyyntökäytännöt
- Käytä
Content-Type: application/jsonpyynnöissä, joissa on JSON-runko. - Valinnaisista
X-Request-Id-pyyntöarvoista poistetaan reunavälit, ja ne hyväksytään vain, jos niissä on 1–128 merkkiä joukoistaA-Z,a-z,0-9,.,_,:tai-; muutoin palvelin luo UUID:n. Jokainen vastaus palauttaa valitun arvon muodossaX-Request-Id. - Valinnainen
X-Error-Format: envelopemuuntaa jokaisen JSON-virhevastauksen Vastaus- ja virhesopimuksessa dokumentoiduksi rakenteiseksi kääreeksi. Muut arvot säilyttävät oletusarvoisen yhteensopivuusrungon. - Polkuparametrien tunnisteet ovat positiivisia kokonaislukuja. Portaalin palauttamat käyttötunnusten tunnisteet ovat desimaalimerkkijonoja, koska ne ovat tietokannan etumerkittömiä 64-bittisiä arvoja.
- Päiväys- ja aika-arvot ovat RFC 3339 -merkkijonoja, joissa on nimenomainen aikavyöhykesiirtymä, esimerkiksi
2026-08-13T12:30:00Z. - Onnistuneet poistot palauttavat yleensä
204 No Content. - Luontitoiminnot palauttavat tavallisesti
201 Created. - Vain jonoon lisätty OCPP-työ voi palauttaa
202 Accepted; älä tulkitse sitä laturin vahvistukseksi, ellei vastaus nimenomaisesti niin kerro. - Todennetut vastaukset käyttävät
Cache-Control: no-store. QR- ja raporttivientien endpointit palauttavat binäärirunkoja, joilla on nimenomaiset sisältöotsakkeet. - Sallitut selainalkuperät voivat lukea
X-Request-Id,Idempotency-Replayed,Retry-AfterjaContent-DispositionCORSin kautta. Näin selainasiakkaat voivat yhdistää pyynnöt, tunnistaa idempotentit toistot, noudattaa uusintayritysten ajoitusta ja säilyttää palvelimen valitsemat lataustiedostojen nimet.
Idempotenssi
Kaikissa ylläpidon POST-, PUT-, PATCH- ja DELETE-pyynnöissä on oltava yksi Idempotency-Key-otsake. Avaimissa on 1–255 näkyvää merkkiä ja ne rajataan tunnukseen, metodiin ja polkuun.
Idempotency-Key: provisioning-2026-08-13-site-42
Valmiin avaimen uudelleenkäyttö samalla URL-osoitteella ja rungolla toistaa tallennetun vastauksen ja lisää:
Idempotency-Replayed: true
Avaimen uudelleenkäyttö eri pyynnöllä palauttaa 409 IDEMPOTENCY_CONFLICT. Vielä käsiteltävä pyyntö palauttaa 409 IDEMPOTENT_REQUEST_PROCESSING ja Retry-After: 5.
Valmiit vastaukset ja lopulliset tulokset säilytetään toistoa tai täsmäytystä varten seitsemän päivää niiden viimeisimmästä päivityksestä. Tämän jälkeen sama avain voidaan käsitellä uutena komentona, joten asiakkaiden on käytettävä globaalisti yksilöllisiä avaimia eikä niitä saa tarkoituksella kierrättää.
Jos käsittelyvaraus vanhenee, yhteys sulkeutuu suorituksen alettua tai toiminto palauttaa palvelinvirheen, API ei voi turvallisesti todistaa, syntyikö ulkoinen vaikutus. Seitsemän päivän säilytysaikana avaimen tulos jää lopullisesti epäselväksi ja palauttaa 409 IDEMPOTENCY_OUTCOME_UNKNOWN; sitä ei oteta uudelleen käsittelyyn eikä suoriteta automaattisesti uudelleen. Varmista toiminnon vaikutukset ennen manuaalista palautustoimea äläkä lähetä samaa toimintoa uudella avaimella ennen täsmäytyksen valmistumista.
Kaikki muutoksia tekevät ylläpitoendpointit, myös POST /reports/send, edellyttävät Idempotency-Key.
Pyyntörajoitukset
Rajoja sovelletaan sekä yksittäiseen tunnukseen että sen työtilaan. Versionhallintaan tallennetut oletukset ovat:
| Raja | Oletus |
|---|---|
| Aikaikkuna | 60 sekuntia |
| Tunnusta kohden | 300 pyyntöä |
| Työtilaa kohden | 1 000 pyyntöä |
Rajoitettu pyyntö palauttaa 429 Too Many Requests ja Retry-After-otsakkeen. Käyttöönotot voivat ohittaa nämä arvot.
Virheet
JSON-virheet käyttävät vakaata code-arvoa, kun kutsujan on haarautettava käsittelyä:
{
"error": "Insufficient workspace-token scope",
"code": "INSUFFICIENT_SCOPE"
}
Validointivirheet käyttävät kenttätaulukoita:
{
"validationErrors": {
"name": ["String must contain at least 1 character(s)"]
}
}
Yleisiä tiloja ovat:
| Tila | Merkitys |
|---|---|
400 | Virheellinen idempotenssi-/käyttäjäkursori-/geokooderisopimus; polun/rungon/kyselyn skeemavirheet ovat tavallisesti 422 |
401 | Virheellinen työtilatunnus |
403 | Kelvollinen tunnus ilman vaadittua voimassa olevaa käyttöaluetta tai oikeutta |
404 | Työtila tai sisäkkäinen resurssi ei näy tälle tunnukselle |
409 | Resurssin tilan, riippuvuuden, samanaikaisuuden tai idempotenssin ristiriita |
422 | Kentän validoinnin, rajatun välin tai vientirajan virhe |
429 | Tunnuksen tai työtilan pyyntöraja ylitetty |
502 | Jatkotoiminto, kuten raportin toimitus, epäonnistui |
503 | Valtuutus- tai idempotenssitallennus ei ole tilapäisesti käytettävissä |
Käyttöalueluettelo
Seuraavaa käyttöalueluetteloa käytetään ylläpitäjän luodessa tunnuksen. Kirjoitus- tai suuren vaikutuksen käyttöalue voi sisältää vastaavan lukualueen, mutta lukualueet eivät koskaan anna kirjoitusoikeutta. Saatavilla olevat alueet riippuvat ylläpitäjän oikeuksista ja työtilan käytössä olevista toiminnoista.
| Toimialue | Lukukäyttöalueet | Kirjoitus- ja suuren vaikutuksen käyttöalueet | Lisäoikeus tarvittaessa |
|---|---|---|---|
| Työtila | workspaces:read | workspaces:update | — |
| Kohteet | sites:read | sites:create, sites:update, sites:delete, sites:power-management | dlmPowerManagement tehonhallinnalle |
| Laturit | chargers:read | chargers:create, chargers:update, chargers:delete, chargers:credentials, chargers:configuration, chargers:firmware, chargers:commands, chargers:public, chargers:connector-settings, chargers:local-users, chargers:tariff-assignments, chargers:profile-assignments | firmwareOperations, publicCharging, tariffs tai smartCharging vastaavalle ominaisuudelle |
| Käyttäjät | users:read | users:create, users:update, users:delete, users:invitations, users:rfid, users:access, users:limits | — |
| Latausprofiilit | chargingProfiles:read | chargingProfiles:create, chargingProfiles:update, chargingProfiles:delete, chargingProfiles:assign | smartCharging |
| Tariffit | tariffs:read | tariffs:create, tariffs:update, tariffs:delete, tariffs:components, tariffs:assign | tariffs |
| Raportit | reports:read | reports:export, reports:schedules, reports:send | scheduledReports ajastuksille ja välittömälle lähetykselle |
Itse API-käyttö sisältyy jokaiseen tilaukseen ja sitä ohjaa isännän adminApiEnabled-asetus. Edellä mainitut lisätoimintojen oikeudet ovat silti voimassa; API-käyttö ei anna työtilan tilaukseen kuulumattomia toimintoja.
Endpoint-viite
Alla olevat taulukot luettelevat kaikki 87 työtilan ylläpitoreittiä. Solun useat käyttöalueet vaaditaan kaikki.
Työtila
| Metodi | Polku | Vaadittu käyttöalue | Tarkoitus |
|---|---|---|---|
GET | /v2/admin | workspaces:read | Lukee työtilan turvalliset metatiedot ja hakutiedot. |
PATCH | /v2/admin | workspaces:update | Päivittää yhden tai useamman työtilan metatietokentän. |
GET | /v2/admin/dashboard | workspaces:read + reports:read | Lukee rajatut työtilamäärät ja 90 päivän toimintakoosteet. |
Työtilan osapäivityskentät: name, email, website, addressLine1, addressLine2, postalCode, city, state ja countryId. Vähintään yksi kenttä vaaditaan. Tyhjät null-arvon sallivat merkkijonot normalisoidaan arvoon null.
Kohteet ja tehonhallinta
| Metodi | Polku | Vaadittu käyttöalue | Tarkoitus |
|---|---|---|---|
GET | /v2/admin/sites | sites:read | Luettelee kohteet rajattuine 90 päivän yhteenvetoineen ja kohteiden hakutiedot. |
GET | /v2/admin/sites/geocode | sites:read | Hakee normalisoituja kohdeosoite-ehdokkaita yhteisellä, pyyntörajoitetulla ja välimuistia käyttävällä geokooderilla. |
POST | /v2/admin/sites | sites:create | Luo kohde. |
GET | /v2/admin/sites/:siteId | sites:read + reports:read | Lukee kohteen tiedot, viimeisimmät lataustapahtumat, yhteenvedot ja toimintakoosteet. |
PATCH | /v2/admin/sites/:siteId | sites:update | Korvaa muokattavan kohdedokumentin. |
DELETE | /v2/admin/sites/:siteId | sites:delete | Poistaa tyhjän kohteen; riippuvuudet palauttavat ristiriidan. |
GET | /v2/admin/sites/:siteId/power-management | sites:power-management | Lukee kohteen dynaamisen kuormanhallintapuun. |
PUT | /v2/admin/sites/:siteId/power-management | sites:power-management | Korvaa kohteen tehonhallintamäärityksen atomisesti. |
Kohteen luonti- ja osapäivitysrungot käyttävät:
{
"name": "Main depot",
"description": null,
"addressLine1": "1 Example Street",
"addressLine2": null,
"postalCode": "LV-1001",
"city": "Riga",
"state": null,
"countryId": 1,
"timezoneId": 1,
"latitude": 56.9496,
"longitude": 24.1052
}
Kohteen geokoodaus hyväksyy valinnaiset street-, city-, state-, country- ja kaksikirjaimiset countryCode-kyselykentät sekä Accept-Language-pyyntöotsakkeen. Yhdistetyn katu-/kaupunki-/osavaltiohaun on sisällettävä vähintään kaksi merkkiä. Vastaukset sisältävät vain placeId, displayName, latitude ja longitude; palveluntarjoajan tunnistetietoja tai tarjoajakohtaisia metatietoja ei paljasteta. Palvelin käyttää yhteistä yhden pyynnön sekuntijonoa tarjoajalle, kahdeksan sekunnin aikakatkaisua, rajattua 24 tunnin välimuistia ja globaaleja työtilatunnusten pyyntörajoja.
Tehonhallinta hyväksyy { "pools": [...] }. Ryhmällä on id, name, limit, valinnainen meterSources ja rekursiivinen children. Alilaturilla on chargepointId ja priority. API rajoittaa puun ja mittarien määrää ja tekee kaksivaiheisen OCPP-tyhjennyksen/uudelleenvalidoinnin korvatessaan asennetun tilan. Hylätty, aikakatkaistu tai samanaikaisuuskilpailuun joutunut muutos palauttaa 409 POWER_MANAGEMENT_CONFLICT säilyttäen aiemman määrityksen.
Laturit
| Metodi | Polku | Vaadittu käyttöalue | Tarkoitus tai syöte |
|---|---|---|---|
GET | /v2/admin/chargers | chargers:read | Luettelee laturit tiloineen ja rajattuine energia-/kustannusyhteenvetoineen. |
POST | /v2/admin/chargers | chargers:create | Luo arvoista name, identifier ja siteId; password on valinnainen. |
GET | /v2/admin/chargers/:chargerId | chargers:read | Lukee laturien, EVSE:iden, liittimien, hakutietojen ja tilojen tiedot. |
PATCH | /v2/admin/chargers/:chargerId | chargers:update | Päivittää name, siteId, invertedRfid, smartMode tai automationDisabled. |
DELETE | /v2/admin/chargers/:chargerId | chargers:delete | Poistaa laturin riippuvuus- ja laskutussääntöjen mukaisesti. |
PATCH | /v2/admin/chargers/:chargerId/credentials | chargers:credentials | Korvaa laturin salasanan arvolla { "password": "..." }. |
PATCH | /v2/admin/chargers/:chargerId/connectors/:portId | chargers:connector-settings | Päivittää liittimen muodon/tyypin, virtatyypin, jännitteen, ampeerimäärän ja tehorajat. |
PATCH | /v2/admin/chargers/:chargerId/public-listing | chargers:public | Aseta `{ "isPublic": true |
GET | /v2/admin/chargers/:chargerId/public-readiness | chargers:read | Lukee julkisen latauksen valmiuden ja puuttuvat vaatimukset. |
GET | /v2/admin/chargers/:chargerId/logs | chargers:read | Lukee peitetyt OCPP-lokit kursorisivutuksella. |
GET | /v2/admin/chargers/:chargerId/sessions | chargers:read + reports:read | Lukee sivutetut lataustapahtumat ja yhteenvedot. |
GET | /v2/admin/chargers/:chargerId/qr | chargers:read | Luo 300 pikselin PNG-QR-koodin; valinnainen connector=0..255. |
GET | /v2/admin/chargers/:chargerId/composite-schedules | chargers:read | Lukee tallennetun yhdistelmäaikataulun historian. |
GET | /v2/admin/chargers/:chargerId/configuration | chargers:read | Lukee OCPP-määritykset arkaluonteiset arvot peitettyinä. |
PATCH | /v2/admin/chargers/:chargerId/configuration | chargers:configuration | Lähettää määritysmuutoksen arvoilla key ja value. |
POST | /v2/admin/chargers/:chargerId/configuration/reload | chargers:configuration | Pyytää tuoreet laturimääritykset. |
GET | /v2/admin/chargers/:chargerId/firmware | chargers:read | Lukee nykyisen laiteohjelmiston ja päivitystilan. |
POST | /v2/admin/chargers/:chargerId/firmware | chargers:firmware | Lisää päivityksen jonoon HTTP(S)-osoitteesta { "url": "..." }. |
POST | /v2/admin/chargers/:chargerId/commands/reset | chargers:commands | Lähetä `{ "resetType": "Soft" |
POST | /v2/admin/chargers/:chargerId/commands/availability | chargers:commands | Lähetä `{ "availabilityType": "Operative" |
POST | /v2/admin/chargers/:chargerId/commands/trigger | chargers:commands | Käynnistää BootNotification, Heartbeat, StatusNotification tai MeterValues. |
POST | /v2/admin/chargers/:chargerId/commands/unlock | chargers:commands | Avaa positiivisen connectorId-arvon lukituksen. |
POST | /v2/admin/chargers/:chargerId/commands/composite-schedule | chargers:commands | Pyytää yhdistelmäaikataulun arvoille connectorId, durationSeconds ja chargingRateUnit. |
Laturilokien kyselyparametrit ovat cursor, limit (oletus 50, enintään 200), from, to, action, direction ja levelId. Lataustapahtumien parametrit ovat page, limit (oletus 25, enintään 100), from, to ja customerId (positiivinen tunniste tai unknown). Yhdistelmäaikataulun historia käyttää cursor, limit (oletus 20, enintään 50) sekä valinnaista connectorId.
Raportit
| Metodi | Polku | Vaadittu käyttöalue | Tarkoitus |
|---|---|---|---|
GET | /v2/admin/reports/data | reports:read | Lukee suodatetut lataustapahtumaraportin tiedot kursorisivutuksella. |
GET | /v2/admin/reports/measurements | reports:read | Lukee rajatut mittausarvot omistetulle tapahtumalle. |
GET | /v2/admin/reports/export | reports:export | Lataa CSV- tai PDF-vienti. |
GET | /v2/admin/reports/schedule | reports:read | Lukee työtilan omistaman vientiajastuksen tai null. |
PUT | /v2/admin/reports/schedule | reports:schedules | Luo tai korvaa työtilan omistaman vientiajastuksen. |
POST | /v2/admin/reports/send | reports:send | Lähettää edellisen UTC-kalenterikuukauden tallennetun viennin sähköpostitse; idempotenssiavain vaaditaan. |
Raporttitietojen ja viennin suodattimet ovat from, to, siteId, chargerId, userId, anonymous ja active. from/to ovat oletuksena viimeisin 90 päivän jakso, eivätkä ne saa kattaa yli 90 päivää. userId ei voi yhdistää arvoon anonymous=true.
- Tietojen sivutus: läpinäkymätön
cursor, oletuslimit=50, enintään 100. - Mittaukset: pakollinen
transactionLogId, läpinäkymätöncursor, oletuslimit=500, enintään 1 000. - Vienti:
format=csv|pdf, oletuscsv, ehdoton raja 2 000 riviä. - Vientivastaukset käyttävät
Content-Disposition: attachment,Cache-Control: private, no-storejaX-Content-Type-Options: nosniff.
Ajastuksen runko:
{
"enabled": true,
"recipientEmail": "reports@example.com",
"format": "csv",
"sendDay": 5,
"sendTime": "08:30"
}
sendDay on 1–28 ja sendTime tulkitaan UTC-ajassa. Ajastin korvaa väliin jääneen ajastetun minuutin kuluvan toimituskuukauden aikana. Ennen luovutusta epäonnistuneet muodostukset yrittävät uudelleen 5 ja 10 minuutin kuluttua, keskeytynyt building-varaus voidaan ottaa uudelleen 30 minuutin jälkeen ja automaattinen toimitus päättyy kolmeen yritykseen. Ajastin tallentaa indeterminate juuri ennen SMTP-luovutusta; sekä indeterminate että vanha sending-tila ovat lopullisia, sillä kumman tahansa automaattinen uusinta voisi lähettää liitteen kahdesti. Operaattorien on täsmäytettävä nämä tulokset käsin ennen ajastustilan muuttamista. Jokainen kierros valitsee enintään kymmenen ajastusta, lopettaa töiden käynnistämisen 45 sekunnin aikabudjetin jälkeen ja käyttää rajattuja SMTP-aikakatkaisuja. Työ on oletuksena poissa käytöstä ja on otettava nimenomaisesti käyttöön SMTP:n ja kapasiteetin validoinnin jälkeen. API-ajastuksen omistaa työtila eikä se lainaa tunnuksen luoneen ihmisen identiteettiä.
Tariffit
| Metodi | Polku | Vaadittu käyttöalue | Tarkoitus |
|---|---|---|---|
GET | /v2/admin/tariffs | tariffs:read | Luettelee tariffit ja hakutiedot. |
POST | /v2/admin/tariffs | tariffs:create | Luo tariffi. |
GET | /v2/admin/tariffs/:tariffId | tariffs:read | Lukee yhden omistetun tariffin ja sen komponentit. |
PATCH | /v2/admin/tariffs/:tariffId | tariffs:update | Päivittää tariffimäärityksen. |
PUT | /v2/admin/tariffs/:tariffId/components | tariffs:components | Korvaa enintään 256 komponenttia atomisesti. |
DELETE | /v2/admin/tariffs/:tariffId | tariffs:delete | Poistaa käyttämättömän tariffin. |
GET | /v2/admin/tariffs/:tariffId/market-prices | tariffs:read | Lukee tariffin omistaman tarjousalueen hinnat numeerisesta startsAt-arvosta alkaen. |
GET | /v2/admin/chargers/:chargerId/tariff-assignments | chargers:tariff-assignments + tariffs:read | Luettelee laturin tariffimääritykset. |
POST | /v2/admin/chargers/:chargerId/tariff-assignments | chargers:tariff-assignments + tariffs:assign | Määritä tariffi. |
PATCH | /v2/admin/chargers/:chargerId/tariff-assignments/:assignmentId | chargers:tariff-assignments + tariffs:assign | Korvaa määrityksen kohteen. |
DELETE | /v2/admin/chargers/:chargerId/tariff-assignments/:assignmentId | chargers:tariff-assignments + tariffs:assign | Poistaa määrityksen. |
Tariffin runko sisältää name, täsmälleen yhden arvoista currencyId, currencyCode tai currency, valinnaisen biddingZoneId sekä tax. Määrityksen runko on:
{ "tariffId": 17, "connectorId": 0 }
Määritystä luotaessa tariffia sovelletaan kaikkiin fyysisiin liittimiin, jos connectorId jätetään pois tai sen arvoksi asetetaan nimenomaisesti 0. Määrityspäivitykset kohdistuvat yhteen tallennettuun määritykseen, joten niissä vaaditaan nimenomainen positiivinen fyysinen connectorId; 0 hylätään.
Komponentti sisältää typeId, seasonId, price, valinnaisen priority sekä valinnaiset voimassaolorajat kuukaudelle, viikonpäivälle ja tunnille.
Latausprofiilit
| Metodi | Polku | Vaadittu käyttöalue | Tarkoitus |
|---|---|---|---|
GET | /v2/admin/charging-profiles | chargingProfiles:read | Luettelee profiilit ja omistetut hakutiedot. |
POST | /v2/admin/charging-profiles | chargingProfiles:create | Luo profiilin ja valinnaisen ajastuksen. |
GET | /v2/admin/charging-profiles/:profileId | chargingProfiles:read | Lukee yhden omistetun profiilin. |
PATCH | /v2/admin/charging-profiles/:profileId | chargingProfiles:update | Korvaa profiilin metatiedot. |
PUT | /v2/admin/charging-profiles/:profileId/schedule | chargingProfiles:update | Korvaa ajastuksen 1–256 jaksolla. |
DELETE | /v2/admin/charging-profiles/:profileId | chargingProfiles:delete | Tyhjentää asennetut määritykset ja poistaa vasta hyväksyttyjen OCPP-tulosten ja uudelleenvalidoinnin jälkeen. |
GET | /v2/admin/chargers/:chargerId/profile-assignments | chargers:profile-assignments + chargingProfiles:read | Luettelee laturin profiilimääritykset. |
POST | /v2/admin/chargers/:chargerId/profile-assignments | chargers:profile-assignments + chargingProfiles:assign | Määrittää ja synkronoi profiilin. |
PATCH | /v2/admin/chargers/:chargerId/profile-assignments/:assignmentId | chargers:profile-assignments + chargingProfiles:assign | Korvaa ja synkronoi määrityksen. |
DELETE | /v2/admin/chargers/:chargerId/profile-assignments/:assignmentId | chargers:profile-assignments + chargingProfiles:assign | Tyhjentää ja poistaa määrityksen. |
Profiilin metatietokentät ovat label, locationId, stackLevel, purposeId, kindId, valinnaiset recurrencyKindId, validFrom, validTo, startSchedule, rateUnitId ja valinnainen minChargingRate. Ajastusjakso sisältää startPeriod, limit ja valinnaisen numberOfPhases. Määrityksen runko sisältää profileId ja connectorId (oletus 0).
Profiilien poisto ja tehonhallinnan korvaaminen voivat odottaa laturin kuittausta. Hylkäys, aikakatkaisu tai samanaikainen tilamuutos palauttaa ristiriidan ja säilyttää tietokantamäärityksen sen sijaan, että laturin väitettäisiin tyhjentyneen.
Käyttäjät, kutsut, RFID, käyttöoikeudet ja rajat
| Metodi | Polku | Vaadittu käyttöalue | Tarkoitus |
|---|---|---|---|
GET | /v2/admin/users | users:read | Luettelee jäsenet ja kutsut. |
POST | /v2/admin/users | users:create | Liittää jo rekisteröidyn asiakkaan arvoilla email ja työtilan name. |
POST | /v2/admin/users/invitations | users:invitations + users:access; myös users:rfid, kun RFID annetaan | Kutsuu tuntemattoman sähköpostin tai liittää olemassa olevan asiakkaan. |
POST | /v2/admin/users/invitations/resend | users:invitations | Lähettää uudelleen arvolla { "email": "..." } vastaanottajan odotusaikaa noudattaen. |
DELETE | /v2/admin/users/invitations | users:invitations | Peruu kutsun; sähköposti pysyy JSON-rungossa. |
GET | /v2/admin/users/:userId | users:read + reports:read | Lukee käyttäjätiedot ja rajatut lataustapahtumayhteenvedot. |
PATCH | /v2/admin/users/:userId | users:update | Asettaa työtilakohtaisen näyttöarvon name. |
DELETE | /v2/admin/users/:userId | users:delete | Poistaa jäsenen ja siihen liittyvät työtilan käyttöoikeudet ristiriitojen sallimissa rajoissa. |
GET | /v2/admin/users/:userId/vehicles | users:read | Luettelee omistetut ajoneuvot. |
GET | /v2/admin/users/:userId/rfids | users:read | Luettelee RFID-metatiedot peitetyillä UID-arvoilla. |
POST | /v2/admin/users/:userId/rfids | users:rfid | Lisää uid ja valinnaisen name; vastaukset näyttävät vain peitetyn UID:n. |
PATCH | /v2/admin/users/:userId/rfids/:rfidId | users:rfid | Päivittää RFID:n nimen. |
DELETE | /v2/admin/users/:userId/rfids/:rfidId | users:rfid | Poistaa RFID:n ja synkronoi siihen liittyvät laturit. |
GET | /v2/admin/users/:userId/access | users:read | Lukee laturin myönnetyt käyttöoikeudet. |
PUT | /v2/admin/users/:userId/access | users:access | Korvaa käyttöoikeuden arvoilla allChargers ja yksilöllinen chargerIds. |
DELETE | /v2/admin/users/:userId/access/:accessId | users:access | Peruu yhden käyttöoikeusrivin. |
GET | /v2/admin/users/:userId/limits | users:read | Luettelee latausrajat. |
POST | /v2/admin/users/:userId/limits | users:limits | Luo limitTypeId, energyValue ja/tai timeValue. |
PATCH | /v2/admin/users/:userId/limits/:limitId | users:limits | Päivittää yhden tai useamman rajakentän. |
DELETE | /v2/admin/users/:userId/limits/:limitId | users:limits | Poistaa rajan. |
GET | /v2/admin/chargers/:chargerId/local-users | chargers:read + users:read | Luettelee laturin paikalliset käyttäjät ja odottavat kutsut. |
POST | /v2/admin/chargers/:chargerId/local-users | chargers:local-users + users:access | Lisää olemassa oleva customerId valinnaisella expiresAt-arvolla. |
POST | /v2/admin/chargers/:chargerId/local-users/invitations | chargers:local-users + users:invitations + users:access | Lisää tai kutsu sähköpostitse. |
DELETE | /v2/admin/chargers/:chargerId/local-users/invitations | chargers:local-users + users:invitations | Peruu paikallisen käyttäjän kutsun sähköpostin perusteella. |
PATCH | /v2/admin/chargers/:chargerId/local-users/:localUserId | chargers:local-users + users:access | Asettaa null-arvon sallivan expiresAt-kentän. |
DELETE | /v2/admin/chargers/:chargerId/local-users/:localUserId | chargers:local-users + users:access | Poistaa paikallisen käyttöoikeuden ja synkronoi OCPP-tilan. |
Ajoneuvosivutus ja status=members-käyttäjäsivutus käyttävät positiivista numeerista cursor-arvoa. Kutsusivut käyttävät läpinäkymätöntä i2.*-kursoria, kun taas status=all käyttää ensimmäisen sivun jälkeen läpinäkymätöntä a2.*-yhdistelmäkursoria (numeerinen kursori kelpaa vain vanhan jäsenvirran jatkona). Käyttäjähaku toimitetaan X-Admin-User-Search-pyyntöotsakkeessa, jotta sähköpostiosoitteet eivät päädy URL-osoitteisiin tai käyttölokeihin. limit on oletuksena 50 ja enintään 100; käyttäjäluettelo tukee status=all|members|invitations. Käsittele kaikkia palautettuja kursoreita läpinäkymättöminä ja palauta ne muuttamattomina.
Suora käyttäjän luonti ei luo salasanaa, kirjautumisidentiteettiä tai istuntoa. Se liittää vain jo rekisteröidyn asiakkaan. Käytä kutsuendpointia tuntemattomalle sähköpostille. Suojattua Tagless-järjestelmäkäyttäjää ei voi muokata näiden reittien kautta.
Esimerkit
Aseta arvot komentotulkissa tulostamatta tunnusta:
export ADMIN_API_BASE_URL="https://api.example.com"
export WORKSPACE_TOKEN="<read from secret manager>"
Kohteiden luettelo:
curl --fail-with-body \
-H "Authorization: Bearer ${WORKSPACE_TOKEN}" \
"${ADMIN_API_BASE_URL}/v2/admin/sites"
Luo kohde turvallisesti:
curl --fail-with-body \
-X POST \
-H "Authorization: Bearer ${WORKSPACE_TOKEN}" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: site-main-depot-v1" \
--data '{
"name":"Main depot",
"description":null,
"addressLine1":"1 Example Street",
"addressLine2":null,
"postalCode":"LV-1001",
"city":"Riga",
"state":null,
"countryId":1,
"timezoneId":1,
"latitude":56.9496,
"longitude":24.1052
}' \
"${ADMIN_API_BASE_URL}/v2/admin/sites"
Lataa CSV-raportti nimenomaiselta UTC-ajanjaksolta:
curl --fail-with-body \
-H "Authorization: Bearer ${WORKSPACE_TOKEN}" \
-o report.csv \
"${ADMIN_API_BASE_URL}/v2/admin/reports/export?format=csv&from=2026-07-01T00%3A00%3A00Z&to=2026-08-01T00%3A00%3A00Z"
Tarkoitukselliset rajaukset
Työtilatunnus-API ei tarjoa toimintoja, jotka edellyttävät ihmisidentiteettiä tai laajempaa toimivaltaa. Näihin kuuluvat:
- tunnusten luonti, paljastus, kierrätys tai peruminen toisella tunnuksella;
- kirjautuminen, salasanan palautus, istunnot, ihmisroolien tai -oikeuksien delegointi ja työtilan omistusmuutokset;
- työtilan luonti/poisto ja laskutustilin jäsenyys;
- maksuasetukset, Stripen käyttöönotto, tilaukset, laskut ja isännän laskutus;
- isännän laajuiset tukitoiminnot ja tarjoajien webhookit;
- ihmisten ilmoitukset, navigoinnin uudelleenohjaukset, brändiresurssit ja kehitys-/testireitit.