No.
BP-AT-006
Scale
1 : 1
Date
2026-05-25
Rev.
A
Werkstatt 4notify · LogisticsReleased
Blueprint BP-AT-006 of BP-AT-008 · Logistics
SMSEmailWebhook

Österreichische Post, DPD AT and GLS — shipment-tracking webhooks

Normalised tracking states for Post Empfangsbox, self-service stations and home delivery

§ AThe problem

Without normalisation, every carrier brings its own vocabulary: Post says ’Übernahme von Versender', DPD says ’Pickup completed', GLS says ’Inbound at hub’. If the e-commerce platform forwards every status 1:1, the customer sees a patchwork of German, English and mixed terms — often with carrier-specific typos. Outcome: support tickets rise, customers think their parcel is in two different stages at once.

§ BMain view

The Austrian parcel market splits between Österreichische Post (~56%), DPD Austria (~22%), GLS Austria (~12%) and a tail of smaller operators (Hermes, FedEx, UPS). Each maintains its own status codes, its own webhook format and its own pickup-station logic — Post Empfangsbox at home, DPD Pickup stations, GLS ParcelShops. For e-commerce platforms with a mixed carrier base, normalising these statuses is the key lever: customers want consistent wording (’Parcel arrived at hub', ’Out for delivery', ’Ready for pickup in Mariahilf') regardless of carrier. 4notify ingests the raw webhooks, normalises to a canonical status list and fans out to the configured endpoints.

§ CParts list
ChannelPrimary providerFallback
Post-Webhookpost.at/sendungsverfolgung/webhookREST API polling (5 min)
DPD-WebhookDPD MyAccount pushDPD CSV-Export per E-Mail
GLS-WebhookGLS Track & Trace APIGLS event polling (10 min)
Kanonischer Status-Mapper4notify Status-NormalizerDefault-Mapping mit Warnung
Kunden-SMS AbholerinnerungBP-AT-002 SMS-RoutingE-Mail mit Karten-Link
§ DTolerances
Webhook → customer notify
≤ 60seconds
Status mapping coverage
100% canonical + 0.5% unknown
Pickup reminder lead time
48 + 24hours before deadline
Webhook retention
90days (PostmarktG)
Idempotency window
24hours
§ ENormative references
PostmarktG 2025 § 26

Consumers have a right to status transparency for parcel shipments. Carriers must keep the status history retrievable for at least 90 days.

DSGVO Art. 5 (1) (b) — Zweckbindung

Recipient address + phone may only be used for delivery. Marketing reactivation based on tracking events is not permitted without separate consent.

ABGB § 1419 — Annahmeverzug

If the recipient doesn't collect the parcel within the storage period (Post: 14 days, DPD: 7 days, GLS: 7 days) they fall into default of acceptance. Status notifications help avoid that.

§ FBuild steps

Register webhooks with all three carriers

With Post via the business portal post.at/business; with DPD via DPD MyAccount → webhook configuration; with GLS via the Track & Trace back office. Each carrier uses its own auth — Post: HMAC, DPD: Basic Auth, GLS: API key. 4notify abstracts that behind a unified connection config.

Map raw status to canonical vocabulary

The status table: `created`, `picked_up`, `at_origin_hub`, `in_transit`, `at_destination_hub`, `out_for_delivery`, `delivered`, `at_pickup_point`, `picked_up_by_recipient`, `returned`, `lost`. Each carrier raw status maps to one of these eleven canonical values; unknown statuses are logged with a warning and mapped to a default (`in_transit`).

Detect and flag Empfangsbox specifics

Post Empfangsbox = delivered, but to the home Empfangsbox (not to the recipient directly). Status stays `delivered` but an extra field `pickup_location: empfangsbox` is set — so the SMS template can distinguish ’Parcel delivered’ from ’Parcel in Empfangsbox at the door’.

Pickup reminders 48 h + 24 h before storage cutoff

On status `at_pickup_point` a timer is created automatically: first reminder 48 h before the storage cutoff (Post 14, DPD 7, GLS 7 days), second 24 h before. On pickup (status `picked_up_by_recipient`) the timers are cancelled.

§ GTest procedure

Test procedure: (1) Inject a test shipment via Post / DPD / GLS sandbox — three shipment IDs simultaneously. (2) Trigger status changes in the sandbox (pickup → in transit → at hub → out for delivery). (3) On each change, verify customer SMS within 60 seconds, canonical status must be correct. (4) Simulate a pickup-point delivery instead of doorstep — status `at_pickup_point` must arrive, timers for 48 h + 24 h before deadline must be created. (5) Simulate Empfangsbox delivery — status `delivered` with `pickup_location: empfangsbox`, SMS text must contain ’Empfangsbox’.

§ HCode
bash
curl -X POST https://api.4notify.net/v1/shipments/register \
  -H "Authorization: Bearer $API_KEY' \
  -H "Content-Type: application/json' \
  -d '{
    "carrier': 'post_at",
    "tracking_number': 'AT123456789",
    "recipient_phone': '+436641234567",
    "notify_on": [
      "out_for_delivery",
      "delivered",
      "at_pickup_point",
      "returned"
    ],
    "pickup_reminders_hours_before_deadline": [48, 24],
    "carrier_webhook_signature': 'sha256=…"
  }'
§ ISample message
SMS

Post.at: parcel AT123456789 is waiting at the Post office 1070 Vienna, Mariahilfer Str. 88 until 09.06. for pickup. Bring ID.

§ JCommissioning checklist
  • Webhooks active with all relevant carriers (Post / DPD / GLS at minimum)
  • Idempotency key per event implemented (24-hour window against duplicates)
  • Status mapping table reconciled with each carrier's raw status flow
  • Empfangsbox detection active in Post webhooks
  • Pickup reminders configured with the correct storage windows per carrier
  • Unknown statuses are logged and reported to support@ (no silent fail)
What 4notify does differently

Instead of forwarding carrier statuses 1:1, 4notify normalises to eleven canonical values — and detects Empfangsbox specifics, without which the customer can't tell whether the parcel is in the flat or in the front yard.

§ KFAQ
What if a carrier webhook fails?

4notify falls back to polling (5-10 min interval, depending on carrier) and triggers an ops alarm. Webhooks have 30-day replay capability; once restored, missed events are replayed without duplicates (idempotency key).

How do you handle Hermes / FedEx / UPS?

Adapters exist for FedEx and UPS (API-based webhooks). Hermes Austria currently uses a polling API; we poll every 10 minutes and write events into the same canonical status stream. Status coverage is 100% for Post/DPD/GLS and ~92% for the smaller carriers.

Can we remind customers across multiple delivery addresses?

Yes. If the recipient maintains multiple addresses in their online account (home + office), 4notify can accompany the office shipment with an extra SMS ’Note: shipped to office gate’. The logic boundary: address tagging happens in the e-commerce platform; 4notify just consumes the tag.

Open a free account

14 days, no card. German-language support.

§ LOther blueprints