> ## 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.

# Webhooks und Benachrichtigungen

> So richten Sie Webhook-Benachrichtigungen für Echtzeit-Updates zu Bestellungen und Rezepten ein

# Webhooks und Benachrichtigungen

Webhooks ermöglichen es RxScale, Ihr System in Echtzeit zu benachrichtigen, wenn etwas passiert -- zum Beispiel eine Bestellstatusänderung, eine Rezeptunterschrift oder der Versand einer Bestellung durch eine Apotheke. Diese Seite erklärt, wie Sie Webhooks einrichten und effektiv nutzen.

## Webhooks einrichten

Um Webhook-Benachrichtigungen zu erhalten:

<Steps>
  <Step title="Ihren Endpoint vorbereiten">
    Erstellen Sie einen HTTP-Endpoint auf Ihrem Server, der POST-Anfragen empfangen kann. Dieser Endpoint sollte öffentlich erreichbar sein und eingehende Webhook-Payloads verarbeiten können.
  </Step>

  <Step title="Ihren Webhook registrieren">
    Verwenden Sie die Management API, um Ihre Webhook-Endpoint-URL zu registrieren. Sie geben an, welche Ereignistypen Sie empfangen möchten.
  </Step>

  <Step title="Ihre Einrichtung überprüfen">
    RxScale sendet ein Testereignis an Ihren Endpoint. Stellen Sie sicher, dass Ihr Server mit einem 200-Statuscode antwortet, um die Funktionsfähigkeit zu bestätigen.
  </Step>

  <Step title="Ereignisse empfangen">
    Nach der Registrierung empfängt Ihr Endpoint Webhook-Benachrichtigungen für die von Ihnen abonnierten Ereignistypen.
  </Step>
</Steps>

## Verfügbare Ereignistypen

RxScale sendet Webhook-Benachrichtigungen für eine Vielzahl von Ereignissen. Hier sind die häufigsten:

| Ereignistyp                 | Wann er ausgelöst wird                                                                   |
| --------------------------- | ---------------------------------------------------------------------------------------- |
| Order created               | Eine neue Bestellung wurde aufgegeben.                                                   |
| Order updated               | Der Status einer Bestellung hat sich geändert (zum Beispiel auf „waiting for pharmacy“). |
| Prescription approved       | Ein Arzt hat ein Rezept genehmigt.                                                       |
| Prescription signed         | Ein Rezept wurde elektronisch unterschrieben.                                            |
| Prescription declined       | Ein Arzt hat ein Rezept abgelehnt.                                                       |
| Prescription doctor changed | Der einer Verordnung zugeordnete Arzt hat sich geändert.                                 |
| Pharmacy order updated      | Eine Apotheke hat den Status einer Bestellung aktualisiert (zum Beispiel versandt).      |

Eine vollständige Liste der Ereignistypen und deren Payload-Formate finden Sie in der Dokumentation [Webhook-Ereignisse](/de/webhooks/events).

### Änderungen der Arztzuordnung einer Verordnung

Wenn Sie Pub/Sub-Benachrichtigungen abonniert haben, kann RxScale ein eigenes Ereignis veröffentlichen, sobald sich der einer Verordnung zugeordnete Arzt ändert. Abonnieren Sie den Benachrichtigungstyp `PRESCRIPTION_DOCTOR_CHANGED`, um diese Updates zu erhalten.

Die Benachrichtigung wird als Verordnungsereignis gesendet. Dabei ist `category` auf `prescription` und `event` auf `doctor_changed` gesetzt:

```json theme={null}
{
  "category": "prescription",
  "event": "doctor_changed",
  "data": {
    "shop_identifier": "telemedicine-shop",
    "external_order_id": "order-100045",
    "external_fulfillment_id": "fulfillment-100045-1",
    "external_provider_identifier": "rxscale",
    "doctor_assignment_reason": "ADMIN_ASSIGNED",
    "old_doctor_uid": null,
    "new_doctor_uid": "doctor_123",
    "prescription": {
      "uid": "prescription_123",
      "created_at": "2026-05-21T14:30:00Z",
      "status": "pending",
      "doctor": {
        "uid": "doctor_123",
        "first_name": "Maria",
        "last_name": "Schneider"
      },
      "patient_data": {
        "first_name": "Alex",
        "last_name": "Muster",
        "date_of_birth": "1988-04-12"
      },
      "documents": [
        {
          "uid": "document_123",
          "type": "prescription",
          "status": "available"
        }
      ],
      "items": [
        {
          "uid": "prescription_item_123",
          "shop_sku_uid": "shop_sku_123",
          "fulfillment_line_item_external_id": "line-item-1"
        }
      ]
    }
  }
}
```

Das Objekt `data` enthält die öffentliche Verordnungsnutzlast sowie die Felder `external_provider_identifier`, `doctor_assignment_reason`, `old_doctor_uid` und `new_doctor_uid`. `old_doctor_uid` ist `null`, wenn der Verordnung vor der Änderung kein Arzt zugeordnet war. `new_doctor_uid` ist `null`, wenn die Zuordnung entfernt wurde.

`doctor_assignment_reason` beschreibt, warum RxScale die Zuordnung geändert hat. Stabile Beispiele für Gründe sind `ADMIN_ASSIGNED`, `ORDER_ATTRIBUTE_ASSIGNED`, `QUEUE_ASSIGNED`, `PRESCRIPTION_REQUEUED`, `DOCTOR_REQUEUED_PRESCRIPTIONS`, `STALE_ASSIGNMENT_CLEARED` und `ON_HOLD_DOCTOR_REMOVED`.

## Bestellstatusänderungen überwachen

Webhooks sind der beste Weg, um über den Fortschritt Ihrer Bestellungen informiert zu bleiben. Anstatt die API wiederholt abzufragen, erhalten Sie eine Benachrichtigung in dem Moment, in dem sich etwas ändert.

Ein typischer Überwachungs-Workflow:

1. Ein Patient gibt eine Bestellung in Ihrem Shop auf.
2. Sie erhalten einen Webhook, wenn die Bestellung erstellt wird.
3. Sie erhalten einen Webhook, wenn der Arzt das Rezept genehmigt.
4. Sie erhalten einen Webhook, wenn das Rezept unterschrieben wird.
5. Sie erhalten einen Webhook, wenn die Bestellung an eine Apotheke gesendet wird.
6. Sie erhalten einen Webhook, wenn die Apotheke die Bestellung versendet.
7. Sie erhalten einen Webhook, wenn die Bestellung abgeschlossen wird.

Jede Benachrichtigung enthält die relevanten Bestell- oder Rezeptdaten, sodass Sie Ihre Systeme aktualisieren und Ihre Patienten in jedem Schritt informieren können.

## Best Practices für die Webhook-Verarbeitung

<AccordionGroup>
  <Accordion title="Schnell antworten">
    Ihr Endpoint sollte so schnell wie möglich mit einem 200-Statuscode antworten. Verarbeiten Sie den Webhook-Payload bei Bedarf asynchron -- blockieren Sie die Antwort nicht, während Sie langwierige Operationen durchführen.
  </Accordion>

  <Accordion title="Duplikate behandeln">
    In seltenen Fällen kann dasselbe Webhook-Ereignis mehr als einmal zugestellt werden. Gestalten Sie Ihren Handler idempotent, was bedeutet, dass die zweimalige Verarbeitung desselben Ereignisses keine Probleme verursachen sollte.
  </Accordion>

  <Accordion title="Payload verifizieren">
    RxScale signiert Webhook-Payloads, damit Sie deren Authentizität überprüfen können. Verifizieren Sie die Signatur immer, bevor Sie den Payload verarbeiten. Weitere Details finden Sie unter [Webhook-Sicherheit](/de/webhooks/security).
  </Accordion>

  <Accordion title="Auf Ausfälle überwachen">
    Wenn Ihr Endpoint nicht erreichbar ist oder Fehler zurückgibt, werden Webhook-Zustellungen erneut versucht. Richten Sie ein Monitoring ein, um zu erkennen, wenn Ihr Endpoint ausfällt, damit Sie Probleme schnell beheben können.
  </Accordion>

  <Accordion title="Webhook-Ereignisse protokollieren">
    Führen Sie ein Protokoll aller empfangenen Webhook-Ereignisse. Dies ist von unschätzbarem Wert für die Fehlersuche und das Verständnis der Ereignisabfolge für eine bestimmte Bestellung.
  </Accordion>
</AccordionGroup>

## Verwandte Themen

* [Webhooks-Übersicht](/de/webhooks/overview) -- Technische Details zur Funktionsweise von Webhooks.
* [Webhook-Ereignisse](/de/webhooks/events) -- Vollständige Liste der Ereignistypen und Payload-Formate.
* [Webhook-Sicherheit](/de/webhooks/security) -- So verifizieren Sie Webhook-Signaturen.
