Merchant Order Cancellations
Implement Merchant order cancellation
Prerequisites
DoorDash has the OpenAPI functionality to allow merchants to cancel orders that have previously been accepted.
DoorDash has enhanced the Open API contract by creating a new endpoint. Integration partners must be able to send requests to this endpoint once added to the allowlist by their technical account manager.
The endpoint URL requires the DoorDash order ID that is being canceled and the body of the request should include a JSON that details why the order is being canceled.
Overview
Many of our POS-integrated merchants are set up to automatically accept and confirm orders as as long as the order passes a set of validations. Occasionally, there are orders that are automatically confirmed by the merchant initially, but then need to be subsequently canceled due to a variety of reasons (lack of capacity, item unavailability, etc). In this scenario, the merchant must call DoorDash support to have the order canceled, which can be a time-consuming process for both sides, especially during peak business hours.
Get Started
Step 1:
Reach out to your technical account manager to ensure you are added to the allowlist for Merchant Induced Order Cancellations
Step 2:
Route cancellation request to new endpoint using the specified format and receive a response back from DoorDash
PATCH https://openapi.doordash.com/marketplace/api/v1/orders/{id}/cancellation
Request Fields
cancel_reason (required) = (string) Enum: [“ITEM_OUT_OF_STOCK”,”STORE_CLOSED”, “KITCHEN_BUSY”, “OTHER”]. DoorDash will temporarily deactivate the store for the specified length if either of the two cancel_reasons are used:
- STORE_CLOSED: 12 hrs
- KITCHEN_BUSY: 15 minutes
cancel_details (optional) = (string) “Store closed due to low capacity”
Example Payload
Below is a sample payload:
{
"cancel_reason": "ITEM_OUT_OF_STOCK",
"cancel_details": "anything"
}
Response and Error Codes
Once a request is received, DoorDash will respond with one of the following status codes
Response | Error Code |
---|---|
202 | Return a 202 status to indicate that the data was received successfully |
404 | Order not found |
400 | Bad request, order not confirmed, order already cancelled |
500 | Other |
FAQs
How will reimbursement work for orders cancelled via this feature?
Following our reimbursement policy, Merchants are not reimbursed for cancellations initiated/induced by them.
Is there any sort of punishment for canceling orders?
There is not a punishment for canceling orders, however if a high number of cancellations is detected, the store may be deactivated temporarily to preserve the customer experience.
last modified 5/3/20223