openapi: 3.2.0 info: title: Doordash Delivery API x-refined-note: - x-logo differs across the merged source definitions and was not carried version: '1.0' description: 'Operations tagged Delivery across 2 of this provider''s published API definitions: doordash-drive-classic-openapi.yml, doordash-drive-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://openapi.doordash.com variables: {} tags: - name: Delivery x-displayName: Delivery paths: /drive/v1/estimates: post: summary: Delivery Estimate tags: - Delivery description: Request time and fee estimates for the delivery. The Estimates API can also be used to check if an area is serviced. operationId: DeliveryEstimatePost parameters: [] requestBody: content: application/json: schema: required: - dropoff_address - order_value type: object properties: pickup_address: $ref: '#/components/schemas/PickupAddress' dropoff_address: $ref: '#/components/schemas/DropoffAddress' order_value: minimum: 0 type: integer description: The subtotal for all items in the order, excluding tax/tip, in cents. i.e. $19.99 = 1999 format: int32 example: 1999 delivery_time: type: string description: The requested UTC date-time (in ISO-8601 format) at which the order should be delivered. If this field is specified, `pickup_time` cannot be specified.Must provide either a `pickup_time` or a `delivery_time` to pass validation. example: '2018-08-22T17:21:28Z' pickup_time: type: string description: The requested UTC date-time (in ISO-8601 format) at which the order should be picked up. If this field is specified, `delivery_time` cannot be specified. Must provide either a `pickup_time` or a `delivery_time` to pass validation. example: '2018-08-22T17:20:28Z' external_business_name: type: string description: A name used to group stores under a particular owner. For example, John Smith's Franchise Business. Required if `pickup_address` object is not passed in. If `external_business_name` is used, `external_store_id` is required. Can't be used with `external_business_id`. example: '1443432456' external_business_id: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: An unique, caller-selected ID of the business. Required if pickup_address object is not passed in. If `external_business_id` is used, `external_store_id` is required. Can't be used with `external_business_name`. example: a0720d55-7cbe-41ce-8185-58285b7985cd external_store_id: type: string description: A unique identifier, defined by you, which can be used to track the specific store that the delivery is for. Required if `pickup_address` object is not passed in. If `external_store_id` is used, `external_business_name` is required. example: mega-corp-2340593 promotion_id: type: string description: The ID of the promotion that you want to apply to the delivery. The quoted fee in the response will reflect the promotion if this ID is valid. If the ID is invalid, field error will be returned. Contact your account manager for any configured promotion IDs. example: ee680b87-0016-496e-ac3c-d3f33ab54c1c items: type: array items: $ref: '#/components/schemas/ItemRequest' required: true description: Request body for estimate endpoint responses: '200': description: Estimate returned for the delivery with the given parameters headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryEstimate' '400': description: Bad request headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationFieldErrorResponse' 5XX: description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests. - When providing a time to any of the below APIs (i.e. `pickup_time` or `delivery_time`), the format must be UTC.'' ' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v1/validations: post: summary: Delivery Validation tags: - Delivery description: Validates input parameters for delivery and checks if the area is serviceable. DoorDash recommends using the Estimates API instead. operationId: DeliveryValidationPost parameters: [] requestBody: content: application/json: schema: required: - dropoff_address - customer - order_value type: object properties: pickup_address: $ref: '#/components/schemas/PickupAddress' pickup_phone_number: type: string description: The phone number for the Dasher to call, including country code, if there are any issues with the pick up. The phone number must be a valid phone number. Required unless your request includes an `external_store_id` that you've already used in at least one successful delivery request. If both `pickup_phone_number` and `external_store_id` are included, `pickup_phone_number` is ignored in favor of the existing phone number associated with the store. example: '+15555555555' pickup_instructions: type: string description: Instruction for the dasher for the pickup location. example: Use the back alley of the store for pickup dropoff_address: $ref: '#/components/schemas/DropoffAddress' customer: $ref: '#/components/schemas/Customer' dropoff_instructions: type: string description: Instruction for the dasher for the drop off location. example: Use the access code 420 to get into the building. order_value: minimum: 0 type: integer description: The subtotal for all items in the order, excluding tax/tip, in cents. i.e. $19.99 = 1999 format: int32 example: 1999 tip: type: integer description: The amount to tip the Dasher in cents i.e. $5.00 = 500 format: int32 example: 500 pickup_time: type: string description: The requested UTC date-time (in ISO-8601 format) at which the order should be picked up. If this field is specified, `delivery_time` cannot be specified. example: '2018-08-22T17:20:28Z' delivery_time: type: string description: The requested UTC date-time (in ISO-8601 format) at which the order should be delivered. If this field is specified, `pickup_time` cannot be specified. example: '2018-08-22T17:21:28Z' external_delivery_id: type: string description: A unique identifier across all store locations under a business, defined by the merchant, which can be used to track this specific delivery. example: 1342666-2420 contains_alcohol: type: boolean description: Set this to true if the order contains alcohol. Default value is false. example: true barcode_scanning_required: type: boolean description: Set this to true if barcode scanning at both pickup and dropoff is required to complete the delivery. Default value is false. example: true num_items: type: integer description: The total number of items in the order. format: int32 example: 1 external_business_name: type: string description: A name used to group stores under a particular owner. For example, John Smith's Franchise Business. Required if `pickup_address` object is not passed in. If `external_business_name` is used, `external_store_id` is required. Can't be used with `external_business_id`. example: '1443432456' external_business_id: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: An unique, caller-selected ID of the business. Required if pickup_address object is not passed in. If `external_business_id` is used, `external_store_id` is required. Can't be used with `external_business_name`. example: a0720d55-7cbe-41ce-8185-58285b7985cd external_store_id: type: string description: A unique identifier, defined by you, which can be used to track the specific store that the delivery is for. Required if `pickup_address` object is not passed in. If `external_store_id` is used, `external_business_name` is required. example: mega-corp-2340593 signature_required: type: boolean description: Set this to true if signature is required. Default value is false. example: true promotion_id: type: string description: The ID of the promotion that you want to apply to the delivery. If the ID is invalid, field error will be returned. Contact your account manager for any configured promotion IDs. example: ee680b87-0016-496e-ac3c-d3f33ab54c1c order_contains_list: type: array description: An object that specifies the restricted item(s) contained in this order. The values that can be specified are 'tobacco_items' (delivery contains tobacco items, requires ID Verification), 'hemp_items' (delivery contains hemp items, requires ID Verification), 'otc_items' (delivery contains otc items, requires ID Verification) enum: - tobacco_items - hemp_items - otc_items example: - tobacco_items - hemp_items - otc_items required: true responses: '200': description: Validity of the delivery headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidDeliveryResponse' '400': description: Bad request headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationFieldErrorResponse' 5XX: description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests. - When providing a time to any of the below APIs (i.e. `pickup_time` or `delivery_time`), the format must be UTC.'' ' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v1/deliveries: post: summary: Delivery Creation tags: - Delivery description: Create a delivery operationId: DeliveryListPost parameters: [] requestBody: content: application/json: schema: required: - dropoff_address - customer - order_value type: object properties: pickup_address: $ref: '#/components/schemas/CreationPickupAddress' pickup_phone_number: type: string description: 'The phone number for the Dasher to call, including country code, if there are any issues with the pick up. The phone number must be a valid US phone number. This field is not required for existing stores with a known `external_store_id` ' example: '+16505555555' dropoff_address: $ref: '#/components/schemas/DropoffAddress' customer: $ref: '#/components/schemas/Customer' order_value: minimum: 0 type: integer description: The subtotal for all items in the order, excluding tax/tip, in cents. i.e. $19.99 = 1999 format: int32 example: 1999 pickup_time: type: string description: The requested UTC date-time (in ISO-8601 format) at which the order should be picked up. If this field is specified, `delivery_time` cannot be specified. example: '2018-08-22T17:20:28Z' delivery_time: type: string description: The requested UTC date-time (in ISO-8601 format) at which the order should be delivered. If this field is specified, `pickup_time` cannot be specified. example: '2018-08-22T17:21:28Z' pickup_window_start_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T17:20:12Z' pickup_window_end_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T17:40:28Z' delivery_window_start_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T18:15:28Z' delivery_window_end_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T18:35:28Z' items: type: array items: $ref: '#/components/schemas/ItemRequest' team_lift_required: type: boolean description: More than one dasher is required to complete the delivery example: true barcode_scanning_required: type: boolean description: Barcode scanning at both pickup and dropoff is required to complete the delivery example: false pickup_business_name: type: string description: The name of the business where the order should be picked up from. example: Chipotle pickup_instructions: type: string description: Instructions for the Dasher to follow upon pickup of the order. example: Enter gate code 1234 on the callbox. dropoff_instructions: type: string description: Instructions for the Dasher to follow upon delivery of the order. example: Lock the front door after delivering the food. order_volume: minimum: 0 type: integer description: Only supported for specific use cases. Provide a list of `items` with `weight` and `volume` instead or contact support to discuss the use of `order_volume`. format: int32 example: 5 tip: type: integer description: The amount to tip the driver in cents i.e. $5.00 = 500 format: int32 example: 500 external_delivery_id: type: string description: A unique identifier across all store locations under a business, defined by the merchant, which can be used to track this specific delivery. example: 1342666-2420 driver_reference_tag: type: string description: The internal order identifier at the merchant, which the driver can use to pick up the order. One example of a value for this field is the number the cashier hands the customer at a counter-serve restaurant. example: '1' external_business_name: type: string description: A name used to group stores under a particular owner. For example, John Smith's Franchise Business. Required if `pickup_address` object is not passed in. If `external_business_name` is used, `external_store_id` is required. Can't be used with `external_business_id`. example: '1443432456' external_business_id: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: An unique, caller-selected ID of the business. Required if pickup_address object is not passed in. If `external_business_id` is used, `external_store_id` is required. Can't be used with `external_business_name`. example: a0720d55-7cbe-41ce-8185-58285b7985cd external_store_id: type: string description: A unique identifier, defined by you, which can be used to track the specific store that the delivery is for. Required if `pickup_address` object is not passed in. If `external_store_id` is used, `external_business_name` is required. example: mega-corp-2340593 contains_alcohol: type: boolean description: If true, flags the order as one that contains alcoholic beverages. This ensures that the driver will check the recipient's ID upon delivery. example: false requires_catering_setup: type: boolean description: If true, flags the order as one that requires special setup at the consumer's location. example: true num_items: type: integer description: The total number of items in the order. format: int32 example: 1 signature_required: type: boolean description: If true, flags the order as one that requires a signature from the consumer. Cannot be true if `allow_unattended_delivery` is true. example: false allow_unattended_delivery: type: boolean description: If true, flags the order as one that does not require the customer to be present to receive the delivery. Cannot be true if `signature_required` is true and/or contains restricted items. example: true cash_on_delivery: type: integer minimum: 0 description: Optional value in cents. Default is `None`. Cash orders must be contact not contactless orders and cash value must be greater than all fees. There maybe a limit up to a certain $ amount depending on Mx example: 1000 delivery_metadata: type: object description: A JSON document that allows adding metadata about the delivery such as item weight, size, etc. example: foo: bar allowed_vehicles: type: array description: An array of vehicles that are allowed to be used to complete this delivery. The only values that can be specified in the array are 'car', 'bicycle', or 'walker'. enum: - car - bicycle - walker example: - car - bicycle is_contactless_delivery: type: boolean description: Allows for order to be dropped off without physically handing delivery to consumer example: false promotion_id: type: string description: The ID of the promotion that you want to apply to the delivery. The fee in the response will reflect the promotion if this ID is valid. If the ID is invalid, field error will be returned. Contact your account manager for any configured promotion IDs. example: ee680b87-0016-496e-ac3c-d3f33ab54c1c order_contains_list: type: array description: An object that specifies the restricted item(s) contained in this order. The values that can be specified are 'pharmacy_items' (delivery contains pharmacy items), 'age_restricted_pharmacy_items' (the order is an S3+ pharmacy order which requires ID Verification and can only be delivered to 18+ year olds), 'tobacco_items' (delivery contains tobacco items, requires ID Verification), 'hemp_items' (delivery contains hemp items, requires ID Verification), 'otc_items' (delivery contains otc items, requires ID Verification) enum: - pharmacy_items - age_restricted_pharmacy_items - tobacco_items - hemp_items - otc_items example: - pharmacy_items - age_restricted_pharmacy_items - tobacco_items - hemp_items - otc_items pin_code_verification_metadata: type: object description: An object that contains dropoff pin code verification metadata. Please reach out to Doordash to enable this feature for your business. properties: pin_code_type: type: string description: An enum that specifies the pin code value type. The values that can be specified are `customer_phone_number` (pin code for dropoff verification is the customer phone number's last 4 digits), `merchant_provided_number` (pin code for dropoff verification is the merchant provided 4 digit number), `random_number` (pin code for dropoff verification is the random 4 digit number generated by DD). Pin Code can be enabled only for orders that are non-contactless and not unattended deliveries enum: - customer_phone_number - merchant_provided_number - random_number example: customer_phone_number pin_code_value: type: string description: An object that contains pin code value, which should be a 4 digit number. This has to be sent only for the `merchant_provided_number` pin code type. pattern: /^\d{4}$/ example: '1234' required: true responses: '200': description: '' headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse' '400': description: Bad request headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationFieldErrorResponse' '409': description: '' headers: {} content: application/json: schema: $ref: '#/components/schemas/DuplicateDeliveryError' 5XX: description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests. - When providing a time to any of the below APIs (i.e. `pickup_time` or `delivery_time`), the format must be UTC.'' ' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v1/deliveries/{delivery_id}: get: summary: Delivery Details tags: - Delivery description: Get details for a delivery operationId: DeliveryDetailGet parameters: - name: delivery_id in: path description: Id of the delivery that was created via the Create Delivery API call. required: true style: simple explode: false schema: type: string - name: extra in: query schema: type: string enum: - cash_on_delivery type: string description: Optional parameter requesting any cash on delivery details responses: '200': description: Delivery object by id headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse' '400': description: Bad request headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationFieldErrorResponse' 5XX: description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests. - When providing a time to any of the below APIs (i.e. `pickup_time` or `delivery_time`), the format must be UTC.'' ' deprecated: false patch: summary: Update Delivery tags: - Delivery description: Update the time or address for a delivery operationId: DeliveryDetailPatch parameters: - name: delivery_id in: path description: Id of the delivery that was created via the Create Delivery API call. required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: type: object properties: pickup_business_name: type: string description: The name of the business where the order should be picked up from. example: Chipotle pickup_instructions: type: string description: Instructions for the Dasher to follow upon pickup of the order. example: Enter gate code 1234 on the callbox. pickup_phone_number: type: string description: The phone number for the Dasher to call, including country code, if there are any issues with the pick up. The phone number must be a valid US phone number. example: '+15555555555' quoted_delivery_time: type: string description: The newly requested UTC date-time (in ISO-8601 format) at which the order should be delivered. If this field is specified, then `quoted_pickup_time` cannot be specified. example: '2018-08-22T17:21:28Z' quoted_pickup_time: type: string description: The newly requested UTC date-time (in ISO-8601 format) at which the order should be picked up. If this field is specified, then `quoted_delivery_time` cannot be specified. example: '2018-08-22T17:20:28Z' pickup_window_start_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time`, `pickup_window_end_time`, `delivery_window_start_time`, `delivery_window_end_time`) are provided. example: '2018-08-22T17:20:28Z' pickup_window_end_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time`, `pickup_window_end_time`, `delivery_window_start_time`, `delivery_window_end_time`) are provided. example: '2018-08-22T17:21:28Z' delivery_window_start_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time`, `pickup_window_end_time`, `delivery_window_start_time`, `delivery_window_end_time`) are provided. example: '2018-08-22T17:22:28Z' delivery_window_end_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time`, `pickup_window_end_time`, `delivery_window_start_time`, `delivery_window_end_time`) are provided. example: '2018-08-22T17:23:28Z' dropoff_address: $ref: '#/components/schemas/DropoffAddress' first_name: type: string description: The customer's updated first name. example: John last_name: type: string description: The customer's updated last name. example: Smith business_name: type: string description: The customer's new business name. example: Some Company Inc customer_phone_number: type: string description: The customer's new phone number including the country code. example: '+15555555555' dropoff_special_instructions: type: string description: New instructions for the driver to follow upon delivery of the order. example: Lock the front door after delivering the food. signature_required: type: boolean description: If true, flags the order as one that requires a signature from the consumer. Cannot be true if `allow_unattended_delivery` is true. example: false allow_unattended_delivery: type: boolean description: If true, flags the order as one that does not require the customer to be present to receive the delivery. Cannot be true if `signature_required` is true and/or contain restricted items. example: false contains_alcohol: type: boolean description: If true, flags the order as one that contains alcoholic beverages. This ensures that the driver will check the recipient's ID upon delivery. example: false delivery_metadata: type: object description: A dictionary that allows adding metadata about the delivery such as item weight, size, etc. example: weight: foo volume: bar contains_batteries: true allowed_vehicles: type: array description: An array of vehicles that are allowed to be used to complete this delivery. The only values that can be specified in the array are 'car', 'bicycle', or 'walker'. example: - car - bicycle - walker tip: type: integer description: The tip (in cents) to be provided after the given delivery is completed. format: int32 example: 1300 order_ready_time: type: string description: The UTC time at which the order was actually ready at the pickup location. example: '2018-08-22T17:20:28Z' order_contains_list: type: array description: An object that specifies the restricted item(s) contained in this order. The values that can be specified are 'tobacco_items' (delivery contains tobacco items, requires ID Verification), 'hemp_items' (delivery contains hemp items, requires ID Verification), 'otc_items' (delivery contains otc items, requires ID Verification) enum: - tobacco_items - hemp_items - otc_items example: - tobacco_items - hemp_items - otc_items required: true responses: '200': description: Updated delivery object headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse' '400': description: Bad Request. headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryValidationResponse' '404': description: Delivery not found. 5XX: description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests. - When providing a time to any of the below APIs (i.e. `pickup_time` or `delivery_time`), the format must be UTC.'' ' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v1/deliveries/{delivery_id}/cancel: put: summary: Cancel Delivery tags: - Delivery description: Cancel OR initiate a return for a delivery operationId: DeliveryCancelPut parameters: - name: delivery_id in: path description: Id of the delivery that was created via the Create Delivery API call. required: true style: simple explode: false schema: type: string requestBody: description: 'OPTIONAL: should be left blank for normal cancellations. If cancelling for a specific reason, provide a return code (Ex: to create a cold chain return, return code should be "cold_chain".) ' content: application/json: schema: type: object properties: reason_code: type: string description: 'OPTIONAL: should be left blank for normal cancellations. If cancelling for a specific reason, provide a return code (Ex: to create a cold chain return, return code should be "cold_chain".)' example: cold_chain required: false responses: '200': description: '' headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryCancelResponse' '400': description: 'Delivery cannot be cancelled due to the following reasons - Delivery already confirmed by restaurant - Delivery can not be cancelled so close to estimated pickup time ' '404': description: Delivery not found 5XX: description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests. - When providing a time to any of the below APIs (i.e. `pickup_time` or `delivery_time`), the format must be UTC.'' ' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v2/quotes: post: summary: Create Quote tags: - Delivery description: Confirm that a delivery is serviceable by DoorDash and what it would cost by creating a quote. Get a quote on delivery fee and validate coverage. Learn how to use this API in the Create & Accept Quotes how-to guide. operationId: DeliveryQuote parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/DeliveryQuoteInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse_2' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '409': description: Duplicate delivery ID headers: {} content: application/json: schema: $ref: '#/components/schemas/DuplicateDeliveryIdError' '422': description: Delivery is not allowed headers: {} content: application/json: schema: $ref: '#/components/schemas/InvalidDeliveryError' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v2/quotes/{external_delivery_id}/accept: post: summary: Accept Quote tags: - Delivery description: When you’re happy with the quote you created, start the delivery process by accepting the quote. Learn how to use this API in the Create & Accept Quotes how-to guide. operationId: DeliveryQuoteAccept parameters: - $ref: '#/components/parameters/ExternalDeliveryIdPath' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeliveryQuoteAcceptInput' required: false responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse_2' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown delivery ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_delivery_error' '409': description: Duplicate delivery ID headers: {} content: application/json: schema: $ref: '#/components/schemas/DuplicateDeliveryIdError' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v2/deliveries: post: summary: Create Delivery tags: - Delivery description: 'Create a delivery. Learn how to use this API in one of our tutorials: call the API directly from any language or tool, create deliveries using our Node.js SDK, or use Postman to call the APIs.' operationId: CreateDelivery parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateDeliveryInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse_2' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '409': description: Duplicate delivery ID headers: {} content: application/json: schema: $ref: '#/components/schemas/DuplicateDeliveryIdError' '422': description: Delivery is not allowed headers: {} content: application/json: schema: $ref: '#/components/schemas/InvalidDeliveryError' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v2/deliveries/{external_delivery_id}: get: summary: Get Delivery tags: - Delivery description: Get the status and details of a delivery that you created. If you want to proactively receive updates about your delivery, set up webhooks using the webhooks how-to guide. operationId: GetDelivery parameters: - $ref: '#/components/parameters/ExternalDeliveryIdPath' responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse_2' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown delivery ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_delivery_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false patch: summary: Update Delivery tags: - Delivery description: Update the details of a delivery. Only the fields listed below can be updated; to update other fields, you need to cancel the delivery and then create a new one. operationId: UpdateDelivery parameters: - $ref: '#/components/parameters/ExternalDeliveryIdPath' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateDeliveryInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse_2' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown delivery ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_delivery_error' '409': description: Update is not allowed headers: {} content: application/json: schema: $ref: '#/components/schemas/UpdateNotAllowedError' '422': description: Delivery is not allowed headers: {} content: application/json: schema: $ref: '#/components/schemas/InvalidDeliveryError' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v2/deliveries/{external_delivery_id}/cancel: put: summary: Cancel Delivery tags: - Delivery description: Cancel a delivery. Deliveries can't be cancelled after a Dasher is assigned. For cold chain compliance use-cases, we create return deliveries instead as items are already picked up. Use the optional request body to specify if cancellation is due to cold chain compliance operationId: CancelDelivery parameters: - $ref: '#/components/parameters/ExternalDeliveryIdPath' requestBody: content: application/json: schema: $ref: '#/components/schemas/CancelDeliveryInput' required: false responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse_2' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown delivery ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_delivery_error' '409': description: Cancel is not allowed headers: {} content: application/json: schema: $ref: '#/components/schemas/CancelNotAllowedError' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v2/items_substitution_recommendation: post: summary: Get Items Substitution Recommendation tags: - Delivery description: For Dasher Shop orders, get a list of recommended substitutions for a given list of items operationId: GetItemsSubstitutionRecommendation parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/SubstitutionRecommendationInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryItemsForSubsRecommendationResponse' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /drive/v2/serviceability: post: summary: Check Serviceability tags: - Delivery description: Check if delivery is serviceable for a given pickup and dropoff location combination. Please provide pickup_external_business_id and pickup_external_store_id for faster store lookup. Other optional fields are validated if provided. operationId: CheckServiceability parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceabilityCheckInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/ServiceabilityCheckResponse' '400': description: Request Validation Failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '401': description: Request unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authentication_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} components: schemas: Location: title: Location type: object description: Geolocation value in latitude and longitude properties: lat: type: double description: Latitude of the location example: 123.1312343 lng: type: double description: Longitude of the location example: -37.2144343 PickupAddressResponse: title: The address the delivery needs to be picked up from. description: The address the delivery needs to be picked up from. required: - city - state - street - zip_code type: object properties: city: type: string description: City for the address example: San Francisco state: type: string description: State for the address example: California street: type: string description: Street for the address example: 101 Howard Street unit: type: string description: Suite, Apartment or Unit number of the address example: Apt 301 zip_code: type: string description: Zipcode for the address example: '94105' dasher_parking_details: type: string description: An identifier describing where the dasher is parked, supplied by the dasher via the app. This value is null when the feature is not enabled. example: Parking Stall 1234 DropoffAddress: title: The address where the delivery needs to be dropped off. description: The address where the delivery needs to be dropped off. required: - city - state - street - zip_code type: object properties: city: type: string description: City for the address example: San Francisco state: type: string description: State for the address example: California street: type: string description: Street for the address example: 901 Market Street unit: type: string description: Suite, Apartment or Unit number of the address example: 'Suite #600' zip_code: type: string description: Zipcode for the address example: '94105' full_address: type: string description: Comma separated full address, in the order appropriate for your locale. Can be used as replacement for all other address component fields (unit, street, city, state, zip). Takes precedence over all other address component fields (unit, street, city, state, zip) if case of combined input. example: 901 Market Street 6th Floor, San Francisco, CA 94103 location: title: The coordinates of dropoff address description: The Lat/Lng for dropoff address. This is an optional field that is being tested and is ignored unless indicated otherwise to you by the DoorDash team. If both location and text address are provided, we will use location for navigation and text address (and corresponding geocoded lat/lng) for all downstream calculations (fees, serviceability, etc.). Please contact us if interested in joining our pilot test group. required: - lat - lng type: object properties: lat: type: double description: Latitude for the address example: 37.78 lng: type: double description: Longitude for the address example: -122.4 location: title: a dictionary containing 'lng' and 'lat' description: Geolocation value in longitude and latitude example: lng: -122.431297 lat: 37.773972 properties: lng: type: double description: Longitude of the location lat: type: double description: Latitude of the location ValidationFieldErrorResponse: title: ValidationFieldErrorResponse type: - object - 'null' description: The response returned when validation for field errors are encountered. readOnly: true properties: message: type: - string - 'null' description: The message associated with the error, if any example: Something went wrong readOnly: true field_errors: type: array description: Error objects that were generated during the validation call items: $ref: '#/components/schemas/ValidationFieldError' readOnly: true DeliveryCancelResponse: title: DeliveryCancelResponse type: object properties: return_initiated: type: boolean cancelled_at: type: string DropoffAddressResponse: title: The address where the delivery needs to be dropped off. description: The address where the delivery needs to be dropped off. required: - city - state - street - zip_code type: object properties: city: type: string description: City for the address example: San Francisco state: type: string description: State for the address example: California street: type: string description: Street for the address example: 901 Market Street unit: type: string description: Suite, Apartment or Unit number of the address example: 'Suite #600' zip_code: type: string description: Zipcode for the address example: '94105' dasher_parking_details: type: string description: An identifier describing where the dasher is parked, supplied by the dasher via the app. This value is null when the feature is not enabled. example: Parking Stall 1234 CreationPickupAddress: title: The address the delivery needs to be picked up from. This field is not required for existing stores with a known `external_store_id`. description: The address the delivery needs to be picked up from. required: - city - state - street - zip_code type: object properties: city: type: string description: City for the address example: San Francisco state: type: string description: State for the address example: California street: type: string description: Street for the address example: 101 Howard Street unit: type: string description: Suite, Apartment or Unit number of the address example: Apt 301 zip_code: type: string description: Zipcode for the address example: 94105 location: $ref: '#/components/schemas/location' ItemResponse: title: Item description: Items in the delivery required: - name type: object properties: name: type: string example: Mega Bean and Cheese Burrito description: Name of the item being delivered. description: type: string example: Mega Burrito contains the biggest beans of the land with extra cheese. description: Description of the item being delivered barcode: type: string example: '12342830041' description: 'Barcode identifying the item. This value must be in one of the following formats: Data Matrix, AZTEC, Code 128, Code 39, Code 93, CODABAR, EAN 13, EAN 8, ITF, UPC A, UPC E, PDF417' scan_status: type: string example: unknown description: 'Represents whether or not the dasher has scanned this item as a part of the delivery. Possible statuses: - "unknown" -> initial state, scanning not attempted yet - "scanned" -> this item was scanned in the Dasher app via the barcode scanner - "manually_scanned" -> currently not used, reserved for future use - "missing" -> this item was not scanned even though it was requested - "overage" -> this is an extra item that was not originally requested, but was scanned anyway ' quantity: type: int example: 2 description: Quantity of the item being delivered. Defaults to 1 if not provided. external_id: type: string example: 123-123443434b description: External name/id for the item as setup by the merchant. volume: type: int example: 5.3 description: Unit volume of 1 instance of this item, in cubic feet, with or without a decimal point. The overall volume of this item is calculated by multiplying this field by `quantity`. weight: type: int example: 2.8 description: Unit weight of 1 instance of this item, in pounds (lbs), with or without a decimal point. The overall weight of this item is calculated by multiplying this field by `quantity`. price: type: int example: 1000 description: Unit price of 1 instance of this item, in cents, i.e. 1000 = 10.00 in local currency. The overall price of this item is calculated by multiplying this field by `quantity`. ItemRequest: title: Item description: Items in the delivery required: - name type: object properties: name: type: string example: Mega Bean and Cheese Burrito description: Name of the item being delivered. description: type: string example: Mega Burrito contains the biggest beans of the land with extra cheese. description: Description of the item being delivered barcode: type: string example: '12342830041' description: 'Barcode identifying the item. This value must be in one of the following formats: Data Matrix, AZTEC, Code 128, Code 39, Code 93, CODABAR, EAN 13, EAN 8, ITF, UPC A, UPC E, PDF417' quantity: type: int example: 2 description: Quantity of the item being delivered. Defaults to 1 if not provided. external_id: type: string example: 123-123443434b description: External name/id for the item as setup by the merchant. volume: type: double example: 5.3 description: Unit volume of 1 instance of this item, in cubic feet, with or without a decimal point. The overall volume of this item is calculated by multiplying this field by `quantity`. exclusiveMaximum: 1000 weight: type: double example: 2.8 description: Unit weight of 1 instance of this item, in pounds (lbs), with or without a decimal point. The overall weight of this item is calculated by multiplying this field by `quantity`. length: minimum: 0 type: double example: 2.8 description: Unit length of 1 instance of this item, in inches, with or without a decimal point. width: minimum: 0 type: double example: 2.8 description: Unit width of 1 instance of this item, in inches, with or without a decimal point. height: minimum: 0 type: double example: 2.8 description: Unit height of 1 instance of this item, in inches, with or without a decimal point. price: type: int example: 1000 description: Unit price of 1 instance of this item, in cents, i.e. 1000 = 10.00 in local currency. The overall price of this item is calculated by multiplying this field by `quantity`. PickupAddress: title: The address the delivery needs to be picked up from. description: The address the delivery needs to be picked up from. Required unless your request includes an `external_store_id` that you've already used in at least one successful delivery request. If both `pickup_address` and `external_store_id` are included, `pickup_address` is ignored in favor of the existing address associated with the store. required: - city - state - street - zip_code type: object properties: city: type: string description: City for the address example: San Francisco state: type: string description: State for the address example: California street: type: string description: Street for the address example: 101 Howard Street unit: type: string description: Suite, Apartment or Unit number of the address example: Apt 301 zip_code: type: string description: Zipcode for the address example: '94105' full_address: type: string description: Comma separated full address, in the order appropriate for your locale. Can be used as replacement for all other address component fields (unit, street, city, state, zip). Takes precedence over all other address component fields (unit, street, city, state, zip) if case of combined input. example: 901 Market Street 6th Floor, San Francisco, CA 94103 Vehicle: title: Vehicle type: object description: Details of a vehicle properties: color: type: string description: Unused example: '' make: type: string description: Model of the vehicle example: Toyota model: type: string description: Make of the vehicle example: Corolla license_plate_number: type: string description: Unused example: '' year: type: string description: Year the vehicle was made example: '2006' TaxComponent: title: TaxComponent description: Breakdown of the taxes that were charged for this delivery; sums to `tax`. Only returned for deliveries in Canada. type: object required: - type - amount properties: type: type: string description: Name of the tax component. example: gst_hst enum: - tax_type_unspecified - gst_hst - qst - pst - unrecognized amount: type: integer format: int32 description: Amount of the tax component in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599 example: 520 DeliveryValidationResponse: title: DeliveryValidationResponse type: object properties: valid: description: '`false` as the delivery request is invalid' type: boolean example: false errors: type: object x-nullable: true description: Field errors when the validation fails. `null` when the delivery is valid. DeliveryEstimate: title: Estimate required: - delivery_time - fee - pickup_time - currency - id type: object properties: delivery_time: type: string example: '2018-08-22T17:20:28Z' description: Estimated time of delivery fee: type: integer format: int64 example: 1900 description: Delivery Fees in cents. i.e. 1940 equals $19.40 minimum: 0 fee_components: type: array description: The charges that were applied for this delivery; sums to `fee`. items: $ref: '#/components/schemas/FeeComponent' tax: type: integer format: int32 example: 520 description: Delivery tax in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599 or null if not available. minimum: 0 tax_components: type: array description: The taxes that were applied for this delivery; sums to `tax`. Only returned for deliveries in Canada. items: $ref: '#/components/schemas/TaxComponent' pickup_time: type: string example: '2018-08-22T18:10:58Z' description: Estimated time of for order pickup currency: type: string description: Currency for the delivery fees example: USD id: type: integer format: int64 description: Id of the delivery estimate example: 48173944 FeeComponent: title: FeeComponent description: Breakdown of the fee that was charged for this delivery; sums to `fee`. type: object required: - type - amount properties: type: type: string description: Name of the fee component. example: distance_based_fee enum: - drive_fee_component_type_unspecified - distance_based_fee - order_value_based_fee - service_fee - mx_subsidy - other - dasher_regulatory_fee - promotion - small_order_fee - flat_fee - dwt_fee - package_fee - fuel_surcharge - delivery_area_surcharge - unrecognized amount: type: integer format: int32 description: Amount of the fee component in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599 example: 1900 ValidationFieldError: title: FieldError type: object description: Field Errors that occur during the api call. required: - field - error properties: field: type: string description: Name of the field where the error has occurred example: pickup_phone_number error: type: string description: Error objects that were generated during the validation call example: Invalid phone number format ValidDeliveryResponse: title: ValidDeliveryResponse type: object properties: valid: description: '`true` delivery is valid, `false` if not.' type: boolean example: true errors: type: object x-nullable: true description: Field errors when the validation fails. `null` when the delivery is valid. DuplicateDeliveryError: title: DuplicateDeliveryError type: object description: Error returned with the submitted delivery creation request is a duplicate and has a delivery already created for it. required: - field - error properties: delivery_id: type: int description: Id of the delivery that is already created example: 1123214424 external_delivery_id: type: string description: Merchant provided delivery id example: '142355213' Customer: title: The customer that ordered the delivery. description: The customer that ordered the delivery. required: - phone_number - first_name - last_name type: object properties: phone_number: type: string description: A valid phone number for the user. example: '+16505555555' business_name: type: string description: Name of the business, if the delivery is request by a business. example: Mega Corp HQ first_name: type: string description: "First name of the customer creating the delivery. Maximum number of characters allowed is 50; cannot contain ~, `, @, #, $, %, ^, &, *, +, =, ?, ;, [, {, ], }, >, <, \n" example: Jane last_name: type: string description: "Last name of the customer creating the delivery. Maximum number of characters allowed is 50; cannot contain ~, `, @, #, $, %, ^, &, *, +, =, ?, ;, [, {, ], }, >, <, \n" example: Goodall email: type: string description: Email of the customer creating the delivery example: jane.goodall@megacorp.io should_send_notifications: type: boolean description: Whether customer will receive notifications from DoorDash for this delivery. The default is true if you have not requested to opt out of notifications on business level. This field will override your default sms contact configuration. example: true locale: type: string description: IETF BCP 47 compliant string representing a user's language preference, for the purpose of communication. Defaults to en-US if not passed in. example: en-US Dasher: title: Dasher type: object description: The driver picking up the order from the store and dropping it off at the customer. required: - phone_number - id - first_name - last_name properties: id: type: int description: The unique identifier for the Dasher example: 1232142 first_name: type: string description: The first name of the Dasher example: John last_name: type: string description: Last name of the Dasher example: Wick phone_number: type: string description: Masked phone number of the Dasher for the merchant to use. Number is masked for privacy and expires 30 minutes after the delivery is completed. example: +1-501-234-1343 dasher_phone_number_for_customer: type: string description: Masked phone number of the Dasher for the customer to use. Number is masked for privacy and expires 30 minutes after the delivery is completed. example: +1-501-234-1343 profile_image_url: type: string description: A URL to a photo of the Dasher vehicle: $ref: '#/components/schemas/Vehicle' location: $ref: '#/components/schemas/Location' DeliveryResponse: title: Delivery description: Object that describes the details of a delivery. required: - rating - pickup_window_start_time - actual_return_time - driver_reference_tag - contains_alcohol - updated_at - currency - estimated_pickup_time - pickup_window_end_time - order_volume - id - dasher_status - estimated_delivery_time - fee - quoted_pickup_time - dropoff_address - allow_unattended_delivery - tip - team_lift_required - estimated_return_time - batch_id - external_store_id - pickup_instructions - dasher - status - quoted_delivery_time - actual_pickup_time - delivery_window_start_time - signature_required - delivery_window_end_time - pickup_address - barcode_scanning_required - submit_platform - delivery_tracking_url - external_delivery_id - customer - return_delivery_id - order_value - items - dropoff_instructions - actual_delivery_time - signature_image_url - quantity - delivery_verification_image_url - pickup_verification_image_url - relationship_type - relationship_description type: object properties: rating: type: string description: Rating of the delivery pickup_window_start_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T17:20:12Z' pickup_window_end_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T17:40:28Z' delivery_window_start_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T18:15:28Z' delivery_window_end_time: type: string description: The UTC date-time (in ISO-8601 format) overrides `delivery_time` and `pickup_time` when all four parameters of the delivery window (i.e. `pickup_window_start_time` , `pickup_window_end_time` , `delivery_window_start_time` , `delivery_window_end_time` ) are provided. example: '2018-08-22T18:35:28Z' actual_return_time: type: string description: The time at which the delivery was actually returned. example: '2018-08-22T18:35:28Z' driver_reference_tag: type: string description: The internal order identifier at the merchant, which the driver can use to pick up the order. One example of a value for this field is the number the cashier hands the customer at a counter-serve restaurant. example: ABD13234 contains_alcohol: type: boolean description: Set this to true if the order contains alcohol. Default value is false. example: true updated_at: type: string description: The timestamp at which the delivery got updated. example: '2018-08-22T18:35:28Z' currency: type: string description: Currency for the delivery fees example: USD estimated_pickup_time: type: string description: An estimate of the time by which the dasher will pickup the order from the pickup location provided at the time of delivery creation. example: '2018-08-22T18:35:28Z' order_volume: type: integer format: int64 description: Only supported for specific use cases. Provide a list of `items` with `weight` and `volume` instead or contact support to discuss the use of `order_volume`. example: 3 id: type: integer format: int64 description: The id of the delivery dasher_status: type: string description: The status of the dasher enum: - unassigned - accepted - arrived_at_store - picked_up - arrived_at_consumer - dropped_off - pending_return - dropped_off_return estimated_delivery_time: type: string description: An estimate of the time by which, the dasher will drop off the order at the customer's location provided at the time of delivery creation. example: '2018-08-22T18:35:28Z' fee: type: integer format: int64 example: 1900 description: Delivery Fees in cents. i.e. 1940 equals $19.40 minimum: 0 x-nullable: false fee_components: type: array description: The charges that were applied for this delivery; sums to `fee`. items: $ref: '#/components/schemas/FeeComponent' tax: type: integer format: int32 example: 520 description: Delivery tax in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599 or null if not available. minimum: 0 tax_components: type: array description: The taxes that were applied for this delivery; sums to `tax`. Only returned for deliveries in Canada. items: $ref: '#/components/schemas/TaxComponent' quoted_pickup_time: type: string description: Estimated time at which the delivery will be picked up from the merchant location specified during delivery creation. example: '2018-08-22T17:20:28Z' dropoff_address: $ref: '#/components/schemas/DropoffAddressResponse' allow_unattended_delivery: type: boolean description: If true, flags the order as one that does not require the customer to be present to receive the delivery. Cannot be true if `signature_required` is true. example: false tip: type: integer description: The amount to tip the Dasher in cents i.e. $5.00 = 500 format: int32 example: 500 team_lift_required: type: boolean description: More than one dasher is required to complete the delivery example: true external_store_id: type: string description: A unique identifier, defined by you, which can be used to track the specific store that the delivery is for. example: '148767394' pickup_instructions: type: string description: Instruction for the dasher for the pickup location. example: Use the back alley of the store for pickup dasher: $ref: '#/components/schemas/Dasher' status: type: string description: The status of the delivery enum: - scheduled - assigned - picked_up - delivered - cancelled - pending_return - returned quoted_delivery_time: type: string description: Estimated time by which the order will be delivered. example: '2018-08-22T18:35:28Z' actual_pickup_time: type: string description: Actual time at which the delivery was picked up by the dasher. example: '2018-08-22T18:35:28Z' signature_required: type: boolean description: If true, flags the order as one that requires a signature from the consumer. Cannot be true if `allow_unattended_delivery` is true. example: false pickup_address: $ref: '#/components/schemas/PickupAddressResponse' barcode_scanning_required: type: boolean description: Barcode scanning at both pickup and dropoff is required to complete the delivery example: false delivery_tracking_url: type: string description: 'Tracking page for the delivery that you can use or share with the sender and/or receiver of the delivery. Note: the URL format is not fixed and may change over time.' example: http://drd.sh/d035NtWrk/ external_delivery_id: type: string description: A unique identifier across all store locations under a business, defined by the merchant, which can be used to track this specific delivery. example: 1342666-2420 customer: $ref: '#/components/schemas/Customer' order_value: type: integer format: int64 description: Total value of the order being delivered in cents e.g. 14000 is $140 example: 14000 items: type: array items: $ref: '#/components/schemas/ItemResponse' description: An array of items provided by the merchant at the time of delivery creation dropoff_instructions: type: string description: Instructions for dasher at the time of delivery drop off example: Please call me to buzz you in actual_delivery_time: type: string signature_image_url: type: string description: The link to an image of the signature supplied by the customer if they were required to sign for the delivery. This link will expire in 3 days. example: https://doordash-static.s3-us-west-2.amazonaws.com/media/drive/drive-logo.png quantity: description: Quantity of the item being delivered. type: integer format: int64 example: 1 delivery_verification_image_url: type: string description: A URL for the delivery verification image uploaded by the Dasher; only available if the delivery required a verification image to be taken at delivery. example: https://doordash-static.s3-us-west-2.amazonaws.com/media/drive/drive-logo.png pickup_verification_image_url: type: string description: A URL for the pickup verification image uploaded by the Dasher; only available if the delivery required a verification image to be taken at pickup. example: https://doordash-static.s3-us-west-2.amazonaws.com/media/drive/drive-logo.png relationship_type: type: string description: For deliveries where `signature_required` is `true`, how the person who signed for the delivery is related to the delivery recipient. enum: - Self - Wife - Husband - Mother - Father - Daughter - Son - Front desk - Nurse - Caregiver - Other example: Self relationship_description: type: string description: For deliveries where `signature_required` is `true` and `relationship_type` is `other`, a description of how the person who signed for the delivery is related to the delivery recipient. example: Brother order_contains_list: type: array description: An object that specifies the restricted item(s) contained in this order. The values that can be specified are 'pharmacy_items' (delivery contains pharmacy items), 'age_restricted_pharmacy_items' (the order is an S3+ pharmacy order which requires ID Verification and can only be delivered to 18+ year olds), 'tobacco_items' (delivery contains tobacco items, requires ID Verification), 'hemp_items' (delivery contains hemp items, requires ID Verification), 'otc_items' (delivery contains otc items, requires ID Verification) enum: - pharmacy_items - age_restricted_pharmacy_items - tobacco_items - hemp_items - otc_items example: - pharmacy_items - age_restricted_pharmacy_items - tobacco_items - hemp_items - otc_items pin_code_verification_metadata: type: object description: An object that contains dropoff pin code verification metadata. Please reach out to Doordash to enable this feature for your business. properties: pin_code_type: type: string description: An enum that specifies the pin code value type. The values that can be specified are `customer_phone_number` (pin code for dropoff verification is the customer phone number's last 4 digits), `merchant_provided_number` (pin code for dropoff verification is the merchant provided 4 digit number), `random_number` (pin code for dropoff verification is the random 4 digit number generated by DD). Pin Code can be enabled only for orders that are non-contactless and not unattended deliveries enum: - customer_phone_number - merchant_provided_number - random_number example: customer_phone_number pin_code_value: type: string description: An object that contains pin code value, which should be a 4 digit number. This must be sent only for `merchant_provided_number` pin code type. pattern: /^\d{4}$/ example: '1234' DropoffAddressComponents_CA: type: object title: Canada description: Drop-off Address broken down by components for CA properties: street_address: type: - string - 'null' description: The street address of the drop-off location. If you have multiple lines, concatenate them with a comma example: 358 Industry Drive sub_premise: type: - string - 'null' description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: - string - 'null' description: City for the address example: Toronto province: type: - string - 'null' description: Province for the address. 2 letter province codes for Canadian addresses. For instance, “ON” for Ontario example: 'ON' postal_code: type: - string - 'null' description: Postal code for the address example: M4C-1V7 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not a valid ISO ALPHA 2 code, you would receive a validation error. “CA” for Canada example: CA SubstituteItemMetadata: title: SubstituteItemMetadata description: Metadata for the substitute item. type: object properties: id: type: string description: Unique identifier for the substitute item quantity: type: integer description: Quantity of the substitute item weight: type: number format: double description: Unit weight of 1 instance of this item, with or without a decimal point. The overall weight of this item is calculated by multiplying this field by quantity. minimum: 0 maximum: 999.9995 weight_unit: type: string description: Weight unit of the substitute item enum: - oz - lbs - kg - g required: - id - quantity Locale: type: string description: 'The language DoorDash should use when sending updates about this delivery. Supported locales : `en-US`, `fr-CA`, `es-US`.' example: en-US, fr-CA, es-US DropoffSignatureUrl: type: string description: Link to a picture of the dropoff contact's signature that was collected by the Dasher during drop off. example: https://doordash-static.s3... delivery_SubstitutionRecommendationInput: title: SubstitutionRecommendationInput description: Request body for substitution recommendation endpoint type: object properties: pickup_external_business_id: $ref: '#/components/schemas/ExternalBusinessId' pickup_external_store_id: $ref: '#/components/schemas/ExternalStoreId' items: type: array description: The items used to request substitution recommendations. items: $ref: '#/components/schemas/DeliveryItemForSubsRecommendationRequest' customer: type: object description: optional customer information to be used for substitution recommendation properties: dropoff_contact_loyalty_number: type: string description: Loyalty number for the Customer to be applied at the checkout lane. example: 1234-5678-9876-5432-1 required: - pickup_external_business_id - pickup_external_store_id - items ShoppedItemsDetails: title: ShoppedItemsDetails description: Details about the individual items included in the order. If you want more info about shopped items, refer to the [DASHER_COMPLETED_SHOPPING webhook spec.](https://developer.doordash.com/en-US/docs/drive/how_to/Drive_DSX/how_to_shopping_complete_webhook) type: object properties: shopped_items: type: array description: The items shopped by the Dasher in the order. Once the Dasher has completed shopping, this will contain all of the scanned items. items: $ref: '#/components/schemas/ShoppedItem' DangerousGoods: title: DangerousGoods type: object description: Hazardous materials (hazmat) information for an item shipped under applicable dangerous-goods regulations. required: - proper_shipping_name - commodity_level_code properties: proper_shipping_name: type: string description: Official proper shipping name of the hazardous material as defined by the applicable regulatory authority (DOT/IATA/IMDG). maxLength: 200 example: ACETYL METHYL CARBINOL commodity_level_code: type: string description: Indicates the regulatory treatment level for this hazardous commodity. example: limited_quantity enum: - limited_quantity un_number: type: string description: Four-digit UN identification number assigned to the hazardous substance. Must be provided in the format "UN" followed by exactly four digits. pattern: ^UN\d{4}$ example: UN2621 class_number: type: string description: One of the nine HAZMAT shipping classes and sub classes example: '3' amount: type: number format: double description: Net quantity of hazardous material per package, expressed in the unit defined by `amount_measurement_type`. minimum: 0 example: 10 amount_measurement_type: type: string description: Unit of measure for the `amount` field. example: KGS enum: - KGS - LBS - L - ML packaging_group_type: type: string description: Packing group indicating the degree of danger of the substance. Group I = great danger, Group II = medium danger, Group III = minor danger. Not applicable to all hazard classes (e.g. explosives, gases). example: III enum: - I - II - III transportation_mode: type: string description: Mode of transport under which the dangerous goods declaration applies. example: ground enum: - ground quantity: type: integer format: int32 description: Number of these items in the entire package. minimum: 1 example: 1 Location_2: title: Location type: object description: Near-real-time location of the Dasher. required: - lat - lng properties: lat: type: number format: double description: Latitude of the location. example: 123.1312343 lng: type: number format: double description: Longitude of the location. example: -37.2144343 DropoffAddressComponents_NZ: type: object title: New Zealand description: Drop-off Address broken down by components for NZ properties: street_address: type: - string - 'null' description: The street address of the drop-off location. If you have multiple lines, concatenate them with a comma example: 236 Majoribanks Street sub_premise: type: - string - 'null' description: Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 sub_locality: type: - string - 'null' description: Delivery suburb / town for the address example: Mount Victoria locality: type: - string - 'null' description: Locality for the address example: Wellington postal_code: type: - string - 'null' description: Postal code for the address example: 6011 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not a valid ISO ALPHA 2 code, you would receive a validation error. “NZ” for New Zealand example: NZ DasherDetails: title: DasherDetails description: Details about the Dasher assigned to this delivery. Details will be provided once a Dasher has been assigned and has accepted the delivery. type: object properties: dasher_id: type: integer format: int32 description: Unique identifier for the Dasher. example: 1232142 dasher_name: type: string description: First name and last initial of the Dasher delivering the order. example: John D. dasher_dropoff_phone_number: type: string description: Phone number for the Dasher; can only be called from dropoff_phone_number. Should include the country code. example: '+15555555555' dasher_pickup_phone_number: type: string description: Phone number for the Dasher; can only be called from pickup_phone_number. Should include the country code. example: '+14444444444' dasher_location: $ref: '#/components/schemas/Location_2' dasher_vehicle_make: type: string description: Make of the Dasher's vehicle. example: Toyota dasher_vehicle_model: type: string description: Model of the Dasher's vehicle. example: Corolla dasher_vehicle_year: type: string description: Year of the Dasher's vehicle. example: '2006' AdjustmentDetails: title: AdjustmentDetails description: Details about the post-checkout adjustments made to the item. Not settable. type: object properties: addition_source: type: string description: The source of the item's addition example: dasher enum: - dasher - customer DeliveryOutput: title: DeliveryBase description: Delivery status and details provided by Doordash. type: object properties: delivery_status: type: string description: See the [delivery statuses](https://developer.doordash.com/en-US/docs/drive/reference/delivery_statuses) document for detailed descriptions of each status. enum: - quote - created - confirmed - enroute_to_pickup - arrived_at_pickup - picked_up - enroute_to_dropoff - arrived_at_dropoff - delivered - enroute_to_return - arrived_at_return - returned - cancelled cancellation_reason: type: string description: The reason why a delivery was cancelled. enum: - cancelled_by_creator - failed_to_process_payment - failed_to_assign_and_refunded - failed_to_pickup - failed_to_deliver - failed_to_return updated_at: type: string description: Time when the delivery info was updated in ISO-8601 format. example: '2018-08-22T17:20:28Z' pickup_time_estimated: type: string description: Estimated time of pickup in ISO-8601 format; null if already picked up. example: '2018-08-22T17:20:28Z' pickup_time_actual: type: string description: Actual time of pickup in ISO-8601 format; null if not yet picked up. example: '2018-08-22T17:20:28Z' dropoff_time_estimated: type: string description: Estimated time of drop off in ISO-8601 format; null if already picked up. example: '2018-08-22T17:20:28Z' dropoff_time_actual: type: string description: Actual time of drop off in ISO-8601 format; null if not yet picked up. example: '2018-08-22T17:20:28Z' dropoff_time_estimated_lower_bound: type: string description: Lower bound of the post-checkout estimated drop off time in ISO-8601 format. example: '2018-08-22T17:20:28Z' dropoff_time_estimated_upper_bound: type: string description: Upper bound of the post-checkout estimated drop off time in ISO-8601 format. example: '2018-08-22T17:35:28Z' dropoff_time_estimated_pre_checkout: type: string description: Estimated drop off time shown before an order is placed (pre-checkout), in ISO-8601 format. Populated only when enabled for the business/store. example: '2018-08-22T17:20:28Z' return_time_estimated: type: string description: Estimated time of return in ISO-8601 format; null if delivery is not returnable or already returned. example: '2018-08-22T17:20:28Z' return_time_actual: type: string description: Actual time of return in ISO-8601 format; null if return is not returnable or the return is not yet completed. example: '2018-08-22T17:20:28Z' return_address: $ref: '#/components/schemas/ReturnAddress' fee: type: integer format: int32 example: 1900 description: Delivery Fee in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599 or null if not available. minimum: 0 fee_components: type: array description: The charges that were applied for this delivery; sums to `fee` items: $ref: '#/components/schemas/FeeComponent' tax: type: integer format: int32 example: 520 description: Delivery tax in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599 or null if not available. minimum: 0 tax_components: type: array description: The taxes that were applied for this delivery; sums to `tax`. Only returned for deliveries in Canada. items: $ref: '#/components/schemas/TaxComponent' support_reference: $ref: '#/components/schemas/SupportReference' tracking_url: $ref: '#/components/schemas/TrackingUrl' dropoff_verification_image_url: $ref: '#/components/schemas/DropoffVerificationUrl' pickup_verification_image_url: $ref: '#/components/schemas/PickupVerificationUrl' dropoff_signature_image_url: $ref: '#/components/schemas/DropoffSignatureUrl' shipping_label: $ref: '#/components/schemas/ShippingLabel' dropped_items: type: array description: The items that were dropped because they were not available or suspended and not considered as per the catalog for DSS/DSD Orders. items: $ref: '#/components/schemas/DroppedItem' SupportReference: type: string pattern: /[a-zA-Z0-9-._~]+/ description: Internal reference for this delivery; reference it when talking or writing to DoorDash support. example: '86313' ScannedData: title: ScannedData description: Data class representing the scanned barcode data. type: object required: - format properties: format: type: string description: Format of the barcode. Enum ["upc-a","upc-e","ean-13","ean-8","plu","gtin-14","unknown"] example: upc-a is_variable_measure: type: boolean description: Indicates whether the barcode represents a variable measure product with price or weight. example: false indicator_digit: type: string description: The indicator digit, used in Gtin14 barcodes to classify the type of item example: 1 product_code: type: string description: Identifies an item within a given system, used in most barcode formats. example: 200 check_digit: type: string description: Used to verify the integrity of the barcode data, used in most barcode formats. example: 1 country_code: type: string description: Identifies the country where the manufacturer is registered, used in EAN-13 and EAN-8 barcodes. example: 4 manufacturer_code: type: string description: The manufacturer code assigned to the company that produced the product, used in UPC-A, EAN-13, UPC-E. example: 41303 number_system: type: string description: Helps determine the type of barcode and its categorization, used in UPC-A, UPC-E. example: 0 plu_check_digit: type: string description: Price check digit used in variable measure barcodes. example: 5 company_prefix: type: string description: Company prefix is part of Gtin14 barcode, identifying the brand owner or manufacturer. example: 12345 item_reference: type: string description: Identifies a product within a company’s system, used in Gtin14 barcodes. example: 67890 scanned_code_sans_check_digit: type: string description: The scanned barcode excluding the check digit. example: 4130300200 DeliveryPickupDetails: title: DeliveryPickupDetails description: Delivery pickup details. type: object properties: pickup_address: $ref: '#/components/schemas/PickupAddress_2' pickup_business_name: $ref: '#/components/schemas/PickupAddressName' pickup_phone_number: $ref: '#/components/schemas/PickupPhoneNumber' pickup_instructions: $ref: '#/components/schemas/PickupInstructions' pickup_reference_tag: $ref: '#/components/schemas/ReferenceTag' pickup_external_business_id: $ref: '#/components/schemas/ExternalBusinessId' pickup_external_store_id: $ref: '#/components/schemas/ExternalStoreId' pickup_verification_metadata: $ref: '#/components/schemas/PickupVerificationMetadata' pickup_address_components: title: PickupAddressComponents description: The Pickup address broken down into independent components. Please reach out to Doordash to enable this feature for your business. oneOf: - $ref: '#/components/schemas/PickupAddressComponents_US' - $ref: '#/components/schemas/PickupAddressComponents_CA' - $ref: '#/components/schemas/PickupAddressComponents_AU' - $ref: '#/components/schemas/PickupAddressComponents_NZ' Tip: minimum: 0 type: integer description: The tip amount. Use cents or the equivalent lowest currency denomination (e.g. $5.99 = 599). format: int32 example: 599 ServiceabilityCheckInput: title: ServiceabilityCheckInput description: Request body for serviceability check endpoint type: object properties: pickup_address: $ref: '#/components/schemas/PickupAddress_2' dropoff_address: $ref: '#/components/schemas/DropoffAddress_2' pickup_external_business_id: $ref: '#/components/schemas/ExternalBusinessId' pickup_external_store_id: $ref: '#/components/schemas/ExternalStoreId' dropoff_address_components: title: DropoffAddressComponents description: The Dropoff address broken down into independent components. oneOf: - $ref: '#/components/schemas/DropoffAddressComponents_US' - $ref: '#/components/schemas/DropoffAddressComponents_CA' - $ref: '#/components/schemas/DropoffAddressComponents_AU' - $ref: '#/components/schemas/DropoffAddressComponents_NZ' order_value: $ref: '#/components/schemas/OrderValue' external_delivery_id: $ref: '#/components/schemas/ExternalDeliveryId' dropoff_phone_number: $ref: '#/components/schemas/DropoffPhoneNumber' dropoff_options: $ref: '#/components/schemas/DropoffOptions' contactless_dropoff: $ref: '#/components/schemas/Contactless' action_if_undeliverable: $ref: '#/components/schemas/ActionIfUndeliverable' order_contains: $ref: '#/components/schemas/OrderContains' dropoff_requires_signature: $ref: '#/components/schemas/SignatureRequired' pickup_time: $ref: '#/components/schemas/Time' dropoff_time: $ref: '#/components/schemas/Time' pickup_window: $ref: '#/components/schemas/TimeWindow' dropoff_window: $ref: '#/components/schemas/TimeWindow' required: - pickup_address - dropoff_address PickupAddress_2: type: string description: Comma-separated full address, in the order appropriate for your locale. Overridden by store properties if pickup_external_store_id and pickup_external_business_id are used. example: 901 Market Street 6th Floor San Francisco, CA 94103 DropoffPhoneNumber: title: Drop-off Phone number type: string description: The phone number for the Dasher to call if there are any issues with the delivery. Should include the country code. Must adhere to E.164 international phone number standard example: '+16505555555' PaymentMethod: type: string description: The payment method to be used by the Dasher while shopping at the store. This is a required field for shop_deliver and shop_stage orders. enum: - red_card - barcode - shop_card - gift_cards DropoffEmailAddress: type: string description: Email address of the dropoff contact. example: john.doe@example.com CustomerExpectedSla: title: CustomerExpectedSla description: The expected delivery time or date shown to the customer. oneOf: - $ref: '#/components/schemas/Day' - $ref: '#/components/schemas/Time_Stamp' PickupAddressName: type: string description: Optional name of the place, overrides name of store when provided. Shown to Dashers to help find the location and to Customer as the store name in SMS and tracking page. example: Wells Fargo SF Downtown ShoppingOptions: title: ShoppingOptions description: Details about how to shop and pay for the delivery for shop_deliver and shop_stage orders type: object required: - payment_method - dropoff_contact_loyalty_number properties: payment_method: $ref: '#/components/schemas/PaymentMethod' payment_barcode: $ref: '#/components/schemas/PaymentBarcode' payment_gift_cards: $ref: '#/components/schemas/PaymentGiftCards' ready_for_pickup_by: type: string description: Estimated time for order pickup by customer in ISO-8601 format, only required for shop_stage orders. example: '2018-08-22T17:20:28Z' dropoff_contact_loyalty_number: type: string description: Loyalty number for the Customer to be applied at the checkout lane. example: 1234-5678-9876-5432-1 PaymentBarcode: type: string description: The token that will be scanned as a barcode at checkout lane as payment for the order in store. example: '12345' SendNotifications: type: boolean description: Whether the contact will receive notifications from DoorDash for this delivery. The default is true. example: true TimeWindow: title: TimeWindowDetails description: The UTC date-time (in ISO-8601 format) overrides dropoff_time and pickup_time when all four parameters of the time window (pickup_window_start_time , pickup_window_end_time , dropoff_window_start_time , dropoff_window_end_time) are provided. type: object properties: start_time: $ref: '#/components/schemas/Time' end_time: $ref: '#/components/schemas/Time' DeliveryItem: title: DeliveryItem description: Details about an individual item in the order. type: object explode: false required: - name - quantity properties: name: type: string description: Name of the item being delivered. pattern: /^.{1,100}$/ example: Mega Bean and Cheese Burrito description: type: string description: Description of the item being delivered. pattern: /^.{1,500}$/ example: Mega Burrito contains the biggest beans of the land with extra cheese. quantity: type: integer format: int32 description: Quantity of the item being delivered. minimum: 1 maximum: 100 example: 2 external_id: type: string description: Unique ID generated by the caller for the item. pattern: /^.{1,100}$/ example: 123-123443434b external_instance_id: type: string description: used to distinguish between multiple items with the same external_id, such as for 2 steaks in the same order with separate weights. Not updatable. example: 12 volume: type: number format: double minimum: 0 maximum: 999.9995 description: Unit volume of 1 instance of this item, in cubic feet, with or without a decimal point. The overall volume of this item is calculated by multiplying this field by quantity. example: 5.3 weight: type: number format: double minimum: 0 maximum: 999.9995 description: Unit weight of 1 instance of this item, in pounds (lbs), with or without a decimal point. The overall weight of this item is calculated by multiplying this field by quantity. example: 2.8 length: type: number format: double minimum: 0 description: Unit length of 1 instance of this item, in inches, with or without a decimal point. example: 2.8 width: type: number format: double minimum: 0 description: Unit weight of 1 instance of this item, in inches, with or without a decimal point. example: 2.8 height: type: number format: double minimum: 0 description: Unit weight of 1 instance of this item, in inches, with or without a decimal point. example: 2.8 price: type: integer format: int32 minimum: 0 maximum: 9999999 description: Unit price of 1 instance of this item in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599. The overall price of this item is calculated by multiplying this field by quantity. example: 1000 barcode: type: string example: 12342830041 description: 'Barcode identifying the item. This value must be in one of the following formats: Data Matrix, AZTEC, Code 128, Code 39, Code 93, CODABAR, EAN 13, EAN 8, ITF, UPC A, UPC E, PDF417. Not updatable.' special_instructions: type: string example: Only Ripen Bananas description: Optional instructions about item, usually requested by customer/merchant item_options: $ref: '#/components/schemas/ItemOptions' adjustment_details: $ref: '#/components/schemas/AdjustmentDetails' dangerous_goods: type: array description: 'Optional list of hazardous-materials declarations for the item. Provide this field when the item contains regulated dangerous goods (e.g. aerosols, lithium batteries). When any entry has `commodity_level_code: limited_quantity` a diamond-shaped LQ hazmat icon will be rendered on the shipping label. ' items: $ref: '#/components/schemas/DangerousGoods' OrderRouteType: type: string description: Type of route required for the delivery ("roundtrip" for deliveries that require the Dasher to return to the pickup location after dropoff). If this field is not specified, the default type is the standard point to point delivery. enum: - roundtrip DeliveryQuoteInput: title: DeliveryQuoteInput description: Request body for quote endpoint allOf: - $ref: '#/components/schemas/DeliveryEmptyBase' - $ref: '#/components/schemas/DeliveryBase' - $ref: '#/components/schemas/DeliveryPickupDetails' - $ref: '#/components/schemas/DeliveryDropoffDetails' - $ref: '#/components/schemas/DeliveryShoppingOptions' - $ref: '#/components/schemas/DeliveryValueInputDetails' - $ref: '#/components/schemas/DeliveryItemsDetails' - $ref: '#/components/schemas/DeliveryInputOnlyOptions' - $ref: '#/components/schemas/DeliveryOptions' required: - external_delivery_id - dropoff_address type: object InvalidDeliveryError: x-error: true required: - code - message - reason properties: code: type: string enum: - invalid_delivery_parameters message: type: string example: Requested delivery is not valid reason: type: string enum: - distance_too_long - pickup_address_not_in_coverage - delivery_address_not_in_coverage - outside_of_delivery_time DuplicateDeliveryIdError: x-error: true type: object description: Error returned when delivery creation request is duplicate and has a delivery already created for it. required: - code - message - external_delivery_id properties: code: type: string enum: - duplicate_delivery_id message: type: string example: Duplicate External Delivery ID external_delivery_id: $ref: '#/components/schemas/ExternalDeliveryId' PickupVerificationUrl: type: string description: Link to the picture taken by the Dasher to indicate where the order was picked up. example: https://doordash-static.s3... OTC: type: boolean description: Flag to specify if the delivery contains otc items. example: false GivenName: type: string pattern: '[^~`@#\$%\^&\*\+=\?;\[{\]\}]' description: Given/first name of the contact. example: John ShoppedItem: title: ShoppedItem description: Details about an individual shopped item in the order. type: object explode: false required: - name - quantity - price - scanned_data_list properties: name: type: string description: Name of the item being delivered. pattern: /^.{1,100}$/ example: Mega Bean and Cheese Burrito description: type: string description: Description of the item being delivered. pattern: /^.{1,500}$/ example: Mega Burrito contains the biggest beans of the land with extra cheese. quantity: type: integer format: int32 description: Quantity of the item being delivered. minimum: 1 maximum: 100 example: 2 external_id: type: string description: Unique ID generated by the caller for the item. pattern: /^.{1,100}$/ example: 123-123443434b external_instance_id: type: string description: used to distinguish between multiple items with the same external_id, such as for 2 steaks in the same order with separate weights. Not updatable. example: 12 weight: type: number format: double minimum: 0 maximum: 999.9995 description: Unit weight of 1 instance of this item, in pounds (lbs), with or without a decimal point. The overall weight of this item is calculated by multiplying this field by quantity. example: 2.8 weight_components: type: array description: An array detailing the components of the weight, if applicable. items: $ref: '#/components/schemas/Weight' weight_unit: type: string description: The weight unit for the item being shopped. Not updatable. enum: - oz - lbs - kg - g requested_item_external_id: type: string description: external_id of the originally requested item pattern: /^.{1,100}$/ example: 123-123443434b substitution_source: type: string description: The source of the item's substitution example: dasher enum: - dasher - customer - merchant scanned_code: type: string description: The barcode or PLU code of the item. example: 1234567890128 addition_source: type: string description: The source of the item's addition example: dasher enum: - dasher - customer requested_item_external_instance_id: type: string description: used to distinguish between multiple items with the same external_id, such as for 2 steaks in the same order with separate weights. Not updatable. example: 12 scanned_data_list: type: array description: A list of ScannedData objects, each representing a possible deconstruction of the scanned barcode. Barcodes can conform to different formats (e.g., UPC-A, EAN-13), and this list captures the parsed components for each possible format. scanned_data_list[0] contains the components for the most likely barcode format (e.g., UPC-A). scanned_data_list[1], scanned_data_list[2], etc., represent the same barcode interpreted under other formats (e.g., EAN-13). The list is ordered by likelihood, with the most probable format appearing first items: $ref: '#/components/schemas/ScannedData' fulfilled_substitution_type: type: string description: An enum to represent how item is fulfilled example: no_substitution enum: - no_substitution - pre_selected - override - contact - generic_substitution - unspecified is_unknown: type: boolean description: Whether the item can be found in DoorDash catalog example: false price: type: integer format: int32 minimum: 0 maximum: 9999999 description: Unit price of 1 instance of this item in the lowest currency denomination (e.g. cents). i.e. $5.99 = 599. The overall price of this item is calculated by multiplying this field by quantity. example: 1000 ReferenceTag: type: string description: A reference that can help Dasher identify the correct delivery item for pick up/drop-off. example: Order number 61 DeliveryValueInputDetails: title: DeliveryValueInputDetails description: Delivery value input details. type: object properties: order_value: $ref: '#/components/schemas/OrderValue' PinCodeValue: type: string pattern: /^\d{4}$/ description: The string identifier that implies the pin code to use during dropoff or return verification. This value should be sent only when the PinCodeType is 'merchant_provided_number'. example: '1234' DropoffOptions: type: object description: Additional options for drop off properties: signature: type: string description: Flag to specify if the delivery requires signature verification during drop off. Not updatable. enum: - required - preferred - none id_verification: type: string description: Flag to specify if ID verification is required at drop-off. If order contains alcohol, this field needs to be set to "required". Not updatable. enum: - required - preferred - none proof_of_delivery: type: string description: Flag to specify if the delivery requires proof of delivery during drop off. When "pin_code" is set as "proof_of_delivery", the "dropoff_pin_code_verification_metadata" must include relevant pin code data. Pin Code can be enabled only for orders that are non-contactless and not unattended deliveries. Please reach out to Doordash to enable this feature for your business. Not updatable. ("photo_preferred" is deprecated.) enum: - photo_required - photo_preferred - pin_code - none catering_setup: type: string description: Flag to specify if the delivery needs catering setup, only applicable to large order fulfillment delivery. Not updatable. enum: - required - none DropoffAddressName: type: string description: Optional name of the place, to help Dashers find the location. example: The Avery Condominium FamilyName: type: string pattern: '[^~`@#\$%\^&\*\+=\?;\[{\]\}]' description: Family/last name of the contact. example: Doe PickupAddressComponents_US: type: object title: United States description: Pick-up Address broken down by components for US properties: street_address: type: - string - 'null' description: The street address of the pick-up location. If you have multiple lines, concatenate them with a comma example: 901 Market Street sub_premise: type: - string - 'null' description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: - string - 'null' description: City for the address example: San Francisco state: type: - string - 'null' description: State for the address. 2 letter state codes for US addresses. For instance, “CA” for California example: CA zip_code: type: - string - 'null' description: Zip code for the address. 5 digit zip code for US addresses. example: 94103 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. “US” for United States of America. “PR” for Puerto Rico example: US ReturnPinCodeVerificationMetadata: title: ReturnPinCodeVerificationMetadata type: object description: This field stores metadata related to PIN code verification during the return to pickup process. It ensures that a return can only be completed once the PIN code is validated. properties: pin_code_type: $ref: '#/components/schemas/ReturnPinCodeType' pin_code_value: $ref: '#/components/schemas/PinCodeValue' OrderContains: title: OrderContains type: object description: An object that specifies the restricted item(s) contained in this order. properties: alcohol: $ref: '#/components/schemas/Alcohol' pharmacy_items: $ref: '#/components/schemas/PharmacyItems' age_restricted_pharmacy_items: $ref: '#/components/schemas/AgeRestrictedPharmacyItems' tobacco: $ref: '#/components/schemas/Tobacco' hemp: $ref: '#/components/schemas/Hemp' otc: $ref: '#/components/schemas/OTC' ExternalDeliveryId: type: string pattern: /[a-zA-Z0-9-._~]+/ description: Unique ID generated by the caller for the delivery. example: D-1763 ReturnAddress: type: string description: If a delivery is being returned-to-pickup, this is the address where the delivery will be returned. example: 901 Market Street 6th Floor San Francisco, CA 94103 ShippingLabel: title: ShippingLabel type: object description: The label for a delivery. properties: label_format: type: string description: The file format of the label. example: zpl enum: - zpl - pdf label_size: type: string description: The size of label. enum: - 4x6 print_density: type: string description: The printing density of label. enum: - 203dpi - 300dpi label_string: type: string description: A Base64-encoded string of label content. example: XlhBCl5DRjAsNjAKXkZPNTAsNTBeRkRTdG9yZU5hbWVeRlMKXkNGMCwzMApeRk81MCwxMTVeRkRTaGlwcGVkIDAxLzE2LzIwMjNeRlMKXkZPNjUwLDYwXkZENS4zIGxic15GUwpeRk82NTAsMTAwXkZEQ0hJLTJeRlMKXkZPNTAsMTcwXkdCNzAwLDMsM15GUwpeQ0YwLDgwCl5GTzUwLDIyNV5GREpvaG4gRG9lXkZTCl5DRkEsMzYKXkZPNTAsMzMwXkZENnRoIEZsb29yXkZTCl5GTzUwLDM4NV5GRDkwMSBNYXJrZXQgU3RyZWV0XkZTCl5GTzUwLDQ0MF5GRFNhbiBGcmFuY2lzY28sIENBIDk0MTAzXkZTCl5GTzUwLDUyMF5HQjcwMCwzLDNeRlMKXkJZMiwzLDIwMApeRk81MCw1NzVeQkNeRkRKM0Q0VE5HUU1QR0FLSE5VNlZSSlA4RjkyRDE3WV5GUwpeQlFOLDIsNwpeRk81NzUsNzc1XkZEUUEsSjNENFROR1FNUEdBS0hOVTZWUkpQOEY5MkQxN1leRlMKXkNGQSwyNApeRk81MCw4NTBeRkRSZWYjIDEyMy0xMjM0NDM0MzRiXkZTCl5DRkEsMzZeRk81MCwxMDUwXkZERGVsaXZlcmVkXkZTCl5DRkIsMzZeRk81MCwxMTAwXkZEQnkgRGFzaExpbmteRlMKXlha== dangerous_goods_icon: type: string description: Icon printed on the shipping label. `limited_quantity` indicates the LQ diamond mark is present on the label. example: limited_quantity enum: - limited_quantity authorization_error: x-error: true type: object description: 'Authorization error: the credentials provided with the request don''t work for the requested operation' required: - code - message properties: code: type: string enum: - authorization_error default: authorization_error message: type: string example: 'Authorization error: the credentials provided with the request don''t work for the requested operation' default: 'Authorization error: the credentials provided with the request don''t work for the requested operation' DeliveryItemsDetails: title: DeliveryItemsDetails description: Details about the individual items included in the order. type: object properties: items: type: array description: The items included in the order. items: $ref: '#/components/schemas/DeliveryItem' authentication_error: x-error: true type: object description: 'Authentication error: the token provided with the request doesn''t work for the requested operation' required: - code - message properties: code: type: string enum: - authentication_error default: authentication_error message: type: string example: The [exp] is in the past; the JWT is expired default: The [exp] is in the past; the JWT is expired DeliveryEmptyBase: title: DeliveryEmptyBase description: Placeholder to get codegen to do what's needed. type: object OriginFacilityId: type: string description: Merchant warehouse id for the midmile example: MERCHANTA-CA-1 UpdateDeliveryInputOnlyOptions: title: UpdateDeliveryInputOnlyOptions description: Fields accepted only on the update-delivery (PATCH) request. type: object properties: order_ready_time: type: string description: The UTC time at which the order was actually ready at the pickup location. example: '2018-08-22T17:20:28Z' DeliveryInputOnlyOptions: title: DeliveryInputOnlyOptions description: Delivery input only options ID. type: object properties: pickup_time: $ref: '#/components/schemas/Time' dropoff_time: $ref: '#/components/schemas/Time' pickup_window: $ref: '#/components/schemas/TimeWindow' dropoff_window: $ref: '#/components/schemas/TimeWindow' customer_expected_sla: $ref: '#/components/schemas/CustomerExpectedSla' expires_by: $ref: '#/components/schemas/ExpiresBy' shipping_label_metadata: $ref: '#/components/schemas/ShippingLabelMetadata' shipping_label_config: $ref: '#/components/schemas/ShippingLabelConfig' DropoffInstructions: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: Instructions for the Dasher to follow when picking up the order. example: Enter gate code 1234 on the callbox. Hemp: type: boolean description: Flag to specify if the delivery contains hemp items. example: false validation_field_error: x-error: true title: ValidationFieldError type: object description: One or more request values couldn't be validated. required: - code - message - field_errors properties: code: type: string enum: - validation_error message: type: string description: One or more request values couldn't be validated. example: One or more request values couldn't be validated. field_errors: type: array description: The list of fields whose values couldn't be validated. See more [error examples](https://developer.doordash.com/en-US/docs/drive/reference/errors) items: $ref: '#/components/schemas/FieldError' readOnly: true components: schemas: FieldError: title: FieldError type: object description: A field whose value couldn't be validated. required: - field - error properties: field: type: string description: Name of the field whose value couldn't be validated. example: pickup_phone_number error: type: string description: The error that was encountered when validating the field's value. example: Invalid phone number format Currency: type: string description: Currency of the order example: USD PromotionId: type: string description: The ID of the promotion that you want to apply to the delivery. If the promotion ID is valid and the promotion is active, the response `fee` will be adjusted according to the details of the promotion. Create a [support ticket](https://developer.doordash.com/portal/support) to setup a promotion or if your promotion ID isn't working. example: ee680b87-0016-496e-ac3c-d3f33ab54c1c CancelNotAllowedError: x-error: true required: - code - message - reason properties: code: type: string enum: - cancel_not_allowed message: type: string example: Cancellation is no longer possible reason: type: string enum: - delivery_abandoned - delivery_cancelled - delivery_completed - delivery_creation_in_progress - delivery_picked_up - cancellation_window_closed - duplicate_request PickupAddressComponents_AU: type: object title: Australia description: Pick-up Address broken down by components for AU properties: street_address: type: - string - 'null' description: The street number and address of the pick-up location. If you have multiple lines, concatenate them with a comma. Do not include the unit number or slashes in the street address. Please pass them in the sub_premise field. For example, if the address is 21/17 Jones St, pass 17 Jones St example: 17 Jones St sub_premise: type: - string - 'null' description: Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 locality: type: - string - 'null' description: Delivery suburb / town for the address example: North Sydney territory: type: - string - 'null' description: State code for the address. Use the state abbreviation. For instance NSW for New South Wales, VIC for Victoria, etc. example: NSW postal_code: type: - string - 'null' description: Postal code for the address example: 2060 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not a valid ISO ALPHA 2 code, you would receive a validation error. “AU” for Australia example: AU UpdateDeliveryInput: title: UpdateDeliveryInput type: object allOf: - $ref: '#/components/schemas/DeliveryEmptyBase' - $ref: '#/components/schemas/DeliveryPickupDetails' - $ref: '#/components/schemas/DeliveryDropoffDetails' - $ref: '#/components/schemas/DeliveryOptions' - $ref: '#/components/schemas/DeliveryValueInputDetails' - $ref: '#/components/schemas/DeliveryItemsDetails' - $ref: '#/components/schemas/DeliveryInputOnlyOptions' - $ref: '#/components/schemas/UpdateDeliveryInputOnlyOptions' AgeRestrictedPharmacyItems: type: boolean description: Flag to specify if the delivery contains age restricted pharmacy items. The order is an S3+ pharmacy order which requires ID Verification and can only be delivered to 18+/21+ year olds. example: false DropoffLocation: title: Location type: object description: '[Pre-release field: submit a ticket in the Developer Portal or reach out to your DoorDash contact if you would like to provide precise location information.] The precise location, as latitude and longitude, of the drop-off. If your request includes both location and address, location will be used for Dasher navigation only; address will be used for fee and serviceability checks.' required: - lat - lng properties: lat: type: number format: double description: Latitude of the location example: 123.1312343 lng: type: number format: double description: Longitude of the location example: -37.2144343 DeliveryValueDetails: title: DeliveryValueDetails description: The subtotal for all items in the order, excluding tax/tip. Use cents or the equivalent lowest currency denomination (e.g. $19.99 = 1999). type: object properties: order_value: $ref: '#/components/schemas/OrderValue' currency: $ref: '#/components/schemas/Currency' DeliveryQuoteAcceptInput: title: DeliveryQuoteAcceptInput description: Request body for quote accept endpoint type: object properties: tip: $ref: '#/components/schemas/Tip' dropoff_phone_number: $ref: '#/components/schemas/DropoffPhoneNumber' order_value: $ref: '#/components/schemas/OrderValue' pickup_phone_number: $ref: '#/components/schemas/PickupPhoneNumber' pickup_instructions: $ref: '#/components/schemas/PickupInstructions' pickup_reference_tag: $ref: '#/components/schemas/ReferenceTag' dropoff_contact_given_name: $ref: '#/components/schemas/GivenName' dropoff_contact_family_name: $ref: '#/components/schemas/FamilyName' dropoff_instructions: $ref: '#/components/schemas/DropoffInstructions' contactless_dropoff: $ref: '#/components/schemas/Contactless' action_if_undeliverable: $ref: '#/components/schemas/ActionIfUndeliverable' items: type: array description: The items included in the order. items: $ref: '#/components/schemas/DeliveryItem' shipping_label_config: $ref: '#/components/schemas/ShippingLabelConfig' shipping_label_metadata: $ref: '#/components/schemas/ShippingLabelMetadata' DeliveryDropoffDetails: title: DeliveryDropoffDetails description: Delivery drop off details. type: object properties: dropoff_address: $ref: '#/components/schemas/DropoffAddress_2' dropoff_business_name: $ref: '#/components/schemas/DropoffAddressName' dropoff_location: $ref: '#/components/schemas/DropoffLocation' dropoff_phone_number: $ref: '#/components/schemas/DropoffPhoneNumber' dropoff_instructions: $ref: '#/components/schemas/DropoffInstructions' dropoff_contact_given_name: $ref: '#/components/schemas/GivenName' dropoff_contact_family_name: $ref: '#/components/schemas/FamilyName' dropoff_contact_send_notifications: $ref: '#/components/schemas/SendNotifications' dropoff_email_address: $ref: '#/components/schemas/DropoffEmailAddress' dropoff_options: $ref: '#/components/schemas/DropoffOptions' dropoff_address_components: title: DropoffAddressComponents description: The Dropoff address broken down into independent components. oneOf: - $ref: '#/components/schemas/DropoffAddressComponents_US' - $ref: '#/components/schemas/DropoffAddressComponents_CA' - $ref: '#/components/schemas/DropoffAddressComponents_AU' - $ref: '#/components/schemas/DropoffAddressComponents_NZ' dropoff_pin_code_verification_metadata: title: DropoffPinCodeVerificationMetadata description: The Dropoff Pin Code verification related data. Please reach out to Doordash to enable this feature for your business. $ref: '#/components/schemas/DropoffPinCodeVerificationMetadata' return_pin_code_verification_metadata: title: ReturnPinCodeVerificationMetadata description: The return Pin Code verification related data for return process. Please reach out to Doordash to enable this feature for your business. $ref: '#/components/schemas/ReturnPinCodeVerificationMetadata' DasherAllowedVehicles: description: The vehicle type(s) that a Dasher can use to complete this delivery. The default is "car". type: array items: $ref: '#/components/schemas/DasherVehicleType' example: - car - bicycle - walking DeliveryItemDetailsForSubsRecommendation: title: DeliveryItemDetailsForSubsRecommendation description: Details about a shop item's substitution recommendation response. type: object required: - external_id properties: external_id: type: string description: Unique ID of the original item in the request. pattern: /^.{1,100}$/ example: 123443434 name: type: string description: Name of the original item. pattern: /^.{1,100}$/ example: Regular Banana substitutions: type: array description: List of recommended items to substitute for the original item. items: $ref: '#/components/schemas/RecommendedDeliveryItem' PickupPhoneNumber: title: Pickup Phone number type: string description: The phone number for the Dasher to call if there are any issues with the pick up. Should include the country code and must match the country of the store for which the delivery is created. Overridden by store properties if pickup_external_store_id and pickup_external_business_id are used. Must adhere to E.164 international phone number standard. example: '+16505555555' OrderRouteItem: description: Enum to specify route item, this is to be combined with the OrderRouteType field. For example, if OrderRouteType is roundtrip, then use OrderRouteItems to specify the item that need to be returned for the roundtrip. type: string enum: - check - cash - pizza_bag ExternalBusinessId: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: The string identifier used to create your business. Used in combination with pickup_external_store_id to select the pick up location. If you provide an pickup_external_business_id, you must also provide an pickup_external_store_id. example: ase-243-dzs ExpiresBy: title: ExpiresBy description: The last time or date the order can be delivered before expiration oneOf: - $ref: '#/components/schemas/Day' - $ref: '#/components/schemas/Time_Stamp' DropoffAddressComponents_AU: type: object title: Australia description: Drop-off Address broken down by components for AU properties: street_address: type: - string - 'null' description: The street number and address of the drop-off location. If you have multiple lines, concatenate them with a comma. Do not include the unit number or slashes in the street address. Please pass them in the sub_premise field. For example, if the address is 21/17 Jones St, pass 17 Jones St example: 17 Jones St sub_premise: type: - string - 'null' description: Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 locality: type: - string - 'null' description: Delivery suburb / town for the address example: North Sydney territory: type: - string - 'null' description: State code for the address. Use the state abbreviation. For instance NSW for New South Wales, VIC for Victoria, etc. example: NSW postal_code: type: - string - 'null' description: Postal code for the address example: 2060 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not a valid ISO ALPHA 2 code, you would receive a validation error. “AU” for Australia example: AU Time_Stamp: title: Time_Stamp description: Time in ISO-8601 format in the local timezone at the dropoff. type: object properties: time_stamp: type: string example: '2018-08-22T17:20:28Z' DasherVehicleType: description: Enum to specify vehicle type. type: string enum: - car - bicycle - walking ReturnPinCodeType: type: string description: An enum that specifies the pin code value type. The values that can be specified are 'merchant_provided_number' (pin code for return verification is the merchant provided 4 digit number), 'random_number' (pin code for return verification is the random 4 digit number generated by DD). enum: - random_number - merchant_provided_number example: merchant_provided_number DroppedItem: title: DroppedItem description: The item that was dropped along with the item information and the reason for being dropped. type: object required: - external_id - type - reason properties: external_id: type: string description: The Merchant's External ID for the item. example: '1011902870' type: type: string description: Type of the item dropped example: main_item enum: - main_item - substitute_item reason: type: string description: Reason why the item was dropped example: item_not_found_in_catalog enum: - item_not_found_in_catalog - item_suspended - item_not_considered Alcohol: type: boolean description: Flag to specify if the delivery contains alcohol. example: false Time: title: TimeDetails description: Time details in ISO-8601 format. type: string example: '2018-08-22T17:20:28Z' Tobacco: type: boolean description: Flag to specify if the delivery contains tobacco items. example: false Contactless: type: boolean description: Whether the delivery should be contactless, which prompts a Dasher to take a picture of the delivery at drop-off. example: false DropoffAddressComponents_US: type: object title: United States description: Drop-off Address broken down by components for US properties: street_address: type: - string - 'null' description: The street address of the drop-off location. If you have multiple lines, concatenate them with a comma example: 901 Market Street sub_premise: type: - string - 'null' description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: - string - 'null' description: City for the address example: San Francisco state: type: - string - 'null' description: State for the address. 2 letter state codes for US addresses. For instance, “CA” for California example: CA zip_code: type: - string - 'null' description: Zip code for the address. 5 digit zip code for US addresses. example: 94103 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not a valid ISO ALPHA 2 code, you would receive a validation error. “US” for United States of America. “PR” for Puerto Rico example: US DeliveryItemsForSubsRecommendationResponse: title: DeliveryItemsForSubsRecommendationResponse description: Details about the items in the substitution recommendation. type: object properties: items: type: array description: The items included in the response. items: $ref: '#/components/schemas/DeliveryItemDetailsForSubsRecommendation' Day: title: Day description: Time in day format in the local timezone at the dropoff. type: object properties: day: type: string example: '2018-08-22' CreateDeliveryInput: title: CreateDeliveryInput allOf: - $ref: '#/components/schemas/DeliveryEmptyBase' - $ref: '#/components/schemas/DeliveryBase' - $ref: '#/components/schemas/DeliveryPickupDetails' - $ref: '#/components/schemas/DeliveryDropoffDetails' - $ref: '#/components/schemas/DeliveryShoppingOptions' - $ref: '#/components/schemas/DeliveryValueInputDetails' - $ref: '#/components/schemas/DeliveryItemsDetails' - $ref: '#/components/schemas/DeliveryInputOnlyOptions' - $ref: '#/components/schemas/DeliveryOptions' required: - external_delivery_id - dropoff_address - dropoff_phone_number type: object TrackingUrl: type: string description: 'Tracking page for the delivery that you can use or share with the sender and/or receiver of the delivery. Note: the URL format is not fixed and may change over time.' example: https://doordash.com/tracking?id= unknown_delivery_error: x-error: true type: object description: External delivery ID was not found. required: - code - message - external_delivery_id properties: code: type: string enum: - unknown_delivery_id message: type: string example: External delivery ID was not found external_delivery_id: $ref: '#/components/schemas/ExternalDeliveryId' PickupVerificationMetadata: title: PickupVerificationMetadata description: Optional pickup verification metadata. Use this to enable order level pickup verification type: object required: - verification_type - verification_code properties: verification_type: type: string description: Enum to set type of verification. example: SCAN_BARCODE enum: - SCAN_BARCODE - SCAN_QRCODE - NO_SCAN verification_code: type: string description: Code to verify upon pickup example: '12345' verification_format: type: string description: Enum to set any specific format to use for verification example: CODE_39 enum: - QR_CODE - DATA - ATRIX - AZTEC - CODE_128 - CODE_39 - CODE_93 - CODABAR - EAN_13 - EAN_8 - ITF - UPC_A - PDF417 FieldError: title: FieldError type: object description: A field whose value couldn't be validated. required: - field - error properties: field: type: string description: Name of the field whose value couldn't be validated. example: pickup_phone_number error: type: string description: The error that was encountered when validating the field's value. example: Invalid phone number format UpdateNotAllowedError: x-error: true required: - code - message - reason properties: code: type: string enum: - update_not_allowed message: type: string example: Update is no longer possible reason: type: string enum: - delivery_cancelled - delivery_completed - delivery_creation_in_progress - delivery_picked_up - delivery_abandoned - update_window_closed ExternalStoreId: type: string description: 'The string identifier used to create your store. If you provide an pickup_external_store_id, you must also provide an pickup_external_business_id. If you provide an pickup_external_store_id, the address of the store will override the pickup_address in the request. Some examples would look like this: "ase-243-dzs", "09", "#00012"' example: ase-243-dzs DropoffVerificationUrl: type: string description: Link to the picture taken by the Dasher to indicate where the order was dropped off. example: https://doordash-static.s3... OrderFulfillmentMethod: type: string description: Type of fulfillment required for Delivery ("shop_stage", "shop_deliver", "shop_handoff" for DSS/DSD/DSH delivery; "parcel" for parcel delivery. "catering" is deprecated.) enum: - standard - catering - shop_stage - shop_deliver - parcel - large_order - shop_handoff OrderRouteItems: type: array items: $ref: '#/components/schemas/OrderRouteItem' example: - check DeliveryShoppingOptions: title: DeliveryShoppingOptions description: Details about how to shop and pay for the delivery type: object properties: shopping_options: $ref: '#/components/schemas/ShoppingOptions' RecommendedDeliveryItem: title: RecommendedDeliveryItem description: Details about a recommended item to substitute for the original item. type: object required: - external_id properties: external_id: type: string description: Unique ID of the recommended item. pattern: /^.{1,100}$/ example: 123443435 name: type: string description: Name of the recommended item. pattern: /^.{1,100}$/ example: Organic Banana SignatureRequired: type: boolean description: Whether the delivery requires signature verification during drop-off. example: false DropoffPinCodeVerificationMetadata: title: DropoffPinCodeVerificationMetadata type: object description: An object that specifies the dropoff pin code verification related details for this order. When "pin_code" is set in "dropoff_options.proof_of_delivery", the object must include relevant pin code data. Conversely, if "pin_code" is not set as "proof_of_delivery", the object should exclude any pin code data. Pin Code can be enabled only for orders that are non-contactless and not unattended deliveries. Please reach out to Doordash to enable this feature for your business. properties: pin_code_type: $ref: '#/components/schemas/PinCodeType' pin_code_value: $ref: '#/components/schemas/PinCodeValue' DeliveryItemForSubsRecommendationRequest: title: DeliveryItemForSubsRecommendationRequest description: A shop item in the substitution recommendation request. type: object required: - external_id properties: external_id: type: string description: Unique ID generated by the caller for the item. This should be the identifier for the item in Catalog. pattern: /^.{1,100}$/ example: 123443434 PickupAddressComponents_NZ: type: object title: New Zealand description: Pick-up Address broken down by components for NZ properties: street_address: type: - string - 'null' description: The street address of the pick-up location. If you have multiple lines, concatenate them with a comma example: 236 Majoribanks Street sub_premise: type: - string - 'null' description: Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 sub_locality: type: - string - 'null' description: Delivery suburb / town for the address example: Mount Victoria locality: type: - string - 'null' description: Locality for the address example: Wellington postal_code: type: - string - 'null' description: Postal code for the address example: 6011 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not a valid ISO ALPHA 2 code, you would receive a validation error. “NZ” for New Zealand example: NZ PickupAddressComponents_CA: type: object title: Canada description: Pick-up Address broken down by components for CA properties: street_address: type: - string - 'null' description: The street address of the pick-up location. If you have multiple lines, concatenate them with a comma example: 358 Industry Drive sub_premise: type: - string - 'null' description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: - string - 'null' description: City for the address example: Toronto province: type: - string - 'null' description: Province for the address. 2 letter province codes for Canadian addresses. For instance, “ON” for Ontario example: 'ON' postal_code: type: - string - 'null' description: Postal code for the address example: M4C-1V7 country: type: - string - 'null' description: Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not a valid ISO ALPHA 2 code, you would receive a validation error. “CA” for Canada example: CA PinCodeType: type: string description: An enum that specifies the pin code value type. The values that can be specified are 'customer_phone_number' (pin code for dropoff verification is the customer phone number's last 4 digits), 'merchant_provided_number' (pin code for dropoff verification is the merchant provided 4 digit number), 'random_number' (pin code for dropoff verification is the random 4 digit number generated by DD). The default is 'customer_phone_number' if pin_code is enabled in the proof_of_delivery. enum: - random_number - customer_phone_number - merchant_provided_number example: customer_phone_number PaymentGiftCards: type: array description: List of gift cards use for payment items: PaymentGiftCard: type: string example: - '123443434' - '123443435' Weight: type: number format: double OrderValue: minimum: 0 type: integer description: The subtotal for all items in the order, excluding tax/tip, in the lowest currency denomination (e.g. cents). i.e. $19.99 = 1999. format: int32 example: 1999 DropoffAddress_2: type: string description: Comma-separated full address, in the order appropriate for your locale. example: 901 Market Street 6th Floor San Francisco, CA 94103 SubstitutionRecommendationInput: title: SubstitutionRecommendationInput description: Request body for get substitution recommendation endpoint allOf: - $ref: '#/components/schemas/delivery_SubstitutionRecommendationInput' type: object PharmacyItems: type: boolean description: Flag to specify if the delivery contains pharmacy items. example: false ShippingLabelMetadata: title: ShippingLabelMetadata type: object description: A JSON document that allows adding metadata about the shipping label such as sort_code, etc. Please reach out to Doordash to enable this feature for your business. properties: internal_location_id: type: string description: Internal location ID for the shipping label. example: DoordashLocID label_business_name: type: string description: 'Optional brand or display name to print as the "business name" on the rendered shipping label. When set, replaces the business name stored on the parcel for label-rendering purposes only; the underlying business identity on the delivery is unchanged. Omit to print the stored business name. ' example: Brand Co ServiceabilityCheckResponse: title: ServiceabilityCheckResponse description: Response containing serviceability check results type: object properties: is_serviceable: type: boolean description: Whether the delivery route is serviceable by DoorDash reasons_not_serviceable: type: array items: type: string description: Reasons why the delivery is not serviceable (if applicable) required: - is_serviceable CancelDeliveryInput: title: CancelDeliveryInput description: Request body for cancel delivery endpoint type: object properties: reason_code: type: string description: Optional reason code for canceling the delivery e.g. cold_chain example: cold_chain should_create_return_delivery: type: boolean description: Optional flag to indicate if a return delivery should be created instead of cancelling the original delivery. As of today, only supported for cold chain compliance returns. default: false ActionIfUndeliverable: type: string description: What the Dasher should do if the delivery is undeliverable. If left blank, the order will be treated as contactless. See [Create return to pickup deliveries](https://developer.doordash.com/en-US/docs/drive/how_to/return_to_pickup/) for more information. enum: - return_to_pickup - dispose DeliveryOptions: title: DeliveryOptions description: Delivery options ID. type: object properties: contactless_dropoff: $ref: '#/components/schemas/Contactless' action_if_undeliverable: $ref: '#/components/schemas/ActionIfUndeliverable' tip: $ref: '#/components/schemas/Tip' order_contains: $ref: '#/components/schemas/OrderContains' dasher_allowed_vehicles: $ref: '#/components/schemas/DasherAllowedVehicles' dropoff_requires_signature: $ref: '#/components/schemas/SignatureRequired' promotion_id: $ref: '#/components/schemas/PromotionId' dropoff_cash_on_delivery: minimum: 0 type: integer description: 'The cash to collect when this order is dropped off, value in the lowest currency denomination (e.g. cents). i.e. $19.99 = 1999. [Pre-release field: [Submit a ticket](https://developer.doordash.com/portal/support) or reach out to your DoorDash contact if you would like to accept cash on delivery.]' format: int32 example: 1999 order_route_type: $ref: '#/components/schemas/OrderRouteType' order_route_items: $ref: '#/components/schemas/OrderRouteItems' PickupInstructions: type: string description: Instructions for the Dasher to follow when picking up the order. example: Go to the bar for pick up. ItemOptions: title: DeliveryItemOptions description: Details about how to shop for an item. Not updatable. type: object required: - substitution_preference - weight_unit properties: substitute_item_ids: description: External IDs for items to be substituted if the original item is out of stock. Not updatable. type: array items: SubstituteItemIDs: type: string example: - '123443434' - '123443435' merchant_recommended_substitute_item_ids: description: Merchant provided external IDs for items to be substituted if the original item is out of stock. Cannot be used simultaneously with substitute_item_ids. Not updatable. type: array items: SubstituteItemIDs: type: string example: - '543443434' - '543443435' substitute_item_ids_additional_metadata: description: Additional metadata for the provided substitute items. The metadata id should match an id from substitute_item_ids or merchant_recommended_substitute_item_ids. Not updatable. type: array items: $ref: '#/components/schemas/SubstituteItemMetadata' example: - id: '123443434' quantity: 1 weight: 2.5 weight_unit: lbs - id: '123443435' quantity: 2 weight_unit: type: string description: The weight unit for the item being shopped. Not updatable. enum: - oz - lbs - kg substitution_preference: type: string description: Substitution preference to apply when an item is out of stock. Not updatable. enum: - refund - contact - substitute ShippingLabelConfig: title: ShippingLabelConfig type: object description: 'Per-order shipping label settings. When provided, fully specifies the label for this order and replaces the business-level shipping label configuration — there is no per-field fallback. Omit the object to use your business-level configuration. Only applies when shipping labels are enabled for your business. ' required: - label_format - label_size properties: label_format: type: string description: The file format of the label. example: zpl enum: - zpl - pdf print_density: type: string description: Required when label_format is zpl. Must not be set when label_format is pdf. example: 203dpi enum: - 203dpi - 300dpi label_size: type: string description: The size of the label. example: 4x6 enum: - 4x6 DeliveryBase: title: DeliveryBase description: Delivery status and details. required: - external_delivery_id type: object properties: external_delivery_id: $ref: '#/components/schemas/ExternalDeliveryId' locale: $ref: '#/components/schemas/Locale' order_fulfillment_method: $ref: '#/components/schemas/OrderFulfillmentMethod' origin_facility_id: $ref: '#/components/schemas/OriginFacilityId' DeliveryResponse_2: title: DeliveryResponse description: Delivery status and details. required: - external_delivery_id - delivery_status - fee - currency allOf: - $ref: '#/components/schemas/DeliveryEmptyBase' - $ref: '#/components/schemas/DeliveryBase' - $ref: '#/components/schemas/DeliveryPickupDetails' - $ref: '#/components/schemas/DeliveryDropoffDetails' - $ref: '#/components/schemas/DeliveryValueDetails' - $ref: '#/components/schemas/DeliveryItemsDetails' - $ref: '#/components/schemas/ShoppedItemsDetails' - $ref: '#/components/schemas/DeliveryShoppingOptions' - $ref: '#/components/schemas/DeliveryOutput' - $ref: '#/components/schemas/DeliveryOptions' - $ref: '#/components/schemas/DasherDetails' type: object server_fault: x-error: true type: object description: Internal service failure, please try again later. required: - code - message properties: code: type: string enum: - service_fault default: service_fault message: type: string example: Internal service failure, please try again later. default: Internal service failure, please try again later. parameters: ExternalDeliveryIdPath: name: external_delivery_id in: path description: Unique (per developer) ID of the delivery. required: true style: simple explode: false schema: type: string pattern: /[a-zA-Z0-9-._~]+/ description: Unique ID generated by the caller for the delivery. example: D-1763 x-refined-from: - doordash-drive-classic-openapi.yml - doordash-drive-openapi.yml