Docs β€Ί Webhooks

Event catalog

Every event, with Nash and Onfleet equivalents.

Subscribe to exact names, to delivery.*-style wildcards, or to * for everything. GET /v1/webhooks/events returns this list live.

Delivery events

EventNash equivalentOnfleet equivalentFires when
delivery.createdcreatedtaskCreatedThe order is created.
delivery.scheduledscheduledβ€”Created with a pickup window more than an hour out.
delivery.not_assigned_drivernot_assigned_driverβ€”No driver could be assigned yet.
delivery.assigned_driverassigned_drivertaskAssignedA driver accepts or is assigned.
delivery.unassigned_driverβ€”taskUnassignedThe driver is removed.
delivery.startedstartedtaskStartedThe driver starts the job.
delivery.pickup_enroutepickup_enrouteβ€”Heading to the pickup.
delivery.pickup_arrivedpickup_arrivedtaskArrivalArrived at the pickup.
delivery.pickup_completepickup_completetaskCompleted (pickup)Order collected.
delivery.dropoff_enroutedropoff_enrouteβ€”Heading to the dropoff.
delivery.dropoff_arriveddropoff_arrivedtaskArrivalArrived at the dropoff.
delivery.dropoff_completedropoff_completetaskCompletedDelivered.
delivery.failedfailedtaskFailedA stop failed; the payload has failureReason.
delivery.canceled_by_merchantcanceled_by_customertaskDeletedCancelled by you (API or portal).
delivery.canceled_by_customercanceled_by_customertaskDeletedCancelled by the end customer.
delivery.canceled_by_providercanceled_by_providerβ€”Cancelled by Dragonfly.
delivery.return_in_progress, delivery.return_arrived, delivery.returnedsameβ€”Returning an undeliverable order to the pickup.
delivery.expiredexpiredβ€”The window passed without delivery.
delivery.updated(task) updatedtaskUpdatedStop or order fields changed.
delivery.eta, delivery.arrival, delivery.delayed, delivery.predicted_delayβ€”taskEta, taskArrival, taskDelayed, predictedTaskDelayETA and delay alerts.
delivery.proof_of_deliveryproof_of_deliverytaskUpdatedA photo, signature or scan was captured.
delivery.pincode_verificationpincode_verificationβ€”A PIN was verified.
delivery.id_verificationβ€”β€”ID/age check result (passed, ageYears, method).
delivery.barcode_scanneditems_pick_updatetaskUpdatedBarcodes were scanned.
delivery.tracking_viewedβ€”taskUpdatedThe recipient opened the tracking page.

Other events

EventFires when
courier_location.updatedDriver GPS while on your live order (at most every 30 s).
courier.duty, courier.created, courier.updated, courier.deletedDriver roster changes (fleet accounts).
route.created, route.assigned, route.unassigned, route.started, route.updated, route.completed, route.delayedRoute lifecycle (route accounts).
route.optimization_completed, route.batch_create_completedRoute building jobs finished.
dispatch.auto_dispatch_completed, dispatch.failureAutomatic dispatch outcomes.
sms.recipient_response_missed, sms.recipient_opt_outThe recipient texted back, or opted out of texts.
refund.created, refund.updatedRefund requests.
quote.createdA delivery was priced.

Suggested subscriptions

Use caseSubscribe to
Show status in your appdelivery.assigned_driver, delivery.pickup_complete, delivery.dropoff_complete, delivery.failed, delivery.canceled_by_*
Store proof of deliverydelivery.proof_of_delivery
Live mapcourier_location.updated
Everythingdelivery.*

Something unclear or missing? Tell us.