Reporting API: Drive Reports
Request DoorDash Drive delivery, invoice, and sales reports through the Reporting API
Overview
DoorDash has added a set of Drive reports to the DoorDash Reporting API. They cover Drive delivery operations, invoiced transactions, and sales. This guide shows you how to request each report and describes the schema of each one, including column names, data types, definitions, and examples.
Before You Begin
To have the Drive reports added to your integration, do one of the following:
- Submit a ticket in the DoorDash Developer Portal.
- Reach out to your DoorDash Account Manager, who can work with our team to get the reports added.
Include the report types you want to receive (for example, DRIVE_INVOICE_TRANSACTIONS) and the Business IDs they should cover in your request.
Note: Access is provisioned at the Business ID level. If your franchisees are invoiced under their own Business IDs, their data is only available to you if those Business IDs are provisioned to your account. DoorDash does not provision access to franchisees directly.
Request a Report
The Reporting API has two endpoints and one optional webhook. The steps are the same for every Drive report. Only the report_type changes.
Step 1: Create the report
POST https://openapi.doordash.com/dataexchange/v1/reports
Authenticate with your DoorDash Developer Portal JWT token. Set the report type in the request body. A successful request returns a 202 response with a report_id.
If both business_ids and store_ids are empty, the report covers all stores provisioned to your account. Every ID you pass must be provisioned to your account, otherwise the request returns a 403.
Sample request:
{
"business_ids": [185],
"store_ids": [],
"start_date": "2026-10-01",
"end_date": "2026-10-31",
"report_type": "DRIVE_INVOICE_TRANSACTIONS",
"report_version": 1
}
Sample response:
{
"report_id": "f2a99881-5505-448a-a341-5bfc53b7c754"
}
Valid report_type values for Drive:
| Report type | Description |
|---|---|
DRIVE_OPS_DELIVERIES | One row per delivery with timestamps, distance, and order value |
DRIVE_INVOICE_TRANSACTIONS | Every invoiced transaction, including refunds and adjustments |
DRIVE_SALES | One row per delivery with order value, fees, tip, and key timestamps |
Step 2: Wait for the Report Ready webhook (optional)
DoorDash calls your webhook when report generation finishes. The status is SUCCEEDED or FAILED. For setup details and the webhook payload, see Step 2: Wait for the Report Ready webhook in the Reporting API guide. If you don't use the webhook, poll the endpoint in Step 3 about once every 2 minutes.
Step 3: Get the report link
GET https://openapi.doordash.com/dataexchange/v1/reports/{report_id}/reportlink
This returns the status of the report and, once the status is SUCCEEDED, a download link. A PENDING status means the report is not ready, so call the endpoint again later.
- A report can take up to 5 minutes to generate.
- The download link is only valid for 20 seconds once it has been accessed.
- The download is a
.ZIPfile containing a.CSVfile.
For authentication, webhook setup, and the full API reference, see the Reporting API documentation.
When to Pull Invoice Data
Invoice data for a month is final once DoorDash generates the invoice. This happens on business day 1 of the following month, which is not necessarily the 1st.
- To reconcile
DRIVE_INVOICE_TRANSACTIONSto your PDF invoice: wait until business day 1 of the following month, then pull the full prior month. - For a preliminary view: you can pull the current month at any time, but transactions in an open month can change.
- For transaction-level detail: pull as often as you like.
Invoice Transactions
Report type: DRIVE_INVOICE_TRANSACTIONS
This report outputs every invoiced Drive transaction, including refunds and adjustments, so that transaction detail reconciles to the monthly Drive invoice. Each row is one transaction. Charge types are shown in separate columns, and TOTAL_CHARGE is the total for the transaction.
| Column Name | Data Type | Definition | Example |
|---|---|---|---|
INVOICE_PERIOD_START_DATE | date | First day of the invoice period the transaction belongs to | 2026-10-01 |
INVOICE_PERIOD_END_DATE | date | Last day of the invoice period the transaction belongs to | 2026-10-31 |
NETSUITE_ENTITY_ID | number | Identifier of the paying entity (customer) on the invoice | 1234567 |
DELIVERY_DATE | date | Date the delivery arrived | 2026-10-01 |
DOORDASH_ID | number | DoorDash delivery identifier | 2972037504 |
DELIVERY_UUID | varchar | DoorDash delivery UUID | 1b2c3d4e-5f60-3001-9944-aabbccddeeff |
DRIVE_ORDER_ID | number | DoorDash Drive order identifier | 2972037504 |
EXTERNAL_ORDER_ID | varchar | Delivery ID created by the merchant when the delivery was submitted. May contain more than one value separated by | | a1b2c3d4-0000-4000-8000-000000000001|e5f6a7b8-0000-4000-8000-000000000002 |
BUSINESS_ID | number | DoorDash Business ID | 185 |
BUSINESS_NAME | varchar | Business name | Metro Pizza |
EXTERNAL_STORE_ID | varchar | The merchant's store identifier | 123-0 |
STORE_NAME | varchar | Store name | Metro Pizza Main Street |
STORE_ADDRESS | varchar | Store pickup address | 123 Main St, Springfield, IL 62701, USA |
IS_RETURN_DELIVERY_FLAG | boolean | Whether the delivery is a return delivery | false |
SUBTOTAL | number | Order value. On refunds, the refunded amount | 18.67 |
DRIVE_FEE | number | Delivery charge. Negative on refunds; the return fee on return deliveries | 5.23 |
DRIVE_FEE_TAX | number | Tax on the Drive fee (international only; 0.00 in the US) | 0.00 |
PROMO_ADJUSTMENT | number | Promotion adjustment applied to the transaction | 0.00 |
CUSTOM_ADJUSTMENT | number | Custom adjustment applied to the transaction | 0.00 |
TRANSACTION_REQUEST_ADJUSTMENT | number | Adjustment from a transaction request | 0.00 |
DASHER_TIP | number | Dasher tip | 2.31 |
AGGREGATOR_FEE | number | Fee charged on behalf of an aggregator (MWP). 0 if the business is not MWP-onboarded | 0.00 |
ACCEPTANCE_RATE_FEE | number | Acceptance rate fee | 0.00 |
DASHER_REGULATORY_FEE | number | Compulsory regulatory charge (California and New York City) | 0.00 |
TOTAL_CHARGE | number | Total charge for the transaction | 9.37 |
NOTES | varchar | Adjustment details and refund reason codes | NULL |
Sales
Report type: DRIVE_SALES
This report outputs one row per Drive delivery with order value, fees, tip, and key timestamps.
| Column Name | Data Type | Definition | Example |
|---|---|---|---|
DELIVERY_ID | number | DoorDash delivery identifier | 424503196007 |
EXTERNAL_ORDER_ID | varchar | Delivery ID created by the merchant when the delivery was submitted | a1b2c3d4-0000-4000-8000-000000000001 |
STORE_ID | number | DoorDash Store ID | 24725 |
EXTERNAL_STORE_ID | varchar | The merchant's store identifier | 123-0 |
STORE_NAME | varchar | Store name | Metro Pizza Main Street |
STORE_ADDRESS | varchar | Store pickup address | 123 Main St, Springfield, IL 62701, USA |
SUBMARKET_NAME | varchar | Submarket the store is in | Springfield |
REGION_NAME | varchar | Region the store is in | Midwest |
ORDER_CREATION_TIME | timestamp | Time the delivery was created | 2026-09-28 20:40:44 |
ACTUAL_PICKUP_TIME | timestamp | Time the Dasher picked up the order | 2026-09-28 20:47:05 |
QUOTED_DELIVERY_TIME | timestamp | Delivery time quoted at order creation | 2026-09-28 21:23:35 |
ACTUAL_DELIVERY_TIME | timestamp | Time the order was delivered | 2026-09-28 20:58:26 |
CANCELLATION_TIME | timestamp | Time the delivery was cancelled. Empty if not cancelled | NULL |
IS_REFUNDED | boolean | Whether the delivery was refunded | true |
ORDER_VALUE | number | Value of the order contents | 22.99 |
COMMISSION | number | Commission amount | 0.00 |
ERROR_CHARGE | number | Error charge on the order | 0.00 |
DRIVE_FEE | number | Delivery charge | 5.60 |
TIP_AMOUNT | number | Dasher tip | 6.41 |
CURRENCY | varchar | Currency used for the transaction | USD |
COUNTRY_CODE | varchar | Country of the delivery | US |
ACTIVE_DATE | date | Date of the delivery | 2026-09-28 |
Ops Deliveries
Report type: DRIVE_OPS_DELIVERIES
This report outputs one row per Drive delivery with raw delivery timestamps, distance, and order value so that you can calculate your own delivery metrics. Derived time columns are provided in minutes.
| Column Name | Data Type | Definition | Example |
|---|---|---|---|
DELIVERY_ID | number | DoorDash delivery identifier | 204647307304 |
EXTERNAL_ORDER_ID | varchar | Delivery ID created by the merchant when the delivery was submitted. May contain more than one value separated by | | a1b2c3d4-0000-4000-8000-000000000001|e5f6a7b8-0000-4000-8000-000000000002 |
STORE_ID | number | DoorDash Store ID | 24725 |
EXTERNAL_STORE_ID | varchar | The merchant's store identifier | 123-0 |
STORE_NAME | varchar | Store name | Metro Pizza (123 Main Street) |
STORE_ADDRESS | varchar | Store pickup address | 123 Main St, Springfield, IL 62701, USA |
SUBMARKET_NAME | varchar | Submarket the store is in | Springfield |
REGION_NAME | varchar | Region the store is in | Midwest |
ORDER_TYPE | varchar | ASAP or Scheduled | ASAP |
IS_CANCELLED | boolean | Whether the delivery was cancelled | false |
CANCELLATION_REASON | varchar | Reason the delivery was cancelled. Empty if not cancelled | NULL |
ORDER_CREATION_TIME | timestamp | Time the delivery was created | 2026-09-28 05:25:22 |
ACTUAL_PICKUP_TIME | timestamp | Time the Dasher picked up the order. Empty if never picked up | 2026-09-28 05:47:53 |
QUOTED_PICKUP_TIME | timestamp | Pickup time quoted at order creation | 2026-09-28 05:39:04 |
QUOTED_DELIVERY_TIME | timestamp | Delivery time quoted at order creation | 2026-09-28 05:55:49 |
ACTUAL_DELIVERY_TIME | timestamp | Time the order was delivered. Empty if not delivered | 2026-09-28 06:05:19 |
ROAD_MILES | number | Road distance from the store to the customer, in miles | 1.661 |
ORDER_VALUE | number | Value of the order contents | 17.19 |
TIP_AMOUNT | number | Dasher tip | 5.00 |
CURRENCY | varchar | Currency used for the transaction | USD |
COUNTRY_CODE | varchar | Country of the delivery | US |
TOTAL_DELIVERY_TIME_MIN | number | Minutes from order creation to actual delivery | 39.950 |
PICKUP_TO_CUSTOMER_TIME_MIN | number | Minutes from pickup to delivery | 17.400 |
ADJUSTED_DASHER_WAIT_TIME_MIN | number | Minutes the Dasher waited at the store, adjusted for avoidable wait | 8.817 |
ACTIVE_DATE | date | Date of the delivery | 2026-09-28 |
Next Steps
- Generate your JWT token with the Generate your JWT Token guide.
- Pull your first report with the Getting your first report guide.
- Questions? Email [email protected].