Für Entwickler
Vom API-Schlüssel zur Shop-Bestellung: Menü, Konfiguration, Zeitfenster, Kasse, Ergebnis und Status. Dazu der Weg mit dem geheimen Schlüssel.
Die Partner-API v1 verbindet einen Shop oder eine Kasse mit Delieta. Der Schlüssel bezeichnet die Firma: Eine Anfrage nennt nie companyId oder tenantSlug. Beträge geben Sie in ganzen Grosze an, die einzige Währung ist PLN. Es gibt zwei Varianten: einen Shop (veröffentlichbarer Schlüssel, auf der Serverseite des Shops) und ein eigenes System (geheimer Schlüssel).
Schlüssel ausstellen
Im Panel: Einstellungen → Für Entwickler. Den Schlüsseltext sehen Sie einmal. Format: dlt_live_… oder dlt_test_…. Sie senden ihn als Authorization: Bearer … oder x-delieta-api-key: ….
- Ein veröffentlichbarer Schlüssel ist genau
catalog:read+checkout:create. Der Shop hält ihn serverseitig, nicht im Browser. - Ein geheimer Schlüssel bekommt zusätzlich
orders:write,eta:quote,reservations:writeodercatering:write. Er bleibt auf einem Server, nie alsNEXT_PUBLIC_. - Ein Test-Schlüssel liest dieselben Produkte wie live und berechnet Angebote, aber jeder Schreibzugriff wird mit
test_key_readonlyabgelehnt. Zum Anlegen von Bestellungen brauchen Siedlt_live_….
Shop: vom Menü zum Status
Die Shop-Schleife besteht aus sechs Lese- und Schreibzugriffen, alle mit dem veröffentlichbaren Schlüssel:
GET /api/v1/menu— die Produkte der Firma, zu der der Schlüssel gehört.GET /api/v1/shop-config— Marke, Öffnungszeiten, Module, Bestellregeln.GET /api/v1/checkout/slots— wann der Shop eine Bestellung annimmt.POST /api/v1/checkout— ein Warenkorb{ itemId, quantity, options? }; Delieta berechnet die Preise. BrauchtIdempotency-Key.GET /api/v1/checkout/result— das Ergebnis der Online-Zahlung für die Bestätigungsseite.GET /api/v1/orders/{id}/status— wo die Bestellung ist, für die Tracking-Seite.
Der Client sendet was, nie wie viel. Eine Online-Zahlung antwortet mit einer url, Barzahlung sofort mit einer trackingUrl; diese Adresse geben Sie dem Gast. Lesen Sie den Zustand des Shops (modules, ordering, hours, closures) aus shop-config, raten Sie nicht. Reservierungen, Anfragen und Catering sind eigene Operationen, beschrieben in der Partner-API.
Eigenes System: Angebot und Bestellung
Eine Kasse oder ein Partnerkanal nutzt einen geheimen Schlüssel und ruft auf:
POST /api/v1/quotes— ein Zeitfenster in Minuten zu einer Adresse (eta:quote). Immer eine Spanne, nie eine Garantie.POST /api/v1/orders— eine Bestellung mit den von Ihnen angegebenen Preisen (orders:write).Idempotency-Keyist Pflicht.GET /api/v1/orders/{id}— liest den Bestellverlauf (orders:write), zählt zum Leselimit.
Die 201-Antwort enthält order.trackingUrl: den Link, den Sie an den Kunden weitergeben (die /o/…-Seite). Legen Sie keine zweite Tracking-Adresse an. Verlangt die Firma Annahme, beginnt die Bestellung im Zustand pending_acceptance; den Zustand ändert jemand in der Küche oder das Zeitlimit, nicht Ihr Backend.
Shop-Vertrag und Webhooks
Das Backend des Shops ist das Paket @delieta/shop-runtime, nicht Dateien im Repository des Shops: Das beschreibt der Shop-Vertrag. Das Einzige, was Delieta an den Shop sendet, ist ein signiertes Aktualisierungssignal, beschrieben in Webhooks. Webhooks für den Bestellstatus gibt es nicht — den Status lesen Sie per GET.
Die vollständige Beschreibung, abgestimmt mit GET /api/v1/openapi: Partner-API.

