Skip to main content

Bestellerfassung

Wenn Ihre Organisation nicht über Shopify verkauft, können Sie mit der Bestellerfassung Bestellungen direkt aus Ihrem eigenen Vertriebskanal in RxScale einspielen — Ihre eigene Website, Ihr Kassensystem oder jedes andere führende System. Alles, was danach passiert (Rezepte, Apotheken-Routing, Fulfillment), funktioniert genau wie bei einer Shopify-Bestellung; nur die Art, wie die Bestellung in RxScale gelangt, unterscheidet sich.
Dies ist für Ihre eigene Integration gedacht, die Bestellungen in Ihre eigene Organisation einspielt. Wenn Sie als Telemedizin-Anbieter in einen der Shops eines RxScale-Kunden integrieren, lesen Sie stattdessen die Public API.

Bevor Sie beginnen

  • Erforderliche Berechtigung: Jeder Endpoint auf dieser Seite erfordert order:write auf Ihrem API-Schlüssel.
  • Ein Shop muss zuerst existieren. Bestellungen werden gegen einen shop_identifier angelegt, den RxScale bei der Einrichtung der Integration für Ihre Organisation konfiguriert. Wenden Sie sich an Ihren RxScale-Ansprechpartner, wenn Sie noch keinen haben.
  • Der Bestellstatus für Ihre eigenen Kunden liegt an anderer Stelle. Diese Seite behandelt nur das Einspielen von Bestellungen. Um den Status einer Bestellung während der Rezeptprüfung und der Apotheken-Abwicklung zu verfolgen, verwenden Sie GET /v1/management/orders — die bereits auf der Seite Bestellungen dokumentierten Lese-Endpoints.

Vier Operationen

Fulfillment-Aufträge sind unveränderlich. Es gibt keinen Endpoint, um die Positionen eines Fulfillment-Auftrags nach dessen Anlage zu ändern. Um zu ändern, was ausgeliefert wird, stornieren Sie den Fulfillment-Auftrag und legen Sie einen neuen mit den korrigierten Positionen an — dadurch wird auch ein neues Rezept für die neuen Positionen angestoßen.

Bestellung anlegen

Erforderliche Berechtigung: order:write Legt eine Bestellung zusammen mit ihrem ersten Fulfillment-Auftrag an (oder mehreren gleichzeitig). Die Anlage erfolgt strikt einmalig pro external_id — siehe Wiederholungen und doppelte Anfragen unten.

Request Body

Customer-Objekt

Adress-Objekt

Money-Objekt

RxScale akzeptiert niemals Dezimal- oder Gleitkommabeträge — Beträge sind immer Ganzzahlen in der kleinsten Währungseinheit (Cent bei EUR), dieselbe Konvention wie im gesamten System.

Fulfillment-Objekt

Ein Fulfillment-Auftrag ist eine Gruppe von Positionen, die gemeinsam versendet und verschrieben wird. Die meisten Bestellungen haben einen; eine Bestellung mit Positionen aus verschiedenen Apotheken oder mit unterschiedlichem Bearbeitungsstand (z. B. eine Position versandbereit, eine noch auf ein Rezept wartend) hat mehrere.

Item-Objekt

Rezept verknüpfen

Eine Position benötigt ein Rezept, sobald ihr Produkt eines erfordert. Es gibt vier Wege, dies zu erfüllen, und jede Position nutzt genau einen davon:
Lassen Sie prescription_uid, prescription_reference und anamnesis_uid alle unbesetzt. Nur gültig für Produkte in Ihrem Katalog, die als nicht rezeptpflichtig konfiguriert sind.
Setzen Sie anamnesis_uid auf die UID einer für diesen Kunden ausgefüllten Fragebogenantwort. Ein RxScale-Arzt prüft sie und stellt das Rezept aus; die Bestellung wechselt bis dahin in den Status waiting for doctor.
Setzen Sie prescription_uid auf die UID eines bereits signierten Rezepts — zum Beispiel eines, das Ihre Integration zuvor über einen anderen RxScale-Ablauf erhalten hat. Das Rezept muss bereits Ihrer Organisation gehören.
Fügen Sie dem eigenen prescriptions-Array des Fulfillment-Auftrags einen Eintrag hinzu: {"id": "your-reference", "pdf_base64": "..."}. Das PDF wird als Teil der Anfrage auf eine qualifizierte elektronische Signatur (QES) geprüft — ein unsigniertes oder ungültiges PDF lehnt die gesamte Bestellung ab, nichts wird angelegt. Setzen Sie in der Position prescription_reference auf dieselbe id, die Sie in prescriptions verwendet haben. RxScale wandelt den Upload automatisch in ein Rezept um und verknüpft es mit der Position; ab diesem Zeitpunkt verhält es sich genau wie die vorherige Option.
Eine Position kann nicht gleichzeitig prescription_uid und prescription_reference setzen — wählen Sie eines. Eine prescription_reference, die keinen Eintrag im eigenen prescriptions-Array dieses Fulfillment-Auftrags benennt, wird abgelehnt, bevor irgendetwas angelegt wird.

Beispielanfrage

Antwort (201 Created)

Fehlerantworten

Wenn eine Anfrage abgelehnt wird, wird nichts angelegt — weder die Bestellung noch ein Rezept aus einem eingebetteten PDF, nichts. Die external_id bleibt frei für einen erneuten Versuch mit einem korrigierten Request Body.

Wiederholungen und doppelte Anfragen

Die Anlage einer Bestellung erfolgt strikt einmalig pro external_id: Ein zweites POST mit derselben external_id liefert immer 409 mit code: "order_already_exists", selbst wenn die Antwort auf die erste Anfrage Sie nie erreicht hat (Timeout, abgebrochene Verbindung). Die 409-Antwort enthält die order_uid der bestehenden Bestellung, sodass die Wiederherstellung nach einer verlorenen Antwort keinen weiteren Aufruf braucht — wiederholen Sie einfach denselben Request Body und lesen Sie order_uid aus der Fehlerantwort:
Alternativ steht dieselbe Information auch über eine Abfrage zur Verfügung:
Dies ist derselbe Bestellungen auflisten-Endpoint, der bereits auf der Seite Bestellungen dokumentiert ist, gefiltert auf höchstens ein Ergebnis.

Fulfillment-Auftrag hinzufügen

string
erforderlich
Ihre external_id für die bestehende Bestellung
Erforderliche Berechtigung: order:write Fügt einer bereits bestehenden Bestellung einen neuen Fulfillment-Auftrag (mit seinen Positionen) hinzu. Der Request Body ist ein einzelnes Fulfillment-Objekt — nicht in eine Bestellung eingebettet. Verwenden Sie dies, wenn Positionen derselben Bestellung zu unterschiedlichen Zeitpunkten verfügbar werden oder auf mehrere Apotheken aufgeteilt werden müssen. Eine external_id eines Fulfillment-Auftrags, die auf dieser Bestellung bereits existiert, wird abgelehnt: Fulfillment-Aufträge können nach ihrer Anlage nicht geändert, sondern nur storniert und ersetzt werden.

Beispielanfrage

Antwort (201 Created)

Fehlerantworten

Bestellung aktualisieren

string
erforderlich
Ihre external_id für die bestehende Bestellung
Erforderliche Berechtigung: order:write Aktualisiert bestellebenen-Felder, die nicht an Positionen gebunden sind. Positionen werden hier nie akzeptiert — sie kommen immer innerhalb eines Fulfillment-Auftrags (siehe Fulfillment-Auftrag hinzufügen); ein Request Body mit einem items-Schlüssel wird abgelehnt.

Request Body

Alle Felder sind optional; senden Sie nur, was Sie ändern möchten.

Beispielanfrage

Antwort (200 OK)

Fehlerantworten

Fulfillment-Auftrag stornieren

string
erforderlich
Ihre external_id für die Bestellung
string
erforderlich
Ihre external_id für den zu stornierenden Fulfillment-Auftrag
Erforderliche Berechtigung: order:write Storniert einen Fulfillment-Auftrag. Dies ist der einzige Weg, den Inhalt eines Fulfillment-Auftrags zu ändern — stornieren Sie ihn und fügen Sie einen neuen Fulfillment-Auftrag hinzu mit den korrigierten Positionen.
Eine Stornierung ist nur möglich, solange das Rezept des Fulfillment-Auftrags (sofern vorhanden) noch keinen endgültigen Status erreicht hat und solange keine Apotheke ihn aktiv bearbeitet. Sobald ein Arzt das Rezept signiert oder ablehnt oder eine Apotheke mit der Bearbeitung der Bestellung beginnt, wird die Stornierung abgelehnt.

Beispielanfrage

Antwort (200 OK)

Fehlerantworten

Wo der Bestellstatus liegt

Diese Seite behandelt das Einspielen von Bestellungen in RxScale. Um eine Bestellung danach zu verfolgen — ihren Status, welches Rezept angehängt ist, welcher Apothekenauftrag angelegt wurde — verwenden Sie GET /v1/management/orders und GET /v1/management/orders/{order_uid}, bereits auf der Seite Bestellungen dokumentiert. Wenn Sie stattdessen als Telemedizin-Anbieter Bestellungen verfolgen, die Sie über die Public API aufgegeben haben, liegt der Bestellstatus für diesen Ablauf in der Public API — nicht hier.