Webhooki
Delieta nie wysyła webhooków statusu zamówienia. Jedyny ruch do sklepu to podpisany POST /api/revalidate, plus heartbeat w drugą stronę.
Delieta nie wywołuje Twojego serwera, gdy zamówienie zmienia status. W opublikowanym OpenAPI nie ma operacji webhook dla partnera. Jest jeden podpisany sygnał do sklepu, który działa na @delieta/shop-runtime, i jedno zgłoszenie w drugą stronę.
Sygnał odświeżenia: POST /api/revalidate
Gdy właściciel zmienia menu, ustawienia sklepu albo plan sali, Delieta wywołuje POST {adres-wdrożenia-sklepu}/api/revalidate. Sklep unieważnia swój cache i następne żądanie pobiera świeże dane. Ciało to {"reason":"menu"|"shop-config"|"floor-plan","at":"…ISO…"}.
POST /api/revalidate
x-delieta-signature: 9f2c…
Content-Type: application/json
{"reason":"menu","at":"2026-11-05T12:00:00.000Z"}
Podpis to nagłówek x-delieta-signature: HMAC-SHA256 w hex z surowego ciała, kluczem jest sekret odświeżania tego sklepu (DELIETA_REVALIDATE_SECRET po stronie sklepu). Handler z @delieta/shop-runtime sprawdza podpis w stałym czasie. Zły podpis → 401, brak sekretu na sklepie → 503, złe ciało → 400, sukces → 204. Delieta czeka na odpowiedź do 5 sekund, a niepowodzenie ignoruje: odświeżenie to ułatwienie, nie transakcja. Sklep i tak odczytuje Delietę bez cache, więc najgorszy skutek to opóźnienie.
Ten adres obsługuje podpis, nie klucz API. Nie ma w nim klucza publikowalnego ani sekretu partnera.
Heartbeat sklepu
W drugą stronę wdrożony sklep zgłasza, z jakim runtime go zbudowano: POST /api/v1/shop-heartbeat. Wysyła to delieta-shop-assert po next build, raz na build. Delieta zapisuje wersję runtime i kontraktu w wierszu sklepu, więc widzi, które sklepy trzeba odświeżyć. Zawsze 204; nie ma w tym nic do obsłużenia.
Status zamówienia: czytaj GET-em
Po POST /api/v1/orders zamówienie może mieć pending_acceptance. Wychodzi z tego stanu, gdy ktoś w kuchni przyjmie albo odrzuci, albo gdy minie limit czasu. Nic z tego nie powoduje Twój backend, więc odczytujesz: GET /api/v1/orders/{id} z kluczem sekretnym albo GET /api/v1/orders/{id}/status po krótkim kodzie, także kluczem publikowalnym. Odpytywanie liczy się do limitu odczytów i nie zużywa limitu tworzenia zamówień.
404 not_found znaczy „nie ma takiego zamówienia dla tego klucza”. Zamówienie innej firmy odpowiada identycznie.
Czego tu nie ma
Nie ma podpisanego POST-a o zmianie statusu na https://twoja-witryna/hooks/orders. Nie ma sekretu webhooka partnera i nie ma ponowień po naszej stronie. Płatność Twojej firmy za Delietę idzie przez Stripe i jest sprawą panelu, nie Partner API. Gdy webhooki partnera powstaną, pojawią się jako nowa operacja w GET /api/v1/openapi i na stronie Partner API.

