Three lines

Uber

Developers

Create Delivery

POSThttps://api.uber.com/v1/eats/deliveries/orders

Access to These APIs May Require Written Approval From Uber

Uber’s APIs are always under development and as such are subject to changes according to our Versioning & Upgrade policy. As part of Uber’s ongoing privacy improvements, we’ve updated our Developer API program with new scope access policies for third party applications. For further information, please refer to our Getting Started guides.

This endpoint allows a delivery to be scheduled given the delivery information, order details, and estimate ID.

Authorization

OAuth 2.0 Bearer token with the eats.deliveries scope. For more information, see Authentication.

Request Body Parameters
Name Type Required Description
estimate_id string Yes ID of the estimate used in creating the delivery.
pickup_at long Yes Unix timestamp in milliseconds of when the order is ready for pickup. A value of 0 represents ASAP. This should match one of the pickup_times from the GET ESTIMATE endpoint request.
external_order_id string Yes The ID, of the order, supplied by the merchant. Used by the delivery person at pick up, and by the merchant’s customer support agents.
order_items array Yes List of order items being delivered.
order_summary order summary Yes If provided, basket-dependent fees will be returned as well.
order_value long Yes (DEPRECATED) Total value of the order that the fee calculation will be based off of. This currency value must be formatted in the minor unit based on the currency code. Replaced by order summary.
currency_code string Yes (DEPRECATED) Currency code of monetary values. The currency code follows the ISO 4217 standard. Replaced by order summary.
pickup pickup Yes Pickup information.
dropoff dropoff Yes Dropoff information.
courier_tip long No Upfront tipping value. This currency value must be formatted in the minor unit based on the currency code.
external_user_id string Yes ID of the consumer that the merchant associates with the order.
return_trips_enabled boolean No Enable the return leg for the delivery trip created, default is FALSE.
pickup_verification VerificationRequirement No Verification steps (i.e. age verification) that must be taken before the pickup can be completed.
dropoff_verification VerificationRequirement No Verification steps (i.e. age verification) that must be taken before the dropoff can be completed.
Request Body - Address
Name Type Required Description
place place No Google Place ID representing the location.
apt_floor_suite string No Represents an apartment, floor, or suite.
location location No Location representing the dropoff point. This can be used in place of Google Place data.
formatted_address string No Formatted address of the location including street, city and zip code.
Request Body - Location
Name Type Required Description
latitude double Yes Latitude coordinate.
longitude double Yes Longitude coordinate.
Request Body - Contact
Name Type Required Description
first_name string Yes First name of the contact.
last_name string Yes Last name of the contact.
email string No Email of the contact.
phone string Yes Phone number of the contact. Should be in e164 format (eg. “+13235550000”)
Request Body - Discount (Coming Soon)
Name Type Required Description
currency_code string Yes Currency code of monetary values. The currency code follows the ISO 4217 standard.
value long Yes Total value of the Eater discounts applied. This currency value must be formatted in the minor unit based on the currency code.
tax_amounts array Coming Soon Tax amounts associated with the discount. Multiple could be listed depending on the jurisdiction.
Request Body - Dropoff
Name Type Required Description
address address Yes Location of the delivery drop-off.
contact contact Yes Drop-off contact information.
instructions string No Instructions for the drop-off.
type string No This will either be curbside or door. Will default to “DOOR”

TYPES

  • DOOR: Consumer will meet delivery person at their door.
  • CURBSIDE: Consumer will meet the delivery person at the curb.
  • LEAVE_AT_DOOR: Contactacless option. The delivery person will leave the order at the door.
Request Body - Place
Name Type Required Description
id string Yes Place ID representing the location (currently this must be a Google Place ID.)
provider string Yes Provider for this ID (currently this must be google_places.)
Request Body - Order Item
Name Type Required Description
name string Yes Name of the item.
description string No Description of the item.
external_id string No External ID of the item
quantity integer Yes Number of this item.
price long No Price of the item. This currency value must be formatted in the minor unit based on the currency code.
currency_code string No Currency code of monetary values. The currency code follows the ISO 4217 standard.
item_type string No Describes the type of item ordered. Allowed values are: “food”, “alcohol".
dimensions Dimensions No Struct that contains dimensions.
must_be_upright boolean No Whether the item should be in upright position (box of pizza, bottle of milk etc)
weight integer No Weight in grams
perishability integer No Perishability represents the number of minutes before an item expires. For example, an ice cream might have a perishability of 15 minutes from pickup
preparation_time integer No How long a given item takes to prepare (in minutes)
OrderItem - Dimensions
Name Type Required Description
length integer No Length in centimeters
height integer No Height in centimeters
depth integer No Depth in centimeters
Request Body - Order Summary
Name Type Required Description
currency_code string Yes Currency code of monetary values. The currency code follows the ISO 4217 standard.
order_value long Yes Total value of the food basket that fee calculation will be based off of. This currency value must be formatted in the minor unit based on the currency code. This amount should be pre-discount.
tax_amounts array Coming Soon Array of tax amounts associated with the order value. Multiple could be listed depending on the jurisdiction.
discount discount Coming Soon Consumer discount applied on food
Request Body - Pickup
Name Type Required Description
store_id string Yes Globally unique private identifier of the store.
instructions string No Instructions for the pickup. This will override what is linked to the store. Please pass a null value as opposed to an empty string if you do not wish to provide pickup instructions specific to the order.
Request Body - Tax Amounts (Coming Soon)
Name Type Required Description
inclusive boolean Yes This specifies if the tax value is inclusive or exclusive.
value long Yes Tax value. This currency value must be formatted in the minor unit based on the currency code associated with the total value.
tax_rate tax rate Yes Tax rate containing tax rate percentage.
Request Body - Tax Rate (Coming Soon)
Name Type Required Description
id string Yes Unique identifier for the object.
percentage string Yes The tax rate percentage out of 100.
Request Body - VerificationRequirement
Name Type Description
signature boolean Flag for if a signature is required at this waypoint.
barcodes barcode requirement[] Barcode values/types that must be scanned at the waypoint. Number of elements in the array is equal to the number of barcodes that must be scanned.
pincode pincode requirement Pincode requirement spec to indicate a delivery requires pincode confirmation upon delivery.
identification identification requirement Identification scanning/verification requirements for this waypoint.
picture boolean
Response Body - Barcode Requirement
Name Type Description
value string String value encoded in the barcode.
type string Type of barcode. Valid values: “CODE39”, “CODE39_FULL_ASCII”, “CODE128”, “QR”.
Response Body - Pincode Requirement
Name Type Description
enabled bool When set to true in POST requests, the delivery will require pincode entry at handoff.
value string The pincode that the customer must present at dropoff. This is a read-only field available in GET requests that will contain the internally generated pincode.
Response Body - Identification Requirement
Name Type Description
min_age integer Minimum age that must be verified for this delivery.
Request Body Example

{
    "estimate_id": "{{estimate_id}}",
    "pickup_at": 0,
    "external_order_id": "FX13617111",
    "order_items": [
        {
            "name": "Medium Sprite",
            "description": "",
            "external_id": "721",
            "quantity": 1,
            "price": 129,
            "currency_code": "USD"
        }
    ],
    "pickup": {
        "store_id": "{{store_id}}",
        "instructions": null,
        "external_store_id": "80134"
    },
    "dropoff": {
        "address": {
            "place": {
                "id": "{{dropoff_place_id}}",
                "provider": "google_places"
            },
            "apt_floor_suite": null,
            "building_name": null
        },
        "contact": {
            "first_name": "Test",
            "last_name": "User",
            "email": "deliverytest1@yopmail.com",
            "phone": "+17037276834"
        },
        "instructions": "Front Door",
        "type": "CURBSIDE"
    },
    "courier_tip": 500,
    "external_user_id": "6e658c4317b6c465d1233bb50809ba501865106d4ad75457695e4421db0de45",
    "order_summary": {
        "currency_code": "USD",
        "order_value": 129,
        "tax_amounts": [
            {
                "inclusive": false,
                "value": 10,
                "tax_rate": {
                    "id": "3546",
                    "percentage": "8.0"
                }
            }
        ],
        "discount": null
    }
}

{
	"estimate_id": "aaf9f4c0-53e6-4f66-99ab-3b2a4f9575e6",
	"pickup_at": 0,
	"external_order_id": "merchant_order_12345",
	"order_value": 950,
	"currency_code": "USD",
	"order_items": [{
			"name": "Hamburger",
			"description": "Just a regular hamburger.",
			"external_id": "100",
			"quantity": 2,
			"price": 700,
			"currency_code": "USD"
		},
		{
			"name": "2 Liter of Soda",
			"description": "2 liters of soda to share.",
			"external_id": "120",
			"quantity": 1,
			"price": 250,
			"currency_code": "USD"
		}
	],
	"pickup": {
		"store_id": "4rtf2e50-ef96-4851-bf0c-983caf45b5ad",
		"instructions": "Follow signs for delivery hand-off.",
		"external_store_id": "1"
	},
	"dropoff": {
		"address": {
			"place": {
				"id": "{{dropoff_place_id}}",
				"provider": "google_places"
			},
			"apt_floor_suite": "2A"
		},
		"type": "LEAVE_AT_DOOR",
		"instructions": "Buzz up to 2A and I'll let you in.",
		"contact": {
			"first_name": "John",
			"last_name": "Doe",
			"phone": "+11234567891",
			"email": "customer_email@merchant.ccom"
		}
	},
	"courier_tip": 200,
	"return_trips_allowed": false,
	"external_user_id": "merchant_user_id"
}
Response Body
Name Type Description
order_id string Unique identifier representing an order delivery request.
external_order_id string The ID, of the order, supplied by the merchant. Used by the delivery person at pick up, and by the merchant’s customer support agents.
full_fee fee Total fee for the delivery inclusive of order details.
order_tracking_url string A URL for tracking the delivery.
related_deliveries related deliveries A collection describing other deliveries that share an association.
Name Type Description
id string A unique identifier for the delivery (order_id)
Response Body - Fee
Name Type Description
total long Fee total, with all line items summed up. This currency value must be formatted in the minor unit based on the currency code.
currency_code string Currency code of monetary values. The currency code follows the ISO 4217 standard.
line_items array Array of various fee items that make up the total fee.
Response Body - Fee Item
Name Type Description
fee_code string Unique code for the type of fee line item.
value long Fee value of the line item.
tax_amounts array Tax amounts associated with the fee. Multiple could be returned depending on the jurisdiction.
category string Grouping of the fee item.

FEE CODES

  • BUSY_AREA_FEE: varies based on current state of the network.
  • BASKET_FEE: X% of the order.
  • SMALL_BASKET_FEE: $X for order sizes under $X.
  • DELIVERY_FEE: The total fee for the delivery without BUSY_AREA_FEE.
  • SERVICE_FEE: The consumer’s service fee calculated against the basket size.
  • DISTANCE_FEE: The fee for the order based on distance and time constraints.
  • FLAT_FEE: A flat value fee for the order (e.g. $5 for every order).

CATEGORIES

  • DELIVERY: Fee item that should be passed to the consumer.
  • COMMISSION: Fee that should be paid by the merchant to Uber.
  • TIP: Delivery person tip.
Response Example
{
    "order_id": "aaf9f4c0-53e6-4f66-99ab-3b2a4f9575e6",
    "full_fee": {
        "total": 895,
        "currency_code": "USD",
        "line_items": [
            {
                "fee_code": "COURIER_TIP",
                "value": 200,
                "category": "TIP"
            },
            {
                "fee_code": "FLAT_FEE",
                "value": 400
            },
            {
                "fee_code": "BASKET_FEE",
                "value": 95,
                "category": "COMMISSION"
            },
            {
                "fee_code": "SMALL_ORDER_FEE",
                "value": 200,
                "category": "DELIVERY"
            }
        ]
    },
    "external_order_id": "merchant_order_12345",
    "order_tracking_url": "https://www.ubereats.com/orders/aaf9f4c0-53e6-4f66-99ab-3b2a4f9575e6"
}

Uber

Developers
© 2023 Uber Technologies Inc.