Webhooks
Receive real-time event notifications for shipments and tracking updates.
Overview
Webhooks allow OrbisCommerce to push event notifications to your server the moment something happens — no polling required.
Register a Webhook
POST /v1/webhooks
{
"url": "https://yourapp.com/webhooks/orbiscommerce",
"events": [
"shipment.created",
"label.generated",
"tracking.updated",
"tracking.delivered"
],
"secret": "your_signing_secret"
}
Available Events
| Event | Fired when... |
|---|---|
shipment.created | A new shipment is created |
shipment.cancelled | A shipment is cancelled |
label.generated | A label is successfully generated |
label.voided | A label is voided |
tracking.updated | A new tracking event is received |
tracking.delivered | Package status changes to delivered |
tracking.exception | A delivery exception is detected |
Payload Format
All webhook payloads share the same envelope:
{
"id": "evt_01HXYZ9999MNOP",
"event": "tracking.delivered",
"created_at": "2025-06-03T18:42:00Z",
"data": {
"tracking_number": "9400111899223456789012",
"carrier": "usps",
"status": "delivered",
"delivered_at": "2025-06-03T18:40:00Z"
}
}
Verifying Signatures
Every webhook request includes an Orbis-Signature header. Always verify this to confirm the request came from OrbisCommerce.
import { createHmac } from "crypto";
function verifyWebhook(
payload: string,
signature: string,
secret: string,
): boolean {
const expected = createHmac("sha256", secret)
.update(payload)
.digest("hex");
return `sha256=${expected}` === signature;
}
// In your handler:
const payload = await request.text();
const signature = request.headers.get("Orbis-Signature") ?? "";
if (!verifyWebhook(payload, signature, process.env.WEBHOOK_SECRET!)) {
return new Response("Unauthorized", { status: 401 });
}
Retries
If your endpoint returns a non-2xx status, OrbisCommerce retries with exponential backoff:
| Attempt | Delay |
|---|---|
| 1st | 1 min |
| 2nd | 5 min |
| 3rd | 30 min |
| 4th | 2 hrs |
| 5th | 8 hrs |
After 5 failed attempts the webhook is marked as failed and you will receive an email alert.