Aller au contenu
Référence API

Sitzungen

6 endpoints

Les descriptions des endpoints proviennent directement de l'API et sont en allemand.

Sitzungen auflisten

get/v1/sessions

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

Paramètres

NomEmplacementType
limitfacultatifRequêteinteger
starting_afterfacultatifRequêtestring
statefacultatifRequêtestring
device_idfacultatifRequêtestring
location_idfacultatifRequêtestring
access_grant_idfacultatifRequêtestring
fromfacultatifRequêtestring (date-time)
tofacultatifRequêtestring (date-time)

Réponse 200SessionList

NomTypeDescription
objectobligatoire"list"
dataobligatoireSession[]
has_moreobligatoireboolean

Erreurs possibles

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

Paramètres

NomEmplacementType
idempotency-keyfacultatifWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)En-têtestring

Requête

NomTypeDescription
device_idobligatoirestring
access_grant_idfacultatifstring
metadatafacultatifobject

Réponse 201Session

NomTypeDescription
idobligatoirestringID mit Präfix «ses_»
objectobligatoire"session"
livemodeobligatoireboolean
stateobligatoirestringZustand gemäss Zustandsautomat (created … settled)
modeobligatoire"reservation" | "prepaid" | "access"
channelobligatoire"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idobligatoirestring
device_idobligatoirestring
connector_idobligatoirestring
currencyobligatoirestring
authorized_amountobligatoireintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountobligatoireintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountobligatoireintegerBelasteter Betrag in Rappen
refunded_amountobligatoireintegerZurückerstatteter Betrag in Rappen
vat_amountobligatoireintegerMWST-Anteil in Rappen
energy_whobligatoireintegerGeladene Energie in Wh
idle_minutesobligatoireinteger
stop_reasonobligatoirestring | null
receipt_numberobligatoirestring | null
started_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
ended_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
settled_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
created_atobligatoirestring

Erreurs possibles

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

Paramètres

NomEmplacementType
idobligatoireCheminstring

Réponse 200Session

NomTypeDescription
idobligatoirestringID mit Präfix «ses_»
objectobligatoire"session"
livemodeobligatoireboolean
stateobligatoirestringZustand gemäss Zustandsautomat (created … settled)
modeobligatoire"reservation" | "prepaid" | "access"
channelobligatoire"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idobligatoirestring
device_idobligatoirestring
connector_idobligatoirestring
currencyobligatoirestring
authorized_amountobligatoireintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountobligatoireintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountobligatoireintegerBelasteter Betrag in Rappen
refunded_amountobligatoireintegerZurückerstatteter Betrag in Rappen
vat_amountobligatoireintegerMWST-Anteil in Rappen
energy_whobligatoireintegerGeladene Energie in Wh
idle_minutesobligatoireinteger
stop_reasonobligatoirestring | null
receipt_numberobligatoirestring | null
started_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
ended_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
settled_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
created_atobligatoirestring

Erreurs possibles

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

Paramètres

NomEmplacementType
idobligatoireCheminstring
idempotency-keyfacultatifWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)En-têtestring

Réponse 200Session

NomTypeDescription
idobligatoirestringID mit Präfix «ses_»
objectobligatoire"session"
livemodeobligatoireboolean
stateobligatoirestringZustand gemäss Zustandsautomat (created … settled)
modeobligatoire"reservation" | "prepaid" | "access"
channelobligatoire"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idobligatoirestring
device_idobligatoirestring
connector_idobligatoirestring
currencyobligatoirestring
authorized_amountobligatoireintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountobligatoireintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountobligatoireintegerBelasteter Betrag in Rappen
refunded_amountobligatoireintegerZurückerstatteter Betrag in Rappen
vat_amountobligatoireintegerMWST-Anteil in Rappen
energy_whobligatoireintegerGeladene Energie in Wh
idle_minutesobligatoireinteger
stop_reasonobligatoirestring | null
receipt_numberobligatoirestring | null
started_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
ended_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
settled_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
created_atobligatoirestring

Erreurs possibles

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

Paramètres

NomEmplacementType
idobligatoireCheminstring

Réponse 200Object

Erreurs possibles

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

Rückerstatten

post/v1/sessions/{id}/refund

Voll oder teilweise (`amount` in Rappen).

Paramètres

NomEmplacementType
idobligatoireCheminstring
idempotency-keyfacultatifWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)En-têtestring

Requête

NomTypeDescription
amountfacultatifinteger
reasonfacultatifstring

Réponse 200Session

NomTypeDescription
idobligatoirestringID mit Präfix «ses_»
objectobligatoire"session"
livemodeobligatoireboolean
stateobligatoirestringZustand gemäss Zustandsautomat (created … settled)
modeobligatoire"reservation" | "prepaid" | "access"
channelobligatoire"qr" | "terminal" | "api" | "rfid" | "access_link"
location_idobligatoirestring
device_idobligatoirestring
connector_idobligatoirestring
currencyobligatoirestring
authorized_amountobligatoireintegerReservierter beziehungsweise bezahlter Betrag in Rappen
amountobligatoireintegerHochgerechneter Betrag (laufend) oder Endbetrag in Rappen
captured_amountobligatoireintegerBelasteter Betrag in Rappen
refunded_amountobligatoireintegerZurückerstatteter Betrag in Rappen
vat_amountobligatoireintegerMWST-Anteil in Rappen
energy_whobligatoireintegerGeladene Energie in Wh
idle_minutesobligatoireinteger
stop_reasonobligatoirestring | null
receipt_numberobligatoirestring | null
started_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
ended_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
settled_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
created_atobligatoirestring

Erreurs possibles

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