diff --git a/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js b/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js
--- a/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js
+++ b/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js
@@ -586,13 +586,19 @@
    * This method is invoked before paying a ticket, it is intended to do global
    * modifications in the ticket with OBPOS_PrePaymentHook hook, after this hook
    * execution checkPaymentApproval is invoked
+   * OBPOS_PrePaymentApproval can be used to ensure certain order within the
+   * same hook
    */
   completePayment: function () {
     var me = this;
     OB.MobileApp.model.hookManager.executeHooks('OBPOS_PrePaymentHook', {
       context: this
     }, function () {
-      me.checkPaymentApproval();
+      OB.MobileApp.model.hookManager.executeHooks('OBPOS_PrePaymentApproval', {
+        context: me
+      }, function () {
+        me.checkPaymentApproval();
+      });
     });
   },
 
