> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rxscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentifizierung

> So authentifizieren Sie sich bei den RxScale APIs

# Authentifizierung

Alle RxScale APIs verwenden API-Schlüssel-Authentifizierung. Fügen Sie Ihren API-Schlüssel bei jeder Anfrage im `X-API-Key`-Header hinzu.

## API-Schlüssel-Header

```bash theme={null}
curl -X GET "https://api.rxscale.com/v1/external_pharmacy_api/health/" \
  -H "X-API-Key: your-api-key-here"
```

### Alternative Public API-Header

Die Public API akzeptiert auch `X-RxScale-Authorization` als Alternative zu `X-API-Key`. Dies wird aus Gründen der Abwärtskompatibilität mit bestehenden Integrationen unterstützt.

```bash theme={null}
curl -X GET "https://api.rxscale.com/v2/public-api/health/" \
  -H "X-RxScale-Authorization: your-api-key-here"
```

Sie können denselben API-Schlüssel auch als Bearer-Token im `Authorization`-Header senden.

```bash theme={null}
curl -X GET "https://api.rxscale.com/v2/public-api/health/" \
  -H "Authorization: Bearer your-api-key-here"
```

<Note>
  Neue Integrationen sollten `X-API-Key` verwenden, sofern Ihre Plattform keine
  Bearer-Token-Authentifizierung erfordert. Die Header `X-RxScale-Authorization`
  und `Authorization: Bearer` werden nur auf Public API-Endpoints unterstützt.
</Note>

## API-Schlüssel-Typen

### Pharmacy API-Schlüssel

Pharmacy API-Schlüssel können auf folgende Bereiche beschränkt werden:

* **Eine einzelne Apotheke** — Der Schlüssel kann nur auf Daten dieser bestimmten Apotheke zugreifen.
* **Eine Apothekengruppe** — Der Schlüssel kann auf Daten aller Apotheken in der Gruppe zugreifen. Bei Verwendung eines gruppenweiten Schlüssels müssen Sie den Query-Parameter `pharmacy_uid` angeben, um festzulegen, für welche Apotheke Sie handeln.

### Management API-Schlüssel

Management API-Schlüssel sind auf eine **Organisation** beschränkt. Sie können auf Daten aller Entitäten innerhalb dieser Organisation zugreifen.

## Berechtigungen

Jeder API-Schlüssel verfügt über eine Reihe von Berechtigungen, die steuern, auf welche Endpoints zugegriffen werden kann. Häufige Berechtigungen sind:

| Berechtigung        | Beschreibung                        |
| ------------------- | ----------------------------------- |
| `orders_read`       | Bestellungen auflisten und anzeigen |
| `orders_write`      | Bestellstatus aktualisieren         |
| `stock_read`        | SKUs und Lagerbestände auflisten    |
| `stock_write`       | Lagerbestände aktualisieren         |
| `prescription:read` | Rezeptdaten anzeigen                |
| `product:read`      | Produktkatalog anzeigen             |
| `webhooks_read`     | Webhook-Abonnements auflisten       |
| `webhooks_write`    | Webhooks registrieren und verwalten |

## API-Schlüssel erstellen

### Als Admin (Management API & Public API)

1. Melden Sie sich im **Admin Tool** an
2. Navigieren Sie zu **Einstellungen** → **API-Schlüssel**
3. Klicken Sie auf **API-Schlüssel erstellen**
4. Geben Sie einen Anzeigenamen für den Schlüssel ein
5. Wählen Sie die gewünschten Berechtigungen (z.B. `order:read`, `product:read`, `prescription:read`)
6. Klicken Sie auf **Erstellen** — der Schlüssel wird einmalig angezeigt. Kopieren und sicher speichern.

<Warning>
  Der API-Schlüssel wird nur einmal bei der Erstellung angezeigt. Wenn Sie ihn verlieren, müssen Sie einen neuen erstellen.
</Warning>

### Als Apotheker (External Pharmacy API)

1. Melden Sie sich im **Apotheken-Tool** an
2. Navigieren Sie zu **Einstellungen** → **API-Schlüssel**
3. Erstellen Sie einen neuen Schlüssel für Ihre Apotheke oder Apothekengruppe
4. Wählen Sie die benötigten Berechtigungen (z.B. `orders_read`, `orders_write`, `stock_read`)

<Note>
  Apotheken-API-Schlüssel können auf eine einzelne Apotheke beschränkt oder für eine gesamte Apothekengruppe gültig sein. Gruppenweite Schlüssel erfordern den Parameter `pharmacy_uid` bei jeder Anfrage.
</Note>

## Fehlerantworten

Wenn die Authentifizierung fehlschlägt, erhalten Sie eine der folgenden Antworten:

| Statuscode | Beschreibung                                                                  |
| ---------- | ----------------------------------------------------------------------------- |
| `401`      | Fehlender oder ungültiger API-Schlüssel                                       |
| `403`      | Gültiger API-Schlüssel, aber unzureichende Berechtigungen für diesen Endpoint |
| `404`      | Ressource nicht gefunden oder mit Ihrem Schlüssel nicht zugänglich            |

<Warning>
  Aus Sicherheitsgründen gibt RxScale `404 Not Found` anstelle von `403 Forbidden` zurück, wenn Sie versuchen, auf eine Ressource außerhalb Ihres Bereichs zuzugreifen. Dies verhindert die Aufzählung von Ressourcen.
</Warning>
