Skip to main content

Tracking & Webhooks

Tracking

Register a tracking number to monitor shipment progress:
Poll for updates:

Tracking event statuses

Each event includes the raw carrier message in 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, poll GET /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 the PR-Signature header: Node.js:
Python:

Retry schedule

If your endpoint doesn’t return a 2xx response, we retry: After 5 failed attempts, the delivery is marked as failed. You can view all delivery attempts in the dashboard (Apps & Tools → Unleashed → Webhook Deliveries).

Delivery log

View your last 50 webhook deliveries via the dashboard or API:
Each entry shows: status, response code, attempts, timestamps.

Best practices

  • Always return 200 quickly (process the payload asynchronously)
  • Verify the signature before processing
  • Handle duplicate deliveries idempotently (use data.id as deduplication key)
  • If your endpoint is down, deliveries retry for up to 24 hours