Empowering Restaurants through Integration

Follow

Carts

The carting API allows you to create and manage carts and their contents from initial item selection through checkout. These endpoints are central to any ordering process, so will play a large role in your implementation.

Paths

Create a cart

POST /carts
Description

Creates a new cart.

Body
affiliate
label_outlineOptional
Affiliate
The affiliate program to which this cart affects. You'll need to include you information here for tracking purposes.
when_for
label_outlineOptional
DateTime
If your implementation has access to future ordering functionality, use this to specify when the diner wants the order fulfilled. This time must be within the operating hours of the restaurant, accounting for the time it takes to prepare and fulfill the order. The time must follow this format - "{YYYY}-{MM}-{DD}T{HH}:{MM}:{SS}.000Z".
Responses
Example
{
    "id": "Lbr1EIaxEeeIgUXKh-lZqg",
    "uri": "/carts/Lbr1EIaxEeeIgUXKh-lZqg",
    "already_exists": false
}

Return scheduled carts.

GET /carts
Description

Returns the contents of all currently scheduled carts for this diner.

Responses
Example
{
  "carts": {
    "ysChEDdgEeiivC2tWSVyNQ": {
      "id": "ysChEDdgEeiivC2tWSVyNQ",
      "diner_id": "mBVZAH0kEee5ZUE5jKZbTA",
      "group_id": "ysChETdgEeiivC2tWSVyNQ",
      "when_for": "2018-04-03T17:02:34.066Z",
      "currency": "USD",
      "fulfillment_info": null,
      "notification_preferences": null,
      "charges": null,
      "payments": null,
      "restaurant_ids": [],
      "restaurants": [],
      "affiliate": null,
      "time_placed": null,
      "recommended_tip_settings": {
        "minimum_tip_amount": 0,
        "minimum_tip_percentage": 0
      },
      "catering_info": null,
      "edit_window_close": null,
      "ordering_info": {
        "type": "STANDARD",
        "tiers": [],
        "eta": "2018-04-03T17:02:34.066Z"
      },
      "state": "ACTIVE",
      "status": "ACTIVE",
      "asap": true
    }
  }
}

Return information about a specific cart.

GET /carts/{cart_id}
Description

Returns the full details about a single cart.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to retrieve.
Responses
200
OK
Example
{
  "id": "ysChEDdgEeiivC2tWSVyNQ",
  "diner_id": "mBVZAH0kEee5ZUE5jKZbTA",
  "group_id": "ysChETdgEeiivC2tWSVyNQ",
  "when_for": "2018-04-03T17:07:40.433Z",
  "currency": "USD",
  "fulfillment_info": null,
  "notification_preferences": null,
  "charges": {
      "lines": {
          "diner_total": 500,
          "line_items": [
              {
                  "id": "YW_DcDdhEeitZkUjEeNP-A",
                  "menu_item_id": "15609481",
                  "name": "Hamburger",
                  "price": 500,
                  "display_price": null,
                  "quantity": 1,
                  "diner_total": 500,
                  "options": [],
                  "special_instructions": null,
                  "restaurant_id": "11402556",
                  "badges": [],
                  "item_coupon": false,
                  "combinable_with_coupons": true,
                  "adjustments": null
              }
          ]
      },
      "coupons": [],
      "diner_subtotal": 500,
      "fees": null,
      "taxes": {
          "total": 50,
          "sales": 50,
          "delivery": 0,
          "minimum_based_delivery": 0
      },
      "tip": {
          "amount": 0,
          "type": "INCLUDE_IN_BILL"
      },
      "diner_grand_total": null,
      "adjustments": null,
      "add_ons": null
  },
  "payments": null,
  "restaurant_ids": [
      "11402556"
  ],
  "restaurants": [
      {
          "id": "11402556",
          "name": "Design Kitchen Too",
          "badges": []
      }
  ],
  "affiliate": null,
  "time_placed": null,
  "recommended_tip_settings": {
      "minimum_tip_amount": 200,
      "minimum_tip_percentage": 40
  },
  "catering_info": null,
  "edit_window_close": null,
  "ordering_info": {
      "type": "STANDARD",
      "tiers": [],
      "eta": "2018-04-03T17:07:40.433Z"
  },
  "state": "ACTIVE",
  "status": "ACTIVE",
  "asap": true
}

  With enhanced menu items:

{
   "id":"g7OQgLxXEei6tT_CLEe6lw",
   "diner_id":"mBVZAH0kEee5ZUE5jKZbTA",
   "group_id":"g7OQgbxXEei6tT_CLEe6lw",
   "when_for":"2018-09-19T22:15:35.193Z",
   "currency":"USD",
   "fulfillment_info":{
      "type":"PICKUP",
      "delivery_info":null,
      "pickup_info":{
         "name":"Fake User",
         "phone":"(212) 555-1212",
         "email":"fakeuser@mail.com",
         "pickup_instructions":null,
         "green_indicated":false
      },
      "incomplete_delivery":null,
      "incomplete_pickup":null,
      "individual_info":null
   },
   "notification_preferences":null,
   "charges":{
      "lines":{
         "diner_total":695,
         "line_items":[
            {
               "id":"2oaVsLxXEei7_6HPEQFDLw",
               "menu_item_id":"29343955",
               "name":"Combo 6: 2 Chulupas Supreme",
               "price":695,
               "display_price":null,
               "quantity":1,
               "diner_total":695,
               "options":[
                  {
                     "id":"69695475",
                     "name":"Chulupa Supreme 1",
                     "price":0,
                     "quantity":1,
                     "sub_options":null,
                     "child_options":[
                        {
                           "id":"69695433",
                           "name":"Seasoned Beef",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695431",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695427",
                           "name":"Tomatoes",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695428",
                           "name":"Romain Lettuce",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695483",
                           "name":"Reduced Fat Sour Cream",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695479",
                           "name":"3 Cheese Blend",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        }
                     ]
                  },
                  {
                     "id":"69695476",
                     "name":"Chulupa Supreme 2",
                     "price":0,
                     "quantity":1,
                     "sub_options":null,
                     "child_options":[
                        {
                           "id":"69695433",
                           "name":"Seasoned Beef",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695431",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695427",
                           "name":"Tomatoes",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695428",
                           "name":"Romain Lettuce",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695483",
                           "name":"Reduced Fat Sour Cream",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695479",
                           "name":"3 Cheese Blend",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        }
                     ]
                  },
                  {
                     "id":"69695487",
                     "name":"Crunchy Taco",
                     "price":0,
                     "quantity":1,
                     "sub_options":null,
                     "child_options":[
                        {
                           "id":"69695424",
                           "name":"Seasoned Beef",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695431",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695425",
                           "name":"Lettuce",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        },
                        {
                           "id":"69695426",
                           "name":"Cheese",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695489",
                                 "name":"Regular",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        }
                     ]
                  },
                  {
                     "id":"69695491",
                     "name":"Drink",
                     "price":0,
                     "quantity":1,
                     "sub_options":null,
                     "child_options":[
                        {
                           "id":"69695422",
                           "name":"Pepsi",
                           "price":0,
                           "quantity":1,
                           "sub_options":null,
                           "child_options":[
                              {
                                 "id":"69695482",
                                 "name":"Large",
                                 "price":0,
                                 "quantity":1,
                                 "sub_options":null,
                                 "child_options":[

                                 ]
                              }
                           ]
                        }
                     ]
                  }
               ],
               "special_instructions":"None",
               "restaurant_id":"12267581",
               "badges":[

               ],
               "item_coupon":false,
               "combinable_with_coupons":true,
               "adjustments":null,
               "minimum_serving_size":null,
               "maximum_serving_size":null,
               "lead_time_ms":null,
               "minimum_order_quantity":null
            }
         ]
      },
      "coupons":[

      ],
      "diner_subtotal":695,
      "fees":{
         "total":0,
         "delivery":0,
         "service":0,
         "fee_items":[

         ]
      },
      "donations":null,
      "taxes":{
         "total":70,
         "delivery":0,
         "sales":70,
         "service":0,
         "fee_tax_items":[

         ]
      },
      "tip":{
         "amount":0,
         "type":"INCLUDE_IN_BILL"
      },
      "diner_grand_total":765,
      "adjustments":null,
      "add_ons":null
   },
   "payments":null,
   "restaurant_ids":[
      "12267581"
   ],
   "restaurants":[
      {
         "id":"12267581",
         "name":"Nabil Test Resto",
         "badges":[

         ]
      }
   ],
   "affiliate":null,
   "time_placed":null,
   "recommended_tip_settings":{
      "minimum_tip_amount":0,
      "minimum_tip_percentage":0.0
   },
   "catering_info":null,
   "edit_window_close":null,
   "ordering_info":{
      "type":"STANDARD",
      "tiers":[

      ],
      "eta":"2018-09-19T22:15:35.193Z"
   },
   "action_messages":{

   },
   "update_metadata":null,
   "adjustments":null,
   "action_messages_metadata":{
      "chain_small_order_fee":null,
      "free_menu_item":null
   },
   "state":"ACTIVE",
   "status":"ACTIVE",
   "asap":true
}

Update fulfillment time for a cart

POST /carts/{cart_id}
Description

Updates a cart with a new fulfillment time, marking it either as a future order or ASAP.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to retrieve.
Body
when_for
label_outlineOptional
DateTime
If your implementation has access to future ordering functionality, use this to specify when the diner wants the order fulfilled. This time must be within the operating hours of the restaurant, accounting for the time it takes to prepare and fulfill the order.
Responses
204
UNKNOWN
No content

Cancel a cart.

DELETE /carts/{cart_id}
Description

Removes an in-progress cart or cancels a scheduled order as well as all related ordering information from the system.

This endpoint has a longer timeout than most endpoints: 1500 ms.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to delete.
Responses
204
UNKNOWN
No Content

Add a line to a cart.

POST /carts/{cart_id}/lines
Description

Adds a menu item to a cart as a new line, complete with all the necessary choices.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to add a menu item to.
Body
restaurant_id
labelRequired
UUID
The ID of the restaurant who offers the menu item that this diner wants to add to the cart.
menu_item_id
labelRequired
String
The ID of the menu item to add to the cart.
options
label_outlineOptional
Selections for the options associated with this menu item.
quantity
labelRequired
Integer
The number of menu items with these choices to add to the cart.
special_instructions
label_outlineOptional
String
Diner-provided instructions on how to prepare this menu item.
Responses
Example
{
  "id": "YW_DcDdhEeitZkUjEeNP-A",
  "uri": "/carts/ysChEDdgEeiivC2tWSVyNQ/lines/YW_DcDdhEeitZkUjEeNP-A",
  "already_exists": false
}

Get a line from the cart.

GET /carts/{cart_id}/lines/{id}
Description

Returns the full details about a the menu item added as the specified line within the specified cart.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to return the line information for.
id
labelRequired
UUID
The ID of the line item for which to return information.
Responses
200
OK
Example
{
  "id": "YW_DcDdhEeitZkUjEeNP-A",
  "menu_item_id": "15609481",
  "name": "Hamburger",
  "price": 500,
  "display_price": null,
  "quantity": 1,
  "diner_total": 500,
  "options": [],
  "special_instructions": null,
  "restaurant_id": "11402556",
  "badges": [],
  "item_coupon": false,
  "combinable_with_coupons": true,
  "adjustments": null
}

Removes a line from the cart.

DELETE /carts/{cart_id}/lines/{id}
Description

Removes all of a single menu item from a cart, including the choices made.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart from which to delete the line.
id
labelRequired
UUID
The ID of the line item to delete.
Responses
204
UNKNOWN
No Content

Update a line in a cart.

PUT /carts/{cart_id}/lines/{id}
Description

Updates a line in a cart using the same parameters as in creating the line.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to update a menu item.
id
labelRequired
UUID
The ID of the line item to update.
Body
restaurant_id
labelRequired
UUID
The ID of the restaurant who offers the updated menu item.
menu_item_id
labelRequired
String
The ID of the menu item to update in the cart.
options
label_outlineOptional
Updated selections for the options associated with this menu item.
quantity
labelRequired
Integer
The updated number of menu items for this line.
special_instructions
label_outlineOptional
String
Updated diner-provided instructions on how to prepare this menu item.
Responses
204
UNKNOWN
No Content

Add tip information.

POST /carts/{cart_id}/tip
Description

Add information about the tip amount and type to the cart.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to add tip information to.
Body
amount
labelRequired
Integer
The amount (in cents) of tip to add to the order.
type
labelRequired
String
How the tip amount will be collected. Must be either "INCLUDE_IN_BILL" or "CASH".
Responses
204
UNKNOWN
No Content

Add incomplete pickup information.

PUT /carts/{cart_id}/incomplete_pickup
Description

Allows workflows that may not have all the pickup info to mark a cart for pickup.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to mark as a pickup order.
Responses
204
UNKNOWN
No Content

Add incomplete delivery information.

PUT /carts/{cart_id}/incomplete_delivery
Description

Allows workflows that may not have all the pickup info to mark a cart for delivery.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to mark as a delivery order.
Body
latitude
labelRequired
String
The latitude coordinate of the delivery address.
longitude
labelRequired
String
The longitude coordinate of the delivery address.
Responses
204
UNKNOWN
No Content

Add delivery information.

PUT /carts/{cart_id}/delivery_info
Description

Mark a cart for delivery and provide information on the delivery location and recipient. You will need to geocode the address to get the precise latitude and longitude information. The address that you pass here is for the driver only; we do not validate that it matches the coordinates given.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to mark as a delivery order.
Body
street_address1
labelRequired
String
The street address and number of the delivery address.
cross_streets
label_outlineOptional
String
The nearest cross street or streets to the street address.
street_address2
label_outlineOptional
String
The unit or apartment information associated with the delivery address.
address_locality
labelRequired
String
The city, town, or other locality in which the delivery address is located.
address_region
labelRequired
String
The state, territory, or other region in which the delivery address is located.
postal_code
labelRequired
String
The ZIP Code or Postcode of the delivery address.
delivery_instructions
label_outlineOptional
String
Diner-provided delivery instructions.
name
labelRequired
String
The name of the diner receiving the delivery.
phone
labelRequired
String
The phone number of the diner receiving the delivery.
email
labelRequired
String
The email address of the diner who ordered delivery.
address_country
labelRequired
String
The country in which the delivery address is located.
green_indicated
label_outlineOptional
boolean
Whether the diner has indicated that they want to forgo plastic utensils.
latitude
labelRequired
String
The latitude coordinate of the delivery address.
longitude
labelRequired
String
The longitude coordinate of the delivery address.
Responses
204
UNKNOWN
No Content

Add pickup information.

PUT /carts/{cart_id}/pickup_info
Description

Mark a cart for pickup and provide information about the delivery recipient.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to mark as a pickup order.
Body
pickup_instructions
label_outlineOptional
String
Diner-provided pickup instructions.
name
labelRequired
String
The name of the diner picking up the order.
phone
labelRequired
String
The phone number of the diner picking up the order.
email
labelRequired
String
The email address of the diner who ordered pickup.
green_indicated
label_outlineOptional
boolean
Whether the diner has indicated that they want to forgo plastic utensils.
Responses
204
UNKNOWN
No Content

Configure notification channels.

POST /carts/{id}/notification_preferences
Description

Set the notification channels by which the diner will be informed of the status of their order. If you want to set up custom notifications, set the channels.WEBHOOK.destinations value in the body to the webhook URI that will process the notification payload.

Body
id
labelRequired
UUID
The cart to which to assign notification preferences. This will override the diner's existing preferences. If you specify the `WEBHOOK` channel, then this request will POST a [WebhookPayload](https://grubhub-developers.zendesk.com/hc/en-us/articles/115004586823-Carts#_definitions_WebhookPayload) to the URI specified as the destination. See [Using Webhook Notifications](https://grubhub-developers.zendesk.com/hc/en-us/articles/115004972463-Setting-Custom-Notifications) for more information. You can disable all notifications by specifying `"DISABLED: []`; that is, a DISABLED channel with an empty array.
channels
labelRequired
The channel(s) by which the diner will notified of their order status.
Responses

Add a payment to a cart.

POST /carts/{cart_id}/payments
Description

Adds a previously vaulted or granted payment method to the specified cart.

Path Parameters
cart_id
labelRequired
UUID
The cart to which to attach a payment method. A single cart can have multiple payment methods.
Body
payment_id
labelRequired
String
The ID associated with the payment, returned from `/payments/partner_payment`.
type
labelRequired
String
The type of payment being added to the cart. Currently, we accept "CREDIT_CARD", "PAYPAL_EXPRESS", "AMEX_EXPRESS", "CASH", and "PROMO_CODE".
amount
label_outlineOptional
Integer
The amount of the bill that this payment method should cover. If not included in the request, then the given payment will cover the remainder of the cart bill or, in the case of a promo code, the remainder of the code amount.
Responses
Example
{
  "id": "J1xnxaPdTKyysKo9mxziqQ",
  "uri": "/payments/mBVZAH0kEee5ZUE5jKZbTA/credit_card/J1xnxaPdTKyysKo9mxziqQ",
  "already_exists": false
}

Get a cart payment

GET /carts/{cart_id}/payments/{id}
Description

Returns information about the specified payment attached to this cart.

Path Parameters
cart_id
labelRequired
UUID
The cart to which to return information on a payment.
id
labelRequired
String
The payment ID to return information on.
Responses
200
OK
Example
{
  "id": "J1xnxaPdTKyysKo9mxziqQ",
  "diner_id": "mBVZAH0kEee5ZUE5jKZbTA",
  "credit_card_type": "Visa",
  "credit_card_last4": "1881",
  "payment_name": null,
  "expiration_date": 1580515200000,
  "expiration_month": 1,
  "expiration_year": 2020,
  "create_date": null,
  "last_used_date": null,
  "expired": false,
  "nonce": null
}

Remove a payment

DELETE /carts/{cart_id}/payments/{id}
Description

Removes a payment method from a cart.

Path Parameters
cart_id
labelRequired
UUID
The cart from which to delete a payment method.
id
labelRequired
String
The identifier of the payment to remove.
Responses
204
UNKNOWN
No Content

Update a payment

PUT /carts/{cart_id}/payments/{id}
Description

Updates the amount covered by the specified payment attached to this cart.

Path Parameters
cart_id
labelRequired
UUID
The cart in which to update the payment amount.
id
labelRequired
String
The identifier of the payment to update.
Body
amount
label_outlineOptional
Integer
The amount of the bill to cover with this payment. Leave this field out of the request to have the payment cover the remainder of the bill.
Responses
204
UNKNOWN
No Content

Retrieve the bill.

GET /carts/{cart_id}/bill
Description

Checks if the cart is ready for checkout; if so, it returns the cart bill and a checkout token.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart for which to retrieve the bill.
Responses
200
OK
Example
{
    "id": "ysChEDdgEeiivC2tWSVyNQ",
    "diner_id": "mBVZAH0kEee5ZUE5jKZbTA",
    "group_id": "ysChETdgEeiivC2tWSVyNQ",
    "when_for": "2018-04-03T20:42:16.270Z",
    "currency": "USD",
    "fulfillment_info": {
        "type": "DELIVERY",
        "delivery_info": {
            "street_address1": "600 Van Raalte Ave",
            "cross_streets": "W 27th St.",
            "street_address2": null,
            "address_locality": "Holland",
            "address_region": "MI",
            "postal_code": "49423",
            "delivery_instructions": "Knock thrice before entering.",
            "name": "John Smith",
            "phone": "2025551212",
            "email": "jsmith@example.com",
            "address_country": "USA",
            "green_indicated": true,
            "latitude": "42.773905",
            "longitude": "-86.121708"
        },
        "pickup_info": null,
        "incomplete_delivery": null,
        "incomplete_pickup": null,
        "individual_info": null
    },
    "notification_preferences": null,
    "charges": {
        "lines": {
            "diner_total": 3000,
            "line_items": [
                {
                    "id": "YW_DcDdhEeitZkUjEeNP-A",
                    "menu_item_id": "15609481",
                    "name": "Hamburger",
                    "price": 500,
                    "display_price": null,
                    "quantity": 1,
                    "diner_total": 500,
                    "options": [],
                    "special_instructions": null,
                    "restaurant_id": "11402556",
                    "badges": [],
                    "item_coupon": false,
                    "combinable_with_coupons": true,
                    "adjustments": null
                },
                {
                    "id": "SqJdoDd7EeiHLSeLAVON5A",
                    "menu_item_id": "15609481",
                    "name": "Hamburger",
                    "price": 500,
                    "display_price": null,
                    "quantity": 5,
                    "diner_total": 2500,
                    "options": [],
                    "special_instructions": null,
                    "restaurant_id": "11402556",
                    "badges": [],
                    "item_coupon": false,
                    "combinable_with_coupons": true,
                    "adjustments": null
                }
            ]
        },
        "coupons": [],
        "diner_subtotal": 3000,
        "fees": {
            "total": 1500,
            "delivery": 1500,
            "minimum_based_delivery": 0
        },
        "taxes": {
            "total": 450,
            "sales": 300,
            "delivery": 150,
            "minimum_based_delivery": 0
        },
        "tip": {
            "amount": 0,
            "type": "INCLUDE_IN_BILL"
        },
        "diner_grand_total": 4950,
        "adjustments": null,
        "add_ons": null
    },
    "payments": {
        "CREDIT_CARD": [
            {
                "id": "32ffa540-377b-11e8-81f6-d314f95ff2e4",
                "payment_id": "J1xnxaPdTKyysKo9mxziqQ",
                "amount": 4950,
                "metadata": {}
            }
        ]
    },
    "restaurant_ids": [
        "11402556"
    ],
    "restaurants": [
        {
            "id": "11402556",
            "name": "Design Kitchen Too",
            "badges": []
        }
    ],
    "affiliate": null,
    "time_placed": null,
    "recommended_tip_settings": {
        "minimum_tip_amount": 300,
        "minimum_tip_percentage": 10
    },
    "catering_info": null,
    "edit_window_close": null,
    "ordering_info": {
        "type": "STANDARD",
        "tiers": [],
        "eta": "2018-04-03T20:42:16.270Z"
    },
    "available_payment_types": [
        "ANDROID_PAY",
        "APPLE_PAY",
        "AMEX_EXPRESS",
        "VENMO_PAY",
        "PAYPAL_EXPRESS",
        "PROMO_CODE",
        "GIFT_CARD"
    ],
    "allowed_payment_types": [
        {
            "type": "ANDROID_PAY",
            "detail_url": null
        },
        {
            "type": "APPLE_PAY",
            "detail_url": null
        },
        {
            "type": "AMEX_EXPRESS",
            "detail_url": null
        },
        {
            "type": "VENMO_PAY",
            "detail_url": null
        },
        {
            "type": "PAYPAL_EXPRESS",
            "detail_url": "/payments/mBVZAH0kEee5ZUE5jKZbTA/paypal_express"
        },
        {
            "type": "PROMO_CODE",
            "detail_url": null
        },
        {
            "type": "GIFT_CARD",
            "detail_url": "/codes/vault/mBVZAH0kEee5ZUE5jKZbTA/giftcards"
        }
    ],
    "balance": 0,
    "state": "READY_FOR_CHECKOUT",
    "checkout_token": "a0f374fbaed664d778d9f6b28d23590b",
    "validation_errors": [],
    "asap": true
}

Check out a cart.

POST /carts/{cart_id}/checkout
Description

Check out a cart using the checkout_token produced by the /carts/{cart_id}/bill endpoint. This endpoint has a longer timeout than most endpoints: 12000 ms.

NOTE - The order will not be sent to the restaurant until this endpoint completes successfully. Do not display confirmation messages to diners until you get a 200 success response. Otherwise, you could introduce perceived delays to the diner, potentially triggering interactions with customer care.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to checkout.
Body
checkout_token
labelRequired
String
The checkout_token produced by the /carts/{cart_id}/bill endpoint.
Responses
Example
{
  "id": "ysChEDdgEeiivC2tWSVyNQ",
  "diner_id": "mBVZAH0kEee5ZUE5jKZbTA",
  "group_id": "ysChETdgEeiivC2tWSVyNQ",
  "when_for": "2018-04-03T20:43:38.622Z",
  "currency": "USD",
  "fulfillment_info": {
      "type": "DELIVERY",
      "delivery_info": {
          "street_address1": "600 Van Raalte Ave",
          "cross_streets": "W 27th St.",
          "street_address2": null,
          "address_locality": "Holland",
          "address_region": "MI",
          "postal_code": "49423",
          "delivery_instructions": "Knock thrice before entering.",
          "name": "John Smith",
          "phone": "2025551212",
          "email": "jsmith@example.com",
          "address_country": "USA",
          "green_indicated": true,
          "latitude": "42.773905",
          "longitude": "-86.121708"
      },
      "pickup_info": null,
      "incomplete_delivery": null,
      "incomplete_pickup": null,
      "individual_info": null
  },
  "notification_preferences": null,
  "charges": {
      "lines": {
          "diner_total": 3000,
          "line_items": [
              {
                  "id": "YW_DcDdhEeitZkUjEeNP-A",
                  "menu_item_id": "15609481",
                  "name": "Hamburger",
                  "price": 500,
                  "display_price": null,
                  "quantity": 1,
                  "diner_total": 500,
                  "options": [],
                  "special_instructions": null,
                  "restaurant_id": "11402556",
                  "badges": [],
                  "item_coupon": false,
                  "combinable_with_coupons": true,
                  "adjustments": null
              },
              {
                  "id": "SqJdoDd7EeiHLSeLAVON5A",
                  "menu_item_id": "15609481",
                  "name": "Hamburger",
                  "price": 500,
                  "display_price": null,
                  "quantity": 5,
                  "diner_total": 2500,
                  "options": [],
                  "special_instructions": null,
                  "restaurant_id": "11402556",
                  "badges": [],
                  "item_coupon": false,
                  "combinable_with_coupons": true,
                  "adjustments": null
              }
          ]
      },
      "coupons": [],
      "diner_subtotal": 3000,
      "fees": {
          "total": 1500,
          "delivery": 1500,
          "minimum_based_delivery": 0
      },
      "taxes": {
          "total": 450,
          "sales": 300,
          "delivery": 150,
          "minimum_based_delivery": 0
      },
      "tip": {
          "amount": 0,
          "type": "INCLUDE_IN_BILL"
      },
      "diner_grand_total": 4950,
      "adjustments": null,
      "add_ons": null
  },
  "payments": {
      "CREDIT_CARD": [
          {
              "id": "32ffa540-377b-11e8-81f6-d314f95ff2e4",
              "payment_id": "J1xnxaPdTKyysKo9mxziqQ",
              "amount": 4950,
              "metadata": {
                  "EXPIRATION_DATE": "01/2020",
                  "PAYMENT_PROCESSOR": "braintree",
                  "BILLING_ZIP": "03101",
                  "CREDIT_CARD_TYPE": "Visa",
                  "CC_LAST_FOUR": "1881"
              }
          }
      ]
  },
  "restaurant_ids": [
      "11402556"
  ],
  "restaurants": [
      {
          "id": "11402556",
          "name": "Design Kitchen Too",
          "badges": []
      }
  ],
  "affiliate": null,
  "time_placed": "2018-04-03T20:13:38.622Z",
  "recommended_tip_settings": {
      "minimum_tip_amount": 300,
      "minimum_tip_percentage": 10
  },
  "catering_info": null,
  "edit_window_close": null,
  "ordering_info": {
      "type": "STANDARD",
      "tiers": [],
      "eta": "2018-04-03T20:43:38.622Z"
  },
  "order_number": "955503845729801",
  "order_tracking": {
      "enabled": true
  },
  "asap": true
}

Get a cart after checkout.

GET /carts/{cart_id}/checkout
Description

Returns cart information after it has been sent to checkout.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to view.
Responses
Example
{
  "id": "ysChEDdgEeiivC2tWSVyNQ",
  "diner_id": "mBVZAH0kEee5ZUE5jKZbTA",
  "group_id": "ysChETdgEeiivC2tWSVyNQ",
  "when_for": "2018-04-03T20:43:38.622Z",
  "currency": "USD",
  "fulfillment_info": {
      "type": "DELIVERY",
      "delivery_info": {
          "street_address1": "600 Van Raalte Ave",
          "cross_streets": "W 27th St.",
          "street_address2": null,
          "address_locality": "Holland",
          "address_region": "MI",
          "postal_code": "49423",
          "delivery_instructions": "Knock thrice before entering.",
          "name": "John Smith",
          "phone": "2025551212",
          "email": "jsmith@example.com",
          "address_country": "USA",
          "green_indicated": true,
          "latitude": "42.773905",
          "longitude": "-86.121708"
      },
      "pickup_info": null,
      "incomplete_delivery": null,
      "incomplete_pickup": null,
      "individual_info": null
  },
  "notification_preferences": null,
  "charges": {
      "lines": {
          "diner_total": 3000,
          "line_items": [
              {
                  "id": "YW_DcDdhEeitZkUjEeNP-A",
                  "menu_item_id": "15609481",
                  "name": "Hamburger",
                  "price": 500,
                  "display_price": null,
                  "quantity": 1,
                  "diner_total": 500,
                  "options": [],
                  "special_instructions": null,
                  "restaurant_id": "11402556",
                  "badges": [],
                  "item_coupon": false,
                  "combinable_with_coupons": true,
                  "adjustments": null
              },
              {
                  "id": "SqJdoDd7EeiHLSeLAVON5A",
                  "menu_item_id": "15609481",
                  "name": "Hamburger",
                  "price": 500,
                  "display_price": null,
                  "quantity": 5,
                  "diner_total": 2500,
                  "options": [],
                  "special_instructions": null,
                  "restaurant_id": "11402556",
                  "badges": [],
                  "item_coupon": false,
                  "combinable_with_coupons": true,
                  "adjustments": null
              }
          ]
      },
      "coupons": [],
      "diner_subtotal": 3000,
      "fees": {
          "total": 1500,
          "delivery": 1500,
          "minimum_based_delivery": 0
      },
      "taxes": {
          "total": 450,
          "sales": 300,
          "delivery": 150,
          "minimum_based_delivery": 0
      },
      "tip": {
          "amount": 0,
          "type": "INCLUDE_IN_BILL"
      },
      "diner_grand_total": 4950,
      "adjustments": null,
      "add_ons": null
  },
  "payments": {
      "CREDIT_CARD": [
          {
              "id": "32ffa540-377b-11e8-81f6-d314f95ff2e4",
              "payment_id": "J1xnxaPdTKyysKo9mxziqQ",
              "amount": 4950,
              "metadata": {
                  "EXPIRATION_DATE": "01/2020",
                  "PAYMENT_PROCESSOR": "braintree",
                  "BILLING_ZIP": "03101",
                  "CREDIT_CARD_TYPE": "Visa",
                  "CC_LAST_FOUR": "1881"
              }
          }
      ]
  },
  "restaurant_ids": [
      "11402556"
  ],
  "restaurants": [
      {
          "id": "11402556",
          "name": "Design Kitchen Too",
          "badges": []
      }
  ],
  "affiliate": null,
  "time_placed": "2018-04-03T20:13:38.622Z",
  "recommended_tip_settings": {
      "minimum_tip_amount": 300,
      "minimum_tip_percentage": 10
  },
  "catering_info": null,
  "edit_window_close": null,
  "ordering_info": {
      "type": "STANDARD",
      "tiers": [],
      "eta": "2018-04-03T20:43:38.622Z"
  },
  "order_number": "955503845729801",
  "order_tracking": {
      "enabled": true
  },
  "asap": true
}

Recreate an existing order.

POST /carts/{order_id}/recart
Description

Create a new cart order out of a previously placed order.

Path Parameters
order_id
labelRequired
UUID
The ID of the cart to place the contents of the old order.
Body
brand
labelRequired
String
The brand under which this order should be processed.
affiliate
label_outlineOptional
Affiliate
The affiliate program associated with this order.
fail_out_on_validation_error
label_outlineOptional
boolean
Whether this request should fail to create the new cart if it fails to validate.
recart_flags
label_outlineOptional
RecartFlag
Any flags to modify the new order.
Responses
Example
{
    "id": "ZYTuosJrEeifaZN8ozx0dQ",
    "diner_id": "mBVZAH0kEee5ZUE5jKZbTA",
    "group_id": "ZYTuo8JrEeifaZN8ozx0dQ",
    "when_for": "2018-09-27T16:10:35.535Z",
    "currency": "USD",
    "fulfillment_info": {
        "type": "DELIVERY",
        "delivery_info": {
            "street_address1": "600 Van Raalte Ave",
            "cross_streets": "W 27th St.",
            "street_address2": null,
            "address_locality": "Holland",
            "address_region": "MI",
            "postal_code": "49423",
            "delivery_instructions": "Knock thrice before entering.",
            "name": "Fake User",
            "phone": "2025551212",
            "email": "fakeuser@mail.com",
            "address_country": "USA",
            "green_indicated": true,
            "latitude": "42.773905",
            "longitude": "-86.121708"
        },
        "pickup_info": null,
        "incomplete_delivery": null,
        "incomplete_pickup": null,
        "individual_info": null
    },
    "notification_preferences": null,
    "charges": {
        "lines": {
            "diner_total": 3500,
            "line_items": [
                {
                    "id": "ZYTuoMJrEeifaZN8ozx0dQ",
                    "menu_item_id": "15609485",
                    "name": "James's Pizza",
                    "price": 0,
                    "display_price": null,
                    "quantity": 7,
                    "diner_total": 0,
                    "options": [],
                    "special_instructions": "",
                    "restaurant_id": "11402556",
                    "badges": [],
                    "item_coupon": false,
                    "combinable_with_coupons": true,
                    "adjustments": null,
                    "minimum_serving_size": null,
                    "maximum_serving_size": null,
                    "lead_time_ms": null,
                    "minimum_order_quantity": null
                },
                {
                    "id": "ZYTuocJrEeifaZN8ozx0dQ",
                    "menu_item_id": "15609424",
                    "name": "House salad",
                    "price": 500,
                    "display_price": null,
                    "quantity": 7,
                    "diner_total": 3500,
                    "options": [],
                    "special_instructions": "",
                    "restaurant_id": "11402556",
                    "badges": [],
                    "item_coupon": false,
                    "combinable_with_coupons": true,
                    "adjustments": null,
                    "minimum_serving_size": null,
                    "maximum_serving_size": null,
                    "lead_time_ms": null,
                    "minimum_order_quantity": null
                }
            ]
        },
        "coupons": [],
        "diner_subtotal": 3500,
        "fees": {
            "total": 300,
            "delivery": 300,
            "service": 0,
            "fee_items": [
                {
                    "calculated_amount": 300,
                    "group": "DELIVERY",
                    "type": "DELIVERY",
                    "id": null,
                    "name": "Delivery fee",
                    "adjustments": null
                }
            ]
        },
        "donations": null,
        "taxes": {
            "total": 380,
            "delivery": 30,
            "sales": 350,
            "service": 0,
            "fee_tax_items": [
                {
                    "calculated_amount": 30,
                    "fee_type": "DELIVERY"
                }
            ]
        },
        "tip": {
            "amount": 0,
            "type": "INCLUDE_IN_BILL"
        },
        "diner_grand_total": 4180,
        "adjustments": null,
        "add_ons": null
    },
    "payments": null,
    "restaurant_ids": [
        "11402556"
    ],
    "restaurants": [
        {
            "id": "11402556",
            "name": "Design Kitchen Too",
            "badges": []
        }
    ],
    "affiliate": null,
    "time_placed": null,
    "recommended_tip_settings": {
        "minimum_tip_amount": 350,
        "minimum_tip_percentage": 10
    },
    "catering_info": null,
    "edit_window_close": null,
    "ordering_info": {
        "type": "STANDARD",
        "tiers": [],
        "eta": "2018-09-27T16:10:35.535Z"
    },
    "action_messages": {},
    "update_metadata": null,
    "adjustments": null,
    "action_messages_metadata": {
        "chain_small_order_fee": null,
        "free_menu_item": null,
        "free_menu_category": null
    },
    "validation_errors": null,
    "asap": true
}

Edit a checked out cart.

POST /carts/{cart_id}/edit
Description

Edits a cart that has been scheduled as a future order. Does not work for ASAP orders.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to re-open for editing.
Responses

Return an editable cart to a checked out state.

POST /carts/{cart_id}/revert
Description

Closes an editable cart and returns it to its checked out state.

Path Parameters
cart_id
labelRequired
UUID
The ID of the cart to revert.
Responses

Models

ActionMessagesMetadata

Information that can be included in messages to diners, which indicate actions that they can take.

Properties
chain_small_order_fee
label_outlineOptional
Information related to an additional fee charged because an order is below a certain threshold. This will be null if this restaurant does not charge a small order fee.
free_menu_item
label_outlineOptional
Information about a menu item that the diner could add to their cart for free.

AddOn

Any additional add-on charges not covered by other charge fields. Currently, this only stores information about diner-initiated top-up payments, where the diner adds an amount to the cart in order to meet a restaurant minimum.

Properties
id
label_outlineOptional
UUID
A universally unique identifier for this particular add on in this cart.
restaurant_id
label_outlineOptional
String
The restaurant adding this to the cart. Not used for DONATE_THE_CHANGE.
type
label_outlineOptional
String
The type on of add-on that this object represents. Currently, the only possible value for this is "DONATE_THE_CHANGE", which indicates that the diner rounded their cost up to the nearest dollar as a donation.

Adjustment

Information about how and why an order has been adjusted.

Properties
update_id
label_outlineOptional
String
A unique identifier for the care update record where this adjustment was applied.
adjustment_id
label_outlineOptional
String
A unique identifier for this adjustment.
association_id
label_outlineOptional
String
If the adjustment changes a single line in the order, then this will be the line identifier. If it adjusts the order, then this will be NULL.
association_type
label_outlineOptional
String
The type of adjustment, either "ORDER" or "LINE".
adjustment_amount
label_outlineOptional
Integer
The value of the adjustment in cents.
adjustment_type
label_outlineOptional
String
The method by which the adjustment amount should be applied to the value of the cart. Values can be: - PERCENT - The amount is a percentage that applies to the entire care value. - FIXED - The amount listed should be subtracted from the cart total. - ABSOLUTE - The listed amount should replace the previous cart total.
adjustment_note
label_outlineOptional
String
Information about why this order was adjusted, added by the Grubhub care team that made the adjustment.

AdjustmentItem

DEPRECATED. Use Adjustment instead.

Properties
id
label_outlineOptional
UUID
A unique identifier for this adjustment throughout the Grubhub system.
amount
label_outlineOptional
Integer
The amount, in cents, that this adjustment adds or removes from the cart total.
taxable
label_outlineOptional
Integer
The amount of this adjustment that is taxable, which may be either added or subtracted from the cart charges, depending on the adjustment.
notes
label_outlineOptional
String
Information about why this order was adjusted, added by the Grubhub care team that made the adjustment.

Affiliate

An affiliate program descriptor.

Properties
id
labelRequired
String
The ID value of the affiliate program.
type
labelRequired
String
The type of affiliate program.

AvailablePayment

The name and descriptor URI of a single payment type.

Properties
type
label_outlineOptional
String
The type of payment.
detail_url
label_outlineOptional
URI
The URI that lists the details of this payment method.

Badge

A badge associated with a restaurant and displayed in search.

Properties
badge_data
label_outlineOptional
String
A JSON array as a string that describes what the badge applies to.
name
label_outlineOptional
String
The internal name of the badge.
type
label_outlineOptional
String
The internally defined type of badge.

Bill

Information about the bill associated with a cart and, if the cart is ready to checkout, a checkout_token.

Properties
available_payment_types
label_outlineOptional
array
DEPRECATED. Refer to allowed_payment_types instead.
allowed_payment_types
label_outlineOptional
An array of payment methods available to check this cart out.
balance
label_outlineOptional
Integer
The total remaining amount to be paid on this cart order.
state
label_outlineOptional
String
A label indicating where in the order process this cart is.
checkout_token
label_outlineOptional
String
If the cart is ready to checkout, you can pass this value in the body of the /carts/{cart_id}/checkout request.
validation_errors
label_outlineOptional
If the cart is not ready for checkout, this will contain information about why that is.

Cart

Information about a cart.

Properties
id
label_outlineOptional
UUID
The ID of the cart.
diner_id
label_outlineOptional
UUID
The ID of the diner associated with this cart.
group_id
label_outlineOptional
UUID
The ID of the group to which this cart belongs.
when_for
label_outlineOptional
DateTime
When this cart is scheduled to be fulfilled.
is_asap
label_outlineOptional
boolean
Indicates whether this order is to be completed immediately after checkout.
currency
label_outlineOptional
String
The three-letter code for the type of currency that will be used to pay for this cart.
fulfillment_info
label_outlineOptional
Information about how to deliver or arrange pickup for this cart order.
notification_preferences
label_outlineOptional
The notification preferences that the diner applied to this cart.
charges
label_outlineOptional
Details about the costs associated with this cart order.
payments
label_outlineOptional
List<Payment>
An array of payments applied to this cart.
restaurant_ids
label_outlineOptional
array
The IDs of the restaurants associated with the menu items in this cart.
restaurants
label_outlineOptional
An array of the restaurants from which the diner is ordering food.
affiliate
label_outlineOptional
The affiliate program associated with this order.
time_placed
label_outlineOptional
DateTime
The date and time on which the diner placed this order.
recommended_tip_settings
label_outlineOptional
The recommended tip to apply as both an amount and a percentage of the total bill.
catering_info
label_outlineOptional
Information as to how this order should be fulfilled if it is a catered event.
adjustments
label_outlineOptional
The adjustments made by the Grubhub Care Team and how they affect individual cart charges and the total cost.
action_messages_metadata
label_outlineOptional
Information related to messages for the diner that they can take action on.
has_ordering_info_tier
label_outlineOptional
boolean
Whether or not the value of this cart qualifies it for longer preparation times listed in an ordering tier.

CartAdjustments

The adjustments made by the Grubhub Care Team and how they affect individual cart charges and the total cost.

Properties
total
label_outlineOptional
Integer
The total value of the adjustments in cents.
adjustments
label_outlineOptional
List<Adjustment>
Detailed information about each adjustment applied to this charge item or total.
adjustment_items
label_outlineOptional
DEPRECATED. Details about each adjustment.

CartCharges

Details about the costs associated with this cart order.

Properties
lines
label_outlineOptional
The total amount of the order, as well as a break down of each menu item line.
coupons
label_outlineOptional
List<Coupon>
A list of the coupons that affect the price of this cart.
diner_subtotal
label_outlineOptional
Integer
The total cost of all the food items in the cart before taxes and fees.
fees
label_outlineOptional
Information about the fees applied to this cart.
donations
label_outlineOptional
Any donations applied to the cart total, such as Donate the Change.
taxes
label_outlineOptional
Information about the taxes applied to this cart.
tip
label_outlineOptional
Tip
Information about the tip applied to this order.
diner_grand_total
label_outlineOptional
Integer
The total amount of the bill for this order, including menu items, taxes, fees, and tip.
adjustments
label_outlineOptional
The adjustments made by the Grubhub Care Team and how they affect individual cart charges and the total cost.
add_ons
label_outlineOptional
List<AddOn>

CartDonations

Information about charity donations, such as to Donate the Change, attached to this cart.

Properties
total
label_outlineOptional
Integer
The total amount in cents of the donation charged to this cart.

CartFee

Complete information about a specific fee applied to a cart.

Properties
calculated_amount
label_outlineOptional
Integer
The total amount of the fee. If the fee is percentage-based, this will be computed based on the cart subtotal.
group
label_outlineOptional
String
The group identifer for the restaurant whose menu items are in this cart.
type
label_outlineOptional
String
The specific type of fee contained in this object. This will be either 'DELIVERY', 'CHAIN_SERVICE_FEE', 'CHAIN_SMALL_ORDER_FEE', or 'MINIMUM_BASED_DELIVERY'.
id
label_outlineOptional
String
An identifier for this specific fee.
name
label_outlineOptional
String
A human-readable name for this fee.
adjustments
label_outlineOptional
If adjustments have been made to the cart, then this object reflects the portion of that adjustment applicable to this fee.

CartFeeTax

Tax costs associated with a specific fee.

Properties
calculated_amount
label_outlineOptional
Integer
The amount that this tax on a fee adds to the cart total.
fee_type
label_outlineOptional
String
The specific type of fee that this tax amount is associated with. This will be either 'DELIVERY', 'CHAIN_SERVICE_FEE', or 'CHAIN_SMALL_ORDER_FEE'.

CartFees

Information about the delivery and other fees that apply to an order.

Properties
total
label_outlineOptional
Integer
The total amount of fees to add to a cart, in cents.
delivery
label_outlineOptional
Integer
The fee for delivery.
service
label_outlineOptional
Integer
The service added in addition to delivery fees.
fee_items
label_outlineOptional
List<CartFee>
Complete information about a specific fee applied to a cart.

CartLine

Details about a single menu item line in a cart.

Properties
id
label_outlineOptional
UUID
The ID for this line within a cart.
menu_item_id
label_outlineOptional
String
The ID of the menu item added to this line item.
name
label_outlineOptional
String
The name of the menu item on this line.
price
label_outlineOptional
Integer
The price the diner is paying for this menu item in cents.
display_price
label_outlineOptional
Integer
The price displayed for this menu item.
quantity
label_outlineOptional
int
The total number of this menu item included in this cart.
diner_total
label_outlineOptional
Integer
The total cost to the diner from this cart line.
options
label_outlineOptional
A list of options that the diner selected for this menu item.
special_instructions
label_outlineOptional
String
Special instructions about this menu item's preparation as provided by the diner.
restaurant_id
label_outlineOptional
String
The ID of the restaurant that will fulfill this menu item.
badges
label_outlineOptional
The badges associated with this item.
adjustments
label_outlineOptional
The Grubhub-care initiated cost adjustments applied to this cart.
lead_time_ms
label_outlineOptional
Long
The amount of additional time in milliseconds the restaurant needs to prepare this menu item for an order.
minimum_order_quantity
label_outlineOptional
Integer
The minimum number of this menu item that a diner must add to their cart in order to checkout.

CartLineOption

The options that the diner selected for a menu item or another option.

Properties
id
label_outlineOptional
String
The ID associated with this option.
name
label_outlineOptional
String
The display name of the option.
price
label_outlineOptional
Integer
The increase in price due to this option, in cents.
quantity
label_outlineOptional
Integer
The number of menu items that have this particular option applied to them. This number will not exceed the quantity of items in the cart.
child_options
label_outlineOptional
A list of diner-selectable sub-options for this option. Options can be nested in up to five levels in this way.

CartLineOptionData

Selections for the choices associated with a menu item being added to a cart.

Properties
id
label_outlineOptional
String
The ID associated with the option being selected.

CartLines

The total amount of the order, as well as a break down of each menu item line.

Properties
diner_total
label_outlineOptional
BigDecimal
The total charges associated with this cart order.
line_items
label_outlineOptional
Information about an individual menu item line within this cart.

CartLookup

A mapping of carts by their UUID identifier.

Properties
cart_id
label_outlineOptional
Information about this cart, including menu items, payment, and fulfillment information.

CartTaxes

Information about the taxes applied to a cart order.

Properties
total
label_outlineOptional
Integer
The total taxes applied to a cart in cents.
sales
label_outlineOptional
Integer
The amount of sales taxes applied to a cart in cents.
delivery
label_outlineOptional
Integer
The taxes related to delivery applied to a cart.
service
label_outlineOptional
Integer
The taxes applicable to any service charges on the cart.
fee_tax_items
label_outlineOptional
List<CartFeeTax>
Tax costs associated with a specific fee.

CartWithValidationErrors

A re-carted order with validation errors.

Properties
validation_errors
label_outlineOptional
Error messages that describe why this cart failed to validate.

CartsByDinerIdResponse

A map of open carts indexed by diner IDs. Returned by GET /paths/carts.

Properties
carts
label_outlineOptional
An array of CartLookup objects indexed by diner ID.

CateringInfo

Information on how to fulfill an order as a catered meal.

Properties
estimated_attendees
label_outlineOptional
Integer
The number of people that the diner expects to attend the catering event.
budget
label_outlineOptional
Integer
The total budget (in cents) allowed for the catered food.
alternate_name
label_outlineOptional
Integer
An alternate contact name for the order.
alternate_phone
label_outlineOptional
Integer
The alternate contact's phone number.
green_indicated
label_outlineOptional
boolean
Whether the diner indicated they want to forgo plastic utensils.
setup_food
label_outlineOptional
boolean
Whether the diner indicated that they want to have the food setup for them.
setup_instructions
label_outlineOptional
String
Diner-provided instructions as to how to setup the catered food.

ChainSmallOrderFeeActionMessageParts

Information about the small order fee - the fee amount and additional cart amount needed to avoid the fee.

Properties
fee_amount_cents
label_outlineOptional
Integer
The amount of the small order fee - in cents - currently being applied to the cart.
balance_to_waiver_cents
label_outlineOptional
Integer
The additional amount - in cents - that the diner needs to add to their cart in order to avoid the small order fee.

CheckoutResponse

A cart object after being checked out.

Properties
order_number
label_outlineOptional
String
The number associated with the order in the Grubhub system.
order_tracking
label_outlineOptional
Whether this order can be tracked.

Coupon

A coupon that applies to a cart, possibly lowering the price or including a free item.

Properties
id
label_outlineOptional
UUID
A universally unique identifier for this coupon.
coupon_id
label_outlineOptional
String
A text identifier for this coupon.
description
label_outlineOptional
String
A human-readable explanation of what this coupon is and how it affects the cart.
amount
label_outlineOptional
Integer
The total amount, in cents, that this coupon discounts the cart total.
restaurant_id
label_outlineOptional
String
The identifier of the restaurant for which this coupon applies.
minimum_amount
label_outlineOptional
Integer
The minimum cart amount needed to apply this coupon to the cart total.

DeliveryInfo

Information on how to delivery this order to the diner.

Properties
street_address1
label_outlineOptional
String
The primary street address.
cross_streets
label_outlineOptional
String
The nearest cross street to the street address.
street_address2
label_outlineOptional
String
Additional address information, such as apartment number.
address_locality
label_outlineOptional
String
The city, town, or other locality in which this address is located.
address_region
label_outlineOptional
String
The state or other region in which this address is located.
postal_code
label_outlineOptional
String
The ZIP Code or Postcode of the address.
delivery_instructions
label_outlineOptional
String
Any delivery instructions provided by the diner.
name
label_outlineOptional
String
The diner name. Used to verify the order upon delivery.
phone
label_outlineOptional
String
The contact phone number for the diner.
email
label_outlineOptional
String
The contact email address for the diner.
address_country
label_outlineOptional
String
The country in which this address is located.
green_indicated
label_outlineOptional
boolean
Whether the diner has indicated that they want the restaurant to not include plastic silverware in order to save the environment.
latitude
label_outlineOptional
String
The latitude of the address.
longitude
label_outlineOptional
String
The longitude of the address.

DinerInfo

Information about a diner associated with an order or cart.

Properties
id
label_outlineOptional
UUID
The ID of the diner.

FreeMenuItemParts

Information about a menu item that the diner can add to their cart for free.

Properties
menu_item_id
label_outlineOptional
String
The ID of the menu item that the diner can add for free.

FulfillmentEstimate

An estimate of the expected time and maximum time that an order would be fulfilled.

Properties
time
label_outlineOptional
DateTime
When this order was expected to be fulfilled.
max_time
label_outlineOptional
DateTime
The latest that this order was expected to be fulfilled.

FulfillmentInfo

Information about how to delivery or handle pickup for the current order.

Properties
type
label_outlineOptional
String
The type of order fulfillment associate with this order. Either "DELIVERY" or "PICKUP".
delivery_info
label_outlineOptional
The information needed to deliver this order to the diner.
pickup_info
label_outlineOptional
Information needed to arrange pickup with the diner.
incomplete_delivery
label_outlineOptional
Incomplete delivery information that will still allow the driver to reach the diner.
incomplete_pickup
label_outlineOptional
IncompletePickup
An empty object used to indicate that the cart is for a pickup order without providing pickup information about the diner.

IncompleteDelivery

Incomplete delivery information that will still allow the driver to reach the diner.

Properties
latitude
label_outlineOptional
String
The latitude coordinate of the delivery address.
longitude
label_outlineOptional
String
The longitude coordinate of the delivery address.

IndividualInfo

Information about the individual picking up or receiving delivery.

Properties
individual_name
label_outlineOptional
String
The name of the diner.

NotificationPreferences

How the diner prefers to be notified about their order.

Properties
channels
label_outlineOptional
Map
The diner's notification preferences, mapped by the type of channel.
system
label_outlineOptional
String
The method used to notify the diner.

NotificationType

Settings for an individual notification channel.

Properties
destinations
label_outlineOptional
String
Where the notification payload will be sent on order status changes. For WEBHOOK notifications, this should be the URI that will process the notification payload.

Order

Information about a previously placed order.

Properties
id
label_outlineOptional
UUID
The ID of the diner who placed the order.
time_placed
label_outlineOptional
DateTime
The date and time when this order was placed.
diner_info
label_outlineOptional
Information about the diner who placed this order.
fulfillment_info
label_outlineOptional
Information about how the restaurant will fulfill the diner's order.
order_number
label_outlineOptional
Integer
A number given to identify the order to the restaurant. This differs from the order ID, which is a unique UUID in the Grubhub system.
payments
label_outlineOptional
The payment methods applied to this order and the total order cost that those methods cover.
charges
label_outlineOptional
Details about the costs associated with this order.
restaurant
label_outlineOptional
Information about the restaurant from which the diner ordered food.
when_for
label_outlineOptional
DateTime
The date and time which this order was expected to be ready.
fulfillment_estimate
label_outlineOptional
Estimates on the earliest and latest that this order was to be fulfilled.
is_test
label_outlineOptional
Boolean
Whether this order was a test and not intended to be fulfilled.
adjustments
label_outlineOptional
Information about how and why the order was adjusted.

OrderCharges

The charges associated with an existing order.

Properties
diner_subtotal
label_outlineOptional
Integer
The total of all menu items added to this cart before fees and taxes.
fees
label_outlineOptional
Information about the fees applied to this order.
taxes
label_outlineOptional
Information about the taxes applied to this order.
tip
label_outlineOptional
Tip
Information about the tip applied to this order.
diner_grand_total
label_outlineOptional
Integer
The total amount of the bill for this order, including menu items, taxes, fees, and tip.
lines
label_outlineOptional
A break down of each menu item line.

OrderLines

A break down of each menu item line within a completed order.

Properties
line_items
label_outlineOptional
Information about an individual menu item line within this cart.

OrderTracking

Information about whether this order is tracked.

Properties
enabled
label_outlineOptional
boolean
Whether this order is able to be tracked.

Payment

Information about a single payment method attached to a cart.

Properties
id
label_outlineOptional
String
The ID value that identifies this payment as attached to a specific cart.
type
label_outlineOptional
String
The type of payment; one of either "CREDIT_CARD", "PAYPAL_EXPRESS", or "AMEX_EXPRESS".
amount
label_outlineOptional
Integer
The amount of the cart bill that this payment covers.
metadata
label_outlineOptional
String
An arbitrary string in which to store any information about this payment.

PaymentMethod

A payment applied to a cart or order.

Properties
id
label_outlineOptional
UUID
The ID of this payment applied to a cart or order.
payment_id
label_outlineOptional
UUID
The ID of a payment method attached to a diner.
payment_type
label_outlineOptional
String
The type of payment applied to this order.
amount
label_outlineOptional
Integer
The amount of the bill that this payment covers.
cc_num_last_four
label_outlineOptional
Integer
The last four numbers of this payment method if it is a credit card.
cc_type
label_outlineOptional
String
The card type, i.e. Visa.

Payments

An array of the payment methods applied to a cart or order and the total order cost that those methods cover.

Properties
payments
label_outlineOptional
An array of payment methods applied to a cart.
total
label_outlineOptional
Integer
The total amount of the bill covered by all payments.

PickupInfo

Information required to arrange pickup with the diner.

Properties
name
label_outlineOptional
String
The name of the diner picking up the order.
phone
label_outlineOptional
String
The phone number of the diner.
email
label_outlineOptional
String
The email address of the diner.
pickup_instructions
label_outlineOptional
String
Any instructions that the diner has provided to the restaurant for pickup.
green_indicated
label_outlineOptional
boolean
Whether the diner has indicated that they do not want plastic utensils with their food.

RecommendedTipSettings

The tip amount and percentage that we recommend you apply to this order.

Properties
minimum_tip_amount
label_outlineOptional
int
The minimum recommended amount of tip (in cents) to apply to this order.
minimum_tip_percentage
label_outlineOptional
double
The minimum percentage of the total order to add as a tip.

ResourceCreateResponse

A new cart-related resource.

Properties
id
labelRequired
String
The ID of the newly created resource (cart, cart line, etc.).
uri
label_outlineOptional
URI
The URI that you can use as a RESTful endpoint to affect this cart.
already_exists
label_outlineOptional
boolean
Indicates whether this resource already has been created.

Restaurant

Information about a single restaurant.

Properties
id
label_outlineOptional
String
The unique identifier for this restaurant.
name
label_outlineOptional
String
The display name of the restaurant.
badges
label_outlineOptional
An array of badges that apply to this restaurant.

Tip

Information about the tip applied to a cart.

Properties
amount
label_outlineOptional
Integer
The total amount of the tip in cents.
tip_type
label_outlineOptional
String
How the tip amount will be collected. This will be either "INCLUDE_IN_BILL" or "CASH".

ValidationError

The error and description as to why a cart failed to validate for checkout.

Properties
property
label_outlineOptional
String
The item that failed validation.
message_key
label_outlineOptional
String
The reason that property failed to validate.

WebhookPayload

Information sent to a specified webhook address when a diner's order status changes.

Properties
webhook_sid
label_outlineOptional
String
A security key Grubhub sends to verify that this payload comes from our servers. It will be the same for every response.
order
label_outlineOptional
Information about the order whose status has changed.
status
label_outlineOptional
String
The state that the order has entered into. Can be one of "CONFIRMED", "READY_FOR_PICKUP", "OUT_FOR_DELIVERY", "CANCELLED", or "ADJUSTED".