Webhooki to jeden z tych elementów infrastruktury, które często działają w tle – dopóki nie przestaną. W e-commerce są szczególnie krytyczne: odpowiadają za aktualizację stanów magazynowych, wysyłkę potwierdzeń zamówień, synchronizację z systemami zewnętrznymi i wiele innych procesów. Ich awaria może oznaczać nie tylko straty finansowe, ale też frustrację klientów i spadek zaufania do marki.
W swojej praktyce widziałem dziesiątki sklepów, które wdrożyły webhooki w pośpiechu, bez głębszej analizy. I regularnie powielają trzy te same błędy. Jeśli prowadzisz e-commerce lub rozwijasz platformę SaaS dla handlu, ten artykuł może Cię uchronić przed kosztownymi incydentami.
Błąd 1: Brak retry i deduplikacji
Najczęstszy problem: wysyłasz webhook, a serwer odbiorcy zwraca błąd (np. 500 lub timeout). Co robi Twój system? Jeśli nic – gratulacje, straciłeś dane. W e-commerce może to oznaczać niezrealizowane zamówienie, brak wysyłki do klienta czy niezsynchronizowany stan magazynowy.
Rozwiązanie? Mechanizm ponawiania (retry) z backoffem. Standardem jest retry trzykrotny, ale warto dostosować strategię do krytyczności zdarzenia. Na przykład dla potwierdzeń płatności lepiej zrobić 5 prób w odstępach wykładniczych, a dla zmiany statusu zamówienia – natychmiastowy retry z eskalacją do supportu.
Drugi aspekt to deduplikacja. Zakładasz, że każdy webhook dotrze dokładnie raz? Niestety, w praktyce zdarzają się duplikaty – np. gdy serwer nadawcy ma problemy z połączeniem i wysyła ponownie. Jeśli nie masz deduplikacji, możesz utworzyć dwa zamówienia dla jednego klienta lub naliczyć podwójną płatność. Rozwiązanie: w idempotentności pomaga unikalny identyfikator zdarzenia (np. UUID) – zapisujesz go w bazie i odrzucasz powtórki.
Błąd 2: Brak walidacji i bezpieczeństwa
Otwierasz endpoint webhooka na świat – każdy może do niego wysłać żądanie. Jeśli nie masz walidacji, ryzykujesz ataki typu injection lub kradzież danych. Najgorsze, że wielu programistów w małych firmach ignonuje ten problem, bo „przecież to tylko webhook”.
Kluczowe elementy bezpieczeństwa:
- Podpis (signature) – większość platform (np. Stripe, Shopify) oferuje nagłówek z HMAC. Zweryfikuj go, zanim cokolwiek przetworzysz.
- Filtrowanie adresów IP – jeśli używasz zewnętrznych narzędzi, ogranicz dostęp do ich stałych adresów.
- Rate limiting – nawet jeśli webhook jest autoryzowany, złośliwy atak może przeciążyć serwer.
Przykład z życia: klient wdrożył webhook z PayPal bez weryfikacji podpisu. Po tygodniu otrzymaliśmy fałszywe żądania z informacją o setkach opłaconych zamówień. Na szczęście sklep był testowy – ale gdyby działał produkcyjnie, straty byłyby ogromne.
Błąd 3: Brak monitorowania i logowania
Webhooki działają w chmurze, często między różnymi dostawcami. Są niewidoczne dla użytkownika, więc problem może trwać godzinami, zanim ktoś go wykryje. Typowy scenariusz: klienci dzwonią, że zamówienie nie doszło, a Twój zespół wsparcia sprawdza ręcznie – tracą czas i pieniądze.
Rozwiązanie: każde zdarzenie webhooka loguj do centralnego systemu (np. Elastic, Datadog). Rejestruj żądanie, odpowiedź, błędy i czas przetwarzania. Ustaw alerty na spodziewane wzorce – np. jeśli przez 5 minut nie ma żadnego webhooka, choć normalnie są 3 na minutę, to coś jest nie tak.
Dodatkowo warto mieć dashboard, który wizualizuje stan webhooków: ile udanych, ile błędów, jaki jest czas odpowiedzi. Dzięki temu szybko wychwytujesz anomalię, zanim uderzy w klientów.
Podsumowanie
Webhooki to potężne narzędzie, ale tylko wtedy, gdy są odpowiednio zabezpieczone i monitorowane. Błędy retry, bezpieczeństwa i logowania to trzy główne grzechy polskich e-commerce. Zanim dodasz kolejną integrację, upewnij się, że masz te trzy obszary ogarnięte. Twoi klienci (i Twój portfel) będą Ci wdzięczni.
Jeśli potrzebujesz audytu swojej infrastruktury webhookowej – JurskiTech pomoże Ci znaleźć i wyeliminować słabe punkty, zanim staną się realnym problemem.


