Skip to main content

Create a Webhook Subscription

Limited access

Marketplace APIs are not yet generally available. Please record interest in early access here.

You can receive updates about Marketplace API events by subscribing to webhooks. A webhook delivers real-time event data to an endpoint that your app exposes.

Create a Webhook Endpoint​

Add an internet-accessible HTTPS endpoint to your app to receive and process webhook events. Make sure you note the endpoint URL.

Required webhook endpoints:​

  • Orders – Receive DoorDash orders
  • Menu Status – Receive menu status callback notifications
  • Menu Request – Receive requests from DoorDash to pull menu for a location
  • Order Canceled – Notification when an order is canceled

Optional webhook endpoints:​

  • Order Release – Notification to release an order from POS to kitchen
  • Dasher Status Updates – Notifications with Dasher location updates

Use the API Reference to understand the event payloads and fields sent with each webhook.

Secure Your Endpoint​

  • All webhook endpoints must be HTTPS.
  • Protect your endpoint with an authentication token.

Configure Your Webhook in the Developer Portal​

Each environment (Sandbox and Production) supports only one webhook endpoint. You must have production access before configuring a production webhook.

To configure a webhook subscription:​

  1. In the Developer Portal, go to Webhook Subscriptions.
  2. Click the Configure Endpoint icon.
  3. Enter the following details:
    • Environment (Sandbox or Production)
    • Event type (for example, Orders, Menu Request)
    • Endpoint URL
    • Auth token
  4. Click Configure Endpoint to save.

Update an Existing Webhook Endpoint​

To update a webhook in the Portal:

  1. From the Webhook Subscriptions page, find the existing endpoint.
  2. Click the three-dot menu next to the endpoint.
  3. Select Configure and update the details.

Example: Orders webhook payload​

When a new order is created, DoorDash sends an Orders webhook event to your endpoint.

{
"event": {
"type": "OrderCreate",
"status": "NEW"
},
"order": {
"id": "abc12345",
"order_special_instructions": "",
"experience": "DOORDASH",
"is_pickup": true,
"estimated_pickup_time": "2019-08-24T14:15:22Z",
"subtotal": 2000,
"tax": 300,
"is_tax_remitted_by_doordash": true,
"tax_amount_remitted_by_doordash": 0,
"commission_type": "regular",
"delivery_short_code": "string",
"fulfillment_type": "dx_delivery",
"merchant_tip_amount": 0,
"tip_amount": 0,
"is_plastic_ware_option_selected": true,
"categories": [
{
"merchant_supplied_id": "Entree",
"name": "Entree",
"items": [
{
"merchant_supplied_id": "26d3fce0-efd2-46d3-832c-ced5bc956401",
"name": "Burrito Scram-Bowl",
"price": 0,
"quantity": 1,
"extras": [
{
"merchant_supplied_id": "INDIVIDUAL_SAUCES",
"name": "Signature Sauces",
"options": [
{
"merchant_supplied_id": "ADD_KETCHUP_INDIVIDUAL",
"name": "KETCHUP",
"price": 0,
"quantity": 1,
"extra": [
{
"merchant_supplied_id": "BREAKFAST_CONDIMENTS",
"name": "Breakfast Condiments",
"options": [
{
"merchant_supplied_id": "ADD_SALT",
"name": "Salt",
"price": 0,
"quantity": 1
}
]
}
]
}
]
}
]
}
]
}
],
"consumer": {
"id": 0,
"first_name": "Kelley",
"last_name": "W.",
"email": "[email protected]",
"phone": "+18559731040"
},
"store": {
"merchant_supplied_id": "abc12345",
"provider_type": "eatsa"
}
}
}