# API-Referenz: Verbindungen

## Verbindungen auflisten

`GET /v1/integrations`

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

Antwort 200:

```json
{
  "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.

Parameter:

- `idempotency-key` (header, string): Wiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)

Anfrage:

```json
{
  "userName": "string",
  "password": "string"
}
```

Antwort 201:

```json
{
  "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.

Parameter:

- `idempotency-key` (header, string): Wiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)

Anfrage:

```json
{
  "instance": "string",
  "apiKey": "string"
}
```

Antwort 201:

```json
{
  "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.

Parameter:

- `idempotency-key` (header, string): Wiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)

Anfrage:

```json
{
  "apiKey": "string"
}
```

Antwort 201:

```json
{
  "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_).

Parameter:

- `idempotency-key` (header, string): Wiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)

Antwort 201:

```json
{
  "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.

Parameter:

- `id` (path, string, Pflicht)
- `idempotency-key` (header, string): Wiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)

Antwort 200:

```json
{
  "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.

Parameter:

- `id` (path, string, Pflicht)
- `idempotency-key` (header, string): Wiederholbare Anfragen ohne doppelte Wirkung (24 Stunden)

Antwort 200:

```json
{}
```

## Verbindung trennen

`DELETE /v1/integrations/{id}`

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

Parameter:

- `id` (path, string, Pflicht)

Antwort 200:

```json
{
  "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"
}
```
