DelietaDokumentacja

Dla programistów

Od klucza API do zamówienia z trackingUrl — pierwsza integracja Partner API v1.

Programista spina witrynę albo kasę z Delietą przez Partner API v1. Tenant wynika z klucza. Żądanie nigdy nie podaje companyId ani tenantSlug. Pieniądze to całkowite grosze, waluta w v1 to tylko PLN.

Wystaw klucz

W panelu: Ustawienia → Integracje. Plaintext klucza widać raz. Format: dlt_live_… albo dlt_test_….

  • Klucz sekretny (orders:write, eta:quote) żyje na serwerze. Nigdy w przeglądarce, nigdy jako NEXT_PUBLIC_.
  • Klucz publikowalny ma wyłącznie catalog:read. Wolno go wstawić w statyczną witrynę, bo nic prywatnego nie odczyta.

Klucz testowy czyta ten sam katalog co live, ale nie utworzy zamówienia (test_key_readonly). Do POST /api/v1/orders potrzebujesz dlt_live_….

Przeczytaj menu, potem wycenę, potem zamówienie

Trzy wywołania, w tej kolejności, zamykają pętlę sklepu:

  1. GET /api/v1/menu — katalog firmy klucza. Scope catalog:read.
  2. POST /api/v1/quotes — okno minut do adresu. Scope eta:quote. Zawsze zakres, nigdy gwarancja.
  3. POST /api/v1/orders — ticket do kuchni. Scope orders:write. Nagłówek Idempotency-Key jest obowiązkowy.

Odpowiedź 201 niesie order.trackingUrl. To jest link, który oddajesz klientowi — strona /o/…. Nie wymyślaj drugiego URL-a śledzenia.

Odczytaj, czy kuchnia przyjęła

Jeśli firma wymaga akceptacji, nowy ticket startuje w pending_acceptance. Stan zmienia człowiek albo limit czasu — nie Twój backend. Dlatego istnieje GET /api/v1/orders/{id}: polluje budżet odczytów, nie budżet tworzenia.

Kontrakt witryny, nie webhook

Statyczny sklep (eksport Next) piecze menu na buildzie i trzyma koszyk { itemId, quantity }. To jest kontrakt witryny. Delieta nie hostuje tej witryny.

Webhooków statusu zamówienia nie ma. Polluj GET.

Pełne odniesienie, zgodne z GET /api/v1/openapi: Partner API.