Dasher Status Webhooks
Track your Dashers
Marketplace APIs are not yet generally available. Please record interest in early access here.
Prerequisites
DoorDash has enhanced the Open API contract by adding a new webhook. Integration partners can subscribe to this webhook by providing their Technical Account Manager with an endpoint and authorization details.
Overview
The Dasher Status webhook contains a status indicator, reference to the specific order, and Dasher information. A webhook event will be triggered each time a specific dasher status is reached, so multiple events are expected to trigger for an order.
By giving POS Merchants insight into the full lifecycle of an order, we can increase operational efficiency by allowing Merchants to:
- Add final touches to an order just before the Dasher walks into the store, while still ensuring food quality (finish bagging, pull ice cream from freezer etc.)
- Understand the current status of an order, and remove the need to contact support
- Prioritize in progress orders, completing the order with the earliest arriving Dasher
- Improve the order handoff experience with visibility to Dasher details.
Get Started
Step 1: Set up your Webhook Subscription
Make sure to use the "Dasher Status Updates"
event type
Step 2: Understand the Webhook Fields
dasher_status
: string value indicating the current Dasher status. Values include dasher_confirmed
, arriving_at_store
, arrived_at_store
, dasher_out_for_delivery
,dropoff
.
external_order_id
: unique UUID of the order sent to the Merchant from DoorDash
client_order_id
: merchant_supplied_id
from the order confirmation payload. When a merchant confirms the order, they can pass their internal order id in the merchant_supplied_id
field, then we save this value as client_order_id. This is the value that we send back in the payload as client_order_id
. If this value is not passed during order confirmation, it will be set to null in the payload
created_at
: timestamp of the Dasher status event
location_id
: the merchant supplied identifier of a store
Phone_number
: masked phone number of the Dasher (Note: The Dasher can only be reached if the call is initiated from the store phone number)
Step 3: Set up the Webhook Payload
Below is a sample payload:
{
"event": {
"type": "dasher_status_update",
"status": "<SUCCESS> OR <FAILURE>",
"reference": "<reference_uuid>"
},
"created_at": "2021-06-02T17:41:29.996321Z",
"delivery": {
"external_order_id": "7424215690108_2",
"client_order_id": "12321444",
"location_id": "123852",
"dasher_status": "arrived_at_store",
"dasher": {
"phone_number": "(586) 381-6148",
"first_name": "Jude",
"last_name": "D.",
"vehicle": {
"color": "",
"make": "Dodge",
"model": "Dakota"
}
}
}
}
Step 4: Understand the Response & Error Codes
Once a webhook is received, the provider is expected to return the following response codes
Status Code | Details |
---|---|
200 | Return a 200 status to indicate that the data was received successfully |
401 | Unauthorized. DoorDash does not have an auth token for this endpoint |
403 | Forbidden, DoorDash does not have access to this endpoint |
500 | Internal Server Error - something went wrong on the Mx side |
503 | Service not available - Mx endpoint is partially or totally down |
Next Steps
Ensure that store operators are aware of this functionality is available to them and that it is being used properly to get the full benefits of it.
FAQs
When is the ‘arriving_at_store’ notification triggered?
- The notification is triggered when a Dasher is 400 meters from the store. This value is not configurable.
What happens if a dasher is unassigned?
- The dasher_assigned notification would be triggered twice in this scenario.
How does this event differ from Auto Order Release (AOR)?
- This Dasher status webhook is an informational event aimed at improving the handoff between Merchant and Dasher. AOR is only designed for Quick Service Restaurants and is tied to more complex Dasher assignment logic on the DoorDash side.
Modified: 5/1/2023