Getting your first report
Overview
DoorDash’s Reporting API provides access to standardized Financial, Operations and Menu Reporting data. The Reporting API has two endpoints and one webhook.
- POST Create Reports endpoint -
https://openapi.doordash.com/dataexchange/v1/reports
- Report Ready Webhook
- GET Report Link endpoint -
https://openapi.doordash.com/dataexchange/v1/reports/[report_id]/reportlink
Below is a diagram that illustrates the order to properly request and receive a report
Step 1: POST Create Reports endpoint
https://openapi.doordash.com/dataexchange/v1/reports
The Report Type is defined within the Request body. Once this request is sent the expected 202 response is a valid report ID that will be used to identify the report that will be downloaded in the subsequent GET Report request. If no business_ids or store_ids are present in both arrays then all stores assigned to the Reporting Partner will be returned.
Important - All IDs provided by the Partner within the business_id and store_id field need to be valid and approved through the Data Exchange Request process otherwise the request will return a 403.
Sample Request
{
"business_ids": [239487234,293139],
"store_ids": [],
"start_date": "2022-08-01",
"end_date": "2022-08-03",
"report_type":"ORDER_DETAIL",
"report_version": 1
}
Sample Response
{
"report_id": "f2a99881-5505-448a-a341-5bfc53b7c754"
}
Step 2: Wait for the Report Ready Webhook (Optional)
This webhook is triggered whenever the report generation is complete on Doordash’s end. It can be used as a signal to initiate the Get Report request to download the Report requested in Step 1. The two statuses returned are FAILED
and SUCCEEDED
.
- Token Based Authentication
- Signature Based Authentication
If the endpoint requires an authentication token. The partner must provide their Technical Account Manager with the token(minimum 64 characters) which will be stored on DoorDash and passed on all requests as authentication header.
If the endpoint requires a more secured signature based authentication, the partner must provide their Technical Account Manager with a secret key (minimum 64 characters) which will be store on Doordash, and a Hmac Signature of webhook HTTP request body content will be generated using the secret, and the signature will be sent as authentication header value in the webhook requests.
Step 3: GET Report Request
https://openapi.doordash.com/dataexchange/v1/reports/[report_id]/reportlink
The GET Report request will be the final step of the process thus completing the report request process. This endpoint will return the status of the report id provided in the request as well as a link to the report if the report job has been completed on Doordash’s end. If the returned status is PENDING, this request can be reissued until the link is returned when report creation is completed. Upon completion of report generation the status will be returned as SUCCEEDED and the report will be available for download.
- The time interval between start Post request to generate a report to the report being ready in the subsequent Get report API call will be up to 5 minutes
- The report link will only be valid for 20 seconds once it has been accessed
- The report will return a .ZIP file with .CSV file enclosed
NOTE: If your build does not rely on DoorDash’s Report Ready webhook, then it is recommended that you poll this endpoint once every 2 minutes.