Order Schema Reference
Order Schema Reference
Objects
Address
An address record. Can be for users, caterers, brands, etc
Field Name | Description |
|---|---|
city: String! | The name of the city where the address is located. |
deliveryInstructions: String | Specific instructions provided for the delivery, such as parking details or particular points of entry. |
name: String | The name associated with the address, which could be a business name or a contact person. |
state: String! | The two-letter abbreviation for the state in which the address is located (e.g., MA for Massachusetts). |
stateName: String | The full name of the state corresponding to the address (e.g., Massachusetts). |
street: String! | The primary street address or street line 1. |
street2: String | The secondary street address or street line 2, used for additional address components such as apartment or suite numbers. |
street3: String | An additional address field for further granularity, often used for large complexes or extended addresses. |
zip: String | The postal code for the address location. |
{
"city": "Boston",
"deliveryInstructions": "Ask for Jane at front desk",
"name": "",
"state": "MA",
"stateName": "Massachusetts",
"street": "12345 Restaurant Avenue",
"street2": null,
"street3": null,
"zip": "54321"
}AcceptOrderPayload
Return type of AcceptOrder.
Field Name | Description |
|---|---|
order: Order! | A customer's order for catering. |
{
"order": Order!
}Caterer
A caterer representing a specific location providing catering
Field Name | Description |
|---|---|
address: Address | The physical location or mailing address of a store or entity, which can include various subfields such as street, city, state, and zip code |
live: Boolean! | Indicates whether an the caterer location is currently active, or operational. |
name: String! | The name associated with the caterer location. |
storeNumber: String | A unique identifier assigned to each store. It is used to differentiate between different stores in a chain or franchise. |
uuid: UUID! | |
{
"address": Address,
"live": true,
"name": "My Caterer Name",
"storeNumber": "00001",
"uuid": "ezcater-caterer-id"
}CatererCart
Information about items on an order, from the caterer's perspective.
Field Name | Description |
|---|---|
feesAndDiscounts(types: [FeeOrDiscountType!]): [LineItem!]! | Enumeration of various fees and discounts provided to the caterer. |
orderItems: [OrderItem!]! | The specific items ordered by a customer. Each order item typically includes details such as the item's name, price, quantity, special instructions, and any associated options or customizations. |
tableware: Tableware | The collection of utensils and other tableware items included with the order, such as forks, knives, or plates |
totals: CatererTotals | The summarized financial details of the order, including subtotals, total due, taxes, tips, and overall amounts payable by the customer. |
{
"feesAndDiscounts": [LineItem!]!,
"orderItems": [OrderItem!]!,
"tableware": Tableware,
"totals": CatererTotals
}CatererTotals
Various order totals, from the caterer's perspective
Field Name | Description |
|---|---|
catererTotalDue: Float | The sum of all order item prices, line items, and tip with commission and cc fee subtracted |
{
"catererTotalDue": 171.02
}Event
Information about the event an order is associated with (e.g. time, date, location, etc.)
Field Name | Description |
|---|---|
address(shouldUseSearchAddress: Boolean = false): Address | The location at which the order is expected to be delivered by the caterer. When shouldUseSearchAddress: Boolean = true then it includes the address the customer searched for (relevant for takeout orders) |
catererHandoffFoodTime: UTCTimestamp | The UTC timestamp indicating when the caterer must be ready to give prepared food to the customer or delivery partner. |
contact: EventContact | On-site contact who will receive order on day-of event |
customerProvidedName: String | The name for the event that was provided by the customer |
headcount: Int | The number of people that an order is intended to serve |
orderType(perspective: OrderTypePerspective): OrderTypeEnum! | The specific manner in which an order is processed or fulfilled. |
thirdPartyDeliveryPartner: String | The third party delivery partner's name. |
timeZoneIdentifier: String | The Time Zone identifier of the event in a format like 'America/New_York'. Full list of Time Zone Identifiers here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones |
timeZoneOffset: String | The UTC offset for time zone identifier, for example -4:00 |
timestamp: UTCTimestamp | The UTC timestamp indicating when the customer expects to receive food. |
{
"address": Address,
"catererHandoffFoodTime": "2025-03-27T16:15:00Z",
"contact": EventContact,
"customerProvidedName": "Team building event",
"headcount": 10,
"orderType": "DELIVERY",
"thirdPartyDeliveryPartner": null,
"timeZoneIdentifier": "America/New_York",
"timeZoneOffset": "-04:00",
"timestamp": "2025-03-27T16:30:00Z"
}EventContact
On-site contact who will receive order on day-of event
{
"name": "Jane Doe",
"phone": "5555555555"
}Money
Monetary information on tip and totals for an order
Field Name | Description |
|---|---|
currency: Currency! | Allowed currency values for money. |
subunits: Int! | Monetary amount in currency sub-units (e.g. For US Dollars, this would be an amount in pennies); limited to 32-bit integer (2_147_483_647 == $21_474_836.47) |
subunitsV2: BigInt! | Monetary amount in currency sub-units (e.g. For US Dollars, this would be an amount in pennies) |
{
"currency": "USD",
"subunits": 23864,
"subunitsV2": "23864"
}LineItem
Order line items like taxes, fees, and discounts
{
"cost": Money,
"name": "Delivery Fee"
}Order
A customer's catering order.
Field Name | Description |
|---|---|
caterer: Caterer | A caterer representing a specific location or store providing catering. |
catererCart: CatererCart | The information about items on the order, from the caterer's perspective. |
deliveryId: ID | The globally-unique identifier of the delivery for the order. |
event: Event | Information about the order's event (e.g. time, date, location, etc.). |
isTaxExempt: Boolean! | Whether or not this order is tax exempt. |
lifecycle: OrderLifecycle | A description of where an Order is in it's lifecycle |
orderCustomer: OrderCustomer | Customer's contact information. For privacy reasons, this may not always be provided. |
orderNumber: String | Reference identifier to be used when interacting with support at ezCater |
orderSourceType: OrderSource | The channel that an order comes in through |
taxableAddress: Address! | The address used to calculate sales tax for an order. This will either be the origin (store) address or the destination (event) address. |
totals: OrderTotals | Monetary information on order's tip and totals |
uuid: UUID! | The ID of the specific order. |
{
"caterer": Caterer,
"catererCart": CatererCart,
"deliveryId": "3593ce70-7227-4fd4-8a78-9591083d0674",
"event": Event,
"isTaxExempt": false,
"lifecycle": OrderLifecycle,
"orderCustomer": OrderCustomer,
"orderNumber": "O1O1O1",
"orderSourceType": "MARKETPLACE",
"taxableAddress": Address!,
"totals": OrderTotals,
"uuid": "your-ezcater-order-id"
}OrderCustomer
A copy of the customer's contact information associated with an order
{
"firstName": "Jane",
"lastName": "Doe",
"fullName": "Jane Doe"
}OrderItem
Individual selections from the menu a customer has made for an order.
Field Name | Description |
|---|---|
customizations: [OrderItemCustomization!]! | Selected customizations for the order item. |
labelFor: String | The name of the person attached to the order item. |
menuItemSizeId: UUID | The ID corresponding with a specifically sized item in the caterer's menu. |
menuItemSizeName: String | Size selected by the customer in string format. |
name: String | Name of the order item. |
noteToCaterer: String | A note to describe what's included in the item. Only visible to the caterer. |
posItemId: String | The the posId for the size specified by the order item. This id represents the id of this item in an external API. |
quantity: Int! | Quantity of the specific order item. |
specialInstructions: String | Specific instructions written by the customer for this item |
totalInSubunits: Money | Total cost of item, including customizations, in currency sub-units |
uuid: UUID! | The ID of the specific order item. |
{
"customizations": [OrderItemCustomization!]!,
"labelFor": null,
"menuItemSizeId": "ezcater-menu-version-size-12-inch-pizza-item-selection-id",
"menuItemSizeName": "12\" Pizza",
"name": "Margherita Pizza",
"noteToCaterer": "12\" thin crust Margherita Pizza",
"posItemId": "12-inch-pizza-item-selection-id",
"quantity": 10,
"specialInstructions": "Please be careful not to burn crust",
"totalInSubunits": Money,
"uuid": "83ec5c82-fa68-437c-90d7-ad861a2c151b"
}OrderItemCustomization
Customizations for an order item
Field Name | Description |
|---|---|
customizationId: ID! | ID corresponding with a specifically sized item customization in the caterer's menu. |
customizationTypeId: ID! | ID corresponding with a specific customization label in the caterer's menu. |
customizationTypeName: String! | Name corresponding with a specific customization label in the caterer's menu. |
name: String! | Name of the order item customization. |
posCustomizationId: String | POS ID corresponding with a specific customization in the caterer's menu. |
quantity: Int | Count of items with this customization. Note that these items may also have other customizations. |
{
"customizationId": "ezcater-menu-version-customization-parmigiano-reggiano-choice-12-inch-selection-id",
"customizationTypeId": "ezcater-menu-version-customization-type-cheese-addon-options-id",
"customizationTypeName": "Cheese Addon",
"name": "Parmigiano Reggiano",
"posCustomizationId": "parmigiano-reggiano-choice-12-inch-selection-id",
"quantity": 10
}OrderLifecycle
Describes where an Order is in it's lifecycle
Field Name | Description |
|---|---|
orderIsCurrently: String | Where the Order is in its lifecycle |
{
"orderIsCurrently": "accepted"
}OrderTotals
Monetary information on tip and totals for an order
Field Name | Description |
|---|---|
customerTotalDue: Money! | The total amount that the customer owes for their order. |
pointOfSaleIntegrationFee: Money! | Fee charged for using a specific pos system. |
salesTax: Money! | The sales tax collected for the order. |
salesTaxRemittance: Money! | The sales tax remitted by ezCater. |
subTotal: Money! | Total cost of all food items in an order. |
tip: Money | The gratuities added to the order for the delivery or kitchen personnel. |
{
"customerTotalDue": Money!,
"pointOfSaleIntegrationFee": Money!,
"salesTax": Money!,
"salesTaxRemittance": Money!,
"subTotal": Money!,
"tip": Money!
}RejectOrderPayload
Return type of RejectOrder
Field Name | Description |
|---|---|
order: Order! | A customer's order for catering |
{
"order": Order!
}Tableware
A collection of tableware choices
Field Name | Description |
|---|---|
specialInstructions: String | Instructions written by customer about tableware needs |
tablewareChoices: [TablewareChoice!] | Tableware selections a customer has made for the order |
{
"specialInstructions": null,
"tablewareChoices": [TablewareChoice!]
}TablewareChoice
Complimentary tableware items, such as plates, napkins, utensils
Field Name | Description |
|---|---|
choiceUuid: UUID! | ID corresponding with the tableware item in the caterer's menu. |
isIncluded: Boolean! | This boolean term indicates whether the tableware is included on the order. |
itemCount: Int! | The number of pieces of tableware included on the order. |
name: String! | The name or description of the tableware item on the order. |
{
"choiceUuid": "7acc72ed-2240-4b9f-a903-f7873b94ba60",
"isIncluded": true,
"itemCount": 10,
"name": "Napkins"
}Input Objects
RejectOrderInput
Parameters for rejecting an order
Field Name | Description |
|---|---|
explanation: String | |
reason: RejectionReasonEnum! | Provides a reason for rejecting the order. Not all of the reasons are relevant to an API integration. |
{
"explanation": "This location can't accept any more orders for that delivery date",
"reason": "AT_DAILY_CAPACITY"
}Enums
Currency
Allowed currency values for money
Enum Name | Description |
|---|---|
USD | Currency is in US dollars (USD). |
FeeOrDiscountType
A list of fee or discounts types that can be included on an order. Applied to the feesAndDiscounts as a filter on the field's return type.
Enum Name | Description |
|---|---|
ADJUSTMENT | Adjustments can represent various alterations to the order total, such as refunds or corrections to previous charges. |
DELIVERY_FEE | Delivery fees are charged to cover the cost associated with delivering the order from the caterer to the customer. |
DISCOUNT | Discounts are applied to reduce the total amount due for the customer, often as a promotional offer or incentive. |
MISC_FEE | Miscellaneous fees can include various charges that do not fall under standard categories, such as concierge or specific administrative fees. |
OrderTypeEnum
Allowed values for order type
Enum Name | Description |
|---|---|
DELIVERY | The customer selects delivery, and the caterer is responsible for delivering the order themselves using their own fleet. |
TAKEOUT | The customers selects to pick up their order directly from the caterer's location, eliminating the need for delivery. |
THIRD_PARTY_DELIVERY | The customer selects delivery, and the caterer uses Dispatch, to deliver the order to the customer. |
OrderTypePerspective
Allowed values for an order type perspective. Applied to the orderType as a filter on the field's return type.
Enum Name | Description |
|---|---|
CATERER | Filters orderType information to align with the perspective of the Caterer. |
CUSTOMER | Filters orderType information to align with the perspective of the Customer. |
EZCATER | Filters orderType information to align with the perspective of ezCater. |
OrderSource
Allowed values for order sources. An order source represents what user flow the order originated from
Enum Name | Description |
|---|---|
CLUB_SODA | Order was placed through Club Soda, also known as Meal Program, a service that allows for grouping individual catering orders from multiple people into one larger order, typically for workplace consumption. |
DIRECT_ENTRY | Order was placed through Direct Entry, a feature within ezCater that allows restaurant partners to submit their own orders directly into the system |
EZ_ORDERING | Order was placed through Online Ordering, an ordering platform supported by ezCater that enables restaurant partners to facilitate online orders through their own websites. |
MARKETPLACE | Order was placed through the Marketplace, ezCater’s primary platform where users can place catering orders from a broad range of partner restaurants. |
RejectionReasonEnum
Allowed values for an order rejection reason, though some are unlikely to be relevant to an API integration.
Enum Name | Description |
|---|---|
AT_DAILY_CAPACITY | Used when the caterer has reached their maximum order capacity for the entire day. |
AT_HOURLY_CAPACITY | Used when the caterer has reached their maximum number of orders for a specific hour, rather than for the full day. |
COMMISSION_OR_FEES_TOO_HIGH | Used when the caterer rejects an order because the commission or fees associated with it are deemed too high. |
DISTANCE_TOO_FAR | Used when the caterer rejects an order because the delivery distance is beyond their serviceable range. |
DOES_NOT_OFFER_TAKE_OUT_OR_DELIVERY | Used when the caterer doesn't provide either takeout or delivery services. |
DOES_NOT_REMEMBER_SIGNING_UP_FOR_EZCATER | Used when the caterer claims no recollection of subscribing to ezCater services. |
EMERGENCY_CLOSURE | Used when unforeseen circumstances cause the caterer to shut down temporarily. |
HOLIDAY_CLOSURE | Used when the caterer has planned closures on holidays. |
LACK_OF_INVENTORY | Used when the caterer has insufficient stock or ingredients. |
LEAD_TIME_TOO_SHORT_TO_DELIVER | Used when there's insufficient time to deliver the order as requested. |
LEAD_TIME_TOO_SHORT_TO_PREPARE | Used when there's not enough time to prepare the order. |
MENU_INCORRECT | Used when there are issues with the menu items specified in the order. |
MISSING_CUSTOMER_CONTACT_INFORMATION | Used when the order cannot be fulfilled due to the lack of necessary customer contact details. |
NO_DRIVERS_AVAILABLE | Used when there are no drivers available to deliver the order. |
NO_TIP | Used when the lack of a tip influences the caterer's decision to reject the order. |
OWNERSHIP_CHANGED | Used when the ownership of the caterer has changed, which affects the order fulfillment capabilities. |
PERMANENTLY_CLOSED | Used when the caterer has ceased operations permanently. |
REASON_NOT_LISTED | Used when none of the listed reasons accurately describe the rejection. This is a catch-all category. |
STAFF_SHORTAGE | Used when there are not enough staff members to handle the order. |
TEMPORARILY_CLOSED | Used when the caterer is temporarily closed for short-term reasons. |
WEATHER | Used when adverse weather conditions preventing order fulfillment. |
WRONG_HOURS | Used when the order is placed outside of the caterer's operational hours. |
Scalars
BigInt
Represents non-fractional signed whole numeric values. Since the value may exceed the size of a 32-bit integer, it's encoded as a string.
Boolean
The Boolean scalar type represents true or false.
Date
ISO-8601 Date-only string, e.g. 2017-12-14
Float
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
ID
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
ISO8601DateTime
An ISO 8601-encoded datetime @specifiedBy(url: https://tools.ietf.org/html/rfc3339).
Int
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
JSON
Represents untyped JSON.
String
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
UTCTimestamp
iso8601 formatted date & timestamp in UTC.
UUID
Universally unique identifier as defined by RFC 4122.