Skip to main content

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

Cancel Order endpoint

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

ResponseError Code
202Return a 202 status to indicate that the data was received successfully
404Order not found
400Bad request, order not confirmed, order already cancelled
500Other

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