06
Chapter 06 of 08 · Logistics
AvailableSMSEmail

Zásilkovna, PPL and Czech Post: tracking SMS with live ETA

Czech customers check parcel status 4× after ordering. When the SMS „Parcel arrives today between 14:00–16:00“ hits, satisfaction rises 23% and call-centre volume drops 41%. 4notify wires Zásilkovna, PPL and Czech Post into one pipeline — no juggling three APIs and three webhook versions.

Problem

Every Czech carrier has its own webhook format, status list and rate limits. Without a unified connector you write three adapters and patch them monthly: Zásilkovna adds Z-BOX, PPL renames a status or Czech Post invents new exceptions.

Legal framework
Zákon č. 89/2012 Sb. § 2079 (kupní smlouva)

The seller must inform the buyer without delay about handover to the carrier and about delivery.

Zákon č. 634/1992 Sb. o ochraně spotřebitele

The consumer has the right to information about the real delivery date; an inaccurate ETA may constitute unfair commercial practice.

GDPR čl. 6 odst. 1 písm. b

Tracking SMS is delivery contract performance — no marketing opt-in needed, but opt-out from transactional comms must remain available.

Architecture
01

Unified status model

Zásilkovna, PPL and Czech Post webhooks are normalised into 7 universal states: HANDED_OVER, IN_TRANSIT, ARRIVED_AT_PICKUP, OUT_FOR_DELIVERY, DELIVERED, RETURNED, EXCEPTION.

02

Live ETA from courier geography

For PPL last-mile, the API returns the truck's position; 4notify computes ETA at the recipient's address and injects it into the SMS — „arriving today between 14:00–16:00“.

03

Z-BOX and alternative pickup

On ARRIVED_AT_PICKUP, 4notify proposes alternatives — neighbouring pickup, 7+7-day storage extension or courier home delivery.

04

Exception reaction

EXCEPTION (unavailable recipient, damaged parcel, return to sender) auto-escalates to the customer team with full order context.

Code
json
// 4notify universal carrier status (normalised from 3 carriers):
{
  "carrier": "zasilkovna",   // | "ppl" | "ceska_posta"
  "tracking_number": "Z1234567890",
  "order_id": "2026-CZ-0481",
  "status": "OUT_FOR_DELIVERY",
  "eta_window": {
    "from": "2026-05-29T14:00:00+02:00",
    "to":   "2026-05-29T16:00:00+02:00"
  },
  "pickup_location": null,
  "courier_phone": "+420774xxx",
  "events_history": [ ... ]
}
Sample message
SMS

YourBrand: Parcel Z1234567890 arriving today between 14:00–16:00, courier +420774xxx. Details: yourbrand.cz/s/Z1234.

Before launch
  • Three carrier API keys into 4notify (Zásilkovna API v5, PPL myAPI, Czech Post REST API)
  • SMS templates for 4 states: HANDED_OVER, OUT_FOR_DELIVERY, DELIVERED, EXCEPTION
  • Test Z-BOX and „Balík do ruky“ flows
  • Enable live ETA at PPL
  • Wire EXCEPTION escalation to support
  • Harmonise Polish ZIP format for Allegro/Mall cross-border
What 4notify does differently

Three Czech carriers in one unified status model + live PPL last-mile ETA + automatic exception escalation.

FAQ
Do you support DPD, GLS, In Time?

Yes, plus FOFR, WE|DO and Toptrans. International carriers (DHL, FedEx, UPS) cover EU plus 30 non-EU countries.

How do you handle time zones for cross-border delivery?

ETAs for Poland / Slovakia / Germany are converted to the recipient's local time and formatted in their language (PL/SK/DE).

Can we SMS at night after Z-BOX drop-off?

We hold a 7:00–21:00 communication window by default (CZ ČTÚ best practice). Night-time SMS are scheduled for 7:00 the next morning.

Start free

14 days, no card. Czech-language support.

Other chapters