Zum Hauptinhalt springen

Apothekenbestellungen

Verwalten Sie Apothekenbestellungen — sehen Sie eingehende Rezeptbestellungen ein und aktualisieren Sie deren Status während der Bearbeitung.

Bestellungen auflisten

page
integer
Standard:"0"
Seitennummer (0-indiziert)
limit
integer
Standard:"50"
Anzahl der Einträge pro Seite (max. 200)
status
string
Nach Status filtern (z. B. waiting for pharmacy, on-hold, in-progress, completed)
Suchbegriff. Suche ohne Berücksichtigung der Groß-/Kleinschreibung als Substring nach Shop-Bestellname (z. B. #1234), Apotheken-Bestellname, Patientenname, Bestell-UID und Apotheken-Bestell-UID.
pharmacy_uid
string
Erforderlich für gruppenweite API-Schlüssel
GET /v1/external-pharmacy-api-v1/pharmacy_orders/

Antwort

{
  "data": [
    {
      "uid": "po-abc123",
      "status": "waiting for pharmacy",
      "name": "#1001",
      "shop_order_name": "#1234",
      "external_status": "OPEN",
      "pharmacy": {
        "uid": "ph-xyz",
        "display_name": "City Pharmacy"
      },
      "order": {
        "uid": "ord-123",
        "delivery_address": { ... },
        "invoice_address": { ... },
        "priority": 5
      },
      "order_items": [
        {
          "uid": "oi-789",
          "amount": 1,
          "sku": {
            "uid": "sku-456",
            "display_name": "Medication X 100mg",
            "pzn": "12345678"
          },
          "total_paid_amount": 1299
        }
      ],
      "shop_shipping_methods": [
        {
          "uid": "shop-shipping-method-uid",
          "display_name": "DHL Standard",
          "external_id": "shopify-standard",
          "pharmacy_mapping": {
            "pharmacy_uid": "pharmacy-uid",
            "shipping_method_identifier_for_pharmacy": "DHL_STANDARD"
          }
        }
      ],
      "shipping_costs_amount": 499,
      "shipping_costs_currency": "EUR"
    }
  ],
  "totalRegistries": 42,
  "totalPages": 1
}

Felder der Bestellantwort

shop_order_name
string | null
Lesbarer Shop-Bestellname von der ursprünglichen Verkaufsplattform (z. B. #1234). null für Bestellungen ohne verknüpfte Shop-Bestellung.
shop_shipping_methods
array
Shop-Versandarten, die mit der verbundenen Shop-Bestellung verknüpft sind. Jeder Eintrag enthält die Shop-Versandart (uid, display_name, external_id) und die apothekenspezifische Zuordnung, sofern sie konfiguriert wurde.
shop_shipping_methods[].pharmacy_mapping
object | null
Apothekenspezifische Zuordnung für diese Shop-Versandart. Wenn vorhanden, enthält sie pharmacy_uid und shipping_method_identifier_for_pharmacy.
shipping_costs_amount
integer | null
Versandkosten in Cent, zum Beispiel 499 für EUR 4,99. Dieser Wert ist von den Preisen der Produktpositionen getrennt.
shipping_costs_currency
string | null
ISO-Währungscode der Versandkosten, zum Beispiel EUR.
order.priority
integer
Prioritätshinweis für die bevorzugte Bearbeitung. Höher = dringender. 0 bedeutet keine besondere Priorität.
Shop-Versandarten stammen aus verbundenen Shop-Bestellungen. Apotheker können in den Einstellungen des Apothekentools apothekenspezifische Bezeichner für jede Shop-Versandart konfigurieren. Wenn noch keine Zuordnung vorhanden ist, gibt die API die Shop-Versandart trotzdem mit pharmacy_mapping: null zurück. Nachdem ein Apotheker eine Zuordnung gespeichert hat, enthalten zukünftige Bestellantworten den konfigurierten shipping_method_identifier_for_pharmacy.

Bestelldetails abrufen

GET /v1/external-pharmacy-api-v1/pharmacy_orders/{pharmacy_order_uid}
Gibt die vollständige Bestellung einschließlich Patientendaten, Arztdaten und Rezeptdatei (falls verfügbar) zurück.

Antwort (zusätzliche Felder)

{
  "uid": "po-abc123",
  "shop_order_name": null,
  "patient_data": {
    "uid": "pat-123",
    "display_name": "Max Mustermann",
    "email": "max@example.com",
    "date_of_birth": "1990-01-15"
  },
  "doctor_data": {
    "uid": "doc-456",
    "display_name": "Dr. Schmidt"
  },
  "prescription_file": {
    "filename": "prescription_001.pdf",
    "content_base64": "JVBERi0xLjQK..."
  },
  "shop_shipping_methods": [
    {
      "uid": "shop-shipping-method-uid",
      "display_name": "DHL Standard",
      "external_id": "shopify-standard",
      "pharmacy_mapping": null
    }
  ],
  "shipping_costs_amount": 499,
  "shipping_costs_currency": "EUR",
  "prepaid": 1
}

Bestellstatus aktualisieren

PATCH /v1/external-pharmacy-api-v1/pharmacy_orders/{pharmacy_order_uid}/status

Anfragekörper

{
  "status": "in-progress"
}
status
string
erforderlich
Neuer Bestellstatus. Zulässige Werte siehe Tabelle unten.
comment
string
Freitext-Begründung für die Statusänderung. Erforderlich (und darf nicht leer sein), wenn die Bestellung aus einem anderen Status in on-hold überführt wird — der Kommentar wird zur Beschreibung des automatisch erstellten Admin-Klärfall-Threads. Für alle anderen Statusübergänge wird das Feld ignoriert.

Zulässige Statuswerte

StatusBeschreibung
waiting for pharmacyBestellung befindet sich in Ihrer Warteschlange und wartet auf Bearbeitung
pending reviewBestellung wird geprüft
on-holdBestellung ist pausiert, während Apotheke und Admin-Team einen Klärfall bearbeiten
in-progressBestellung wird vorbereitet
ready_for_pickupBestellung ist verpackt und bereit zur Abholung oder zum Versand
cancelledBestellung wurde storniert
Setzen Sie completed nicht über diesen Endpoint. Verwenden Sie den dedizierten Complete-Order-Endpoint unten, damit RxScale die Bestellung abschließen, den Bestand reduzieren und die zugehörigen Ereignisse veröffentlichen kann.

Bestellung auf on-hold setzen

Wenn Sie eine Bestellung in on-hold überführen, müssen Sie einen comment mit der Begründung angeben. RxScale eröffnet automatisch einen Admin-Klärfall-Thread und übernimmt Ihren Kommentar als Thread-Beschreibung, damit das Admin-Team den nötigen Kontext für die Nachverfolgung hat.
curl -X PATCH "https://api.rxscale.com/v1/external-pharmacy-api-v1/pharmacy_orders/po-abc123/status" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "on-hold",
    "comment": "Bis 01.06.2026 nicht lieferbar"
  }'
Eine Anfrage ohne comment oder mit einem Kommentar, der nur aus Leerzeichen besteht, wird mit einem 400-Status und folgendem Body abgelehnt:
{
  "error": {
    "comment": ["A comment is required when setting an order on hold"]
  }
}
Wiederholte on-hold-PATCH-Anfragen für eine Bestellung, die bereits den Status on-hold hat, benötigen keinen neuen Kommentar — sie werden als idempotente Wiederholungen behandelt.

Bestellung abschließen

PATCH /v1/external-pharmacy-api-v1/pharmacy_orders/{pharmacy_order_uid}/complete_order
Schließt die Apothekenbestellung ab, reduziert den Bestand der enthaltenen Pharmacy SKUs und veröffentlicht Benachrichtigungen zur Bestellaktualisierung. Erfordert die Berechtigung orders_write.
pharmacy_uid
string
Erforderlich für gruppenweite API-Schlüssel

Anfragekörper

{
  "tracking_links": [
    {
      "tracking_link": "https://tracking.example.com/parcel/123",
      "carrier": "DHL"
    }
  ]
}
tracking_links ist optional. Wenn angegeben, wird der erste Tracking-Link mit der Versandaktualisierung weitergegeben.
curl -X PATCH "https://api.rxscale.com/v1/external-pharmacy-api-v1/pharmacy_orders/po-abc123/complete_order" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "tracking_links": [
      {
        "tracking_link": "https://tracking.example.com/parcel/123",
        "carrier": "DHL"
      }
    ]
  }'

Antwort

{
  "uid": "po-abc123",
  "status": "completed",
  "name": "#1001",
  "external_status": "OPEN",
  "order_items": [
    {
      "uid": "oi-789",
      "amount": 1,
      "sku": {
        "uid": "sku-456",
        "display_name": "Medication X 100mg",
        "pzn": "12345678"
      }
    }
  ],
  "shop_shipping_methods": [
    {
      "uid": "shop-shipping-method-uid",
      "display_name": "DHL Standard",
      "external_id": "shopify-standard",
      "pharmacy_mapping": {
        "pharmacy_uid": "pharmacy-uid",
        "shipping_method_identifier_for_pharmacy": "DHL_STANDARD"
      }
    }
  ],
  "shipping_costs_amount": 499,
  "shipping_costs_currency": "EUR"
}