Create Delivery
POSThttps://api.uber.com/v1/eats/deliveries/orders
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. |
¶ Response Body - Related Deliveries
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"
}
Authorization
Request Body Parameters
Request Body - Address
Request Body - Location
Request Body - Contact
Request Body - Discount (Coming Soon)
Request Body - Dropoff
Request Body - Place
Request Body - Order Item
OrderItem - Dimensions
Request Body - Order Summary
Request Body - Pickup
Request Body - Tax Amounts (Coming Soon)
Request Body - Tax Rate (Coming Soon)
Request Body - VerificationRequirement
Response Body - Barcode Requirement
Response Body - Pincode Requirement
Response Body - Identification Requirement
Request Body Example
Response Body
Response Body - Related Deliveries
Response Body - Fee
Response Body - Fee Item
Response Example