PATCH updates back as the delivery progresses.
When updates start
Each dispatch event Nash sends carries adeliveryId. That’s the identifier you use on every update for that delivery’s lifetime. Updates only land on deliveries owned by your organization — anything else returns not-found.
Two endpoints
| Endpoint | Use when |
|---|---|
PATCH /v1/fleet/deliveries/{delivery_id} | A single delivery changed state. |
PATCH /v1/fleet/deliveries | You want to flush updates for up to 100 deliveries at once. Per-item failures don’t affect the rest of the batch. |
Lifecycle
A typical happy path moves through:failed or canceled_by_provider, paired with a structured failure.code (e.g. customer_unavailable, address_not_found, no_capacity). Returns flow through return_in_progress → return_arrived → returned_to_store.
Sending the same status twice is a no-op, so it’s safe to retry.
What you can include in a single call
A single update can carry any combination of:status— lifecycle transition.coordinates—{ latitude, longitude }. Append-only; safe to send on every tick.courier— name, phone, vehicle, profile image. Send on first assignment, or any subset on a mid-flight swap.proofOfDelivery— image artifacts (photo / signature at pickup or dropoff) or barcode scans.failure— structured{ code, reason }forfailed/canceled_by_provider.pickupEta/dropoffEta— provider-supplied ETAs.pickupNote/dropoffNote— free text the courier captured.externalDeliveryId— your own identifier for this delivery, for cross-system reconciliation.
Validation
- At least one mutating field is required per update — empty bodies return
422. coordinates.latitudemust be in[-90, 90],longitudein[-180, 180].- Wire format is camelCase; snake_case is also accepted.
Response shape
Both endpoints return the same delivery object you’d see nested under a job’s task inGET /v1/jobs/{id}. The bulk response wraps each item with a per-item success flag and either the updated delivery or a structured error.
Next steps
Report delivery state
Walk through reporting status, location, and proof of delivery.
Update a delivery
PATCH a single delivery as it progresses.
Bulk update deliveries
Flush updates for up to 100 deliveries at once.