diff --git a/neutron_tempest_plugin/api/base_routers.py b/neutron_tempest_plugin/api/base_routers.py
index 94db116..37a84b8 100644
--- a/neutron_tempest_plugin/api/base_routers.py
+++ b/neutron_tempest_plugin/api/base_routers.py
@@ -31,10 +31,14 @@
             pass
 
     def _create_router(self, name, admin_state_up=False,
-                       external_network_id=None, enable_snat=None, **kwargs):
+                       external_network_id=None, enable_snat=None,
+                       client=None, **kwargs):
         # associate a cleanup with created routers to avoid quota limits
-        router = self.create_router(name, admin_state_up,
-                                    external_network_id, enable_snat, **kwargs)
+        client = client or self.client
+        router = self._create_router_with_client(
+            client, router_name=name, admin_state_up=admin_state_up,
+            external_network_id=external_network_id, enable_snat=enable_snat,
+            **kwargs)
         self.addCleanup(self._cleanup_router, router)
         return router
 
diff --git a/neutron_tempest_plugin/api/test_routers.py b/neutron_tempest_plugin/api/test_routers.py
index 1430b81..15bac41 100644
--- a/neutron_tempest_plugin/api/test_routers.py
+++ b/neutron_tempest_plugin/api/test_routers.py
@@ -424,9 +424,11 @@
         router = self._create_router(
             data_utils.rand_name('router'),
             external_network_id=CONF.network.public_network_id,
-            enable_snat=False)
+            enable_snat=False,
+            client=self.admin_client,
+        )
         self.assertEqual(len(router['external_gateways']), 1)
-        res = self.client.router_add_external_gateways(
+        res = self.admin_client.router_add_external_gateways(
             router['id'],
             [{'network_id': CONF.network.public_network_id,
               'enable_snat': False}])
@@ -437,9 +439,10 @@
         router = self._create_router(
             data_utils.rand_name('router'),
             external_network_id=CONF.network.public_network_id,
-            enable_snat=False)
+            enable_snat=False,
+            client=self.admin_client)
         self.assertEqual(len(router['external_gateways']), 1)
-        res = self.client.router_remove_external_gateways(
+        res = self.admin_client.router_remove_external_gateways(
             router['id'],
             [{'network_id': CONF.network.public_network_id}])
         self.assertEqual(len(res['router']['external_gateways']), 0)
