Berechtigungen
Jeder RxScale API-Schlüssel verfügt über eine Reihe von Berechtigungen, die steuern, auf welche Endpoints der Schlüssel zugreifen kann. Diese Seite bietet eine vollständige Referenz aller verfügbaren Berechtigungen, gruppiert nach API.
Funktionsweise der Berechtigungen
Beim Erstellen eines API-Schlüssels weisen Sie ihm eine oder mehrere Berechtigungen zu. Jeder API-Endpoint erfordert eine bestimmte Berechtigung — fehlt dem Schlüssel diese Berechtigung, gibt die Anfrage 403 Permission Denied zurück.
# Ein Schlüssel mit nur `orders_read` kann Bestellungen auflisten...
curl -X GET "https://api.rxscale.com/v1/external-pharmacy-api-v1/pharmacy_orders/" \
-H "X-API-Key: your-api-key-here"
# ...aber keinen Bestellstatus aktualisieren (erfordert `orders_write`)
curl -X PATCH "https://api.rxscale.com/v1/external-pharmacy-api-v1/pharmacy_orders/{uid}/status" \
-H "X-API-Key: your-api-key-here" \
-H "Content-Type: application/json" \
-d '{"status": "in-progress"}'
# Gibt 403 zurück: Permission denied
Berechtigungen werden bei der Erstellung des API-Schlüssels festgelegt. Kontaktieren Sie Ihren RxScale-Kundenbetreuer, um Berechtigungen eines bestehenden Schlüssels zu ändern oder zu erweitern.
External Pharmacy API
Die External Pharmacy API verwendet apothekenspezifische API-Schlüssel. Berechtigungen sind einfache Zeichenketten, die zur Laufzeit geprüft werden.
| Berechtigung | Typ | Endpoints |
|---|
orders_read | Lesen | GET /pharmacy_orders/ — Apothekenbestellungen auflisten |
| | GET /pharmacy_orders/{uid} — Bestelldetails abrufen |
orders_write | Schreiben | PATCH /pharmacy_orders/{uid}/status — Bestellstatus aktualisieren |
stock_read | Lesen | GET /pharmacy_skus/ — Apotheken-SKUs auflisten |
stock_write | Schreiben | PATCH /pharmacy_skus/{uid}/stock — Lagerbestand aktualisieren |
pharmacy_sku_write | Schreiben | PATCH /pharmacy_skus/{uid} — SKU aktualisieren (Preis, Bestand, External-ID) |
| | PATCH /pharmacy_skus/{uid}/stock — Lagerbestand aktualisieren |
| | PATCH /pharmacy_skus/{uid}/external_id — External-ID aktualisieren |
webhooks_read | Lesen | GET /webhooks/ — Webhook-Abonnements auflisten |
webhooks_write | Schreiben | POST /webhooks/ — Webhook registrieren |
| | DELETE /webhooks/{uid} — Webhook entfernen |
Der Endpoint PATCH /pharmacy_skus/{uid}/stock akzeptiert entweder stock_write oder pharmacy_sku_write. Wenn Ihr Schlüssel eine der beiden Berechtigungen besitzt, ist die Anfrage erfolgreich. Alle anderen SKU-Schreib-Endpoints erfordern ausdrücklich pharmacy_sku_write.
Management API
Die Management API verwendet organisationsbezogene API-Schlüssel. Berechtigungen folgen der Namenskonvention ressource:aktion und werden über den @require_api_key_permission-Dekorator durchgesetzt.
| Berechtigung | Typ | Endpoints |
|---|
order:read | Lesen | GET /orders/{uid} — Bestelldetails abrufen |
prescription:read | Lesen | GET /prescriptions/{uid} — Rezeptdetails abrufen |
| | Schaltet Rezeptdaten in Bestellantworten frei (in Kombination mit order:read) |
product:read | Lesen | GET /products/ — Produkte mit verknüpften SKU- und Shop-Daten auflisten |
doctor:read | Lesen | GET /doctors/ — Ärzte auflisten |
doctor_statistics:read | Lesen | GET /doctors/{uid}/statistics — Rezeptstatistiken eines Arztes abrufen |
patient:read | Lesen | GET /patients/?email={email} — Patient nach E-Mail suchen |
| | GET /patients/{uid} — Patientendetails abrufen |
| | GET /patients/{uid}/intent/{intent} — Intent-Rückgabecode abrufen |
waiting_room:read | Lesen | GET /waiting-room/{uid}/status — Status eines Wartezimmereintrags abrufen |
waiting_room:write | Schreiben | POST /waiting-room/register — Patient im Wartezimmer anmelden |
| | DELETE /waiting-room/{uid} — Wartezimmeranmeldung stornieren |
wallet_pass_template:read | Lesen | GET /wallet-passes/templates — Wallet-Pass-Vorlagen auflisten |
wallet_pass:read | Lesen | GET /wallet-passes/ — Wallet-Pässe auflisten |
wallet_pass_push_notification:write | Schreiben | POST /wallet-passes/push-notifications — Push-Benachrichtigungen senden |
Wenn ein API-Schlüssel order:read, aber nicht prescription:read besitzt, werden Rezeptdaten aus den Bestellantworten entfernt. Fügen Sie prescription:read hinzu, um vollständige Rezeptdetails in den Bestelldaten zu erhalten.
Benachrichtigungs-Abonnements
Die Endpoints für Benachrichtigungs-Abonnements (/notification-subscriptions/) der Management API erfordern keine spezifische granulare Berechtigung — jeder gültige Management-API-Schlüssel kann darauf zugreifen.
| Endpoint | Methode | Beschreibung |
|---|
/notification-subscriptions/ | GET | Webhook-Abonnements auflisten |
/notification-subscriptions/ | POST | Webhook-Abonnement erstellen |
/notification-subscriptions/ | DELETE | Webhook-Abonnement entfernen |
/notification-subscriptions/test | POST | Test-Webhook senden |
Public API
Die Public API verwendet organisationsbezogene API-Schlüssel (mit optionaler Unterstützung des Legacy-Headers X-RxScale-Authorization). Sie ist für Telemedizin-Anbieter konzipiert, um Produkte abzufragen und Checkouts zu erstellen.
| Berechtigung | Typ | Endpoints |
|---|
product:read | Lesen | GET /products/{shop_identifier} — Produkte eines Shops auflisten |
order:read | Lesen | GET /orders/{shop_identifier} — Bestellstatus nach Rezept-UIDs abfragen |
create_prescription_checkout | Schreiben | POST /prescriptions/{shop_identifier} — Rezeptbasierten Checkout erstellen |
create_treatment_checkout | Schreiben | POST /treatments/{shop_identifier} — Behandlungsbasierten Checkout erstellen |
Die Berechtigungen product:read und order:read werden zwischen der Management API und der Public API geteilt. Wenn ein Schlüssel product:read besitzt, kann er sowohl GET /products/ der Management API als auch GET /products/{shop_identifier} der Public API nutzen (vorausgesetzt, der Schlüssel ist für beide gültig).
Auswahl der richtigen Berechtigungen
Befolgen Sie das Prinzip der minimalen Berechtigung — gewähren Sie nur die Berechtigungen, die Ihre Integration tatsächlich benötigt.
Häufige Szenarien
| Anwendungsfall | Empfohlene Berechtigungen |
|---|
| Apothekenbestellverwaltungssystem | orders_read, orders_write |
| Apothekenbestandssynchronisation | stock_read, pharmacy_sku_write |
| Apothekenbestell- und Bestandsverwaltung | orders_read, orders_write, stock_read, pharmacy_sku_write |
| Apotheke mit Webhook-Benachrichtigungen | Zusätzlich webhooks_read, webhooks_write zu den obigen |
| Telemedizin-Anbieter Checkout-Flow | product:read, create_prescription_checkout |
| Telemedizin-Anbieter mit Bestellverfolgung | product:read, create_prescription_checkout, order:read |
| Organisations-Analyse-Dashboard | order:read, prescription:read, doctor:read, doctor_statistics:read, patient:read |
| Wartezimmer-Integration | waiting_room:read, waiting_room:write, patient:read |
| Wallet-Pass-Verwaltung | wallet_pass_template:read, wallet_pass:read, wallet_pass_push_notification:write |
Tipps
- Lesen und Schreiben trennen — Wenn Ihre Integration nur Daten anzeigen muss, fordern Sie ausschließlich Leseberechtigungen an.
- Dedizierte Schlüssel verwenden — Erstellen Sie separate API-Schlüssel für verschiedene Systeme oder Umgebungen, anstatt einen einzigen Schlüssel mit allen Berechtigungen zu teilen.
- Regelmäßig überprüfen — Prüfen Sie Ihre API-Schlüssel regelmäßig und widerrufen Sie nicht mehr verwendete Schlüssel.
- External Pharmacy API vs. Management API — Apothekenspezifische Integrationen sollten die External Pharmacy API mit Apotheken-API-Schlüsseln verwenden. Organisationsweite Integrationen sollten die Management API mit Management-API-Schlüsseln verwenden.