Zum Inhalt springen
API-Referenz

Tarife

8 Endpunkte

Tarife auflisten

get/v1/tariffs

Aktive Tarife mit aktueller Version.

Antwort 200TariffList

NameTypBeschreibung
objectPflicht"list"
dataPflichtTariff[]
has_morePflichtboolean

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X GET https://api.ladehase.com/v1/tariffs \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{
  "object": "list",
  "data": [
    {
      "id": "trf_5e2a8b1c9d0f3e7a",
      "object": "tariff",
      "name": "string",
      "description": "string",
      "version": 0,
      "version_id": "string",
      "rules": {},
      "archived": true,
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "has_more": true
}

Tarif anlegen

post/v1/tariffs

Tarifregeln: `energyPrice` in Hundertstel-Rappen pro kWh (4500 = 45 Rappen), `startFee` und `serviceFee` in Rappen, `timeWindows` für zeitabhängige Preise, `idleFee` für die Standzeitgebühr, `maxAmount` als Höchstbetrag. Preise inkl. MWST.

Parameter

NameOrtTyp
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Kopfzeilestring

Anfrage

NameTypBeschreibung
namePflichtstring
descriptionoptionalstring | null
rulesPflichtobject

Antwort 201Tariff

NameTypBeschreibung
idPflichtstringID mit Präfix «trf_»
objectPflicht"tariff"
namePflichtstring
descriptionPflichtstring | null
versionPflichtinteger
version_idPflichtstring | null
rulesPflichtobject | nullTarifregeln, siehe TariffRules
archivedPflichtboolean
created_atPflichtstring
updated_atPflichtstring

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X POST https://api.ladehase.com/v1/tariffs \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"name":"string","description":"string","rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"}}'
Antwort 201
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Tarif abrufen

get/v1/tariffs/{id}

Ein Tarif mit Regeln der aktuellen Version.

Parameter

NameOrtTyp
idPflichtPfadstring

Antwort 200Tariff

NameTypBeschreibung
idPflichtstringID mit Präfix «trf_»
objectPflicht"tariff"
namePflichtstring
descriptionPflichtstring | null
versionPflichtinteger
version_idPflichtstring | null
rulesPflichtobject | nullTarifregeln, siehe TariffRules
archivedPflichtboolean
created_atPflichtstring
updated_atPflichtstring

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X GET https://api.ladehase.com/v1/tariffs/{id} \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Tarif ändern

patch/v1/tariffs/{id}

Neue Regeln ergeben eine neue Version. Laufende Ladungen behalten ihre Version.

Parameter

NameOrtTyp
idPflichtPfadstring

Anfrage

NameTypBeschreibung
nameoptionalstring
descriptionoptionalstring | null
rulesoptionalobject

Antwort 200Tariff

NameTypBeschreibung
idPflichtstringID mit Präfix «trf_»
objectPflicht"tariff"
namePflichtstring
descriptionPflichtstring | null
versionPflichtinteger
version_idPflichtstring | null
rulesPflichtobject | nullTarifregeln, siehe TariffRules
archivedPflichtboolean
created_atPflichtstring
updated_atPflichtstring

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X PATCH https://api.ladehase.com/v1/tariffs/{id} \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"name":"string","description":"string","rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"}}'
Antwort 200
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Tarif archivieren

delete/v1/tariffs/{id}

Nur Tarife ohne aktive Geräte.

Parameter

NameOrtTyp
idPflichtPfadstring

Antwort 200Tariff

NameTypBeschreibung
idPflichtstringID mit Präfix «trf_»
objectPflicht"tariff"
namePflichtstring
descriptionPflichtstring | null
versionPflichtinteger
version_idPflichtstring | null
rulesPflichtobject | nullTarifregeln, siehe TariffRules
archivedPflichtboolean
created_atPflichtstring
updated_atPflichtstring

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X DELETE https://api.ladehase.com/v1/tariffs/{id} \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{
  "id": "trf_5e2a8b1c9d0f3e7a",
  "object": "tariff",
  "name": "string",
  "description": "string",
  "version": 0,
  "version_id": "string",
  "rules": {},
  "archived": true,
  "created_at": "string",
  "updated_at": "string"
}

Versionen auflisten

get/v1/tariffs/{id}/versions

Alle Versionen eines Tarifs.

Parameter

NameOrtTyp
idPflichtPfadstring

Antwort 200Object

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X GET https://api.ladehase.com/v1/tariffs/{id}/versions \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{}

Tarifvorschau

post/v1/tariffs/{id}/preview

Beispielbeträge, etwa «So viel kostet eine Ladung mit 20 kWh». Mit `rules` im Body lässt sich ein Entwurf berechnen.

Parameter

NameOrtTyp
idPflichtPfadstring
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Kopfzeilestring

Anfrage

NameTypBeschreibung
rulesoptionalobject
energy_whoptionalinteger[]
power_woptionalinteger
idle_minutesoptionalinteger
start_atoptionalstring (date-time)

Antwort 200Object

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X POST https://api.ladehase.com/v1/tariffs/{id}/preview \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"},"energy_wh":[10000,20000,40000],"power_w":11000,"idle_minutes":0,"start_at":"2026-10-25T08:30:00.000Z"}'
Antwort 200
{}

Vorschau für Entwurf

post/v1/tariffs/preview

Wie die Tarifvorschau, aber ohne gespeicherten Tarif (Regeln im Body).

Parameter

NameOrtTyp
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Kopfzeilestring

Anfrage

NameTypBeschreibung
rulesoptionalobject
energy_whoptionalinteger[]
power_woptionalinteger
idle_minutesoptionalinteger
start_atoptionalstring (date-time)

Antwort 200Object

Mögliche Fehler

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Beispiel
curl -X POST https://api.ladehase.com/v1/tariffs/preview \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"rules":{"currency":"CHF","energyPrice":0,"startFee":0,"serviceFee":0,"timeWindows":[],"idleFee":{"pricePerMinute":0,"graceMinutes":0,"trigger":"after_charging","maxAmount":0,"quietHours":{"from":"string","to":"string"}},"maxAmount":0,"timeZone":"Europe/Zurich"},"energy_wh":[10000,20000,40000],"power_w":11000,"idle_minutes":0,"start_at":"2026-10-25T08:30:00.000Z"}'
Antwort 200
{}