An Order object contains details about an order. In the
orders API, you use the Order object to create orders, update
orders, and retrieve information about orders. You send Order
objects in requests to create and update orders. The orders API returns
Order objects in response to requests.
This topic discusses some related sets of values in the
Order object and how they are populated.
An Order object contains details about:
-
What the guest ordered
-
How the order is prepared and processed
-
How the guest receives the order
-
What the guest is charged for the order
-
How the guest pays for the order
The following diagram provides a high-level overview of the
Order object contents:

A GUID is a unique identifier that Toast generates when new objects are created.
You use GUIDs to identify configured objects that are relevant to
the order, such as menu items, dining options, and discounts. Here is an
example of a DiningOption object, which provides a dining
option GUID to identify the dining option for an order.
"diningOption": {
"guid": "18855a26-40d4-4a8f-b484-c6af211dd597"
},To identify an object, you can use either guid or
multilocationId. For more information about
multilocationId and how to use it, see Using multi-location IDs in orders.
When you create an order, the Toast platform generates GUIDs for the
Order object, Check objects, and
Selection objects. These GUIDs are returned in orders API
responses.
You use those GUIDs to identify an order, check, or menu item selection to retrieve or to modify.
In the Order object, the status information reflects
the current status of the order, check, or menu item selection. Statuses
can reflect the current status of fulfillment or payment.
Status information is returned in responses.
In most cases, the Toast platform updates the status values based on actions to an item, check, or order.
An order can have the following status values:
approvalStatus-
This status indicates the current status of the order in the fulfillment process. It only reflects whether the order is sent to the kitchen. It does not reflect whether the order is completed, delivered, or paid for.
For future orders,
approvalStatusisFUTURE. Restaurant employees do not receive the order until it is time to fulfill it.For new orders that need to be approved by a restaurant employee,
approvalStatusisNEEDS_APPROVAL.When the order is approved,
approvalStatuschanges toAPPROVED. New orders that do not require approval are automaticallyAPPROVED.If an order is not approved after a specific amount of time,
approvalStatuschanges fromNEEDS_APPROVALtoNOT_APPROVED. deliveryInfo.deliveryState-
For delivery orders, the
deliveryStatevalue indicates the current status of the order delivery.Until the order is ready to be delivered,
deliveryStateisPENDING.When the delivery driver picks up the order,
deliveryStateisPICKED_UP.When the delivery driver is on their way to the delivery address,
deliveryStateisIN_PROGRESS.When the delivery is complete,
deliveryStateisDELIVERED.
A check can have the following status values:
paymentStatus-
The overall status of the check payment.
The
paymentStatusisOPENuntil a payment is applied.The
paymentStatusisPAIDwhen a payment is applied but has not been adjusted for the tip.The
paymentStatusisCLOSEDwhen the check is fully paid. Payment.paymentStatus-
For credit card payments, the status of the credit card processing.
The status indicates the current approval and capture status of the credit card payment. It also reflects when a payment is cancelled or voided.
Payment.refundStatus-
The status of a refund on a payment.
NONEindicates that the refund was not processed.PARTIALindicates that a partial refund was issued.FULLindicates that a full refund was issued.
A menu item selection can have the following status values:
fulfillmentStatus-
The status of the preparation of the menu item selection. The
fulfillmentStatusindicates whether the kitchen is currently working to prepare the item.NEWmenu item selections were added to a check but are not sent to the KDS for preparation.HOLDmenu item selections were paused by a restaurant employee. They are not sent to the KDS for preparation.SENTmenu item selections were fired and appear in the KDS for preparation.READYmenu item selections have completed preparation. They are fulfilled and do not appear on the KDS. TheREADYstatus is only used If your restaurant uses the Toast platform KDS.
In the Order object, the order, checks, and menu item
selections have multiple dates and times associated with them. The dates
and times track events related to the order placement and processing,
including when the order entities are created, updated, completed, and
paid for.
Many order-related dates and times are set by the Toast platform
based on the creation or modification of an order entity. For example,
when an order is created, the Toast platform sets the
createdDate. Or when an order is voided, the Toast platform
sets the voidDate. You do not set those dates, but you do see
those dates when you retrieve order details.
The following timestamps are associated with orders, checks, and menu item selections.
The following dates are set when an order is created.
createdDate-
Applies to:
Order,Check,SelectionPopulated by: Toast platform
Format: Date-time string
The date and time when the Toast platform received the order, check or menu item selection.
Populated by Toast when it receives the order, check, or menu item selection.
openedDate-
Applies to:
Order,CheckPopulated by: Either provided in the
Orderobject or populated by the Toast platform.Format: Date-time string
The date and time when the order or check was opened.
For dine-in and as soon as possible (ASAP) orders,
openedDateshould matchcreatedDate.For future orders,
openedDateshould matchpromisedDate.If you do not provide a value for
openedDate, then the Toast platform setsopenedDateto the current date and time, which will be nearly identical tocreatedDate. promisedDate-
Applies to:
OrderPopulated by: Provided in the order request
Format: Date-time string
For future orders, the date and time that the order is scheduled to be fulfilled.
For dine-in and ASAP orders,
promisedDateisnull. estimatedFulfillmentDate-
Applies to:
OrderPopulated by: Toast platform
Format: Date-time string
The date and time when a delivery or takeout order is expected to be ready.
For dine-in and ASAP orders, calculated by the Toast platform based on the
openedDateand the required preparation time. For takeout and delivery orders, the calculation also includes any throttling that is currently in effect.For future orders, matches
promisedDate.
The following dates and times are set based on when an order is fulfilled, delivered, and paid for.
businessDate-
Applies to:
OrderPopulated by: Toast platform
Format: Integer (
yyyymmdd)The date when the order was fulfilled.
Calculated by the Toast platform based on the business date cutoff time for the restaurant. The cutoff time is configured In Toast Web. In the restaurants API, the cutoff time is returned as the value of
closeoutHour.By default, the cutoff time is 4:00 AM. For example, an order that is fulfilled at 1:00 AM on December 3 would be considered fulfilled on December 2.
dispatchedDate-
Applies to:
OrderPopulated by: Toast platform
Format: Date-time string
For delivery orders, the date and time when the order is ready to be delivered and assigned to a driver.
Set when the order is marked as ready to deliver on a Toast POS device.
deliveredDate-
Applies to:
OrderPopulated by: Toast platform
Format: Date-time string
For delivery orders, the date and time when the order was marked as delivered.
Set when the employee marks the order as delivered on a Toast POS device.
paidDate-
Applies to:
Order,CheckPopulated by: Either provided in the
Orderobject or calculated by the Toast platformFormat: Date-time string
The most recent date when the order or check received a payment.
If you provide a payment without a payment date, the Toast platform sets
paidDateto the current system time. closedDate-
Applies to:
Order,CheckPopulated by: Toast platform
Format: Date-time string
The date when the order and check are paid.
For orders with tips, the Toast platform populates
closedDatewhen the payment and tip are added.For orders without tips, the Toast platform populates
closedDateduring the nightly closeout batch.
The following dates are set based on changes to an order.
modifiedDate-
Applies to:
Order,Check,SelectionPopulated by: Toast platform
Format: Date-time string
The most recent date that the order, check, or menu item selection was modified.
Populated when an order entity is created and when a change occurs to the order, check, or menu item selection.
deletedDate-
Applies to:
Order,CheckPopulated by: Toast platform
Format: Date-time string
The date and time when the order or check was deleted.
Populated when
deletedis set totrue.If
deletedisfalse, thendeletedDateuses the Unix epoch as a placeholder value.When an order is deleted, the checks are deleted and inherit the
deletedanddeletedDatevalues. voidDate-
Applies to:
Order,Check,SelectionPopulated by: Toast platform
Format: Date-time string
The date and time when the order, check, or menu item selection was voided.
Populated when the order, check, or menu item selection is voided.
When an order is voided, the checks and menu item selections are voided and inherit the
voidDate.When a check is voided, the menu item selections for that check are voided and inherit the
voidDate. voidBusinessDate-
Applies to:
Order,Check,SelectionPopulated by: Toast platform
Format: Integer (
yyyymmdd)The business date that corresponds to the value of
voidDate.Populated based on
voidDateand the business date cutoff time for a restaurant.The cutoff time is set in Toast Web. In the restaurants API, the cutoff time is returned as the value of
closeoutHour.By default, the cutoff time is 4:00 AM. For example, if a check is voided at 1:00 AM on January 5,
voidedBusinessDatewould be January 4.
The order amount values determine the amount that guests are charged. Amount values are associated with menu item selections and checks.
For most of the amount values in the Order object, the
Toast platform either retrieves the amount from the restaurant
configuration, or uses an algorithm to calculate it based on other values.
For example, prices for menu selection items are configured. Amounts such
as taxes and check totals are calculated.
Order amounts include the following components:
- Menu item prices
-
The prices of the selected menu items.
For most items, prices are specified in the menu configuration.
Some items are open price items, which means that you provide the price when you create the order.
For more information, see the menu pricing section of the Platform Guide.
- Taxes
-
The tax charged for the menu selection items.
Taxes are calculated based on the applicable taxes and tax rates.
For more information on taxes and tax rates, see the taxes section of the Platform Guide.
- Service charges
-
The service charges that are added to checks.
On the Toast platform, some service charges are added automatically based on the order type. Other service charges can be added by the restaurant employee. In the orders API, all service charges must be included in the order request. Service charges are never applied automatically to orders from the orders API.
Service charges might also be taxable.
For more information on service charges, see the service charges section in the Platform Guide.
- Discounts
-
The applicable discounts that reduce the amount of a check or a menu item selection.
For more information on configuring discounts, see Managing discounts in the Platform Guide.
A menu item selection has the following amounts associated with it.
receiptLinePrice-
The price of a menu item selection before the quantity, taxes, discounts, and modifier option adjustments are applied. For items that use size pricing,
receiptLinePriceis the price of the selected size.For example, if the menu item selection is for two orders of fries,
receiptLinePriceis the price of one order of fries. If a menu item selection is for three large drinks,receiptLinePriceis the price of one large drink.Populated based on the menu configuration, or using the value provided in
externalPriceAmountoropenPriceAmount. externalPriceAmount-
Only used in orders that are created by marketplace facilitator organizations. Provided with new orders. Not returned for existing orders.
The price of the menu item selection as calculated by the marketplace facilitator. This is the price before the quantity, taxes, discounts, and modifier option adjustments are applied.
For more information about marketplace facilitator orders, see Marketplace facilitator orders.
Used to populate
receiptLinePrice. openPriceAmount-
Provided with new orders for open price menu items. Not returned for existing orders.
The price of the menu item selection before the quantity, taxes, discounts, and modifier option adjustments are applied.
Used to populate
receiptLinePrice. preDiscountPrice-
Gross sales price for the item before tax and discounts. Reflects the ordered quantity.
prediscountPrice = receiptLinePrice x quantity Discount.discountAmount-
The currency amount of the discount.
For open discounts, you provide
discountAmountwhen you add the discount.Otherwise, the Toast platform populates
discountAmountbased on the discount configuration.Returned for all discounts.
Discount.discountPercent-
For a percent discount, the percentage of the discount. For example, for a 10% discount,
discountPercentis 10.Used to calculate
discountAmountfor percent discounts. Discount.nonTaxDiscountAmount-
The currency amount of the discount on the non-taxable portion of the menu item selection.
In most cases,
nonTaxDiscountAmountis identical todiscountAmount.The values are only different when you apply a percent discount to an item that has the tax included in the price. In that case,
nonTaxDiscountAmountis less thandiscountAmount. price-
Final price charged to the guest for the item. Includes the ordered quantity and discounts. Does not include tax.
price = preDiscountPrice - sum(Discount.discountAmount) AppliedTax.taxAmount-
The tax amount for a specific tax. Calculated by the Toast platform based on the specific tax configuration.
tax-
The total tax on the menu item selection.
tax = sum(AppliedTax.taxAmount)
A check can have the following amount values associated with it:
Discount.discountAmount-
The currency amount of a discount on the check.
For open discounts, provided in new orders.
Otherwise, populated by the Toast platform based on the discount configuration.
Returned for all discounts.
Discount.discountPercent-
For a percent discount, the percentage of the discount.
For example, for a 10% discount,
discountPercentis 10.Used to calculate
discountAmountfor percent discounts. Discount.nonTaxDiscountAmount-
The currency amount of the discount on the non-taxable portion of the check.
In most cases,
nonTaxDiscountAmountis identical todiscountAmount.The values are only different when you apply a percent discount to a check that contains items that have the tax included in the price. In that case,
nonTaxDiscountAmountis less thandiscountAmount. ServiceCharge.chargeAmount-
The amount of a service charge.
For open amount service charges, provided with the order.
Otherwise, the Toast platform populates the amount based on the service charge configuration.
ServiceCharge.AppliedTax.taxAmount-
The amount of an applicable tax on the service charge.
Calculated by the Toast platform based on the specific tax configuration.
amount-
The total calculated price of the check including discounts and service charges. The
amountdoes not include gratuity or taxes. Response only.amount = sum(Item.price) + sum(Service charge.filter(gratutity=false).chargeamount) taxAmount-
The total tax on the check. Includes the taxes on the menu item selections and service charges.
taxAmount = sum(Item.tax) + sum(Service Charge.Applied Tax.taxAmount) totalAmount-
The total amount of the check.
totalAmountincludes discounts, service charges, and taxes.totalAmount = amount + taxAmounttotalAmountis not affected by refunds. Refund information is provided in the menu item selection and payment details.totalAmountis affected by voids. When you void a menu item selection,totalAmountis reduced by the amount charged for the menu item selection.
To demonstrate the item and check amounts, we'll use a simple example order.
The order contains a single menu item selection for two grilled cheese sandwiches. A grilled cheese sandwich costs $8.00.
The guest receives a $1.00 discount on the item.
The item is subject to a 5% state tax and a 4% city tax.
The check has a $3.00 delivery service charge that is not taxed.
For the menu item selection, the amounts are as follows:
|
Amount |
Value |
Calculation |
|---|---|---|
|
|
8.0 |
In the menu, a grilled sandwich costs $8.00 |
|
|
16.0 |
Multiply receiptLinePrice (8.0) by
quantity (2).
|
|
|
1.0 |
The applied discount is for $1.00. |
|
|
1.0 |
The applied discount is for $1.00. The tax is not included in the price, and the discount is a fixed amount discount, so the two discount amount values are the same. |
|
|
15.0 |
Subtract the total |
|
|
0.75 |
Multiply the rate for the state tax (.05) by
the price (15.0).
|
|
|
0.65 |
Multiply the |
|
|
1.35 |
Add the |
For the check, the amounts are as follows:
|
Amount |
Value |
Calculation |
|---|---|---|
|
|
No values |
There are no discounts on the check, just on the item. |
|
|
3.0 |
There is a $3.00 delivery charge. |
|
|
No values |
The delivery charge is not taxed. |
|
|
18.0 |
Add the |
|
|
1.35 |
The total of the |
|
|
19.35 |
Add |