Sledování zásilek a stavy
Rozšířená specifikace
Jedná se o rozšířenou specifikaci API dokumentace pro endpointy shipments/tracking,
shipments/detail a shipments/list.
Životní cyklus zásilky
Zásilka prochází stavy v tomto pořadí (číselník ShipmentStatus):
| Stav | Popis |
|---|---|
CREATED | Zásilka vytvořena v systému Zaslat. U platby ONLINE v tomto stavu zůstává, dokud není objednávka zaplacena. Štítek zatím není dostupný (label_status: PENDING, shipments/label vrací 404). |
EXPORTED | Dopravce potvrdil přijetí dat o zásilce. Štítek je od této chvíle dostupný jen u zásilek, které tisknete sami (label_mode PRINT nebo PRINT_OR_CODE, label_status: READY); u label_mode: CARRIER štítek přiveze kurýr a dostupný nikdy nebude — viz Štítky a jejich stavy. |
ONPICKUP | Zásilka čeká na svoz kurýrem. |
INTRANSIT | Zásilka na cestě do cílového depa. |
ONDELIVERY | Zásilka předána kurýrovi k doručení. |
DELIVERED | Zásilka doručena. |
CANCELLED | Zásilka zrušena (stornována). |
Stav má jak zásilka, tak každý její balík zvlášť. Tracking odpověď navíc obsahuje příznak
returned — true znamená, že zásilka byla vrácena odesílateli.
Jak stav zjistit
POST /shipments/tracking— aktuální stav a kompletní historie tracking událostí. Pro každý balík zásilky vrací samostatné pole událostí (datum, čas, popis, stav, místo).POST /shipments/detail?tracking— detail zásilek; s query parametremtrackingodpověď u každé zásilky obsahuje navíc poletracking_informationse stejným obsahem jakoshipments/tracking. Ušetříte tak druhé volání, pokud potřebujete detail i historii.GET /shipments/list?tracking— stránkovaný seznam zásilek, parametrtrackingfunguje stejně. Seznam lze filtrovat podle stavu (status=OPEN|ACTIVE|DELIVERED|STORNO), data vytvoření nebo vlastní reference.
Doporučený způsob integrace
API v1 nenabízí webhooky (odchozí HTTP notifikace o změně stavu). Stav zásilek zjišťujte dotazováním (pollingem):
- Pro průběžnou synchronizaci většího množství zásilek použijte
GET /shipments/list?trackings filtremstatus=ACTIVE— jedním voláním získáte stav všech aktivních zásilek. - Pro jednotlivé zásilky použijte
POST /shipments/trackings dávkou identifikátorů (endpoint přijímá poleshipments). - Tracking data se přebírají od dopravců průběžně — pro běžnou integraci je dostačující dotazovat se v intervalu desítek minut.
E-mailové notifikace o vyzvednutí, problému či doručení (odesílateli i příjemci) lze zapnout ve správním rozhraní (app.zaslat.cz).
Kdy přestat čekat na štítek
Stav zásilky sám neříká, zda štítek vůbec někdy bude — u části služeb ho přiveze kurýr při
svozu a Zaslat žádný štítek neposkytuje. Nečekejte proto na stav EXPORTED, ale řiďte se poli
label_mode a label_status v odpovědi POST /shipments/detail:
label_mode: CARRIER(label_status: NOT_APPLICABLE) — štítek přiveze kurýr, nic nestahujte;label_status: PENDING— štítek teprve vznikne, dotaz opakujte;label_status: READY— štítek stáhněte přesPOST /shipments/label;label_status: FAILED— štítek se nepodařilo získat, další dotazování nepomůže.
Podrobný postup a přehled dopravců je na stránce Štítky a jejich stavy.
Heslo pro podání (Zásilkovna, Balíkovna, PPL SmartPIN)
U zásilek podávaných na výdejním místě nebo do boxu vybraných dopravců (Zásilkovna, Balíkovna)
a u bezštítkových zásilek PPL dopravce přiděluje heslo pro podání — kód,
který odesílatel zadá nebo napíše na balík při jeho předání. API ho vrací v objektu
Package v poli package_password:
- heslo vzniká až při exportu zásilky k dopravci, tj. je dostupné od stavu
EXPORTED— v odpovědishipments/createje pole ještěnull; - vrací ho
POST /shipments/detailaGET /shipments/list, a to pouze vlastníkovi zásilky (nebo při uvedení tokenu objednávky v politokens); ostatním se vracínull; - u vratek heslo předejte zákazníkovi, který balík odnáší na výdejní místo nebo vkládá do boxu.
Příklad dotazu
Code
Odpověď (zkráceno na jednu zásilku):
Code
Události jsou řazené od nejnovější; klíčem objektu data je identifikátor zásilky
(tracking_number).