Add item-level discounts

Adds one or more item-level discounts to menu item selections in a check in an existing order. Include an array of Discount objects in the message body.

For more information, see the Toast Developer Guide.

Securityoauth2
Request
path Parameters
checkGuid
required
string

The Toast platform identifier of the check that you are adding a discount to.

orderGuid
required
string

The Toast platform identifier of the order that you are adding a discount to.

selectionGuid
required
string

The Toast platform identifier of the menu item selection that you are adding a discount to.

Request Body schema: application/json

A JSON array of AppliedDiscount objects that identify the discounts you are adding.

Array
object (AppliedDiscountReason)
appliedPromoCode
string

The promo code that was applied for this discount.

For a POSTed order, the Toast platform cannot validate the promo code.

object (ExternalReference)

A wrapper object with fields that allow reference to a Toast entity by Toast GUID.

Array of objects (ExternalReference)

A list of menu item selections that this combo discount applies to. Empty for non-combo discounts. Response only.

object (ToastReference)

A wrapper object with fields that allow reference to a Toast entity by Toast GUID.

discountAmount
number <double>

The discount amount. This amount is subtracted from the check or item.

discountPercent
number <double>

The percent value (0-100) of the applied discount when the discountType is PERCENT or OPEN_PERCENT. For other discount types, this value is null.

discountType
string

The behavior of this discount.

Valid values:

  • BOGO - Buy One, Get One. The guest receives a discount based on purchasing a specific item or items.
  • PERCENT - The guest receives a specific percentage off of the price.
  • FIXED - The guest receives a fixed currency amount off of the price.
  • OPEN_PERCENT - The guest receives a percentage off of the price. The percentage is specified when the order is placed.
  • OPEN_FIXED - The guest receives a currency amount off of the price. The amount is specified when the order is placed.
  • FIXED_TOTAL - The guest pays a specified discounted price when they purchase specific items. Also referred to as a combo discount.
Enum: "BOGO" "PERCENT" "FIXED" "OPEN_PERCENT" "OPEN_FIXED" "FIXED_TOTAL"
entityType
required
string

The type of object this is. Response only.

externalId
string

External identifier string that is prefixed by the naming authority. You can use the orders API to set an externalId for an order and then GET the order with that externalId.

guid
required
string

The GUID maintained by the Toast platform.

object (LoyaltyDetails)

Information about the loyalty program discount that is applied to a check. The loyalty program account is identified in the AppliedLoyaltyInfo value for the check.

name
string

The name of the applied discount. Response only.

nonTaxDiscountAmount
number <double>

The amount that a discount reduces a menu item price, excluding any discount amount applied to taxes.

In most cases, a discount only applies to the menu item price, and the nonTaxDiscountAmount is the same as the discountAmount.

If you apply a discount to a menu item that includes tax in its price, the nonTaxDiscountAmount is less than discountAmount.

processingState
string

Applies to loyalty program discounts only. Loyalty program reward discounts are validated and then applied, or redeemed, by the third-party loyalty program service provider depending on the state of the Toast platform order.

This value indicates the state of the discount in that validation and application process. Response only.

Valid values:

  • PENDING_APPLIED - The loyalty program service provider confirmed that the reward discount is valid for the order and customer. The reward is not yet redeemed, or applied to the customer's loyalty account.
  • APPLIED - The reward discount is redeemed. The reward is no longer available from the customer's loyalty program account.
  • PENDING_VOID - The reward discount was removed from the Toast platform order. The reward is not available from the customer's loyalty program account until the loyalty program service provider processes the void operation.
  • VOID - The reward discount was removed from the Toast platform order and the reward is available from the customer's loyalty program account again.
Enum: "PENDING_APPLIED" "APPLIED" "PENDING_VOID" "VOID"
Array of objects (AppliedDiscountTrigger)

Optional items that triggered this discount. Response only.

Responses
200

A JSON Order object that includes the discount you added.

400

The API cannot process the request.

post/orders/{orderGuid}/checks/{checkGuid}/selections/{selectionGuid}/appliedDiscounts
Request samples
application/json
[
  • {
    }
]
Response samples
application/json
{
  • "guid": "string",
  • "entityType": "string",
  • "externalId": "string",
  • "openedDate": "2019-08-24T14:15:22Z",
  • "modifiedDate": "2019-08-24T14:15:22Z",
  • "promisedDate": "2019-08-24T14:15:22Z",
  • "channelGuid": "3c66b5cf-1850-49e6-aef3-40576e6de979",
  • "diningOption": {
    },
  • "checks": [
    ],
  • "table": {
    },
  • "serviceArea": {
    },
  • "restaurantService": {
    },
  • "revenueCenter": {
    },
  • "source": "string",
  • "duration": 0,
  • "deliveryInfo": {
    },
  • "requiredPrepTime": "string",
  • "estimatedFulfillmentDate": "2019-08-24T14:15:22Z",
  • "numberOfGuests": 0,
  • "voided": true,
  • "voidDate": "2019-08-24T14:15:22Z",
  • "voidBusinessDate": 0,
  • "paidDate": "2019-08-24T14:15:22Z",
  • "closedDate": "2019-08-24T14:15:22Z",
  • "deletedDate": "2019-08-24T14:15:22Z",
  • "deleted": true,
  • "businessDate": 0,
  • "server": {
    },
  • "pricingFeatures": [
    ],
  • "approvalStatus": "NEEDS_APPROVAL",
  • "guestOrderStatus": "string",
  • "createdDevice": {
    },
  • "createdDate": "2019-08-24T14:15:22Z",
  • "initialDate": 0,
  • "lastModifiedDevice": {
    },
  • "curbsidePickupInfo": {
    },
  • "deliveryServiceInfo": {
    },
  • "marketplaceFacilitatorTaxInfo": {
    },
  • "createdInTestMode": true,
  • "appliedPackagingInfo": {
    },
  • "excessFood": true,
  • "displayNumber": "string"
}