diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/TestIdPack.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/TestIdPack.java
--- a/src-test/org/openbravo/test/mobile/retail/pack/selenium/TestIdPack.java
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/TestIdPack.java
@@ -1342,6 +1342,8 @@
       "actionButtonsContainer_checkStockButton", EnyoKind.BUTTON); //
   public static TestIdConstructor BUTTON_EDIT_DELETEDISCOUNT = new TestIdConstructor(
       "actionButtonsContainer_removeDiscountButton", EnyoKind.BUTTON); //
+  public static TestIdConstructor BUTTON_EDIT_DESCRIPTION = new TestIdConstructor(
+      "actionButtonsContainer_descriptionButton", EnyoKind.BUTTON); //
   public static TestIdConstructor BUTTON_EDIT_DELETEDISCOUNTDIALOGDELSELECTED = new TestIdConstructor(
       "bodyButtons_deleteDiscountDeleteSelected", EnyoKind.BUTTON); //
   public static TestIdConstructor LABEL_EDIT_DESCRIPTION = new TestIdConstructor(
diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/receipts/ZHideActionButtons.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/receipts/ZHideActionButtons.java
new file mode 100644
--- /dev/null
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/receipts/ZHideActionButtons.java
@@ -0,0 +1,216 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.0  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo S.L.U.
+ * All portions are Copyright (C) 2017 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ *
+ * @author JWE
+ *
+ */
+
+package org.openbravo.test.mobile.retail.pack.selenium.tests.receipts;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.UUID;
+
+import org.junit.Test;
+import org.openbravo.test.mobile.core.selenium.SeleniumHelper;
+import org.openbravo.test.mobile.core.utils.OBWait;
+import org.openbravo.test.mobile.retail.mobilecore.annotations.TestClassAnnotations;
+import org.openbravo.test.mobile.retail.mobilecore.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.retail.pack.selenium.TestIdPack;
+import org.openbravo.test.mobile.retail.pack.selenium.terminals.WebPOSTerminalHelper;
+
+@TestClassAnnotations(isHighVolumeCompatible = true)
+public class ZHideActionButtons extends WebPOSTerminalHelper {
+
+  private final String preferenceID = getUUID();
+  private final String adUserId = "3073EDF96A3C42CC86C7069E379522D2";
+  private final String adClientId = "39363B0921BB4293B48383844325E84C";
+  private final String preferenceOrg = "D270A5AC50874F8BA67A88EE977F8E3B";
+
+  @Test
+  public void test() {
+    try {
+      createPermission("OBPOS_ReturnLine");
+      reload();
+      tap(TestIdPack.BUTTON_MENU);
+      tap(TestIdPack.BUTTON_MENU_USER);
+      tap(TestIdPack.BUTTON_USER_PROFILE);
+      verify(TestIdPack.PROFILE_DIALOG_POPUP_TITLE, "Edit Profile");
+      TestIdPack.COMBO_USER_PROFILE_ROLE_LIST.enyoNode().executeExtension(".setSelected(0)");
+      tap(TestIdPack.BUTTON_USER_PROFILE_APPLY);
+      verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+
+      tap(TestIdPack.BUTTON_SEARCH);
+      write(TestIdPack.FIELD_SEARCH_TEXT,
+          TestIdPack.BUTTON_SEARCHPRODUCT_BASECAMPLANTERN.getRowName());
+      tap(TestIdPack.BUTTON_SEARCH_EXECUTE);
+      tap(TestIdPack.BUTTON_SEARCHPRODUCT_BASECAMPLANTERN);
+      tap(TestIdPack.BUTTON_SEARCHPRODUCT_BASECAMPLANTERN);
+      tap(TestIdPack.BUTTON_MENU);
+      tap(TestIdPack.BUTTON_MENU_RECEIPTDISCOUNTS);
+      tap(TestIdPack.BUTTON_RECEIPTDISCOUNTS_CHECKAPPLYALL);
+      tap(TestIdPack.BUTTON_RECEIPTDISCOUNTS_APPLY);
+      verify(TestIdPack.LABEL_TOTALTOPAY, "105.46");
+      tap(TestIdPack.BUTTON_EDIT);
+
+      tap(TestIdPack.BUTTON_EDIT);
+      boolean result = (boolean) SeleniumHelper
+          .executeScriptWithReturn("!OB.UTIL.isNullOrUndefined(document.getElementById('terminal_containerWindow_pointOfSale_multiColumn_rightPanel_toolbarpane_edit_editTabContent_actionButtonsContainer_returnLine'))");
+      assertThat(result, equalTo(false));
+      isVisible(TestIdPack.BUTTON_EDIT_DELETELINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_SPLITLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_CHECKSTOCK, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETEDISCOUNT, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DESCRIPTION, true);
+
+      updatePermission("OBPOS_ActionButtonDelete");
+      reload();
+
+      tap(TestIdPack.BUTTON_EDIT);
+      isVisible(TestIdPack.BUTTON_EDIT_RETURNLINE, true);
+      boolean result1 = (boolean) SeleniumHelper
+          .executeScriptWithReturn("!OB.UTIL.isNullOrUndefined(document.getElementById('terminal_containerWindow_pointOfSale_multiColumn_rightPanel_toolbarpane_edit_editTabContent_actionButtonsContainer_deleteLine'))");
+      assertThat(result1, equalTo(false));
+      isVisible(TestIdPack.BUTTON_EDIT_SPLITLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_CHECKSTOCK, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETEDISCOUNT, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DESCRIPTION, true);
+
+      updatePermission("OBPOS_ActionButtonDescription");
+      reload();
+
+      tap(TestIdPack.BUTTON_EDIT);
+      isVisible(TestIdPack.BUTTON_EDIT_RETURNLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETELINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_SPLITLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_CHECKSTOCK, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETEDISCOUNT, true);
+      boolean result2 = (boolean) SeleniumHelper
+          .executeScriptWithReturn("!OB.UTIL.isNullOrUndefined(document.getElementById('terminal_containerWindow_pointOfSale_multiColumn_rightPanel_toolbarpane_edit_editTabContent_actionButtonsContainer_descriptionButton'))");
+      assertThat(result2, equalTo(false));
+
+      updatePermission("OBPOS_ActionButtonSplit");
+      reload();
+
+      tap(TestIdPack.BUTTON_EDIT);
+      isVisible(TestIdPack.BUTTON_EDIT_RETURNLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETELINE, true);
+      boolean result3 = (boolean) SeleniumHelper
+          .executeScriptWithReturn("!OB.UTIL.isNullOrUndefined(document.getElementById('terminal_containerWindow_pointOfSale_multiColumn_rightPanel_toolbarpane_edit_editTabContent_actionButtonsContainer_splitlineButton'))");
+      assertThat(result3, equalTo(false));
+      isVisible(TestIdPack.BUTTON_EDIT_CHECKSTOCK, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETEDISCOUNT, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DESCRIPTION, true);
+
+      updatePermission("OBPOS_ActionButtonCheckStock");
+      reload();
+
+      tap(TestIdPack.BUTTON_EDIT);
+      isVisible(TestIdPack.BUTTON_EDIT_RETURNLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETELINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_SPLITLINE, true);
+      boolean result4 = (boolean) SeleniumHelper
+          .executeScriptWithReturn("!OB.UTIL.isNullOrUndefined(document.getElementById('terminal_containerWindow_pointOfSale_multiColumn_rightPanel_toolbarpane_edit_editTabContent_actionButtonsContainer_checkStockButton'))");
+      assertThat(result4, equalTo(false));
+      isVisible(TestIdPack.BUTTON_EDIT_DELETEDISCOUNT, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DESCRIPTION, true);
+
+      updatePermission("OBPOS_ActionButtonRemoveDiscount");
+      reload();
+
+      tap(TestIdPack.BUTTON_EDIT);
+      isVisible(TestIdPack.BUTTON_EDIT_RETURNLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_DELETELINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_SPLITLINE, true);
+      isVisible(TestIdPack.BUTTON_EDIT_CHECKSTOCK, true);
+      boolean result5 = (boolean) SeleniumHelper
+          .executeScriptWithReturn("!OB.UTIL.isNullOrUndefined(document.getElementById('terminal_containerWindow_pointOfSale_multiColumn_rightPanel_toolbarpane_edit_editTabContent_actionButtonsContainer_removeDiscountButton'))");
+      assertThat(result5, equalTo(false));
+      isVisible(TestIdPack.BUTTON_EDIT_DESCRIPTION, true);
+
+    } finally {
+      deletePermission();
+      reload();
+      tap(TestIdPack.BUTTON_PAY);
+      tap(TestIdPack.BUTTON_PAY_EXACT);
+      tap(TestIdPack.BUTTON_PAY_DONE);
+      verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+      tap(TestIdPack.BUTTON_MENU);
+      tap(TestIdPack.BUTTON_MENU_USER);
+      tap(TestIdPack.BUTTON_USER_PROFILE);
+      verify(TestIdPack.PROFILE_DIALOG_POPUP_TITLE, "Edit Profile");
+      TestIdPack.COMBO_USER_PROFILE_ROLE_LIST.enyoNode().executeExtension(".setSelected(1)");
+      tap(TestIdPack.BUTTON_USER_PROFILE_APPLY);
+      try {
+        Thread.sleep(2000);
+      } catch (InterruptedException e) {
+        e.printStackTrace();
+      }
+      new OBWait() {
+        @Override
+        protected boolean until(int currentIteration) {
+          if (isShowLoadingActive()) {
+            return false;
+          } else {
+            return true;
+          }
+        }
+
+        @Override
+        protected void timeout() {
+          throw new RuntimeException("Loading window has not finished");
+        }
+      };
+      verify(TestIdPack.LABEL_TOTALTOPAY, "0.00");
+    }
+  }
+
+  private void createPermission(String preferenceProperty) {
+    new DatabaseHelperInsertUpdateOrDelete()
+        .execute(
+            String
+                .format(
+                    "insert into ad_preference(ad_preference_id, ad_client_id, ad_org_id, createdby, updatedby, ad_user_id, value, property, ispropertylist) "
+                        + "values('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
+                    preferenceID, adClientId, preferenceOrg, adUserId, adUserId, adUserId, "N",
+                    preferenceProperty, "Y"), 1);
+  }
+
+  private void updatePermission(String preferenceProperty) {
+    new DatabaseHelperInsertUpdateOrDelete().execute(String.format(
+        "update ad_preference set property = '%s' where ad_preference_id = '%s'",
+        preferenceProperty, preferenceID), 1);
+  }
+
+  private void deletePermission() {
+    new DatabaseHelperInsertUpdateOrDelete().execute(
+        String.format("delete from ad_preference where ad_preference_id = '%s'", preferenceID), 1);
+  }
+
+  private String getUUID() {
+    String randomUUID = UUID.randomUUID().toString();
+    randomUUID = randomUUID.toUpperCase();
+    return randomUUID.replace("-", "");
+  }
+
+  private boolean isShowLoadingActive() {
+    return (boolean) SeleniumHelper
+        .executeScriptWithReturn("OB.MobileApp.view.$.containerLoading.showing");
+  }
+}
