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.