diff --git a/addons/payment/models/res_company.py b/addons/payment/models/res_company.py
index a8cb3b3fde8cf20549a6a68927fc84904a09219f..2d36023383fdcdfb7dd023c99c964f8ac5a7b071 100644
--- a/addons/payment/models/res_company.py
+++ b/addons/payment/models/res_company.py
@@ -55,7 +55,14 @@ class ResCompany(models.Model):
             [('type', '=', 'bank'), ('company_id', '=', new_env.company.id)], limit=1
         )
 
-        stripe_acquirer = new_env.ref('payment.payment_acquirer_stripe')
+        stripe_acquirer = new_env['payment.acquirer'].search(
+            [('company_id', '=', self.env.company.id), ('name', '=', 'Stripe')], limit=1
+        )
+        if not stripe_acquirer:
+            base_acquirer = self.env.ref('payment.payment_acquirer_stripe')
+            # Use sudo to access payment acquirer record that can be in different company.
+            stripe_acquirer = base_acquirer.sudo().copy(default={'company_id': self.env.company.id})
+            stripe_acquirer.company_id = self.env.company.id
         stripe_acquirer.journal_id = stripe_acquirer.journal_id or default_journal
 
         return stripe_acquirer.action_stripe_connect_account(menu_id=menu_id)
diff --git a/addons/payment/wizards/payment_acquirer_onboarding_wizard.py b/addons/payment/wizards/payment_acquirer_onboarding_wizard.py
index 55860c1d0a60f7a075d66abbe129ce4a13c494f4..1919c011efefd3e1471b689106611a7817553fdc 100644
--- a/addons/payment/wizards/payment_acquirer_onboarding_wizard.py
+++ b/addons/payment/wizards/payment_acquirer_onboarding_wizard.py
@@ -67,12 +67,16 @@ class PaymentWizard(models.TransientModel):
         ]).mapped('name')
 
         if 'payment_paypal' in installed_modules:
-            acquirer = self.env.ref('payment.payment_acquirer_paypal')
+            acquirer = self.env['payment.acquirer'].search(
+                [('company_id', '=', self.env.company.id), ('name', '=', 'PayPal')], limit=1
+            )
             self._payment_acquirer_onboarding_cache['paypal_email_account'] = acquirer['paypal_email_account'] or self.env.user.email or ''
             self._payment_acquirer_onboarding_cache['paypal_pdt_token'] = acquirer['paypal_pdt_token']
 
         if 'payment_stripe' in installed_modules:
-            acquirer = self.env.ref('payment.payment_acquirer_stripe')
+            acquirer = self.env['payment.acquirer'].search(
+                [('company_id', '=', self.env.company.id), ('name', '=', 'Stripe')], limit=1
+            )
             self._payment_acquirer_onboarding_cache['stripe_secret_key'] = acquirer['stripe_secret_key']
             self._payment_acquirer_onboarding_cache['stripe_publishable_key'] = acquirer['stripe_publishable_key']
 
@@ -114,14 +118,23 @@ class PaymentWizard(models.TransientModel):
             self.env.company.payment_onboarding_payment_method = self.payment_method
 
             # create a new env including the freshly installed module(s)
-            new_env = api.Environment(self.env.cr, self.env.uid, self.env.context)
 
+            new_env = api.Environment(self.env.cr, self.env.uid, self.env.context)
             if self.payment_method == 'paypal':
-                acquirer = new_env.ref('payment.payment_acquirer_paypal', raise_if_not_found=False)
+                acquirer = new_env['payment.acquirer'].search(
+                    [('name', '=', 'PayPal'), ('company_id', '=', self.env.company.id)], limit=1
+                )
+                if not acquirer:
+                    base_acquirer = self.env.ref('payment.payment_acquirer_paypal')
+                    # Use sudo to access payment acquirer record that can be in different company.
+                    acquirer = base_acquirer.sudo().copy(
+                        default={'company_id': self.env.company.id}
+                    )
+                    acquirer.company_id = self.env.company.id
                 default_journal = new_env['account.journal'].search(
                     [('type', '=', 'bank'), ('company_id', '=', new_env.company.id)], limit=1
                 )
-                new_env.ref('payment.payment_acquirer_paypal').write({
+                acquirer.write({
                     'paypal_email_account': self.paypal_email_account,
                     'paypal_seller_account': self.paypal_seller_account,
                     'paypal_pdt_token': self.paypal_pdt_token,
@@ -129,7 +142,9 @@ class PaymentWizard(models.TransientModel):
                     'journal_id': acquirer.journal_id or default_journal
                 })
             if self.payment_method == 'stripe':
-                new_env.ref('payment.payment_acquirer_stripe').write({
+                new_env['payment.acquirer'].search(
+                    [('name', '=', 'Stripe'), ('company_id', '=', self.env.company.id)], limit=1
+                ).write({
                     'stripe_secret_key': self.stripe_secret_key,
                     'stripe_publishable_key': self.stripe_publishable_key,
                     'state': 'enabled',