Skip to content
API reference

Sitzungen

6 endpoints

The endpoint descriptions come directly from the API and are in German.

Sitzungen auflisten

get/v1/sessions

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

Parameters

NameInType
limitoptionalQueryinteger
starting_afteroptionalQuerystring
stateoptionalQuerystring
device_idoptionalQuerystring
location_idoptionalQuerystring
access_grant_idoptionalQuerystring
fromoptionalQuerystring (date-time)
tooptionalQuerystring (date-time)

Response 200SessionList

NameTypeDescription
objectrequired"list"
datarequiredSession[]
has_morerequiredboolean

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X GET https://api.ladehase.com/v1/sessions \n  -H "Authorization: Bearer lh_test_…"
Response 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.

Parameters

NameInType
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Headerstring

Request

NameTypeDescription
device_idrequiredstring
access_grant_idoptionalstring
metadataoptionalobject

Response 201Session

NameTypeDescription
idrequiredstringID mit Präfix «ses_»
objectrequired"session"
livemoderequiredboolean
staterequiredstringZustand gemäss Zustandsautomat (created … settled)
moderequired"reservation" | "prepaid" | "access"
channelrequired"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idrequiredstring
device_idrequiredstring
connector_idrequiredstring
currencyrequiredstring
authorized_amountrequiredintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountrequiredintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountrequiredintegerBelasteter Betrag in Rappen
refunded_amountrequiredintegerZurückerstatteter Betrag in Rappen
vat_amountrequiredintegerMWST-Anteil in Rappen
energy_whrequiredintegerGeladene Energie in Wh
idle_minutesrequiredinteger
stop_reasonrequiredstring | null
receipt_numberrequiredstring | null
started_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
ended_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
settled_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
created_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
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":{}}'
Response 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.

Parameters

NameInType
idrequiredPathstring

Response 200Session

NameTypeDescription
idrequiredstringID mit Präfix «ses_»
objectrequired"session"
livemoderequiredboolean
staterequiredstringZustand gemäss Zustandsautomat (created … settled)
moderequired"reservation" | "prepaid" | "access"
channelrequired"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idrequiredstring
device_idrequiredstring
connector_idrequiredstring
currencyrequiredstring
authorized_amountrequiredintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountrequiredintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountrequiredintegerBelasteter Betrag in Rappen
refunded_amountrequiredintegerZurückerstatteter Betrag in Rappen
vat_amountrequiredintegerMWST-Anteil in Rappen
energy_whrequiredintegerGeladene Energie in Wh
idle_minutesrequiredinteger
stop_reasonrequiredstring | null
receipt_numberrequiredstring | null
started_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
ended_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
settled_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
created_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X GET https://api.ladehase.com/v1/sessions/{id} \n  -H "Authorization: Bearer lh_test_…"
Response 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.

Parameters

NameInType
idrequiredPathstring
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Headerstring

Response 200Session

NameTypeDescription
idrequiredstringID mit Präfix «ses_»
objectrequired"session"
livemoderequiredboolean
staterequiredstringZustand gemäss Zustandsautomat (created … settled)
moderequired"reservation" | "prepaid" | "access"
channelrequired"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idrequiredstring
device_idrequiredstring
connector_idrequiredstring
currencyrequiredstring
authorized_amountrequiredintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountrequiredintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountrequiredintegerBelasteter Betrag in Rappen
refunded_amountrequiredintegerZurückerstatteter Betrag in Rappen
vat_amountrequiredintegerMWST-Anteil in Rappen
energy_whrequiredintegerGeladene Energie in Wh
idle_minutesrequiredinteger
stop_reasonrequiredstring | null
receipt_numberrequiredstring | null
started_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
ended_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
settled_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
created_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
curl -X POST https://api.ladehase.com/v1/sessions/{id}/stop \n  -H "Authorization: Bearer lh_test_…"
Response 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).

Parameters

NameInType
idrequiredPathstring

Response 200Object

Possible errors

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

Rückerstatten

post/v1/sessions/{id}/refund

Voll oder teilweise (`amount` in Rappen).

Parameters

NameInType
idrequiredPathstring
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)Headerstring

Request

NameTypeDescription
amountoptionalinteger
reasonoptionalstring

Response 200Session

NameTypeDescription
idrequiredstringID mit Präfix «ses_»
objectrequired"session"
livemoderequiredboolean
staterequiredstringZustand gemäss Zustandsautomat (created … settled)
moderequired"reservation" | "prepaid" | "access"
channelrequired"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idrequiredstring
device_idrequiredstring
connector_idrequiredstring
currencyrequiredstring
authorized_amountrequiredintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountrequiredintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountrequiredintegerBelasteter Betrag in Rappen
refunded_amountrequiredintegerZurückerstatteter Betrag in Rappen
vat_amountrequiredintegerMWST-Anteil in Rappen
energy_whrequiredintegerGeladene Energie in Wh
idle_minutesrequiredinteger
stop_reasonrequiredstring | null
receipt_numberrequiredstring | null
started_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
ended_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
settled_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
created_atrequiredstring

Possible errors

  • 400 Anfrage ungültig
  • 401 Nicht angemeldet
  • 403 Berechtigung fehlt
  • 404 Nicht gefunden
  • 409 Zustand passt nicht
  • 429 Zu viele Anfragen
Example
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"}'
Response 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"
}