Stacking Discounts

Voucherify enables you to apply multiple discounts to the same order. In this article, we will cover stacking multiple discounts (promo codes and auto-applied promotions). 


  1. Glossary
  2. How to stack discounts?
  3. Redemption rollback


Before we continue, read this short glossary with the key definitions you need to grasp to easily keep up with the rest of this guide. 


Discount can be assigned to the promo code (standalone or unique coupons, referral codes) or to auto-applied promotion tiers. In both cases, you can choose between many discount types and values (amount, percentage, unit, free shipping, fixed order price).

Discount effect

The discount effect defines how the discount is applied to the customer's order. You can choose between applying the discount to the whole cart or to specific items (selected in validation rules). There are many product-specific discount effects available for different discount types.

Order-level discount

Order-level discounts describe discounts that are applied to the whole cart, not to specific items.

Product-specific discount

Unlike order-level discounts, product-specific discounts are applied to specific items only. You can define discounted (included) items by using validation rules.


Redemption is a single usage of a promo code or a cart-level promotion. In terms of loyalty campaigns, redemption is triggered to exchange points for rewards. 

Redemption rollback

Rollback is an action that results in undoing the particular redemption. 

Order id

When you pass order details to Voucherify, it will automatically generate a unique order id assigned to this order. For example, order id:  ord_0dldgQpoCmO5h8J6nqEykhuy. Both internal order id and source id can be a reference to the order when stacking the discounts in redemption requests.  

Order source id

When passing order details to Voucherify, you can use source id to assign a unique order identifier from your system (external id) to the order. Both internal order id and source id can be a reference to the order when stacking the discounts in redemption requests.  

How to stack discounts?

Voucherify lets you apply many discounts to the same order. It comes down to the following steps:

  1. Redeem the first discount and pass order details in the redemption request. In response, Voucherify returns a unique order id with an applied discount.
  2. To apply the second and further discounts, you need to redeem each discount using a separate redemption request and the same order id. 
Note that when redeeming the second and subsequent discounts, you should pass  only the order id in the order details. Passing remaining order details comes in handy once you want to overwrite the order structure saved under the given order id.
With a single redemption request, you can apply only one cart-level discount or coupon code. However, if you use the same order id in different redemption requests, all discounts valid for the given order will be applied. 
When calculating discounts and amounts during the redemption, the API takes into account all discounts applied to the order with the former requests. 
On the screen below, you can see a detailed view of the order with two discounts applied (auto-applied discount and coupon code). 

Redemption rollback

When it comes to stacked discounts, you can only roll back the last discount applied to the order. To roll back any former discount, firstly roll back all the discounts applied after the discount you want to revert. 

You can roll back the latest redemption in the detailed order view in the dashboard or by using a dedicated API endpoint. 

Read more about stacking discounts in the Developer Hub.
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us