Skip to main content

Overview

Webhooks notify your application when parcel events occur in real-time, eliminating the need to poll for updates.

Setup

  1. Go to DashboardSettingsWebhooks
  2. Add your endpoint URL (must be HTTPS)
  3. Select the events you want to receive
  4. Save and test the webhook
Configure separate URLs for sandbox and production environments.

Webhook Format

All webhooks follow this structure:

Event Types

parcel.status_changed

Triggered when a parcel’s status changes.

parcel.delivered

Triggered when a parcel is delivered.

parcel.exception

Triggered when a delivery exception occurs.

manifest.submitted

Triggered when a manifest is successfully submitted.

Webhook Handling

Basic Handler

Async Processing

Process webhooks asynchronously to respond quickly:

Security

Signature Verification

All webhooks include a signature header for verification:
Always verify this signature to ensure the webhook is authentic.

IP Whitelist

Webhooks are sent from these IP addresses:
Optionally whitelist these IPs in your firewall.

Retry Policy

After all retries fail, the webhook is marked as failed. Check the dashboard for failed webhooks.

Best Practices

Return 200 within 5 seconds. Process asynchronously if needed.
Use the id field to deduplicate webhooks. Same event may be sent multiple times.
Always verify the webhook signature to prevent spoofing.
Store raw webhook payloads for debugging and audit purposes.

Testing

Send test webhooks from the dashboard:
  1. Go to WebhooksTest
  2. Select event type
  3. Click Send Test Webhook
Or use the API: