diff --git a/web/org.openbravo.retail.selfcheckout/source/panels/selectPaymentPanel.js b/web/org.openbravo.retail.selfcheckout/source/panels/selectPaymentPanel.js
index 42824d8..f04f165 100644
--- a/web/org.openbravo.retail.selfcheckout/source/panels/selectPaymentPanel.js
+++ b/web/org.openbravo.retail.selfcheckout/source/panels/selectPaymentPanel.js
@@ -71,13 +71,70 @@ enyo.kind({
   },
   show: function() {
     this.inherited(arguments);
-
+    //Show only payment methods available for SCO.
+    this.getComponents()
+      .filter(e => e.kind === 'OB.SCO.ButtonPayment')
+      .forEach(function(button, index) {
+        if (
+          (OB.SCO.Utils.isSCOReturn() &&
+            button.payment.paymentMethod.obscoEnableForSCOReturn) ||
+          (!OB.SCO.Utils.isSCOReturn() &&
+            button.payment.paymentMethod.obscoEnableForSCOPayment)
+        ) {
+          button.show();
+        } else {
+          button.hide();
+        }
+      });
     // Show or hide button to add more products depending on the receipt payment value
     this.$.buttonSelectPaymentBack.setShowing(
       this.receipt.get('payment') === 0
     );
   },
   selectPayment: function(inSender, inEvent) {
+    if (
+      inSender.payment.paymentMethod.mINLimitAmount &&
+      inSender.payment.paymentMethod.maxLimitAmount
+    ) {
+      if (
+        inSender.payment.paymentMethod.mINLimitAmount >
+        inSender.container.owner.receipt.getNet()
+      ) {
+        OB.SCO.Utils.hideLoading();
+
+        OB.SCO.Utils.showPaymentError({
+          i18nParameters: [
+            OB.I18N.getLabel('OBPOS_PaymentMinLimitAmount', [
+              OB.I18N.formatCurrencyWithSymbol(
+                inSender.payment.paymentMethod.mINLimitAmount,
+                inSender.payment.symbol,
+                inSender.payment.symbol
+              )
+            ])
+          ]
+        });
+
+        return;
+      }
+
+      if (
+        inSender.payment.paymentMethod.maxLimitAmount <
+        inSender.container.owner.receipt.getNet()
+      ) {
+        OB.SCO.Utils.showPaymentError({
+          i18nParameters: [
+            OB.I18N.getLabel('OBPOS_PaymentMaxLimitAmount', [
+              OB.I18N.formatCurrencyWithSymbol(
+                inSender.payment.paymentMethod.maxLimitAmount,
+                inSender.payment.symbol,
+                inSender.payment.symbol
+              )
+            ])
+          ]
+        });
+        return;
+      }
+    }
     this.executeEvent({
       name: 'GoPaymentProvider',
       payment: inSender.payment
