EXPRESS
On-demand last-mile delivery. Dash allocates the nearest available driver, the package is collected at pickup, and delivered in a single leg. The bulk of the API surface is built for this flow.
Deprecation — service-category create path. Creating deliveries on the shared POST /v1/deliveries endpoint (where the category is chosen via the serviceCategory field) is deprecated. EXPRESS now uses the dedicated POST /express/v1/deliveries path. The legacy shared path will be obsoleted on 21 November 2026 and stops accepting requests after that date — migrate before then.
When to use EXPRESS
Use serviceCategory: "EXPRESS" when:
- You need same-hour or same-day fulfilment.
- The package is collected from a known pickup point (a restaurant, an outlet, a shop) and delivered to a single recipient.
- No warehouse verification is required.
Service types
State machine
Transitions
Reassignment loops. The Dash dispatcher can move a delivery back to PENDING_PICKUP from PICKING_UP, PENDING_DELIVERY, or IN_DELIVERY when a driver becomes unavailable. Each reassignment fires a fresh webhook with the updated courier block — always treat the most recent value as authoritative.
EXPRESS-only fields and webhook statuses
These are emitted only when serviceCategory: "EXPRESS":
- Statuses:
ALLOCATING,PENDING_PICKUP - Webhook field:
trackingURL(present fromPENDING_PICKUPonward) - POD media:
PICKUP_PROOFis captured by the driver (LOGISTIC skips this)
Endpoints
EXPRESS uses the dedicated create-delivery path. Everything else (quote, get, cancel, notify) is shared with LOGISTIC.
POST /v1/deliveries path is deprecated (21 May 2026) and obsoleted 21 Nov 2026. See Create delivery.Gotchas
- Driver re-assignment can happen on
PENDING_PICKUP,PICKING_UP,PENDING_DELIVERY, orIN_DELIVERY. A re-assignment fires a fresh webhook with updatedcourier.name/courier.phone— keep the most recent values. - Cancellation eligibility runs through
PICKING_UP— you can cancel any time before the package is picked up (ALLOCATING,PENDING_PICKUP,PICKING_UP). Once the driver collects the package (PENDING_DELIVERY), the only terminal states areCOMPLETEDorFAILED. - trackingURL only exists on EXPRESS deliveries and only from
PENDING_PICKUPonward.