Skip to content
API reference

Verbindungen

8 endpoints

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

Verbindungen auflisten

get/v1/integrations

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

Response 200IntegrationList

NameTypeDescription
objectrequired"list"
datarequiredIntegration[]
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/integrations \n  -H "Authorization: Bearer lh_test_…"
Response 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.

Parameters

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

Request

NameTypeDescription
userNamerequiredstring
passwordrequiredstring

Response 201Integration

NameTypeDescription
idrequiredstringID mit Präfix «int_»
objectrequired"integration"
kindrequired"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemoderequiredboolean
namerequiredstring
statusrequired"pending" | "active" | "needs_attention" | "disconnected"
public_inforequiredobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlrequiredstring | nullBei zahls.ch einzutragende Webhook-URL
last_errorrequiredstring | null
last_checked_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/easee \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"userName":"string","password":"string"}'
Response 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.

Parameters

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

Request

NameTypeDescription
instancerequiredstring
apiKeyrequiredstring

Response 201Integration

NameTypeDescription
idrequiredstringID mit Präfix «int_»
objectrequired"integration"
kindrequired"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemoderequiredboolean
namerequiredstring
statusrequired"pending" | "active" | "needs_attention" | "disconnected"
public_inforequiredobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlrequiredstring | nullBei zahls.ch einzutragende Webhook-URL
last_errorrequiredstring | null
last_checked_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/zahls \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"instance":"string","apiKey":"string"}'
Response 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.

Parameters

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

Request

NameTypeDescription
apiKeyrequiredstring

Response 201Integration

NameTypeDescription
idrequiredstringID mit Präfix «int_»
objectrequired"integration"
kindrequired"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemoderequiredboolean
namerequiredstring
statusrequired"pending" | "active" | "needs_attention" | "disconnected"
public_inforequiredobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlrequiredstring | nullBei zahls.ch einzutragende Webhook-URL
last_errorrequiredstring | null
last_checked_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/freika \n  -H "Authorization: Bearer lh_test_…" \n  -H "Content-Type: application/json" \n  -d '{"apiKey":"string"}'
Response 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_).

Parameters

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

Response 201Integration

NameTypeDescription
idrequiredstringID mit Präfix «int_»
objectrequired"integration"
kindrequired"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemoderequiredboolean
namerequiredstring
statusrequired"pending" | "active" | "needs_attention" | "disconnected"
public_inforequiredobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlrequiredstring | nullBei zahls.ch einzutragende Webhook-URL
last_errorrequiredstring | null
last_checked_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/test \n  -H "Authorization: Bearer lh_test_…"
Response 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.

Parameters

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

Response 200Integration

NameTypeDescription
idrequiredstringID mit Präfix «int_»
objectrequired"integration"
kindrequired"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemoderequiredboolean
namerequiredstring
statusrequired"pending" | "active" | "needs_attention" | "disconnected"
public_inforequiredobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlrequiredstring | nullBei zahls.ch einzutragende Webhook-URL
last_errorrequiredstring | null
last_checked_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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/integrations/{id}/test \n  -H "Authorization: Bearer lh_test_…"
Response 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.

Parameters

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

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

Verbindung trennen

delete/v1/integrations/{id}

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

Parameters

NameInType
idrequiredPathstring

Response 200Integration

NameTypeDescription
idrequiredstringID mit Präfix «int_»
objectrequired"integration"
kindrequired"easee" | "zaptec" | "ocpp" | "goe" | "shelly" | "mock" | "zahls" | "freika"Hersteller oder Zahlungspartner. «mock» = Testmodus.
livemoderequiredboolean
namerequiredstring
statusrequired"pending" | "active" | "needs_attention" | "disconnected"
public_inforequiredobjectÖffentliche Angaben ohne Geheimnisse
webhook_urlrequiredstring | nullBei zahls.ch einzutragende Webhook-URL
last_errorrequiredstring | null
last_checked_atrequiredstring | nullZeitpunkt (ISO 8601, UTC)
last_synced_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 DELETE https://api.ladehase.com/v1/integrations/{id} \n  -H "Authorization: Bearer lh_test_…"
Response 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"
}