openapi: 3.0.0 info: title: Drive API x-logo: url: >- https://doordash-static.s3-us-west-2.amazonaws.com/media/drive/drive-logo.png backgroundColor: '#FFFFFF' altText: Doordash Drive href: https://developer.doordash.com/ version: 2.1.59 description: '' servers: - url: https://openapi.doordash.com variables: {} tags: - name: Delivery x-displayName: Delivery - name: Audit x-displayName: Audit - name: Address x-displayName: Address - name: Business & Store x-displayName: Business & Store paths: /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](https://developer.doordash.com/en-US/docs/drive/how_to/quote_deliveries). 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' '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 /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](https://developer.doordash.com/en-US/docs/drive/how_to/quote_deliveries). 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' '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 /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](https://developer.doordash.com/en-US/docs/drive/tutorials/get_started), [create deliveries using our Node.js SDK](https://developer.doordash.com/en-US/docs/drive/tutorials/get_started_sdk), or [use Postman to call the APIs](https://developer.doordash.com/en-US/docs/drive/tutorials/get_started_postman). 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' '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 /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](https://developer.doordash.com/en-US/docs/drive/how_to/webhooks). operationId: GetDelivery parameters: - $ref: '#/components/parameters/ExternalDeliveryIdPath' responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/DeliveryResponse' '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' '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 /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' '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 /drive/v2/checkout_audit_signal: post: summary: Create Checkout Audit Signal tags: - Audit description: Create a new audit signal for virtual checkout for a specified delivery operationId: CheckoutAuditSignal parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckoutAuditSignalInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/CheckoutAuditSignalResponse' '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 /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 /drive/v2/address/auto_complete: post: summary: Get Autocompleted Address tags: - Address description: >- Get address auto-completion suggestions based on partial address input and optional location coordinates operationId: GetAddressAutoComplete parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AddressAutoCompleteInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/AddressAutoCompleteResponse' '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 /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 /developer/v1/businesses/{external_business_id}: get: summary: Get Business tags: - Business & Store description: Get the details of a business. operationId: GetBusiness parameters: - $ref: '#/components/parameters/PathExternalBusinessId' responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Business' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false patch: summary: Update Business tags: - Business & Store description: Update the attributes of a business. operationId: UpdateBusiness parameters: - $ref: '#/components/parameters/PathExternalBusinessId' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateBusinessInput' required: true responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Business' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false /developer/v1/businesses: post: summary: Create Business tags: - Business & Store description: >- Create a Drive business. You cannot create a business with string "default" as external_business_id. "default" is reserved for automatically created business during developer onboarding. operationId: CreateBusiness requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateBusinessInput' required: true responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Business' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_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 get: summary: List Businesses tags: - Business & Store description: List the businesses owned by a developer. operationId: ListBusiness parameters: - in: query name: activationStatus schema: $ref: '#/components/schemas/BusinessActivationStatus' - in: query name: continuationToken schema: type: string description: >- Opaque string that can be used to fetch next page of businesses, the token value will be null if there are no more businesses to fetch. Page size is 100 businesses. responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/PaginatedBusinessList' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_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 /developer/v1/businesses/{external_business_id}/stores/{external_store_id}: get: summary: Get Store tags: - Business & Store description: Get the details of a store. operationId: GetStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' - $ref: '#/components/parameters/PathExternalStoreId' responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Store' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Store not found under this external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_store_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false patch: summary: Update Store tags: - Business & Store description: Update the attributes of a store. operationId: UpdateStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' - $ref: '#/components/parameters/PathExternalStoreId' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateStoreInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/Store' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Store not found under this external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_store_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false /developer/v1/businesses/{external_business_id}/stores: post: summary: Create Store tags: - Business & Store description: >- Create a Drive store. To create a store for your developer's default business please create stores under "default" external_business_id. We recommend this route if you are either an enterprise or a developer who plan to manage only one business. operationId: CreateStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateStoreInput' required: true responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Store' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '424': description: Missing dependency to set up stores headers: {} content: application/json: schema: $ref: '#/components/schemas/missing_dependency_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false get: summary: List Stores tags: - Business & Store description: List the stores under a business. operationId: ListStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' - in: query name: activationStatus schema: $ref: '#/components/schemas/StoreActivationStatus' - in: query name: continuationToken schema: type: string description: >- Opaque string that can be used to fetch next page of stores, the token value will be null if there are no more stores to fetch. Page size is 100 stores. responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/PaginatedStoreList' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false components: schemas: 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 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' 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 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' 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 CheckoutAuditSignalInput: title: CheckoutAuditSignalInput description: Request body for quote accept endpoint allOf: - $ref: '#/components/schemas/delivery_CheckoutAuditSignalInput' type: object SubstitutionRecommendationInput: title: SubstitutionRecommendationInput description: Request body for get substitution recommendation endpoint allOf: - $ref: '#/components/schemas/delivery_SubstitutionRecommendationInput' type: object AddressAutoCompleteInput: title: AddressAutoCompleteInput description: Request body for address auto complete endpoint allOf: - $ref: '#/components/schemas/delivery_AddressAutoCompleteInput' type: object AddressAutoCompleteResponse: title: AddressAutoCompleteResponse description: Response containing address auto-completion suggestions allOf: - $ref: '#/components/schemas/AddressAutoCompleteDetailsResponse' type: object ServiceabilityCheckInput: title: ServiceabilityCheckInput description: Request body for serviceability check endpoint type: object properties: pickup_address: $ref: '#/components/schemas/PickupAddress' dropoff_address: $ref: '#/components/schemas/DropoffAddress' 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 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 DeliveryEmptyBase: title: DeliveryEmptyBase description: Placeholder to get codegen to do what's needed. type: object ExternalDeliveryId: type: string pattern: /[a-zA-Z0-9-._~]+/ description: Unique ID generated by the caller for the delivery. example: D-1763 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 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 OriginFacilityId: type: string description: Merchant warehouse id for the midmile example: MERCHANTA-CA-1 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' PickupAddress: 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 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 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' PickupInstructions: type: string description: Instructions for the Dasher to follow when picking up the order. example: Go to the bar for pick up. ReferenceTag: type: string description: >- A reference that can help Dasher identify the correct delivery item for pick up/drop-off. example: Order number 61 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 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 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 PickupAddressComponents_US: type: object title: United States description: Pick-up Address broken down by components for US properties: street_address: type: string nullable: true 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 nullable: true description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: string nullable: true description: City for the address example: San Francisco state: type: string nullable: true description: >- State for the address. 2 letter state codes for US addresses. For instance, “CA” for California example: CA zip_code: type: string nullable: true description: Zip code for the address. 5 digit zip code for US addresses. example: 94103 country: type: string nullable: true 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 PickupAddressComponents_CA: type: object title: Canada description: Pick-up Address broken down by components for CA properties: street_address: type: string nullable: true 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 nullable: true description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: string nullable: true description: City for the address example: Toronto province: type: string nullable: true description: >- Province for the address. 2 letter province codes for Canadian addresses. For instance, “ON” for Ontario example: 'ON' postal_code: type: string nullable: true description: Postal code for the address example: M4C-1V7 country: type: string nullable: true 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 PickupAddressComponents_AU: type: object title: Australia description: Pick-up Address broken down by components for AU properties: street_address: type: string nullable: true 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 nullable: true description: >- Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 locality: type: string nullable: true description: Delivery suburb / town for the address example: North Sydney territory: type: string nullable: true 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 nullable: true description: Postal code for the address example: 2060 country: type: string nullable: true 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 PickupAddressComponents_NZ: type: object title: New Zealand description: Pick-up Address broken down by components for NZ properties: street_address: type: string nullable: true 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 nullable: true description: >- Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 sub_locality: type: string nullable: true description: Delivery suburb / town for the address example: Mount Victoria locality: type: string nullable: true description: Locality for the address example: Wellington postal_code: type: string nullable: true description: Postal code for the address example: 6011 country: type: string nullable: true 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 DeliveryPickupDetails: title: DeliveryPickupDetails description: Delivery pickup details. type: object properties: pickup_address: $ref: '#/components/schemas/PickupAddress' 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' DropoffAddress: type: string description: Comma-separated full address, in the order appropriate for your locale. example: 901 Market Street 6th Floor San Francisco, CA 94103 DropoffAddressName: type: string description: Optional name of the place, to help Dashers find the location. example: The Avery Condominium 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 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' 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. GivenName: type: string pattern: '[^~`@#\$%\^&\*\+=\?;\[{\]\}]' description: Given/first name of the contact. example: John FamilyName: type: string pattern: '[^~`@#\$%\^&\*\+=\?;\[{\]\}]' description: Family/last name of the contact. example: Doe SendNotifications: type: boolean description: >- Whether the contact will receive notifications from DoorDash for this delivery. The default is true. example: true DropoffEmailAddress: type: string description: Email address of the dropoff contact. example: john.doe@example.com 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 DropoffAddressComponents_US: type: object title: United States description: Drop-off Address broken down by components for US properties: street_address: type: string nullable: true 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 nullable: true description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: string nullable: true description: City for the address example: San Francisco state: type: string nullable: true description: >- State for the address. 2 letter state codes for US addresses. For instance, “CA” for California example: CA zip_code: type: string nullable: true description: Zip code for the address. 5 digit zip code for US addresses. example: 94103 country: type: string nullable: true 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 DropoffAddressComponents_CA: type: object title: Canada description: Drop-off Address broken down by components for CA properties: street_address: type: string nullable: true 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 nullable: true description: Used to denote the unit number, suite number or apartment number example: Apt. 121 city: type: string nullable: true description: City for the address example: Toronto province: type: string nullable: true description: >- Province for the address. 2 letter province codes for Canadian addresses. For instance, “ON” for Ontario example: 'ON' postal_code: type: string nullable: true description: Postal code for the address example: M4C-1V7 country: type: string nullable: true 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 DropoffAddressComponents_AU: type: object title: Australia description: Drop-off Address broken down by components for AU properties: street_address: type: string nullable: true 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 nullable: true description: >- Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 locality: type: string nullable: true description: Delivery suburb / town for the address example: North Sydney territory: type: string nullable: true 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 nullable: true description: Postal code for the address example: 2060 country: type: string nullable: true 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 DropoffAddressComponents_NZ: type: object title: New Zealand description: Drop-off Address broken down by components for NZ properties: street_address: type: string nullable: true 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 nullable: true description: >- Used to denote the unit number, flat number, suite number, or apartment number example: Apt. 121 sub_locality: type: string nullable: true description: Delivery suburb / town for the address example: Mount Victoria locality: type: string nullable: true description: Locality for the address example: Wellington postal_code: type: string nullable: true description: Postal code for the address example: 6011 country: type: string nullable: true 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 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 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' 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' 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 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' DeliveryDropoffDetails: title: DeliveryDropoffDetails description: Delivery drop off details. type: object properties: dropoff_address: $ref: '#/components/schemas/DropoffAddress' 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' 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 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' PaymentGiftCards: type: array description: List of gift cards use for payment items: PaymentGiftCard: type: string example: - '123443434' - '123443435' 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 DeliveryShoppingOptions: title: DeliveryShoppingOptions description: Details about how to shop and pay for the delivery type: object properties: shopping_options: $ref: '#/components/schemas/ShoppingOptions' 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 DeliveryValueInputDetails: title: DeliveryValueInputDetails description: Delivery value input details. type: object properties: order_value: $ref: '#/components/schemas/OrderValue' 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 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 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 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 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' 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' Time: title: TimeDetails description: Time details in ISO-8601 format. type: string example: '2018-08-22T17:20:28Z' 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' 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' 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' CustomerExpectedSla: title: CustomerExpectedSla description: The expected delivery time or date shown to the customer. oneOf: - $ref: '#/components/schemas/Day' - $ref: '#/components/schemas/Time_Stamp' 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' 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 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 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' 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 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 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 Alcohol: type: boolean description: Flag to specify if the delivery contains alcohol. example: false PharmacyItems: type: boolean description: Flag to specify if the delivery contains pharmacy items. example: false 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 Tobacco: type: boolean description: Flag to specify if the delivery contains tobacco items. example: false Hemp: type: boolean description: Flag to specify if the delivery contains hemp items. example: false OTC: type: boolean description: Flag to specify if the delivery contains otc items. example: false 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' DasherVehicleType: description: Enum to specify vehicle type. type: string enum: - car - bicycle - walking 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 SignatureRequired: type: boolean description: Whether the delivery requires signature verification during drop-off. example: false 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 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 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 OrderRouteItems: type: array items: $ref: '#/components/schemas/OrderRouteItem' example: - check 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' Currency: type: string description: Currency of the order example: USD 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' Weight: type: number format: double 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 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 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' 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 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 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 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' 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= 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... 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... 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... 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 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 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 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' 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' Location: 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 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' 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' DeliveryResponse: 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 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 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' nullable: false 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 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 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 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' 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 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. 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' 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' 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 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 IsAuditSuccessful: type: boolean description: Whether the audit for the specified delivery passed or failed. example: 'false' AuditPeriod: title: AuditPeriod type: object description: >- An object that specifies the audit period start and end time, if audit is completed on the Merchants side. properties: start_time: $ref: '#/components/schemas/Time' end_time: $ref: '#/components/schemas/Time' RequestedAuditItemCount: type: integer description: The count of the items requested for audit format: int32 example: 2 AuditedItemCount: type: integer description: The count of the items that is audited by the Merchant format: int32 example: 2 DriveSuccessfulAuditedItem: title: DriveSuccessfulAuditedItem type: object description: Drive item that has successfully passed audit or failed audit properties: external_item_id: type: string description: External ID of the item audited example: item-id-1 upc_scanned: type: string description: UPC scanned for the audited item example: '1234575757' AuditFailedReason: type: string description: An enum that specifies the reason why the item failed audit." enum: - scan_mismatch - item_expired example: scan_mismatch DriveFailedAuditedItem: title: DriveFailedAuditedItem type: object description: Drive item that has successfully passed audit or failed audit properties: external_item_id: type: string description: External ID of the item audited example: item-id-1 upc_scanned: type: string description: UPC scanned for the audited item example: '1234575757' failed_reason: $ref: '#/components/schemas/AuditFailedReason' CheckoutAuditStatus: type: string description: >- An enum that specifies the overal audit status of the order. Must be sent for failed_audit_items and not successful_audit_items." enum: - passed - failed - skipped example: passed delivery_CheckoutAuditSignalInput: title: CheckoutAuditSignalInput description: Request body for quote accept endpoint type: object properties: external_delivery_id: $ref: '#/components/schemas/ExternalDeliveryId' is_audit_successful: $ref: '#/components/schemas/IsAuditSuccessful' audit_period: $ref: '#/components/schemas/AuditPeriod' requested_audit_item_count: $ref: '#/components/schemas/RequestedAuditItemCount' audited_item_count: $ref: '#/components/schemas/AuditedItemCount' successful_audit_items: type: array description: The items that successfuly passed the audit process. items: $ref: '#/components/schemas/DriveSuccessfulAuditedItem' failed_audit_items: type: array description: The items that failed the audit process. items: $ref: '#/components/schemas/DriveFailedAuditedItem' checkout_audit_status: $ref: '#/components/schemas/CheckoutAuditStatus' required: - external_delivery_id SignalReceived: type: boolean description: Whether the audit for the specified delivery was successfully received. example: 'false' CheckoutAuditSignalResponse: title: CheckoutAuditSignalResponse description: Create audit signal status and details. properties: signal_received: $ref: '#/components/schemas/SignalReceived' type: object 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 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 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 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' 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' delivery_AddressAutoCompleteInput: title: AddressAutoCompleteInput description: Request body for address auto complete endpoint type: object properties: input_address: type: string description: Partial address input to search for example: 1600 Amphitheatre location: $ref: '#/components/schemas/Location' search_radius_meter: type: integer description: Search radius in meters from the provided location example: 1000 default: 1000 max_results: type: integer description: Maximum number of results to return example: 3 default: 3 minimum: 1 maximum: 5 country: type: string description: Country code to limit search results example: US pattern: ^[A-Z]{2}$ required: - input_address DropoffAddressComponent: type: object title: Dropoff Address Component description: Address broken down by components properties: street: type: string description: The street address of the location. example: 1600 Amphitheatre Parkway unit: type: string description: Used to denote the unit number, suite number or apartment number example: 'Suite #600' city: type: string description: City for the address example: Mountain View state: type: string description: >- State for the address. 2 letter state codes for US addresses. For instance, "CA" for California example: CA zip_code: type: string description: ZIP code for the address. 5 digit zip code for US addresses. example: '94043' country: type: string description: ISO 3166 Alpha 2 code for country. example: US required: - street - city - state - zip_code AddressAutoCompleteResult: title: AddressAutoCompleteResult description: Individual address suggestion result type: object properties: address: allOf: - type: object properties: formatted_address: $ref: '#/components/schemas/DropoffAddress' location: $ref: '#/components/schemas/Location' required: - formatted_address - location - $ref: '#/components/schemas/DropoffAddressComponent' required: - address AddressAutoCompleteDetailsResponse: title: AddressAutoCompleteDetailsResponse description: Details about the address suggestions in the auto-complete response type: object properties: results: type: array description: List of address suggestions items: $ref: '#/components/schemas/AddressAutoCompleteResult' required: - results BusinessName: title: Business Name type: string pattern: Any non empty string description: >- Human readable name for the business. Used when the details of a business are shown to a customer, Dasher, merchant, or support agent. example: Neighborhood Deli BusinessDescription: type: string pattern: Any non empty string description: >- Short description of the business. Used in the DoorDash Merchant Portal. Maximum length of description is 100 characters example: A neighborhood deli serving many tasty sandwiches and soups. BizExternalBusinessId: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: Unique, caller-selected ID of the business. example: a0720d55-7cbe-41ce-8185-58285b7985cd BusinessActivationStatus: type: string description: >- Activation status of the business. Used primarily for the automatic self-serve onboarding flow. enum: - initiated - pending_external_activation - pending_legal_agreement - abandoned - failed - active - inactive example: active ExternalMetadata: title: ExternalMetadata description: >- Additional caller-specific metadata about the business. Used primarily for the automatic self-serve onboarding flow. type: object properties: number_of_stores: type: integer description: Number of stores owned by the business. example: '10' client_email: type: string description: Business owner or contact email address. example: merchant@doordash.com client_phone_number: type: string description: Business owner or contact phone number. example: '+12065551212' external_store_ids: type: array items: type: String description: External store_ids that merchant wants MWP/DoorDash to create stores Business: title: Business description: Details of a business. type: object properties: name: $ref: '#/components/schemas/BusinessName' description: $ref: '#/components/schemas/BusinessDescription' external_business_id: $ref: '#/components/schemas/BizExternalBusinessId' activation_status: $ref: '#/components/schemas/BusinessActivationStatus' created_at: type: string description: Time when the business was created. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' last_updated_at: type: string description: Time when the business was last updated. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' is_test: type: boolean description: Indicates whether the business was created as a test business. example: false external_metadata: $ref: '#/components/schemas/ExternalMetadata' unknown_business_error: x-error: true type: object description: External business ID was not found. required: - code - message - external_business_id properties: code: type: string enum: - unknown_business_id message: type: string default: External Business ID was not found example: External Business ID was not found external_business_id: type: string description: The external business ID that couldn't be found. example: a0720d55-7cbe-41ce-8185-58285b7985cd UpdateBusinessInput: title: UpdateBusinessInput type: object properties: name: $ref: '#/components/schemas/BusinessName' description: $ref: '#/components/schemas/BusinessDescription' activation_status: $ref: '#/components/schemas/BusinessActivationStatus' PaginatedBusinessList: type: object required: - business_list - result_count properties: result: type: array items: $ref: '#/components/schemas/Business' description: Max length of result set is 25 continuation_token: type: string description: >- Opaque string that can be used to fetch next page of businesses, the token value will be null if there are no more businesses to fetch. result_count: type: integer CreateBusinessInput: title: CreateBusinessInput type: object properties: external_business_id: $ref: '#/components/schemas/BizExternalBusinessId' name: $ref: '#/components/schemas/BusinessName' description: $ref: '#/components/schemas/BusinessDescription' activation_status: $ref: '#/components/schemas/BusinessActivationStatus' required: - name - external_business_id Name: title: Store Name type: string pattern: Any non empty string description: The name of the store. example: 'Neighborhood Deli #10' StoreExternalBusinessId: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: Unique, caller-selected ID for the business. example: a0720d55-7cbe-41ce-8185-58285b7985cd StoreExternalStoreId: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: A unique ID for the store, selected or generated by the API caller. example: ed178ef3-b486-4ce8-8baa-5bc9f0f3fa4a StorePhoneNumber: type: string pattern: Any non empty string, validated by country description: >- Phone number of the store. Used when a customer, Dasher, or support agent needs to contact the store. example: '+12065551212' StoreAddress: type: string pattern: Any non empty string description: >- The full address of the store, in the order appropriate for your locale, with each element separated by a comma. example: 901 Market Street, 6th Floor, San Francisco, CA, 94103 StoreActivationStatus: type: string description: Activation status of the store. enum: - active - inactive Store: title: Store description: Details of a store. type: object properties: name: $ref: '#/components/schemas/Name' external_business_id: $ref: '#/components/schemas/StoreExternalBusinessId' external_store_id: $ref: '#/components/schemas/StoreExternalStoreId' phone_number: $ref: '#/components/schemas/StorePhoneNumber' address: $ref: '#/components/schemas/StoreAddress' status: $ref: '#/components/schemas/StoreActivationStatus' is_test: type: boolean description: Indicates whether the store was created as a test store. example: false created_at: type: string description: Time when the store was created. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' last_updated_at: type: string description: Time when the store was last updated. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' unknown_store_error: x-error: true type: object description: The external store ID wasn't found under the external business ID. required: - code - message - external_business_id - external_store_id properties: code: type: string enum: - unknown_business_id - unknown_store_id_under_business_id message: type: string example: >- The external store ID in the request wasn't found under the external business ID. external_business_id: type: string description: The external business ID that couldn't be found. example: a0720d55-7cbe-41ce-8185-58285b7985cd external_store_id: type: string description: The external store ID that couldn't be found. example: ed178ef3-b486-4ce8-8baa-5bc9f0f3fa4a UpdateStoreInput: title: UpdateStoreInput type: object properties: name: $ref: '#/components/schemas/Name' phone_number: $ref: '#/components/schemas/StorePhoneNumber' address: $ref: '#/components/schemas/StoreAddress' PaginatedStoreList: type: object required: - store_list - result_count properties: result: type: array items: $ref: '#/components/schemas/Store' nullable: false description: Max length of result set is 25 continuation_token: type: string description: >- Opaque string that can be used to fetch next page of stores, the token value will be null if there are no more stores to fetch. result_count: type: integer CreateStoreInput: title: CreateStoreInput type: object properties: external_store_id: $ref: '#/components/schemas/StoreExternalStoreId' name: $ref: '#/components/schemas/Name' phone_number: $ref: '#/components/schemas/StorePhoneNumber' address: $ref: '#/components/schemas/StoreAddress' required: - external_store_id - name - address MissingDependency: title: MissingDependency type: object description: Missing dependencies. required: - dependency - error properties: field: type: string description: identifier for dependency example: invocing error: type: string description: Error string description missing dependency example: Missing invocing set up missing_dependency_error: x-error: true title: MissingDependencyError type: object description: >- The response returned when one or more dependencies required to create a resource are missing. required: - code - message - missing_dependencies properties: code: type: string enum: - missing_dependency_error message: type: string example: Missing dependency missing_dependencies: type: array description: Missing dependencies that were generated during the call items: $ref: '#/components/schemas/MissingDependency' nullable: false readOnly: true MissingDependency: title: MissingDependency type: object description: Missing dependencies. required: - dependency - error properties: field: type: string description: identifier for dependency example: invocing error: type: string description: Error string description missing dependency example: Missing invocing set up 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 PathExternalBusinessId: name: external_business_id in: path description: >- Unique, caller-selected ID of the business. Validated using the following regular expression: `/^[A-Za-z0-9_-]{3,64}$/` . required: true style: simple explode: false minLength: 1 schema: type: string PathExternalStoreId: name: external_store_id in: path description: >- Unique, caller-selected ID for the store. Validated using the following regular expression: `/^[A-Za-z0-9_-]{3,64}$/` . required: true style: simple explode: false minLength: 1 schema: type: string