diff --git a/src/org/openbravo/retail/posterminal/OrderLoader.java b/src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java
@@ -1096,6 +1096,9 @@
           }
           promotion.setLineNo((long) ((p + 1) * 10));
           promotion.setSalesOrderLine(orderline);
+          if (jsonPromotion.has("identifier") && !jsonPromotion.isNull("identifier")) {
+            promotion.setObdiscIdentifier(jsonPromotion.getString("identifier"));
+          }
           orderline.getOrderLineOfferList().add(promotion);
         }
       }
diff --git a/src/org/openbravo/retail/posterminal/PaidReceipts.java b/src/org/openbravo/retail/posterminal/PaidReceipts.java
--- a/src/org/openbravo/retail/posterminal/PaidReceipts.java
+++ b/src/org/openbravo/retail/posterminal/PaidReceipts.java
@@ -157,6 +157,9 @@
             jsonPromo.put("amt", displayedAmount);
             jsonPromo.put("actualAmt", promotion.getTotalAmount());
             jsonPromo.put("hidden", BigDecimal.ZERO.equals(displayedAmount));
+            if (promotion.getObdiscIdentifier() != null) {
+              jsonPromo.put("identifier", promotion.getObdiscIdentifier());
+            }
             promotions.put(jsonPromo);
             hasPromotions = true;
           }
diff --git a/web/org.openbravo.retail.posterminal/js/components/renderorderline.js b/web/org.openbravo.retail.posterminal/js/components/renderorderline.js
--- a/web/org.openbravo.retail.posterminal/js/components/renderorderline.js
+++ b/web/org.openbravo.retail.posterminal/js/components/renderorderline.js
@@ -81,10 +81,11 @@
           // continue
           return;
         }
+        var identifierName = d.identifier ? d.identifier : d.name;
         this.createComponent({
           style: 'display: block;',
           components: [{
-            content: '-- ' + d.identifier,
+            content: '-- ' + identifierName,
             attributes: {
               style: 'float: left; width: 80%;'
             }
diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -1116,8 +1116,6 @@
           discountRule = OB.Model.Discounts.discountRules[rule.attributes.discountType];
       if (discountRule.getIdentifier) {
         disc.identifier = discountRule.getIdentifier(rule, discount);
-      } else {
-        disc.identifier = discount.name || rule.get('printName') || rule.get('name');
       }
       disc.name = discount.name || rule.get('printName') || rule.get('name');
       disc.ruleId = rule.id || rule.get('ruleId');
