Two webhook systems


Settings → Webhooks is Zippendo notifying you — not a carrier tracking callback


Create Webhook — Tracking group with Tracking Updated
Which carriers push tracking
Zippendo either pulls tracking on a schedule (~hourly) or receives carrier POSTs.
Edit your carrier still has only Carrier name, credentials, and Sandbox Mode. There is no Webhook URL or Tracking callback row.


Edit your carrier for GLS Denmark — credentials and Sandbox Mode, no tracking webhook fields
What you see on the shipment
After Send Shipment, open Tracking (?tab=tracking). The tab exists only when the shipment has a tracking number, tracking URL, label-free code, or QR code.
The timeline looks the same for pull and push carriers: status badge, newest-first events, Tracking Information (Tracking Number, Tracking Link, optional Label-Free Code / QR Code). Helper: Tracking information is provided by the carrier. Use the tracking number or link above to check the current status of your shipment.


Tracking Timeline and Tracking Information after carrier events arrive


Empty timeline immediately after dispatch, before the first scan
Failures
If Bring auto-registration fails at dispatch, the send can surface Failed to register the carrier tracking webhook. (CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED). Tracking numbers may still exist; events then wait until registration succeeds or you use a pull carrier.
Invalid inbound payloads are The webhook payload is invalid. / The webhook signature is invalid. Those codes are for carrier → Zippendo verification, not for your Settings endpoint (your endpoint verifies Zippendo’s HMAC — Webhooks).
When the carrier site is ahead of Zippendo, use Tracking not updating.
Related
- Webhooks — Settings → Webhooks, events, HMAC, delivery log
- Tracking
- Carrier credentials
- Sandbox mode
- Webhooks quickstart