Webhooks
W module Webhooks , dostępne są funkcjonalności pozwalające na automatyczne przekazywanie innym aplikacjom informacji o zdarzeniach w momencie ich wystąpienia.
| Usługa Webhooks jest dostępna w katalogu usług dodatkowych (płatnych). Jej wykupienie możliwe jest w Moich rozrachunkach . |
Obecnie udostępniono Typy zdarzenia:
-
PRODUCT_CREATED - w ramach zdarzenia wysyłane będą informacje o utworzeniu nowego Produktu w Systemie.
-
PRODUCT_CHANGED - w ramach zdarzenia przesyłane będą informacje o utworzeniu nowego Produktu oraz zmianie danych Produktu istniejącego;
-
PRODUCT_DELETED - w ramach zdarzenia przesyłane będą informacje o usunięciu Produktu;
-
ORDER_CREATED - w ramach zdarzenia wysyłane będą informacje o utworzeniu Zamówienia w Systemie. W ramach zdarzenia nie będą przekazywane informacje o nowych Zamówieniach przychodzących z systemów zewnętrznych;
-
ORDER_CHANGED - w ramach zdarzenia przesyłane będą informacje o utworzeniu nowego Zamówienia oraz zmianie danych Zamówienia istniejącego.,
-
ORDER_STATUS_CHANGED - w ramach zdarzenia wysyłane będą informujące o zmianie statusu Zamówienia, w tym także informację czy Zamówienie zostało opłacone.
-
DIVISION_LOG_IN - w ramach zdarzenia przesyłane będą informacje o zalogowaniu Użytkownika w imieniu danego Oddziału kontrahenta. Przekazywana jest informacja o dacie i godzinie logowania oraz Oddziale w imieniu, którego nastąpiło logowanie. Informacja nie jest przekazywana w przypadku logowania w imieniu Użytkownika przez uprawnionego Operatora.
-
CLIENT_CREATED - w ramach zdarzenia wysyłane będą informacje o utworzeniu nowego Użytkownika;
Użytkownika; (dotyczy podstawowych danych oraz zmiany Adresu dostawy i/lub Adresu do faktury);
Użytkownika.
-
NEWSLETTER_SUBSCRIPTION_CREATED - w ramach zdarzenia wysyłane będą informacje o nowym subskrybencie newslettera.
-
NEWSLETTER_SUBSCRIPTION_DELETED - w ramach zdarzenia wysyłane będą informacje o rezygnacji z subskrypcji newslettera.
Planowany jest dalszy rozwój dostępnych opcji.
Moduł Webhooks dostępny jest w Panelu Administracyjnym dla uprawnionych Operatorów .
Aby dodać nowy Webhook, należy po kliknięciu przycisku Dodaj webhooka, podać jego Nazwę, wybrać co najmniej jeden Typ zdarzenia, podać Adres URL oraz wybrać jedną z Metod HTTP (GET, POST, PUT, PATCH, DELETE). Można również dodać maksymalnie 10 Nagłówków, zawierających pary: Klucz oraz Wartość.
Wszystkie te informacje dostępne są na liście Webhooków. Jeśli dodano Nagłówki, informacja o nich podana jest w tooltipie po najechaniu na Metodę HTTP danego Webhooka.
Aby edytować dodany Webhook, należy wybrać opcję Edytuj pod przyciskiem wielokropka. Pod przyciskiem tym dostępna jest również opcja usuwania pojedynczego Webhooka. Możliwe jest również grupowe usuwanie Webhooków poprzez zaznaczenie ich na liście i wybranie opcji Usuń dostępnej nad listą.
Dodatkowo w celu śledzenia poprawności działania połączenia z Webhookami w module Audyt udostępniono zakładkę Audyt komunikacji przez webhooki z informacjami o statusach poszczególnych zapytań.
Mechanizm ponownej wysyłki komunikatów
Dla każdego zdarzenia wysyłany jest nagłówek “Idempotency-Key” wraz z unikalnym ID każdego żądania. W przypadku wystąpienia problemu podczas wykonywania żądania (np. zbyt długi czas oczekiwania na odpowiedź, problemy sieciowe lub otrzymanie uznawanego za błędny statusu HTTP), mechanizm wysyłania informacji o zdarzeniach w systemie ponowi próbę dostarczenia komunikatu po określonym czasie. Podczas ponownej próby wysyłki, wykorzystany zostanie ten sam ID identyfikujący zdarzenie. Pozwoli to aplikacji otrzymującej komunikat na weryfikację, czy komunikat nie został już w niej przetworzony w sytuacjach, w których wymagane jest przetworzenie komunikatu "dokładnie jeden raz".
W przypadku gdy nie powiedzie się pierwsza próba dostarczenia komunikatu, następująca po pojawieniu się zdarzenia w Systemie:
-
druga próba następuje po 1 sekundzie od zakończenia poprzedniej próby;
-
trzecie próba następuje po 2 sekundach od zakończenia poprzedniej próby, jeśli poprzednia próba nie powiodła sie;
-
kolejne próby, w przypadku gdy nie powiodła się poprzednia, rozpoczynać będą się o pełnej godzinie.
| W sytuacji, gdy zewnętrzna aplikacja odpowie błędnie 10 razy, System zaprzestanie wysyłania powiadomień do tej aplikacji na 15 minut, a ponowna próba dostarczenia wszystkich komunikatów, które pojawią się w tym czasie, rozpocznie się o pełnej godzinie. |
Statusy HTTP uznawane za błędne:
408 REQUEST_TIMEOUT
429 TOO_MANY_REQUESTS
500 INTERNAL_SERVER_ERROR
501 NOT_IMPLEMENTED
502 BAD_GATEWAY
503 SERVICE_UNAVAILABLE
504 GATEWAY_TIMEOUT
505 HTTP_VERSION_NOT_SUPPORTED
506 VARIANT_ALSO_NEGOTIATES
507 INSUFFICIENT_STORAGE
508 LOOP_DETECTED
509 BANDWIDTH_LIMIT_EXCEEDED
510 NOT_EXTENDED
511 NETWORK_AUTHENTICATION_REQUIRED