# API-Referenz: Terminals

## Terminals auflisten

`GET /v1/terminals`

Gekoppelte PAX IM30.

Antwort 200:

```json
{
  "object": "list",
  "data": [
    {
      "id": "trm_6b0c2d8e1f3a5b7c",
      "object": "terminal",
      "name": "string",
      "model": "string",
      "location_id": "string",
      "integration_id": "string",
      "external_terminal_id": "string",
      "paired": true,
      "online": true,
      "app_version": "string",
      "last_seen_at": "2026-10-25T08:30:00.000Z",
      "created_at": "string"
    }
  ],
  "has_more": true
}
```

## Terminal anlegen

`POST /v1/terminals`

Neues PAX IM30 für einen Standort. Antwort enthält den Wartungs-PIN (nur einmal sichtbar).

Parameter:

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

Anfrage:

```json
{
  "name": "PAX IM30",
  "location_id": "string",
  "integration_id": "string",
  "external_terminal_id": "string",
  "maintenance_pin": "string"
}
```

Antwort 201:

```json
{
  "id": "trm_6b0c2d8e1f3a5b7c",
  "object": "terminal",
  "name": "string",
  "model": "string",
  "location_id": "string",
  "integration_id": "string",
  "external_terminal_id": "string",
  "paired": true,
  "online": true,
  "app_version": "string",
  "last_seen_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}
```

## Freika-Terminals

`GET /v1/terminals/available`

Terminals im verbundenen Freika-Konto zur Auswahl beim Koppeln.

Antwort 200:

```json
{}
```

## Terminal ändern

`PATCH /v1/terminals/{id}`

Name, Standort, Freika-Terminal, Wartungs-PIN.

Parameter:

- `id` (path, string, Pflicht)

Anfrage:

```json
{
  "name": "PAX IM30",
  "location_id": "string",
  "integration_id": "string",
  "external_terminal_id": "string",
  "maintenance_pin": "string"
}
```

Antwort 200:

```json
{
  "id": "trm_6b0c2d8e1f3a5b7c",
  "object": "terminal",
  "name": "string",
  "model": "string",
  "location_id": "string",
  "integration_id": "string",
  "external_terminal_id": "string",
  "paired": true,
  "online": true,
  "app_version": "string",
  "last_seen_at": "2026-10-25T08:30:00.000Z",
  "created_at": "string"
}
```

## Terminal entfernen

`DELETE /v1/terminals/{id}`

Die App muss danach neu gekoppelt werden.

Parameter:

- `id` (path, string, Pflicht)

Antwort 200:

```json
{
  "id": "string",
  "object": "string",
  "deleted": true
}
```

## Kopplungscode

`POST /v1/terminals/{id}/pairing_codes`

Code und QR-Inhalt zum Koppeln der Terminal-App (15 Minuten gültig).

Parameter:

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

Antwort 201:

```json
{}
```
