Aller au contenu
Référence API

Verbindungen

8 endpoints

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

Verbindungen auflisten

get/v1/integrations

Verbundene Hersteller (Easee) und Zahlungskonten (zahls.ch, Freika). Zugangsdaten werden nie ausgegeben.

Réponse 200IntegrationList

NomTypeDescription
objectobligatoire"list"
dataobligatoireIntegration[]
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/integrations \n  -H "Authorization: Bearer lh_test_…"
Réponse 200
{
  "object": "list",
  "data": [
    {
      "id": "int_4a7c2b9d0e1f3a5c",
      "object": "integration",
      "kind": "easee",
      "livemode": true,
      "name": "string",
      "status": "pending",
      "public_info": {},
      "webhook_url": "string",
      "last_error": "string",
      "last_checked_at": "2026-10-25T08:30:00.000Z",
      "last_synced_at": "2026-10-25T08:30:00.000Z",
      "created_at": "string"
    }
  ],
  "has_more": true
}

Easee verbinden

post/v1/integrations/easee

Meldet sich einmal mit dem Easee-Login an. Ladehase speichert nur die Tokens (verschlüsselt), nie das Passwort, und importiert sofort alle Charger. Neue Charger sind zuerst deaktiviert.

Paramètres

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

Requête

NomTypeDescription
userNameobligatoirestring
passwordobligatoirestring

Réponse 201Integration

NomTypeDescription
idobligatoirestringID mit Präfix «int_»
objectobligatoire"integration"
kindobligatoire"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemodeobligatoireboolean
nameobligatoirestring
statusobligatoire"pending" | "active" | "needs_attention" | "disconnected"
public_infoobligatoireobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlobligatoirestring | nullBei zahls.ch einzutragende Webhook-URL
last_errorobligatoirestring | null
last_checked_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/easee \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"userName":"string","password":"string"}'
Réponse 201
{
  "id": "int_4a7c2b9d0e1f3a5c",
  "object": "integration",
  "kind": "easee",
  "livemode": true,
  "name": "string",
  "status": "pending",
  "public_info": {},
  "webhook_url": "string",
  "last_error": "string",
  "last_checked_at": "2026-10-25T08:30:00.000Z",
  "last_synced_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

zahls.ch-Konto verbinden

post/v1/integrations/zahls

Verbindet das eigene zahls.ch-Konto mit Instanzname und API-Schlüssel. Das Geld fliesst direkt auf dieses Konto.

Paramètres

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

Requête

NomTypeDescription
instanceobligatoirestring
apiKeyobligatoirestring

Réponse 201Integration

NomTypeDescription
idobligatoirestringID mit Präfix «int_»
objectobligatoire"integration"
kindobligatoire"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemodeobligatoireboolean
nameobligatoirestring
statusobligatoire"pending" | "active" | "needs_attention" | "disconnected"
public_infoobligatoireobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlobligatoirestring | nullBei zahls.ch einzutragende Webhook-URL
last_errorobligatoirestring | null
last_checked_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/zahls \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"instance":"string","apiKey":"string"}'
Réponse 201
{
  "id": "int_4a7c2b9d0e1f3a5c",
  "object": "integration",
  "kind": "easee",
  "livemode": true,
  "name": "string",
  "status": "pending",
  "public_info": {},
  "webhook_url": "string",
  "last_error": "string",
  "last_checked_at": "2026-10-25T08:30:00.000Z",
  "last_synced_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

Freika-Konto verbinden

post/v1/integrations/freika

Verbindet das eigene Freika-Konto mit einem API-Schlüssel (Rechte «schreiben» und «Terminals»). Nötig für das PAX IM30.

Paramètres

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

Requête

NomTypeDescription
apiKeyobligatoirestring

Réponse 201Integration

NomTypeDescription
idobligatoirestringID mit Präfix «int_»
objectobligatoire"integration"
kindobligatoire"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemodeobligatoireboolean
nameobligatoirestring
statusobligatoire"pending" | "active" | "needs_attention" | "disconnected"
public_infoobligatoireobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlobligatoirestring | nullBei zahls.ch einzutragende Webhook-URL
last_errorobligatoirestring | null
last_checked_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/freika \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"apiKey":"string"}'
Réponse 201
{
  "id": "int_4a7c2b9d0e1f3a5c",
  "object": "integration",
  "kind": "easee",
  "livemode": true,
  "name": "string",
  "status": "pending",
  "public_info": {},
  "webhook_url": "string",
  "last_error": "string",
  "last_checked_at": "2026-10-25T08:30:00.000Z",
  "last_synced_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

Testgeräte anlegen

post/v1/integrations/test

Legt simulierte Ladepunkte und Testzahlungen an. Ideal zum Ausprobieren ohne Hardware und für automatisierte Tests (Schlüssel lh_test_).

Paramètres

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

Réponse 201Integration

NomTypeDescription
idobligatoirestringID mit Präfix «int_»
objectobligatoire"integration"
kindobligatoire"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemodeobligatoireboolean
nameobligatoirestring
statusobligatoire"pending" | "active" | "needs_attention" | "disconnected"
public_infoobligatoireobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlobligatoirestring | nullBei zahls.ch einzutragende Webhook-URL
last_errorobligatoirestring | null
last_checked_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/test \n  -H "Authorization: Bearer lh_test_…"
Réponse 201
{
  "id": "int_4a7c2b9d0e1f3a5c",
  "object": "integration",
  "kind": "easee",
  "livemode": true,
  "name": "string",
  "status": "pending",
  "public_info": {},
  "webhook_url": "string",
  "last_error": "string",
  "last_checked_at": "2026-10-25T08:30:00.000Z",
  "last_synced_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

Verbindung prüfen

post/v1/integrations/{id}/test

Prüft die Zugangsdaten beim Hersteller oder Zahlungspartner und aktualisiert den Status.

Paramètres

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

Réponse 200Integration

NomTypeDescription
idobligatoirestringID mit Präfix «int_»
objectobligatoire"integration"
kindobligatoire"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemodeobligatoireboolean
nameobligatoirestring
statusobligatoire"pending" | "active" | "needs_attention" | "disconnected"
public_infoobligatoireobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlobligatoirestring | nullBei zahls.ch einzutragende Webhook-URL
last_errorobligatoirestring | null
last_checked_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/{id}/test \n  -H "Authorization: Bearer lh_test_…"
Réponse 200
{
  "id": "int_4a7c2b9d0e1f3a5c",
  "object": "integration",
  "kind": "easee",
  "livemode": true,
  "name": "string",
  "status": "pending",
  "public_info": {},
  "webhook_url": "string",
  "last_error": "string",
  "last_checked_at": "2026-10-25T08:30:00.000Z",
  "last_synced_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}

Geräte importieren

post/v1/integrations/{id}/sync

Liest alle Geräte beim Hersteller und legt neue Standorte, Geräte, Ladepunkte und QR-Codes an.

Paramètres

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

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 POST https://api.ladehase.com/v1/integrations/{id}/sync \n  -H "Authorization: Bearer lh_test_…"
Réponse 200
{}

Verbindung trennen

delete/v1/integrations/{id}

Löscht die Zugangsdaten. Geräte dieses Herstellers werden deaktiviert.

Paramètres

NomEmplacementType
idobligatoireCheminstring

Réponse 200Integration

NomTypeDescription
idobligatoirestringID mit Präfix «int_»
objectobligatoire"integration"
kindobligatoire"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemodeobligatoireboolean
nameobligatoirestring
statusobligatoire"pending" | "active" | "needs_attention" | "disconnected"
public_infoobligatoireobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlobligatoirestring | nullBei zahls.ch einzutragende Webhook-URL
last_errorobligatoirestring | null
last_checked_atobligatoirestring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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 DELETE https://api.ladehase.com/v1/integrations/{id} \n  -H "Authorization: Bearer lh_test_…"
Réponse 200
{
  "id": "int_4a7c2b9d0e1f3a5c",
  "object": "integration",
  "kind": "easee",
  "livemode": true,
  "name": "string",
  "status": "pending",
  "public_info": {},
  "webhook_url": "string",
  "last_error": "string",
  "last_checked_at": "2026-10-25T08:30:00.000Z",
  "last_synced_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}