Skip to main content

Discount Property


Discount Property

You can use the Discount Rules Builder and the Discount Output nodes to define how discounts are applied to the products and different prices flexibly. 

When configuring a discount output, you need to configure details of the discounts and the conditions under which the discounts will be applied:

  • In the Discounts section, you can specify one or more discounts. For each discount, you define the discount amount or percentage, and how long the discount will last. If you’ve created more than one discount, you can specify the applying order for the discounts.
  • In the Discount Attributes section, you can add attributes to each discount item to fulfill specific discount scenarios. The discount attributes serve as additional metadata that you can attach to your discount output. Your front end can use the attributes to display customised information about the product, charge or charge definitions.

    For example, for usage-based charges, you can reference a usage attribute of the charge or charge definition with a discount attribute, which will serve as an instruction to override the original attribute as part of the discount.

    Available attribute types are Text, Link and Number. The defined attributes will be returned in the response under each discount item.

  • In the Conditions section, you can specify products where the discounts will be applied. You can use the Pricing Filters and Charge Filters sections to define conditions that will further filter the prices and charges of the selected products. For example, you can create a filter to apply discounts to prices that are greater than a certain amount. For the field that contains enum values, (define as "picklist" type in Zuora Billing), you can also select from the defined enum values when the condition is set to Equals and Source is set to Value.


  • If multiple conditions are specified, you can use the And, Or, and None radio buttons to specify the logic.
  • You can set conditions at different levels: product and price. Product rules will be executed prior to the price rules. Therefore, if items are excluded at the product level, they won't be included at the price level.

You can stack multiple Discount Output nodes on the Discount Rules Builder.

In the response body of the Dynamic Packaging API, discount information will be displayed under each price item. For example:

"discounts" : [ {
    "items" : [ {
      "order" : 1,
      "type" : "FIXED",
      "value" : 2,
      "occurrence" : "ONE_OFF",
      "startPolicy" : {
        "type" : "ON_CHARGE_START",
        "offset" : null
      "endPolicy" : {
        "type" : "BEFORE_CHARGE_END",
        "offset" : {
          "value" : 3,
          "unit" : "MONTH"
      "frequency" : {
        "value" : 1,
        "unit" : "CHARGE_BILLING_PERIOD"
      "attributes": {
       "device-count": 4
    } ],
    "orderType" : "SEQUENTIAL"
  } ]

In the above example, the device-count discount attribute is used to instruct an override of the value of the device-count attribute at the product level.

If there is a quantity attribute at the charge definition level, you can also instruct an override at the discount level by adding a quantity discount attribute.