Schedule deliveries for later
By default, deliveries you create are picked up and delivered as soon as possible (ASAP). If you want to enable your customers to order ahead for a later delivery time, you can use scheduled deliveries.
Scheduled deliveries are generally best for when you're delivering perishable goods like food and drinks. If you're delivering non-perishable goods that don't need to be picked up or delivered at a specific time, delivery windows can help DoorDash more efficiently batch your deliveries together.
1. Prerequisites
If you're new to Drive and haven't yet created your first delivery, you should start with one of our tutorials. The tutorials will walk you through getting the credentials you need to call the APIs and making some basic API calls.
- Get started by making API calls
- If you're writing an app in Node.js (using JavaScript or TypeScript), get started using our Node.js SDK
- If you'd like to try our APIs interactively, get started using our Postman collection
2. Set up delivery quotes
For scheduled deliveries, we recommend using delivery quotes; if you're not already using quotes, you should follow the quotes how-to guide before this one.
When you create a quote for a scheduled delivery, DoorDash's fulfillment systems will evaluate if we can meet the requested pickup or dropoff time and provide our estimated pickup and dropoff times in the response to your quote request. You can then validate whether these estimated times meet your requirements, either using logic built into your app or by showing the estimated times to the end customer.
3. Schedule a delivery
To create a scheduled delivery, include either the pickup_time
or dropoff_time
field (but not both) in your quote request. Pickup_time or dropoff_time is required if you are allowing scheduled deliveries on your platform. You may also want to enable SMS notifications for the dropoff contact.
pickup_time
: A Dasher will show up at this time, collect your order, and deliver itdropoff_time
: A Dasher will show up early enough to collect the order and get to the dropoff location by this timedropoff_contact_send_notifications
: When this is set totrue
, DoorDash will send SMS notifications to thedropoff_phone_number
with updates on the status of the order and a link to the tracking page
The times are validated according to the following rules:
- Each time must be formatted in ISO-8601 format using the "complete date plus hours, minutes, and seconds" format that looks like this: "2023-05-02T17:00:00Z"
{
... // other fields
"pickup_time": "2023-05-02T17:00:00Z"
// or
"dropoff_time": "2023-05-02T17:00:00Z"
}
The response to your quote request will include a few estimated time fields that you can reference to see when DoorDash can fulfill the delivery.
estimated_pickup_time
: When we expect the Dasher will arrive at the pickup locationestimated_dropoff_time
: When we expect the Dasher will arrive the dropoff location
4. Set up webhooks
When using scheduled deliveries, it's important to have set up webhooks so that you receive real-time notifications when a Dasher is assigned and on the way to pick up your delivery.
Next steps
- Customize the SMS messages that are sent to the
dropoff_phone_number