Skip to Content

Developer / API Learning Center

Integrate shipping, tracking, labels, and rate quotes into your platform.

Webhooks

Webhooks allow Jet Delivery to send shipment events to your system in real time (pickup, delivery, dispatch updates, etc.). This is the best way to keep your platform up to date without polling.

Recommended: Your webhook endpoint should respond quickly with 200 and process events asynchronously.

Setup

  • Create an HTTPS endpoint in your system to receive webhook deliveries.
  • Configure your endpoint URL (and selected event types) in your Jet Delivery account portal.
  • Log webhook deliveries and return 200 quickly. Retry logic may occur for non-200 responses.
Tip: Start by logging the raw request body + headers for the first day of testing so you can validate event delivery and payload fields.

Delivery behavior

  • HTTP method: POST
  • Content-Type: application/json
  • Response: return 200 to acknowledge receipt
  • Retries: if your endpoint is unreachable or returns non-200, Jet may retry delivery

If you need strict idempotency, use an event ID (or track number + datetime + description) as a dedupe key in your system.

Security

  • Use HTTPS for your webhook endpoint.
  • Validate that the request body is valid JSON and matches your expected shape.
  • Do not trust inbound fields blindly—treat webhook content as untrusted input.
If you enable shared secrets/signature verification in the future, validate it on every webhook request. (We can add this when your signature scheme is finalized.)

Event types

Webhooks send event notifications when shipment status changes. Exact event types may vary by account configuration and service type.

Common events include: dispatch, picked up, in transit, delivered, and exception updates.
  • Dispatch updates: driver assigned / driver dispatched
  • Pickup: pickup completed / departed origin
  • Delivery: delivered / signature captured
  • Exceptions: cancellation / failed attempt / reschedule (if applicable)

If you paste your current webhook event list + payload sample, I’ll convert this into a precise table.

Payload (example shape)

{
  "event_type": "delivered",
  "track_no": "3765352",
  "status_code": "15",
  "status_description": "Delivered",
  "event_datetime": "2026-02-26T13:09:00-08:00",
  "reference": "24528",
  "signature": "Susana Mendoza",
  "details_url": "https://www.jetdelivery.com/track/?id=3765352"
}
Note: Field names and contents may vary by event type. Use track_no as your primary identifier for updates.

Recommended handling

  • Verify your endpoint is reachable and returns 200.
  • Store the raw payload (at least during initial rollout).
  • Process the event asynchronously (queue/job worker) to avoid timeouts.
  • Implement dedupe (idempotency) in case the same event is delivered more than once.

Example (acknowledge quickly)

# Your endpoint should respond quickly:
HTTP/1.1 200 OK
Content-Type: application/json

{"ok": true}

Troubleshooting

  • No deliveries: endpoint URL incorrect, not publicly reachable, or events not selected.
  • Repeated deliveries: your endpoint is returning non-200 or timing out.
  • Invalid JSON: log raw body and confirm your parser matches the payload shape.