Skip to content

DoorDash US

DoorDash uses independent contractors to pick up an order and deliver it to the customer. It is mostly used for food, groceries, and other small deliveries. DoorDash US is available for domestic shipments within the United States.

This guide provides developers with the details needed to build DoorDash US shipping capabilities into your ShipStation API workflows.

Requirements

Before you connect a DoorDash US account, make sure you have the following.

PropertyTypeRequired?Description
nicknamestringrequiredA nickname for you to identify the carrier account in ShipStation API.
developer_idstringrequiredDeveloper ID, generated in the DoorDash developer portal.
key_idstringrequiredKey ID, generated in the DoorDash developer portal.
signing_secretstringrequiredSigning secret, generated in the DoorDash developer portal.
order_fulfillment_methodstringrequiredThe fulfillment method agreed with DoorDash. Valid values: standard, catering, shop_stage, shop_deliver, parcel.
pickup_external_business_idstringrequiredThe business ID DoorDash generated for your account.
pickup_external_store_idstringrequiredThe store assigned to the business ID. It defines the pickup address, so it must be exact.
webhook_secretstringOptionalAuthorization key used for the webhook in your DoorDash account.
incoming_webhook_urlstringOptionalGenerated automatically and used to receive tracking events. Read-only.
origin_facility_idstringOptionalYour warehouse ID. Used when creating the label.

Account Requirements

  • Your DoorDash account must be enabled for label generation. Contact DoorDash to request it. Accounts without it do not receive labels.
  • Shipments must be to US addresses, with a 2-letter state code and a 5-digit zip code.
  • Product values must be in USD. Other currencies are rejected.
  • Both weight and dimensions are required for all shipments.
  • The ship_from address must include company_name. DoorDash US requires it as the pickup business name.
  • You can connect multiple DoorDash US accounts.
Pickup Address

DoorDash does not use the ship_from address on your shipment. Pickup always uses the values saved with your DoorDash US account: pickup_external_business_id, pickup_external_store_id, and origin_facility_id. If drivers pick up from a different location than the ship_from address, check these values.

The ship_from.company_name is still required, because it is sent to DoorDash as the pickup business name.

Connect Account

You can connect a DoorDash US account using the POST method to the /v1/connections/carriers/ endpoint.

carrier_name: doordash_us

POST /v1/connections/carriers/doordash_us

POST /v1/connections/carriers/doordash_us HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json

{
  "nickname": "my doordash account",
  "developer_id": "your_developer_id_here",
  "key_id": "your_key_id_here",
  "signing_secret": "your_signing_secret_here",
  "order_fulfillment_method": "standard",
  "pickup_external_business_id": "your_pickup_external_business_id_here",
  "pickup_external_store_id": "your_pickup_external_store_id_here",
  "webhook_secret": "your_webhook_secret_here",
  "origin_facility_id": "your_origin_facility_id_here"
}

A successful connection will return a response with the carrier_id, which you'll use for any requests for this account going forward.

Rates

DoorDash US supports rate shopping with ShipStation API. A rate request asks DoorDash for a delivery quote. It does not generate a label or register the shipment with DoorDash. The rate includes the estimated pickup time and the estimated delivery time.

Address lines in the drop-off address are truncated to 64 characters in rate requests.

Service Details

Available DoorDash US services are provided below. Please note that carriers may update their available services at any time. To ensure you are always using valid services, you can use the list carrier services endpoint at any time.

Domestic Services

ServiceAPI Code
DashLinkdoordash_us_dashlink

DashLink supports tracking, driver tips, and the delivery confirmation options listed below.

Packages

The following carrier package types are available for DoorDash US services:

NameAPI CodePackage Attributes
Packagedoordash_us_packageDomestic

Label Support

  • Label format: ZPL
  • Label size: 4" x 6"
  • DoorDash US supports one package per shipment.

DoorDash US does not support:

Voiding Labels

DoorDash US supports voiding labels with ShipStation API. If a label cannot be voided, the error message from DoorDash is returned with the error "Label cannot be voided". Check the delivery status in DoorDash, and retry only if the delivery can still be cancelled.

Delivery Confirmation

DoorDash US supports these delivery confirmation options:

  • none: No confirmation is required.
  • signature: Signature required on delivery.

Advanced Options

DoorDash US supports certain advanced options, which you can add to the shipment object when creating a shipment or label.

Advanced optionDescription
advanced_options.tip.amountAdds a tip for the driver. The tip is only sent when the order_fulfillment_method is standard.
advanced_options.event_notificationSends delivery notifications to the drop-off contact.

You can also ship alcohol with DoorDash US.

To ensure you always have the most up-to-date information about a carrier's advanced options, use the list carrier options call.

Manifests

DoorDash US does not require manifesting your shipments.

Tracking

ShipStation API's integration with DoorDash US supports receiving tracking updates for domestic shipments. Review our Track a Package guides for details on tracking with ShipStation API.

  • The tracking number is the DoorDash delivery ID returned when the label is created.
  • The tracking URL is returned when the label is created.
  • Tracking events are also received through the webhook. The incoming webhook URL is generated automatically when you connect your account, and webhook requests must include your webhook secret in the Authorization header.

Testing

DoorDash does not have a separate test environment. Testing uses the same endpoint as production with sandbox credentials.

Troubleshooting

ErrorWhat it meansWhat to do
401 Unauthorized: authentication_errorThe authentication token DoorDash received is missing, empty, or invalid.Check the developer_id, key_id, and signing_secret on the account. Reconnect the account to generate a new token.
404 Not Found: unknown_delivery_idDoorDash does not recognize the delivery ID.Check that the tracking number is the delivery ID from the label.
Label cannot be voidedDoorDash did not accept the cancel request.Read the error message from DoorDash. Check the delivery status in DoorDash, and retry only if the delivery can still be cancelled.

Additional Resources

For more information about DoorDash parcel deliveries, see the DoorDash DashLink Parcels developer documentation.

Disconnecting Your DoorDash US Account

DELETE /v1/connections/carriers/doordash_us/:id

DELETE /v1/connections/carriers/doordash_us/se-1234 HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__

See our Delete a Carrier page for more details about disconnecting a carrier from ShipStation API.

NOTE:

If you disconnect a carrier account and reconnect it, the account will have a new carrier_id in ShipStation API.