Zum Inhalt springen
API-Referenz

Sitzungen

6 Endpunkte

Sitzungen auflisten

get/v1/sessions

Ladungen, neueste zuerst. Filter: state (kommagetrennt), device_id, location_id, access_grant_id, from, to.

Parameter

NameOrtTyp
limitoptionalAbfrageinteger
starting_afteroptionalAbfragestring
stateoptionalAbfragestring
device_idoptionalAbfragestring
location_idoptionalAbfragestring
access_grant_idoptionalAbfragestring
fromoptionalAbfragestring (date-time)
tooptionalAbfragestring (date-time)

Antwort 200SessionList

NameTypBeschreibung
objectPflicht"list"
dataPflichtSession[]
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/sessions \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{
  "object": "list",
  "data": [
    {
      "id": "ses_1a2b3c4d5e6f7a8b9c0d",
      "object": "session",
      "livemode": true,
      "state": "string",
      "mode": "reservation",
      "channel": "qr",
      "location_id": "string",
      "device_id": "string",
      "connector_id": "string",
      "currency": "string",
      "authorized_amount": 1235,
      "amount": 1235,
      "captured_amount": 1235,
      "refunded_amount": 1235,
      "vat_amount": 1235,
      "energy_wh": 0,
      "idle_minutes": 0,
      "stop_reason": "string",
      "receipt_number": "string",
      "started_at": "2026-10-25T08:30:00.000Z",
      "ended_at": "2026-10-25T08:30:00.000Z",
      "settled_at": "2026-10-25T08:30:00.000Z",
      "created_at": "string"
    }
  ],
  "has_more": true
}

Sitzung starten

post/v1/sessions

Startet eine Ladung ohne Zahlung über die API (z. B. für eigene Apps oder Weiterverrechnung). Mit `access_grant_id` gilt der Sondertarif des Zugangs.

Parameter

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

Anfrage

NameTypBeschreibung
device_idPflichtstring
access_grant_idoptionalstring
metadataoptionalobject

Antwort 201Session

NameTypBeschreibung
idPflichtstringID mit Präfix «ses_»
objectPflicht"session"
livemodePflichtboolean
statePflichtstringZustand gemäss Zustandsautomat (created … settled)
modePflicht"reservation" | "prepaid" | "access"
channelPflicht"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idPflichtstring
device_idPflichtstring
connector_idPflichtstring
currencyPflichtstring
authorized_amountPflichtintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountPflichtintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountPflichtintegerBelasteter Betrag in Rappen
refunded_amountPflichtintegerZurückerstatteter Betrag in Rappen
vat_amountPflichtintegerMWST-Anteil in Rappen
energy_whPflichtintegerGeladene Energie in Wh
idle_minutesPflichtinteger
stop_reasonPflichtstring | null
receipt_numberPflichtstring | null
started_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
ended_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
settled_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
created_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/sessions \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"device_id":"string","access_grant_id":"string","metadata":{}}'
Antwort 201
{
  "id": "ses_1a2b3c4d5e6f7a8b9c0d",
  "object": "session",
  "livemode": true,
  "state": "string",
  "mode": "reservation",
  "channel": "qr",
  "location_id": "string",
  "device_id": "string",
  "connector_id": "string",
  "currency": "string",
  "authorized_amount": 1235,
  "amount": 1235,
  "captured_amount": 1235,
  "refunded_amount": 1235,
  "vat_amount": 1235,
  "energy_wh": 0,
  "idle_minutes": 0,
  "stop_reason": "string",
  "receipt_number": "string",
  "started_at": "2026-10-25T08:30:00.000Z",
  "ended_at": "2026-10-25T08:30:00.000Z",
  "settled_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

Sitzung abrufen

get/v1/sessions/{id}

Eine Ladung mit Beträgen, Energie und Preisaufstellung.

Parameter

NameOrtTyp
idPflichtPfadstring

Antwort 200Session

NameTypBeschreibung
idPflichtstringID mit Präfix «ses_»
objectPflicht"session"
livemodePflichtboolean
statePflichtstringZustand gemäss Zustandsautomat (created … settled)
modePflicht"reservation" | "prepaid" | "access"
channelPflicht"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idPflichtstring
device_idPflichtstring
connector_idPflichtstring
currencyPflichtstring
authorized_amountPflichtintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountPflichtintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountPflichtintegerBelasteter Betrag in Rappen
refunded_amountPflichtintegerZurückerstatteter Betrag in Rappen
vat_amountPflichtintegerMWST-Anteil in Rappen
energy_whPflichtintegerGeladene Energie in Wh
idle_minutesPflichtinteger
stop_reasonPflichtstring | null
receipt_numberPflichtstring | null
started_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
ended_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
settled_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
created_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/sessions/{id} \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{
  "id": "ses_1a2b3c4d5e6f7a8b9c0d",
  "object": "session",
  "livemode": true,
  "state": "string",
  "mode": "reservation",
  "channel": "qr",
  "location_id": "string",
  "device_id": "string",
  "connector_id": "string",
  "currency": "string",
  "authorized_amount": 1235,
  "amount": 1235,
  "captured_amount": 1235,
  "refunded_amount": 1235,
  "vat_amount": 1235,
  "energy_wh": 0,
  "idle_minutes": 0,
  "stop_reason": "string",
  "receipt_number": "string",
  "started_at": "2026-10-25T08:30:00.000Z",
  "ended_at": "2026-10-25T08:30:00.000Z",
  "settled_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

Sitzung stoppen

post/v1/sessions/{id}/stop

Stoppt die Ladung. Abgerechnet wird automatisch.

Parameter

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

Antwort 200Session

NameTypBeschreibung
idPflichtstringID mit Präfix «ses_»
objectPflicht"session"
livemodePflichtboolean
statePflichtstringZustand gemäss Zustandsautomat (created … settled)
modePflicht"reservation" | "prepaid" | "access"
channelPflicht"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idPflichtstring
device_idPflichtstring
connector_idPflichtstring
currencyPflichtstring
authorized_amountPflichtintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountPflichtintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountPflichtintegerBelasteter Betrag in Rappen
refunded_amountPflichtintegerZurückerstatteter Betrag in Rappen
vat_amountPflichtintegerMWST-Anteil in Rappen
energy_whPflichtintegerGeladene Energie in Wh
idle_minutesPflichtinteger
stop_reasonPflichtstring | null
receipt_numberPflichtstring | null
started_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
ended_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
settled_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
created_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/sessions/{id}/stop \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{
  "id": "ses_1a2b3c4d5e6f7a8b9c0d",
  "object": "session",
  "livemode": true,
  "state": "string",
  "mode": "reservation",
  "channel": "qr",
  "location_id": "string",
  "device_id": "string",
  "connector_id": "string",
  "currency": "string",
  "authorized_amount": 1235,
  "amount": 1235,
  "captured_amount": 1235,
  "refunded_amount": 1235,
  "vat_amount": 1235,
  "energy_wh": 0,
  "idle_minutes": 0,
  "stop_reason": "string",
  "receipt_number": "string",
  "started_at": "2026-10-25T08:30:00.000Z",
  "ended_at": "2026-10-25T08:30:00.000Z",
  "settled_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

Zeitleiste einer Sitzung

get/v1/sessions/{id}/events

Alle Zustandswechsel und Messwerte (Ladekurve).

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/sessions/{id}/events \n  -H "Authorization: Bearer lh_test_…"
Antwort 200
{}

Rückerstatten

post/v1/sessions/{id}/refund

Voll oder teilweise (`amount` in Rappen).

Parameter

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

Anfrage

NameTypBeschreibung
amountoptionalinteger
reasonoptionalstring

Antwort 200Session

NameTypBeschreibung
idPflichtstringID mit Präfix «ses_»
objectPflicht"session"
livemodePflichtboolean
statePflichtstringZustand gemäss Zustandsautomat (created … settled)
modePflicht"reservation" | "prepaid" | "access"
channelPflicht"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idPflichtstring
device_idPflichtstring
connector_idPflichtstring
currencyPflichtstring
authorized_amountPflichtintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountPflichtintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountPflichtintegerBelasteter Betrag in Rappen
refunded_amountPflichtintegerZurückerstatteter Betrag in Rappen
vat_amountPflichtintegerMWST-Anteil in Rappen
energy_whPflichtintegerGeladene Energie in Wh
idle_minutesPflichtinteger
stop_reasonPflichtstring | null
receipt_numberPflichtstring | null
started_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
ended_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
settled_atPflichtstring | nullZeitpunkt (ISO 8601, UTC)
created_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/sessions/{id}/refund \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"amount":0,"reason":"string"}'
Antwort 200
{
  "id": "ses_1a2b3c4d5e6f7a8b9c0d",
  "object": "session",
  "livemode": true,
  "state": "string",
  "mode": "reservation",
  "channel": "qr",
  "location_id": "string",
  "device_id": "string",
  "connector_id": "string",
  "currency": "string",
  "authorized_amount": 1235,
  "amount": 1235,
  "captured_amount": 1235,
  "refunded_amount": 1235,
  "vat_amount": 1235,
  "energy_wh": 0,
  "idle_minutes": 0,
  "stop_reason": "string",
  "receipt_number": "string",
  "started_at": "2026-10-25T08:30:00.000Z",
  "ended_at": "2026-10-25T08:30:00.000Z",
  "settled_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}