Śledzenie statusów InPost przez API – jak aktualizować zamówienia w sklepie

Mateusz Piotrowicz
Mateusz Piotrowicz
Technical & Logistics Expert
Śledzenie statusów InPost przez API – jak aktualizować zamówienia w sklepie
Śledzenie InPost API, czyli pobieranie statusów przesyłek przez API ShipX, to sposób, by sklep sam wiedział, co dzieje się z paczką – bez zaglądania do panelu przewoźnika i bez ręcznego przestawiania statusów zamówień. Gdy przesyłka zostaje odebrana od nadawcy, zamówienie zmienia się na „wysłane”. Gdy czeka w Paczkomacie, klient dostaje przypomnienie. Gdy wraca do nadawcy, obsługa klienta od razu widzi zadanie do wyjaśnienia.
W tym poradniku pokazujemy, jak działa śledzenie statusów w API ShipX, czym różni się odpytywanie od webhooków, jak zaprojektować tabelę mapowania statusów InPost na statusy zamówień i jakie błędy najczęściej psują całą automatyzację. Artykuł jest dla właścicieli sklepów i osób technicznych, które chcą, żeby statusy w sklepie odpowiadały temu, co faktycznie dzieje się z paczką.
Śledzenie InPost API – jak to działa
InPost udostępnia dane o przesyłkach przez API ShipX. Z perspektywy sklepu ważne są trzy elementy: zasób śledzenia (tracking), lista statusów i webhooki. Każdy z nich odpowiada na inne pytanie: co się teraz dzieje z paczką, co oznacza dany status i jak dowiedzieć się o zmianie bez ciągłego pytania serwera.
Element API | Do czego służy | Na co uważać |
Tracking – GET /v1/tracking/{numer} | Aktualny status i historia zmian jednej przesyłki | Jedno zapytanie dotyczy jednej przesyłki; dane dostępne przez 45 dni od utworzenia |
Statusy – GET /v1/statuses | Lista wszystkich statusów z krótkim i długim opisem po polsku lub angielsku | Opisy mogą się zmieniać – lepiej je pobierać, niż przepisywać na sztywno |
Webhooki | Powiadomienie wysyłane na Twój adres URL po zmianie statusu | Adres musi być dostępny z zewnątrz i odpowiadać kodem HTTP 200 |
Szczegóły przesyłki – GET /v1/shipments/{id} | Dane przesyłki utworzonej przez Twoją organizację, m.in. numer i status | Wymaga tokenu; przesyłki utworzone ręcznie w panelu nie są widoczne w API |
Według dokumentacji zasobu Tracking zapytanie o śledzenie nie wymaga tokenu, a odpowiedź zawiera m.in. bieżący status, datę ostatniej zmiany, historię statusów posortowaną od najnowszego oraz – dla przesyłek paczkomatowych – rozmiar paczki i nazwę Paczkomatu odbiorczego. Każdy wpis w historii ma nazwę statusu (np. „delivered”) i jego symbol źródłowy (np. „DOR”).
Jeśli dopiero zaczynasz integrację, najpierw przeczytaj tekst ShipX API InPost – jak zintegrować wysyłki z własnym systemem. Dostęp do API wymaga tokenu i identyfikatora organizacji – jak je wygenerować, opisujemy w artykule Token API InPost – jak go wygenerować i gdzie go wkleić.
Odpytywanie czy webhooki – co wybrać
Są dwa sposoby, by sklep dowiedział się o zmianie statusu. Pierwszy to odpytywanie (polling): system co jakiś czas pyta API o każdą aktywną przesyłkę. Drugi to webhooki: InPost sam wysyła powiadomienie na wskazany adres, gdy status się zmieni. Dokumentacja ShipX opisuje webhooki właśnie jako sposób na uniknięcie powtarzającego się odpytywania.
Kryterium | Odpytywanie API | Webhooki |
Szybkość aktualizacji | Zależy od częstotliwości zapytań | Krótko po zmianie statusu |
Obciążenie | Rośnie z liczbą aktywnych paczek – jedno zapytanie na przesyłkę | Ruch tylko wtedy, gdy coś się dzieje |
Wymagania techniczne | Wystarczy zadanie cykliczne po stronie sklepu | Publiczny adres HTTPS, obsługa zapory, odporność na powtórzenia |
Ryzyko | Opóźnienia i pominięte zmiany przy rzadkim odpytywaniu | Utracone powiadomienia, jeśli serwer był niedostępny |
Dobre zastosowanie | Mała liczba paczek, prosty sklep, kontrola uzupełniająca | Większy wolumen, wiele kanałów, automatyczne wiadomości |
W praktyce najlepiej sprawdza się połączenie obu metod. Webhooki odpowiadają za bieżące aktualizacje, a raz na jakiś czas – na przykład raz dziennie – system odpytuje przesyłki, które od dłuższego czasu nie zmieniły statusu. Taka kontrola wyłapuje powiadomienia, które z jakiegoś powodu nie dotarły.
Odpytuj tylko przesyłki aktywne. Paczka w statusie „delivered” lub „returned_to_sender” nie zmieni się już w istotny sposób, więc nie ma sensu pytać o nią co godzinę. Ogranicz też okres – według dokumentacji tracking jest zwracany przez 45 dni od utworzenia przesyłki.
Jak skonfigurować webhooki InPost
Adres webhooka dodaje się w Managerze Paczek, w zakładce Moje konto > API > Ustawienia organizacji. Dla środowiska testowego robi się to osobno, w sandboksowej wersji Managera Paczek. Według dokumentacji webhooków adres musi spełniać trzy warunki: mieć poprawną budowę, być dostępny i odpowiadać kodem HTTP 200 na zapytanie GET.
Przygotuj adres po stronie sklepu – endpoint, który przyjmie powiadomienie POST i odpowie 200 na zapytanie GET.
Sprawdź zaporę – webhooki są wysyłane z puli adresów IP 91.216.25.0/24, zarówno w środowisku produkcyjnym, jak i w sandboksie.
Dodaj adres w Managerze Paczek – w ustawieniach organizacji, w zakładce API.
Zapisuj każde powiadomienie – najpierw do logu lub kolejki, dopiero potem przetwarzaj.
Odpowiadaj szybko – ciężkie operacje, takie jak wysyłka e-maili, wykonuj asynchronicznie, po potwierdzeniu odbioru.
W powiadomieniu InPost przekazuje typ zdarzenia, czas, identyfikator organizacji i dane przesyłki. Dokumentacja pokazuje m.in. zdarzenie „shipment_confirmed” – wysyłane po utworzeniu przesyłki, z jej ID i numerem do śledzenia – oraz „shipment_status_changed”, które zawiera nowy status. To wystarczy, by odnaleźć zamówienie i zaktualizować jego stan.
Śledzenie InPost API, czyli pobieranie statusów przesyłek przez API ShipX, to sposób, by sklep sam wiedział, co dzieje się z paczką – bez zaglądania do panelu przewoźnika i bez ręcznego przestawiania statusów zamówień. Gdy przesyłka zostaje odebrana od nadawcy, zamówienie zmienia się na „wysłane”. Gdy czeka w Paczkomacie, klient dostaje przypomnienie. Gdy wraca do nadawcy, obsługa klienta od razu widzi zadanie do wyjaśnienia.
W tym poradniku pokazujemy, jak działa śledzenie statusów w API ShipX, czym różni się odpytywanie od webhooków, jak zaprojektować tabelę mapowania statusów InPost na statusy zamówień i jakie błędy najczęściej psują całą automatyzację. Artykuł jest dla właścicieli sklepów i osób technicznych, które chcą, żeby statusy w sklepie odpowiadały temu, co faktycznie dzieje się z paczką.
Śledzenie InPost API – jak to działa
InPost udostępnia dane o przesyłkach przez API ShipX. Z perspektywy sklepu ważne są trzy elementy: zasób śledzenia (tracking), lista statusów i webhooki. Każdy z nich odpowiada na inne pytanie: co się teraz dzieje z paczką, co oznacza dany status i jak dowiedzieć się o zmianie bez ciągłego pytania serwera.
Element API | Do czego służy | Na co uważać |
Tracking – GET /v1/tracking/{numer} | Aktualny status i historia zmian jednej przesyłki | Jedno zapytanie dotyczy jednej przesyłki; dane dostępne przez 45 dni od utworzenia |
Statusy – GET /v1/statuses | Lista wszystkich statusów z krótkim i długim opisem po polsku lub angielsku | Opisy mogą się zmieniać – lepiej je pobierać, niż przepisywać na sztywno |
Webhooki | Powiadomienie wysyłane na Twój adres URL po zmianie statusu | Adres musi być dostępny z zewnątrz i odpowiadać kodem HTTP 200 |
Szczegóły przesyłki – GET /v1/shipments/{id} | Dane przesyłki utworzonej przez Twoją organizację, m.in. numer i status | Wymaga tokenu; przesyłki utworzone ręcznie w panelu nie są widoczne w API |
Według dokumentacji zasobu Tracking zapytanie o śledzenie nie wymaga tokenu, a odpowiedź zawiera m.in. bieżący status, datę ostatniej zmiany, historię statusów posortowaną od najnowszego oraz – dla przesyłek paczkomatowych – rozmiar paczki i nazwę Paczkomatu odbiorczego. Każdy wpis w historii ma nazwę statusu (np. „delivered”) i jego symbol źródłowy (np. „DOR”).
Jeśli dopiero zaczynasz integrację, najpierw przeczytaj tekst ShipX API InPost – jak zintegrować wysyłki z własnym systemem. Dostęp do API wymaga tokenu i identyfikatora organizacji – jak je wygenerować, opisujemy w artykule Token API InPost – jak go wygenerować i gdzie go wkleić.
Odpytywanie czy webhooki – co wybrać
Są dwa sposoby, by sklep dowiedział się o zmianie statusu. Pierwszy to odpytywanie (polling): system co jakiś czas pyta API o każdą aktywną przesyłkę. Drugi to webhooki: InPost sam wysyła powiadomienie na wskazany adres, gdy status się zmieni. Dokumentacja ShipX opisuje webhooki właśnie jako sposób na uniknięcie powtarzającego się odpytywania.
Kryterium | Odpytywanie API | Webhooki |
Szybkość aktualizacji | Zależy od częstotliwości zapytań | Krótko po zmianie statusu |
Obciążenie | Rośnie z liczbą aktywnych paczek – jedno zapytanie na przesyłkę | Ruch tylko wtedy, gdy coś się dzieje |
Wymagania techniczne | Wystarczy zadanie cykliczne po stronie sklepu | Publiczny adres HTTPS, obsługa zapory, odporność na powtórzenia |
Ryzyko | Opóźnienia i pominięte zmiany przy rzadkim odpytywaniu | Utracone powiadomienia, jeśli serwer był niedostępny |
Dobre zastosowanie | Mała liczba paczek, prosty sklep, kontrola uzupełniająca | Większy wolumen, wiele kanałów, automatyczne wiadomości |
W praktyce najlepiej sprawdza się połączenie obu metod. Webhooki odpowiadają za bieżące aktualizacje, a raz na jakiś czas – na przykład raz dziennie – system odpytuje przesyłki, które od dłuższego czasu nie zmieniły statusu. Taka kontrola wyłapuje powiadomienia, które z jakiegoś powodu nie dotarły.
Odpytuj tylko przesyłki aktywne. Paczka w statusie „delivered” lub „returned_to_sender” nie zmieni się już w istotny sposób, więc nie ma sensu pytać o nią co godzinę. Ogranicz też okres – według dokumentacji tracking jest zwracany przez 45 dni od utworzenia przesyłki.
Jak skonfigurować webhooki InPost
Adres webhooka dodaje się w Managerze Paczek, w zakładce Moje konto > API > Ustawienia organizacji. Dla środowiska testowego robi się to osobno, w sandboksowej wersji Managera Paczek. Według dokumentacji webhooków adres musi spełniać trzy warunki: mieć poprawną budowę, być dostępny i odpowiadać kodem HTTP 200 na zapytanie GET.
Przygotuj adres po stronie sklepu – endpoint, który przyjmie powiadomienie POST i odpowie 200 na zapytanie GET.
Sprawdź zaporę – webhooki są wysyłane z puli adresów IP 91.216.25.0/24, zarówno w środowisku produkcyjnym, jak i w sandboksie.
Dodaj adres w Managerze Paczek – w ustawieniach organizacji, w zakładce API.
Zapisuj każde powiadomienie – najpierw do logu lub kolejki, dopiero potem przetwarzaj.
Odpowiadaj szybko – ciężkie operacje, takie jak wysyłka e-maili, wykonuj asynchronicznie, po potwierdzeniu odbioru.
W powiadomieniu InPost przekazuje typ zdarzenia, czas, identyfikator organizacji i dane przesyłki. Dokumentacja pokazuje m.in. zdarzenie „shipment_confirmed” – wysyłane po utworzeniu przesyłki, z jej ID i numerem do śledzenia – oraz „shipment_status_changed”, które zawiera nowy status. To wystarczy, by odnaleźć zamówienie i zaktualizować jego stan.
- Analiza obecnego procesu nadawania paczek
- Integracja InPost z Base, sklepem i marketplace'ami
- Plan automatyzacji etykiet i statusów
Mapowanie statusów InPost na statusy zamówień
Lista statusów ShipX jest długa – obejmuje m.in. przyjęcie w oddziale, sortownię, wydanie do doręczenia, przekierowania, awizo i zwroty. Sklep nie potrzebuje osobnego statusu zamówienia dla każdego z nich. Potrzebuje kilku stanów, które coś znaczą dla klienta i dla zespołu. Dlatego sercem integracji jest tabela mapowania.
Status InPost (name) | Co oznacza | Status zamówienia w sklepie | Akcja |
confirmed | Przesyłka opłacona, ma numer i etykietę | Do spakowania | Wydruk etykiety |
collected_from_sender, taken_by_courier, dispatched_by_sender | Paczka odebrana od nadawcy lub nadana w punkcie | Wysłane | E-mail z numerem przesyłki |
adopted_at_sorting_center, out_for_delivery | Paczka w drodze do odbiorcy | W doręczeniu | Brak lub informacja w panelu klienta |
ready_to_pickup | Czeka w Paczkomacie lub punkcie | Gotowe do odbioru | Opcjonalne przypomnienie od sklepu |
pickup_time_expired, undelivered, rejected_by_receiver | Problem z odbiorem lub doręczeniem | Do wyjaśnienia | Zadanie dla obsługi klienta |
delivered | Przesyłka odebrana | Zrealizowane | Prośba o opinię po kilku dniach |
returned_to_sender | Zwrot do nadawcy | Zwrot – do obsługi | Kontakt z klientem, przyjęcie na magazyn |
Nazwy statusów warto mapować po polu „name”, a nie po opisach. Opisy dla klienta możesz pobrać z zasobu statusów w języku polskim – dokumentacja zaznacza, że dzięki temu komunikacja jest spójna między systemami, a zmiany w opisach pojawiają się automatycznie. Szerzej o znaczeniu poszczególnych statusów piszemy w artykule Statusy przesyłek InPost – co oznaczają i jak je komunikować klientom.
[#wazne] Zawsze przewiduj status „nieznany”. Lista statusów ShipX bywa rozszerzana, a przesyłki potrafią przejść przez stany, których nie uwzględniłeś – np. przekierowanie do innego Paczkomatu albo umieszczenie w Paczkomacie tymczasowym. Status, którego system nie rozpoznał, nie powinien niczego psuć: zapisz go w historii zamówienia i oznacz do przejrzenia.
Wykres – droga informacji od zmiany statusu w InPost do statusu zamówienia w sklepie. [#chart:ip56]
Przypisanie przesyłki do zamówienia
Webhook mówi, że przesyłka o danym numerze zmieniła status. Żeby zaktualizować zamówienie, system musi wiedzieć, do którego zamówienia ta przesyłka należy. Najprostsza zasada: przy tworzeniu przesyłki zapisz w zamówieniu jej ID i numer do śledzenia, a w polu referencji przesyłki przekaż numer zamówienia.
ID przesyłki – pojawia się od razu po utworzeniu i jest przekazywane w webhookach jako „shipment_id”.
Numer do śledzenia – pojawia się dopiero po potwierdzeniu przesyłki, bo API działa asynchronicznie.
Referencja – numer zamówienia w polu „reference” ułatwia ręczne wyszukiwanie i późniejsze rozliczenia.
Kilka paczek w zamówieniu – status zamówienia powinien wynikać ze statusów wszystkich paczek, np. „wysłane” dopiero po nadaniu ostatniej.
[#uwaga] Przesyłki utworzone ręcznie w Managerze Paczek nie są widoczne w API – tak wynika z dokumentacji ShipX. Jeśli magazyn czasem nadaje paczkę „na szybko” z panelu, sklep nie dostanie jej statusów, a zamówienie zostanie w poprzednim stanie. Ustal jedno miejsce tworzenia przesyłek – więcej o tym w tekście Automatyczne nadawanie przesyłek InPost w systemie do obsługi zamówień.
Statusy, które wymagają reakcji sklepu
Większość statusów przechodzi bez udziału sklepu. Kilka z nich to jednak sygnał, że ktoś powinien coś zrobić – najlepiej zanim klient sam napisze z pytaniem. Te statusy warto kierować do kolejki zadań obsługi klienta, a nie tylko zapisywać w historii.
Sytuacja | Przykładowe statusy | Co zrobić |
Klient nie odbiera paczki | pickup_reminder_sent, pickup_time_expired | Przypomnienie od sklepu, a po upływie terminu przygotowanie na zwrot |
Problem z adresem | undelivered_wrong_address | Kontakt z klientem i weryfikacja danych |
Opóźnienie | delay_in_delivery | Informacja do klienta, zanim zapyta |
Paczka w punkcie tymczasowym | stack_in_box_machine, stack_in_customer_service_point | Przekazanie klientowi, gdzie odbierze przesyłkę |
Zwrot do nadawcy | returned_to_sender | Decyzja: ponowna wysyłka czy zwrot pieniędzy |
Co dzieje się z paczką, której klient nie odebrał, i jak zareagować, wyjaśniamy w artykule Paczka nieodebrana z Paczkomatu – co się z nią dzieje i co powinien zrobić sklep. Gdy status długo się nie zmienia, przyda się tekst Paczka utknęła w sortowni InPost – jak interweniować jako nadawca.
[#przyklad] Sklep wysyła około 150 paczek dziennie. Do tej pory dwie osoby z obsługi codziennie sprawdzały ręcznie przesyłki z poprzednich dni. Po wdrożeniu webhooków zamówienia same zmieniają status na „wysłane” i „zrealizowane”, a do kolejki zadań trafiają tylko paczki ze statusami problemowymi – zwykle kilka dziennie. Raz na dobę system odpytuje przesyłki, które od trzech dni nie zmieniły statusu. To przykładowy scenariusz pokazujący, jak rozłożyć pracę między automatyzację i ludzi.
Co pokazać klientowi w sklepie
Status przesyłki to nie tylko informacja dla zespołu. Klient, który widzi w panelu sklepu lub w wiadomości, co dzieje się z jego zamówieniem, rzadziej pisze z pytaniem „gdzie jest moja paczka?”. Nie musisz przy tym powielać wszystkiego, co klient i tak dostaje od InPost – odbiorca otrzymuje własne powiadomienia od przewoźnika w aplikacji InPost Mobile, e-mailem lub SMS-em.
Numer przesyłki z linkiem do śledzenia – w wiadomości o wysyłce i na stronie zamówienia.
Prosty status zamówienia – „wysłane”, „w doręczeniu”, „gotowe do odbioru”, „zrealizowane” zamiast technicznych nazw z API.
Nazwa Paczkomatu odbiorczego – przydatna, gdy klient zapomniał, który punkt wybrał.
Informacja o problemie – przy opóźnieniu lub zwrocie krótka wiadomość od sklepu z tym, co dalej.
Zasada jest prosta: sklep informuje o tym, co dotyczy zamówienia, a przewoźnik o tym, co dotyczy odbioru paczki. Dzięki temu klient nie dostaje kilku wiadomości o tym samym, a obsługa klienta nie musi tłumaczyć różnic między komunikatami.
Śledzenie InPost w systemie do obsługi zamówień
Nie każdy sklep musi budować obsługę webhooków samodzielnie. Systemy do obsługi zamówień, które łączą się z InPost, zwykle pobierają statusy przesyłek same i pozwalają podpiąć pod nie reguły: zmianę statusu zamówienia, wysyłkę wiadomości czy oznaczenie zamówienia do wyjaśnienia. Własna integracja ma sens przy nietypowych procesach albo gdy sklep działa na autorskim systemie.
W Base statusy przesyłek mogą automatycznie przestawiać zamówienia i uruchamiać wiadomości do klientów – opisujemy to w tekście Śledzenie przesyłek w Base – automatyczne statusy i powiadomienia dla klientów. Jak zaprojektować same statusy zamówień, żeby nie było ich za dużo, pokazujemy w artykule Statusy zamówień w BaseLinkerze – jak zaprojektować proces obsługi zamówień, a gotowe reguły znajdziesz w zestawieniu akcji automatycznych w BaseLinkerze.
Testowanie i najczęstsze błędy
Integrację śledzenia warto testować inaczej niż tworzenie przesyłek. Dokumentacja ShipX zaznacza, że w środowisku sandbox komponent śledzenia jest wyłączony i nie zwraca statusów. Obsługę webhooków najlepiej więc sprawdzić na przykładowych danych – przygotowanych na podstawie struktur z dokumentacji – a pierwsze dni na produkcji traktować jako okres wzmożonej kontroli.
Brak odpowiedzi 200 na GET – InPost nie przyjmie adresu webhooka albo powiadomienia nie będą dochodzić.
Zapora blokuje ruch – serwer odrzuca zapytania z puli adresów InPost.
Długie przetwarzanie – serwer wysyła e-maile przed potwierdzeniem odbioru i przekracza czas odpowiedzi.
Brak odporności na duplikaty – to samo zdarzenie przetworzone dwa razy wysyła klientowi dwie wiadomości.
Twarde przepisanie opisów statusów – po zmianie opisów w InPost komunikaty w sklepie przestają się zgadzać.
Brak zadania kontrolnego – pominięte webhooki sprawiają, że zamówienia tygodniami wiszą w statusie „wysłane”.
Wykres – najczęstsze objawy problemów ze śledzeniem i ich przyczyny. [#chart:ip56b]
[#checklista] Przed uruchomieniem śledzenia przez API: adres webhooka dodany w Managerze Paczek; zapora przepuszcza ruch z puli InPost; ID i numer przesyłki zapisywane w zamówieniu; tabela mapowania statusów gotowa, z obsługą statusu nieznanego; zdarzenia logowane przed przetworzeniem; duplikaty nie powodują podwójnych wiadomości; zadanie kontrolne odpytuje przesyłki bez zmian od kilku dni.
Najczęściej zadawane pytania
Czy do śledzenia przesyłek InPost przez API potrzebny jest token?
Według dokumentacji ShipX zasób śledzenia (tracking) nie wymaga tokenu – wystarczy numer przesyłki. Token jest potrzebny do pobierania szczegółów przesyłek Twojej organizacji i do tworzenia przesyłek. Webhooki konfiguruje się w Managerze Paczek, w zakładce API.
Jak długo można sprawdzać status przesyłki przez API?
Dokumentacja podaje, że tracking jest zwracany przez 45 dni od daty utworzenia przesyłki. Po tym czasie warto opierać się na historii statusów zapisanej w zamówieniu, dlatego dobrze jest przechowywać ją po stronie sklepu.
Czy jednym zapytaniem mogę sprawdzić wiele przesyłek?
Nie. Według FAQ dokumentacji ShipX zapytanie o śledzenie dotyczy pojedynczej przesyłki. Przy dużej liczbie paczek wygodniejsze są webhooki, a odpytywanie warto ograniczyć do przesyłek, które od dłuższego czasu nie zmieniły statusu.
Dlaczego w sandboksie nie widzę statusów przesyłek?
W środowisku testowym komponent śledzenia jest wyłączony, więc API nie zwraca statusów. Obsługę statusów najlepiej przetestować na przykładowych powiadomieniach przygotowanych według struktur z dokumentacji, a potem uważnie obserwować pierwsze dni na produkcji.
Czy webhooki InPost działają dla przesyłek utworzonych w Managerze Paczek?
Przesyłki utworzone ręcznie w Managerze Paczek nie są widoczne w API, dlatego nie należy liczyć na to, że sklep otrzyma ich statusy w integracji. Jeśli chcesz automatycznie aktualizować zamówienia, twórz przesyłki w jednym miejscu – przez API lub system do obsługi zamówień.
Jak uniknąć podwójnych wiadomości do klienta po zmianie statusu?
Zapisuj każde zdarzenie z jego typem, czasem i numerem przesyłki i przed wysłaniem wiadomości sprawdzaj, czy dana zmiana nie była już obsłużona. Wiadomość wysyłaj tylko przy przejściu zamówienia do nowego statusu, a nie przy każdym powiadomieniu.
Podsumowanie
Śledzenie statusów InPost przez API sprowadza się do kilku decyzji: webhooki jako główne źródło aktualizacji, odpytywanie jako kontrola, tabela mapowania statusów na kilka zrozumiałych stanów zamówienia i jasna lista statusów, które wymagają reakcji człowieka. Do tego jedno miejsce tworzenia przesyłek i logowanie zdarzeń – i zamówienia w sklepie zaczynają odzwierciedlać to, co faktycznie dzieje się z paczką.
Wdrażamy i obsługujemy wysyłki InPost – od tworzenia przesyłek po automatyczne statusy i wiadomości do klientów. Jeśli chcesz, żeby status zamówienia aktualizował się sam, a obsługa klienta zajmowała się tylko wyjątkami, sprawdź, jak wygląda wdrożenie Base z automatyzacją wysyłek.
Mapowanie statusów InPost na statusy zamówień
Lista statusów ShipX jest długa – obejmuje m.in. przyjęcie w oddziale, sortownię, wydanie do doręczenia, przekierowania, awizo i zwroty. Sklep nie potrzebuje osobnego statusu zamówienia dla każdego z nich. Potrzebuje kilku stanów, które coś znaczą dla klienta i dla zespołu. Dlatego sercem integracji jest tabela mapowania.
Status InPost (name) | Co oznacza | Status zamówienia w sklepie | Akcja |
confirmed | Przesyłka opłacona, ma numer i etykietę | Do spakowania | Wydruk etykiety |
collected_from_sender, taken_by_courier, dispatched_by_sender | Paczka odebrana od nadawcy lub nadana w punkcie | Wysłane | E-mail z numerem przesyłki |
adopted_at_sorting_center, out_for_delivery | Paczka w drodze do odbiorcy | W doręczeniu | Brak lub informacja w panelu klienta |
ready_to_pickup | Czeka w Paczkomacie lub punkcie | Gotowe do odbioru | Opcjonalne przypomnienie od sklepu |
pickup_time_expired, undelivered, rejected_by_receiver | Problem z odbiorem lub doręczeniem | Do wyjaśnienia | Zadanie dla obsługi klienta |
delivered | Przesyłka odebrana | Zrealizowane | Prośba o opinię po kilku dniach |
returned_to_sender | Zwrot do nadawcy | Zwrot – do obsługi | Kontakt z klientem, przyjęcie na magazyn |
Nazwy statusów warto mapować po polu „name”, a nie po opisach. Opisy dla klienta możesz pobrać z zasobu statusów w języku polskim – dokumentacja zaznacza, że dzięki temu komunikacja jest spójna między systemami, a zmiany w opisach pojawiają się automatycznie. Szerzej o znaczeniu poszczególnych statusów piszemy w artykule Statusy przesyłek InPost – co oznaczają i jak je komunikować klientom.
[#wazne] Zawsze przewiduj status „nieznany”. Lista statusów ShipX bywa rozszerzana, a przesyłki potrafią przejść przez stany, których nie uwzględniłeś – np. przekierowanie do innego Paczkomatu albo umieszczenie w Paczkomacie tymczasowym. Status, którego system nie rozpoznał, nie powinien niczego psuć: zapisz go w historii zamówienia i oznacz do przejrzenia.
Wykres – droga informacji od zmiany statusu w InPost do statusu zamówienia w sklepie. [#chart:ip56]
Przypisanie przesyłki do zamówienia
Webhook mówi, że przesyłka o danym numerze zmieniła status. Żeby zaktualizować zamówienie, system musi wiedzieć, do którego zamówienia ta przesyłka należy. Najprostsza zasada: przy tworzeniu przesyłki zapisz w zamówieniu jej ID i numer do śledzenia, a w polu referencji przesyłki przekaż numer zamówienia.
ID przesyłki – pojawia się od razu po utworzeniu i jest przekazywane w webhookach jako „shipment_id”.
Numer do śledzenia – pojawia się dopiero po potwierdzeniu przesyłki, bo API działa asynchronicznie.
Referencja – numer zamówienia w polu „reference” ułatwia ręczne wyszukiwanie i późniejsze rozliczenia.
Kilka paczek w zamówieniu – status zamówienia powinien wynikać ze statusów wszystkich paczek, np. „wysłane” dopiero po nadaniu ostatniej.
[#uwaga] Przesyłki utworzone ręcznie w Managerze Paczek nie są widoczne w API – tak wynika z dokumentacji ShipX. Jeśli magazyn czasem nadaje paczkę „na szybko” z panelu, sklep nie dostanie jej statusów, a zamówienie zostanie w poprzednim stanie. Ustal jedno miejsce tworzenia przesyłek – więcej o tym w tekście Automatyczne nadawanie przesyłek InPost w systemie do obsługi zamówień.
Statusy, które wymagają reakcji sklepu
Większość statusów przechodzi bez udziału sklepu. Kilka z nich to jednak sygnał, że ktoś powinien coś zrobić – najlepiej zanim klient sam napisze z pytaniem. Te statusy warto kierować do kolejki zadań obsługi klienta, a nie tylko zapisywać w historii.
Sytuacja | Przykładowe statusy | Co zrobić |
Klient nie odbiera paczki | pickup_reminder_sent, pickup_time_expired | Przypomnienie od sklepu, a po upływie terminu przygotowanie na zwrot |
Problem z adresem | undelivered_wrong_address | Kontakt z klientem i weryfikacja danych |
Opóźnienie | delay_in_delivery | Informacja do klienta, zanim zapyta |
Paczka w punkcie tymczasowym | stack_in_box_machine, stack_in_customer_service_point | Przekazanie klientowi, gdzie odbierze przesyłkę |
Zwrot do nadawcy | returned_to_sender | Decyzja: ponowna wysyłka czy zwrot pieniędzy |
Co dzieje się z paczką, której klient nie odebrał, i jak zareagować, wyjaśniamy w artykule Paczka nieodebrana z Paczkomatu – co się z nią dzieje i co powinien zrobić sklep. Gdy status długo się nie zmienia, przyda się tekst Paczka utknęła w sortowni InPost – jak interweniować jako nadawca.
[#przyklad] Sklep wysyła około 150 paczek dziennie. Do tej pory dwie osoby z obsługi codziennie sprawdzały ręcznie przesyłki z poprzednich dni. Po wdrożeniu webhooków zamówienia same zmieniają status na „wysłane” i „zrealizowane”, a do kolejki zadań trafiają tylko paczki ze statusami problemowymi – zwykle kilka dziennie. Raz na dobę system odpytuje przesyłki, które od trzech dni nie zmieniły statusu. To przykładowy scenariusz pokazujący, jak rozłożyć pracę między automatyzację i ludzi.
Co pokazać klientowi w sklepie
Status przesyłki to nie tylko informacja dla zespołu. Klient, który widzi w panelu sklepu lub w wiadomości, co dzieje się z jego zamówieniem, rzadziej pisze z pytaniem „gdzie jest moja paczka?”. Nie musisz przy tym powielać wszystkiego, co klient i tak dostaje od InPost – odbiorca otrzymuje własne powiadomienia od przewoźnika w aplikacji InPost Mobile, e-mailem lub SMS-em.
Numer przesyłki z linkiem do śledzenia – w wiadomości o wysyłce i na stronie zamówienia.
Prosty status zamówienia – „wysłane”, „w doręczeniu”, „gotowe do odbioru”, „zrealizowane” zamiast technicznych nazw z API.
Nazwa Paczkomatu odbiorczego – przydatna, gdy klient zapomniał, który punkt wybrał.
Informacja o problemie – przy opóźnieniu lub zwrocie krótka wiadomość od sklepu z tym, co dalej.
Zasada jest prosta: sklep informuje o tym, co dotyczy zamówienia, a przewoźnik o tym, co dotyczy odbioru paczki. Dzięki temu klient nie dostaje kilku wiadomości o tym samym, a obsługa klienta nie musi tłumaczyć różnic między komunikatami.
Śledzenie InPost w systemie do obsługi zamówień
Nie każdy sklep musi budować obsługę webhooków samodzielnie. Systemy do obsługi zamówień, które łączą się z InPost, zwykle pobierają statusy przesyłek same i pozwalają podpiąć pod nie reguły: zmianę statusu zamówienia, wysyłkę wiadomości czy oznaczenie zamówienia do wyjaśnienia. Własna integracja ma sens przy nietypowych procesach albo gdy sklep działa na autorskim systemie.
W Base statusy przesyłek mogą automatycznie przestawiać zamówienia i uruchamiać wiadomości do klientów – opisujemy to w tekście Śledzenie przesyłek w Base – automatyczne statusy i powiadomienia dla klientów. Jak zaprojektować same statusy zamówień, żeby nie było ich za dużo, pokazujemy w artykule Statusy zamówień w BaseLinkerze – jak zaprojektować proces obsługi zamówień, a gotowe reguły znajdziesz w zestawieniu akcji automatycznych w BaseLinkerze.
Testowanie i najczęstsze błędy
Integrację śledzenia warto testować inaczej niż tworzenie przesyłek. Dokumentacja ShipX zaznacza, że w środowisku sandbox komponent śledzenia jest wyłączony i nie zwraca statusów. Obsługę webhooków najlepiej więc sprawdzić na przykładowych danych – przygotowanych na podstawie struktur z dokumentacji – a pierwsze dni na produkcji traktować jako okres wzmożonej kontroli.
Brak odpowiedzi 200 na GET – InPost nie przyjmie adresu webhooka albo powiadomienia nie będą dochodzić.
Zapora blokuje ruch – serwer odrzuca zapytania z puli adresów InPost.
Długie przetwarzanie – serwer wysyła e-maile przed potwierdzeniem odbioru i przekracza czas odpowiedzi.
Brak odporności na duplikaty – to samo zdarzenie przetworzone dwa razy wysyła klientowi dwie wiadomości.
Twarde przepisanie opisów statusów – po zmianie opisów w InPost komunikaty w sklepie przestają się zgadzać.
Brak zadania kontrolnego – pominięte webhooki sprawiają, że zamówienia tygodniami wiszą w statusie „wysłane”.
Wykres – najczęstsze objawy problemów ze śledzeniem i ich przyczyny. [#chart:ip56b]
[#checklista] Przed uruchomieniem śledzenia przez API: adres webhooka dodany w Managerze Paczek; zapora przepuszcza ruch z puli InPost; ID i numer przesyłki zapisywane w zamówieniu; tabela mapowania statusów gotowa, z obsługą statusu nieznanego; zdarzenia logowane przed przetworzeniem; duplikaty nie powodują podwójnych wiadomości; zadanie kontrolne odpytuje przesyłki bez zmian od kilku dni.
Najczęściej zadawane pytania
Czy do śledzenia przesyłek InPost przez API potrzebny jest token?
Według dokumentacji ShipX zasób śledzenia (tracking) nie wymaga tokenu – wystarczy numer przesyłki. Token jest potrzebny do pobierania szczegółów przesyłek Twojej organizacji i do tworzenia przesyłek. Webhooki konfiguruje się w Managerze Paczek, w zakładce API.
Jak długo można sprawdzać status przesyłki przez API?
Dokumentacja podaje, że tracking jest zwracany przez 45 dni od daty utworzenia przesyłki. Po tym czasie warto opierać się na historii statusów zapisanej w zamówieniu, dlatego dobrze jest przechowywać ją po stronie sklepu.
Czy jednym zapytaniem mogę sprawdzić wiele przesyłek?
Nie. Według FAQ dokumentacji ShipX zapytanie o śledzenie dotyczy pojedynczej przesyłki. Przy dużej liczbie paczek wygodniejsze są webhooki, a odpytywanie warto ograniczyć do przesyłek, które od dłuższego czasu nie zmieniły statusu.
Dlaczego w sandboksie nie widzę statusów przesyłek?
W środowisku testowym komponent śledzenia jest wyłączony, więc API nie zwraca statusów. Obsługę statusów najlepiej przetestować na przykładowych powiadomieniach przygotowanych według struktur z dokumentacji, a potem uważnie obserwować pierwsze dni na produkcji.
Czy webhooki InPost działają dla przesyłek utworzonych w Managerze Paczek?
Przesyłki utworzone ręcznie w Managerze Paczek nie są widoczne w API, dlatego nie należy liczyć na to, że sklep otrzyma ich statusy w integracji. Jeśli chcesz automatycznie aktualizować zamówienia, twórz przesyłki w jednym miejscu – przez API lub system do obsługi zamówień.
Jak uniknąć podwójnych wiadomości do klienta po zmianie statusu?
Zapisuj każde zdarzenie z jego typem, czasem i numerem przesyłki i przed wysłaniem wiadomości sprawdzaj, czy dana zmiana nie była już obsłużona. Wiadomość wysyłaj tylko przy przejściu zamówienia do nowego statusu, a nie przy każdym powiadomieniu.
Podsumowanie
Śledzenie statusów InPost przez API sprowadza się do kilku decyzji: webhooki jako główne źródło aktualizacji, odpytywanie jako kontrola, tabela mapowania statusów na kilka zrozumiałych stanów zamówienia i jasna lista statusów, które wymagają reakcji człowieka. Do tego jedno miejsce tworzenia przesyłek i logowanie zdarzeń – i zamówienia w sklepie zaczynają odzwierciedlać to, co faktycznie dzieje się z paczką.
Wdrażamy i obsługujemy wysyłki InPost – od tworzenia przesyłek po automatyczne statusy i wiadomości do klientów. Jeśli chcesz, żeby status zamówienia aktualizował się sam, a obsługa klienta zajmowała się tylko wyjątkami, sprawdź, jak wygląda wdrożenie Base z automatyzacją wysyłek.


Mateusz Piotrowicz
Technical & Logistics Expert
Optymalizuje logistykę, magazyn i wysyłki sprzedawców. Skupia się na kosztach i terminowości dostaw.
Optymalizuje logistykę, magazyn i wysyłki sprzedawców. Skupia się na kosztach i terminowości dostaw.
Wdrożenie Base – automatyzacja wysyłek
Mateusz i nasz zespół pomogą Ci wdrożyć to na Twoim koncie – bez zobowiązań.
- Analiza Twojego konta i obecnych działań
- Konkretny plan poprawek do wdrożenia
- Bezpłatna konsultacja – bez zobowiązań

Przeczytaj także
Więcej porad z naszej bazy wiedzy – przesuń, aby zobaczyć kolejne artykuły.
Masz pytania? Chętnie porozmawiamy!
Masz pytania? Chętnie porozmawiamy!
Masz pytania? Chętnie porozmawiamy!

Bartłomiej Stokłosa
CEO & Founder
"Jeżeli czegoś nie da się zrobić, potrzebny jest ktoś, kto o tym nie wie – przyjdzie i to zrobi."

Bartłomiej Stokłosa
CEO & Founder
"Jeżeli czegoś nie da się zrobić, potrzebny jest ktoś, kto o tym nie wie – przyjdzie i to zrobi."