diff --git a/addons/pos_stripe/i18n/pos_stripe.pot b/addons/pos_stripe/i18n/pos_stripe.pot
index e1119e16c93531aba3988efba4b390d748ec9b53..a79635af0e673f772dccda7904a97b68d2bc7ad1 100644
--- a/addons/pos_stripe/i18n/pos_stripe.pot
+++ b/addons/pos_stripe/i18n/pos_stripe.pot
@@ -19,7 +19,7 @@ msgstr ""
 #. odoo-python
 #: code:addons/pos_stripe/models/pos_payment_method.py:0
 #, python-format
-msgid "Complete the Stripe onboarding."
+msgid "Complete the Stripe onboarding for company %s."
 msgstr ""
 
 #. module: pos_stripe
@@ -106,7 +106,7 @@ msgstr ""
 #. odoo-python
 #: code:addons/pos_stripe/models/pos_payment_method.py:0
 #, python-format
-msgid "Stripe payment provider is missing"
+msgid "Stripe payment provider for company %s is missing"
 msgstr ""
 
 #. module: pos_stripe
diff --git a/addons/pos_stripe/models/pos_payment_method.py b/addons/pos_stripe/models/pos_payment_method.py
index 1f4f939b9c2f1597ef9ceebb8ebc880591ea56fd..bd9bab2dfb2a15cc39675763f580a64b8f9a4602 100644
--- a/addons/pos_stripe/models/pos_payment_method.py
+++ b/addons/pos_stripe/models/pos_payment_method.py
@@ -32,10 +32,13 @@ class PosPaymentMethod(models.Model):
                      payment_method.stripe_serial_number, existing_payment_method.display_name))
 
     def _get_stripe_payment_provider(self):
-        stripe_payment_provider = self.env['payment.provider'].search([('code', '=', 'stripe')], limit=1)
+        stripe_payment_provider = self.env['payment.provider'].search([
+            ('code', '=', 'stripe'),
+            ('company_id', '=', self.env.company.id)
+        ], limit=1)
 
         if not stripe_payment_provider:
-            raise UserError(_("Stripe payment provider is missing"))
+            raise UserError(_("Stripe payment provider for company %s is missing", self.env.company.name))
 
         return stripe_payment_provider
 
@@ -44,7 +47,7 @@ class PosPaymentMethod(models.Model):
         stripe_secret_key = self._get_stripe_payment_provider().stripe_secret_key
 
         if not stripe_secret_key:
-            raise ValidationError(_('Complete the Stripe onboarding.'))
+            raise ValidationError(_('Complete the Stripe onboarding for company %s.', self.env.company.name))
 
         return stripe_secret_key
 
diff --git a/addons/pos_stripe/static/src/js/payment_stripe.js b/addons/pos_stripe/static/src/js/payment_stripe.js
index db7f532081e546f8c2e2564a29c88a14c9dd752e..6fef8655bcfb6d98556e8abb14a4281f8b602be6 100644
--- a/addons/pos_stripe/static/src/js/payment_stripe.js
+++ b/addons/pos_stripe/static/src/js/payment_stripe.js
@@ -26,6 +26,7 @@ let PaymentStripe = PaymentInterface.extend({
             let data = await rpc.query({
                 model: 'pos.payment.method',
                 method: 'stripe_connection_token',
+                kwargs: { context: this.pos.env.session.user_context },
             }, {
                 silent: true,
             });
@@ -34,7 +35,8 @@ let PaymentStripe = PaymentInterface.extend({
             }
             return data.secret;
         } catch (error) {
-            this._showError(error.message.message, 'Fetch Token');
+            const message = error.message.code === 200 ? error.message.data.message : error.message.message;
+            this._showError(message, 'Fetch Token');
             this.terminal = false;
         };
     },
@@ -194,6 +196,7 @@ let PaymentStripe = PaymentInterface.extend({
                 model: 'pos.payment.method',
                 method: 'stripe_capture_payment',
                 args: [paymentIntentId],
+                kwargs: { context: this.pos.env.session.user_context },
             }, {
                 silent: true,
             });
@@ -202,7 +205,8 @@ let PaymentStripe = PaymentInterface.extend({
             }
             return data;
         } catch (error) {
-            this._showError(error.message.message, 'Capture Payment');
+            const message = error.message.code === 200 ? error.message.data.message : error.message.message;
+            this._showError(message, 'Capture Payment');
             return false;
         };
     },
@@ -213,6 +217,7 @@ let PaymentStripe = PaymentInterface.extend({
                 model: 'pos.payment.method',
                 method: 'stripe_payment_intent',
                 args: [[payment_method.id], amount],
+                kwargs: { context: this.pos.env.session.user_context },
             }, {
                 silent: true,
             });
@@ -221,7 +226,8 @@ let PaymentStripe = PaymentInterface.extend({
             }
             return data.client_secret;
         } catch (error) {
-            this._showError(error.message.message, 'Fetch Secret');
+            const message = error.message.code === 200 ? error.message.data.message : error.message.message;
+            this._showError(message, 'Fetch Secret');
             return false;
         };
     },