LASF$260|SFLA$264|COLLA$366|COLCHI$193|NJMIA$288|COLSF$420|SFSAC$142|LADAL$398|LASD$156|COLMIA$303|SFSEA$235|COLDAL$208|LASLC$297|LAPHX$244|LALV$260|LAORL$437|LANJ$447|HARNJ$188|LACOL$365|CHINJ$235|DALMIA$266|SFPDX$231|COLPHX$244|NJORL$304|SFSD$208|COLORL$310|CHIMIA$295|COLDEN$275|LAMIA$420|LVLA$215|SATAUS$125|LASAC$195|LADEN$310|DALLA$385|SFPHX$280|LASEA$340|NJDAL$335|ORLMIA$145|ORLTPA$130|DALHOU$155|DALSAT$165|NJATL$270|MIANJ$305|NJCHI$240|NJLA$440|ORLJAX$140|COLSLC$320|HOUNJ$345|SLCBOI$185|LAPDX$315|LASF$260|SFLA$264|COLLA$366|COLCHI$193|NJMIA$288|COLSF$420|SFSAC$142|LADAL$398|LASD$156|COLMIA$303|SFSEA$235|COLDAL$208|LASLC$297|LAPHX$244|LALV$260|LAORL$437|LANJ$447|HARNJ$188|LACOL$365|CHINJ$235|DALMIA$266|SFPDX$231|COLPHX$244|NJORL$304|SFSD$208|COLORL$310|CHIMIA$295|COLDEN$275|LAMIA$420|LVLA$215|SATAUS$125|LASAC$195|LADEN$310|DALLA$385|SFPHX$280|LASEA$340|NJDAL$335|ORLMIA$145|ORLTPA$130|DALHOU$155|DALSAT$165|NJATL$270|MIANJ$305|NJCHI$240|NJLA$440|ORLJAX$140|COLSLC$320|HOUNJ$345|SLCBOI$185|LAPDX$315|View all rates →LASF$260|SFLA$264|COLLA$366|COLCHI$193|NJMIA$288|COLSF$420|SFSAC$142|LADAL$398|LASD$156|COLMIA$303|SFSEA$235|COLDAL$208|LASLC$297|LAPHX$244|LALV$260|LAORL$437|LANJ$447|HARNJ$188|LACOL$365|CHINJ$235|DALMIA$266|SFPDX$231|COLPHX$244|NJORL$304|SFSD$208|COLORL$310|CHIMIA$295|COLDEN$275|LAMIA$420|LVLA$215|SATAUS$125|LASAC$195|LADEN$310|DALLA$385|SFPHX$280|LASEA$340|NJDAL$335|ORLMIA$145|ORLTPA$130|DALHOU$155|DALSAT$165|NJATL$270|MIANJ$305|NJCHI$240|NJLA$440|ORLJAX$140|COLSLC$320|HOUNJ$345|SLCBOI$185|LAPDX$315|LASF$260|SFLA$264|COLLA$366|COLCHI$193|NJMIA$288|COLSF$420|SFSAC$142|LADAL$398|LASD$156|COLMIA$303|SFSEA$235|COLDAL$208|LASLC$297|LAPHX$244|LALV$260|LAORL$437|LANJ$447|HARNJ$188|LACOL$365|CHINJ$235|DALMIA$266|SFPDX$231|COLPHX$244|NJORL$304|SFSD$208|COLORL$310|CHIMIA$295|COLDEN$275|LAMIA$420|LVLA$215|SATAUS$125|LASAC$195|LADEN$310|DALLA$385|SFPHX$280|LASEA$340|NJDAL$335|ORLMIA$145|ORLTPA$130|DALHOU$155|DALSAT$165|NJATL$270|MIANJ$305|NJCHI$240|NJLA$440|ORLJAX$140|COLSLC$320|HOUNJ$345|SLCBOI$185|LAPDX$315|
WARP // FREIGHT NETWORK191,000+ ADDRESSES DELIVERED TO

Webhooks

Real Time Freight Events, Not Check Calls

The old way: call the broker for updates, poll a tracking page every 15 minutes, or wait hours for an EDI 214 message. The Warp way: webhook events arrive in real time for every scan, GPS update, exception, and delivery. Your system gets a POST request the moment something happens. No polling. No check calls. No stale data.

20,000+ carriers · 9,000+ box trucks and cargo vans · 50+ cross dock facilities

8Event types
Real timeEvent delivery
0Polling required
24 hrsRetry window

Polling, check calls, EDI, and webhooks

Most freight tracking relies on one of three approaches: polling the carrier API every few minutes, calling the carrier for status updates, or waiting for batched EDI 214 messages. All three introduce delay. Webhooks flip the model. Warp pushes events to your system the moment they happen.

MethodFrequencyLatencyLoadCost
PollingEvery 15 min0 to 15 min delayHigh (96 calls/day per shipment)API rate limit pressure
Check callsTwice daily4 to 12 hour delayManual phone callsStaff time, carrier frustration
EDI 214Batched1 to 6 hour delayLow (batched)Infrastructure + maintenance
Warp webhooksReal timeSecondsZero (push model)Free with API access

Event types

Warp fires webhook events for every meaningful status change in the shipment lifecycle. Each event includes a timestamp, GPS coordinates, and contextual data specific to the event type. Your system receives them in the order they happen.

EventDescriptionData included
PICKED_UPDriver has picked up the freight from originTimestamp, GPS, driver ID, scan count
SCANNED_INFreight scanned into a cross dock facilityTimestamp, facility ID, item count, condition
DEPARTEDFreight has left a facility or stopTimestamp, GPS, next stop ETA
IN_TRANSITGPS update while freight is movingTimestamp, GPS coordinates, speed, heading
ARRIVEDDriver has arrived at destination or facilityTimestamp, GPS, facility/address match
SCANNED_OUTFreight scanned out of a cross dock facilityTimestamp, facility ID, item count, next leg
DELIVEREDFreight delivered with proof of delivery capturedTimestamp, GPS, signature, photos, recipient
EXCEPTIONIssue flagged by Orbit or driverTimestamp, exception type, severity, resolution

Webhook payload: DELIVERED

When freight is delivered, your webhook endpoint receives a payload with GPS coordinates, the name of the person who signed, photo count, a link to the proof of delivery, and delivery notes. Everything you need to close out the order automatically.

POST to your webhook URL

{
  "event": "DELIVERED",
  "shipmentId": "shp_01HGA2K9MNPQ4RV8XW3YZ5TJ6",
  "trackingNumber": "WARP1234567890",
  "orderId": "ord_01HGA2K9MNPQ4RV8XW3YZ5TK7",
  "timestamp": "2025-03-17T14:22:00Z",
  "location": {
    "latitude": 33.4484,
    "longitude": -112.0740,
    "city": "Phoenix",
    "state": "AZ"
  },
  "details": {
    "signedBy": "J. Martinez",
    "photoCount": 2,
    "podUrl": "https://api.wearewarp.com/pod/abc123",
    "deliveryNotes": "Left at receiving dock B"
  }
}

Webhook payload: EXCEPTION

Our AI backbone, Orbit, monitors every shipment in real time. When Orbit detects a risk, it fires an EXCEPTION event before the problem becomes a missed delivery. The payload includes exception type, severity, a description of the issue, and a suggested action. In many cases, Warp is already resolving the issue by the time your system receives the event.

EXCEPTION event (flagged by Orbit)

{
  "event": "EXCEPTION",
  "shipmentId": "shp_01HGA2K9MNPQ4RV8XW3YZ5TJ6",
  "trackingNumber": "WARP1234567890",
  "timestamp": "2025-03-17T06:15:00Z",
  "location": {
    "latitude": 34.0522,
    "longitude": -118.2437,
    "city": "Los Angeles",
    "state": "CA"
  },
  "exception": {
    "type": "LATE_PICKUP_RISK",
    "severity": "warning",
    "message": "Driver ETA is 45 min past pickup window",
    "suggestedAction": "Warp is dispatching backup driver",
    "flaggedBy": "Orbit"
  }
}

Setting up a webhook listener

Register your webhook URL in the Warp dashboard under developer settings. Your endpoint receives a POST request for every event. Return a 200 status within 5 seconds. Here is a minimal Express.js listener that routes events by type.

Express.js webhook listener

// Express.js webhook listener
const express = require('express');
const app = express();
app.use(express.json());

app.post('/webhooks/warp', (req, res) => {
  const event = req.body;

  switch (event.event) {
    case 'PICKED_UP':
      // Update your TMS: shipment in transit
      updateShipmentStatus(event.shipmentId, 'picked_up');
      break;

    case 'DELIVERED':
      // Close out the order, trigger invoicing
      markDelivered(event.shipmentId, event.details);
      break;

    case 'EXCEPTION':
      // Alert your ops team
      notifyOpsTeam(event.shipmentId, event.exception);
      break;

    default:
      // Log all other events for audit trail
      logEvent(event);
  }

  res.status(200).send('OK');
});

app.listen(3000);

What you can build with webhook events

Real time tracking UI

Show live shipment status to your customers.

Every webhook event updates your tracking page instantly. Your customers see PICKED_UP, IN_TRANSIT, ARRIVED, and DELIVERED without refreshing. No polling lag.

Automated exception handling

Trigger alerts before customers ask.

Route EXCEPTION events to your ops team via Slack, PagerDuty, or email. Our AI backbone, Orbit, flags issues proactively so your team can resolve them before the customer calls.

Order lifecycle automation

Close orders and trigger invoicing automatically.

When DELIVERED fires, update your TMS, mark the order complete, trigger invoicing, and archive the shipment. Zero manual steps between delivery and settlement.

Reliability and retries

Warp retries failed webhook deliveries with exponential backoff for up to 24 hours. If your endpoint returns a non 200 status or times out, the event is queued and retried at increasing intervals. You can also pull any missed events from the tracking endpoint (GET /freights/events/{shipmentId}) as a fallback. Every event is persisted on the Warp side regardless of webhook delivery status.

  • -First retry: 30 seconds after initial failure.
  • -Subsequent retries: exponential backoff up to 1 hour intervals.
  • -Total retry window: 24 hours.
  • -Fallback: GET /freights/events/{shipmentId} returns the full event history at any time.
  • -Every event is persisted. Nothing is lost if your endpoint is temporarily down.

Frequently asked questions

What events does Warp send via webhooks?

Warp sends webhook events for every status change in the shipment lifecycle: PICKED_UP, SCANNED_IN, DEPARTED, IN_TRANSIT, ARRIVED, SCANNED_OUT, DELIVERED, and EXCEPTION. Each event includes a timestamp, GPS coordinates, and a description of what happened.

How do I set up a webhook listener for Warp events?

Register your webhook URL in the Warp dashboard under developer settings. Warp sends a POST request to your URL for every shipment event. Your endpoint should return a 200 status code within 5 seconds. Failed deliveries are retried with exponential backoff.

Can I filter which webhook events I receive?

Yes. You can subscribe to specific event types in the Warp dashboard. If you only care about delivery confirmations and exceptions, subscribe to DELIVERED and EXCEPTION only. You will not receive events for the types you do not subscribe to.

How does our AI backbone, Orbit, use webhook events?

Our AI backbone, Orbit, monitors every event in real time and flags exceptions before you have to ask. If a shipment misses a scan window, if a driver deviates from the expected route, or if a delivery is at risk of being late, Orbit fires an EXCEPTION event with details about what went wrong and what to do about it.

What happens if my webhook endpoint is down?

Warp retries failed webhook deliveries with exponential backoff for up to 24 hours. If your endpoint returns a non 200 status or times out, the event is queued and retried. You can also pull missed events from the tracking endpoint at any time as a fallback.

Real time events. Zero polling. Proactive exceptions.

Warp webhooks push every scan, GPS update, exception, and delivery to your system the moment it happens. Our AI backbone, Orbit, flags problems before your customers notice. Build tracking features that work in real time.

8 event types · Real time delivery · 24 hour retry window

Get API Access