Zum Inhalt

Datenmodelle & Schemas

Kanonische JSON-Strukturen für die PharmaOne API, Webhooks und den Externen Telemedizin-Connector.

Dieselben Definitionen gibt es an zwei Stellen:

Ort Nutzung
OpenAPI-Spezifikation Maschinenlesbar — Swagger UI, Postman, Codegen
Interaktiver API-Explorer Schemas unter Schemas pro Endpunkt

Schema-Index

Allgemein

Schema Beschreibung
Error API-Fehlerbody (error, optional message)
TokenResponse JWT von POST /auth/token
PaginationOffset limit, offset, total
PaginationPage page, pageSize, total, totalPages

Shops & Produkte

Schema Beschreibung
Shop Shop-Listeneintrag
ShopProduct Produkt im Shop-Katalog
ProductListResponse Paginierte Produktliste
ProductUpdate Body für PUT /products/{p1Id}
AddToInventoryRequest Katalogprodukt zum Org-Bestand
ShopProductAttach Produkt einem Shop zuweisen
ShopProductDetach Produkt vom Shop entfernen
ShopProductOverrides Shop-spezifische Overrides

Bestand

Schema Beschreibung
InventoryRow Org-Bestandszeile
InventoryListResponse Wrapper für GET /inventory
InventoryAdjustRequest Bestandsanpassung
InventoryAdjustResponse { status, id }
InventoryLogEntry Einzelner Log-Eintrag

Bestellungen

Schema Beschreibung
OrderSummary Bestellung in der Liste
OrderDetail Vollständige Bestellung mit Positionen
OrderItem Position in Detail (quantity)
OrderListResponse Paginierte Bestellungen
OrderUpsert Bestellung anlegen/upserten
OrderUpsertItem Position beim Upsert — qty
OrderStatusPatch Status-Patch-Body
OrderStatusPatchResponse Ergebnis des Status-Patches

Bestellanfragen

Schema Beschreibung
OrderRequestEnvelope Äußere Hülle
OrderRequestPayload Innerer Payload (shop_id Pflicht)
OrderRequestLineItem Position — quantity
OrderRequestResponse { id, status, message, external_reference }

Rezepte

Schema Beschreibung
Prescription Rezept-Zusammenfassung
PrescriptionListResponse Paginierte Liste
PrescriptionIngestRequest Vollständiger Ingest-Body (Title-Case-Keys)
PrescriptionIngestResponse { id, upsert: "ok" }

Berichte

Schema Beschreibung
ReportStatsResponse Dashboard-Statistiken
ReportPrescriptionStats Rezeptanzahlen nach Status
ReportTopCustomer Top-Kunde
ReportProductPerformanceResponse Produktperformance mit Vergleich
ReportProductPerformanceRow Einzelne Produktzeile
ReportProductSalesResponse Umsatz nach Produkt und Status
ReportProductSalesRow Produkt-Umsatzaufschlüsselung
ReportProductSalesStatusRow Status-Zähler innerhalb einer Produktzeile
ReportPharmaoneResponse Monatlicher Servicegebühren-Bericht
ReportPharmaoneRow Eine Org/Monat-Zeile

Webhooks (ausgehend)

Schema Beschreibung
WebhookEvent Body, den PharmaOne an Ihre URL sendet

Dokumentierter Pfad: POST /webhooks/pharmaone auf Ihrem Server (nicht Manager). Siehe Webhooks.

Externer Telemedizin-Connector

Schema Beschreibung
ExternalTelemedicineOrderRequest Hülle für Shop POST /api/v1/external-order
ExternalOrderRequestPayload Innerer Payload — kein shop_id nötig

Dokumentierter Pfad: POST /api/v1/external-order auf Ihrer Shop-Domain. Siehe Externer Telemedizin-Connector.


Wichtige Feldunterschiede

Kontext Mengenfeld Shop-ID
POST /orders (Upsert) qty Pflicht im Body
POST /order-requests quantity Pflicht in payload
Shop external-order quantity Entfällt (aus Shop-URL)

PrescriptionIngestRequest

Nutzt Title-Case JSON-Keys (Shop-Fragebogenformat). Beispiele:

Key Typ Hinweise
Customer Email string Kundenkontakt
Customer First Name string
Customer Last Name string
Order Total Amount number
Receipt Pdf Base64 string HTTPS-URL zum Rezept-PDF
Id Card Front Url string Ausweis-URL
Product 1 Pharma One Product Id string Bis zu 3 Produkt-Slots
Questionnaire Indication string Fragebogenfelder
Shop Id string Optional bei Query shop_id

Weitere Felder stehen im OpenAPI-Schema. Unbekannte Keys werden akzeptiert und gespeichert.


WebhookEvent

{
  "id": "uuid",
  "org_id": "org1",
  "event_type": "order_status_updated",
  "title": "Order status updated",
  "description": "Order ORD_… updated",
  "metadata": {
    "order_id": "ORD_…",
    "old_status": "awaiting_packing",
    "new_status": "ready_pickup"
  },
  "created_at": "2026-06-05T12:00:00Z"
}

Header: X-PharmaOne-Event, X-PharmaOne-Delivery-Id, X-PharmaOne-Signature.


Download & Tools

OpenAPI-YAML (alle Schemas unter components/schemas) über den API-Explorer oder direkt von der Docs-Instanz.

Schema-Namen stimmen mit dieser Seite und Swagger UI überein.