Tracking & Webhooks
Tracking
Register a tracking number to monitor shipment progress:Tracking event statuses
| Status | Meaning |
|---|---|
pre_transit | Label created, not yet scanned |
in_transit | Package picked up and moving |
out_for_delivery | On vehicle for final delivery |
delivered | Confirmed delivered |
exception | Delivery issue (return to sender, held, etc.) |
unknown | Carrier status could not be normalized |
status_detail for cases where our normalized status isn’t specific enough.
Polling frequency
Our tracking data is updated every 4 hours via carrier API polling. For real-time needs, pollGET /v1/trackers/:id as frequently as your rate limit allows (300/min).
Webhooks
Package Retriever pushes one webhook event:label.created. This fires immediately after a successful label purchase.
Setup
Configure your webhook URL in the dashboard (Apps & Tools → Unleashed tab → Webhook section). You’ll receive a signing secret at configuration time.Payload
Signature verification
Every webhook is signed with HMAC-SHA256. Verify thePR-Signature header:
Node.js:
Retry schedule
If your endpoint doesn’t return a 2xx response, we retry:| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 5 minutes |
| 3 | 30 minutes |
| 4 | 2 hours |
| 5 | 24 hours |
Delivery log
View your last 50 webhook deliveries via the dashboard or API:Best practices
- Always return 200 quickly (process the payload asynchronously)
- Verify the signature before processing
- Handle duplicate deliveries idempotently (use
data.idas deduplication key) - If your endpoint is down, deliveries retry for up to 24 hours

