diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py
index f236d30f427b58819f020b1820ad822a8fd81407..9ec5f50eee03d94f2b18bc31512c1ac8d579dc7a 100644
--- a/gso/services/provisioning_proxy.py
+++ b/gso/services/provisioning_proxy.py
@@ -16,7 +16,7 @@ from gso.products.product_types.device import DeviceProvisioning
 logger = logging.getLogger(__name__)
 
 
-def _send_request(parameters: dict, process_id: UUIDstr):
+def _send_request(endpoint: str, parameters: dict, process_id: UUIDstr):
     oss = settings.load_oss_params()
     pp_params = oss.PROVISIONING_PROXY
     assert pp_params
@@ -28,23 +28,30 @@ def _send_request(parameters: dict, process_id: UUIDstr):
     parameters.update({'callback': callback_url})
 
     post_request = requests.post(
-        f'{pp_params.scheme}://{pp_params.api_base}/api/device',
+        f'{pp_params.scheme}://{pp_params.api_base}/api/{endpoint}',
         json=parameters)
 
     if post_request.status_code != 200:
         raise AssertionError(post_request.text)
 
 
-def provision_service(
+def _provision_service(
+        endpoint: str,
         subscription: SubscriptionModel,
         process_id: UUIDstr,
-        dry_run: bool = True):
+        dry_run: bool):
     parameters = {
         'dry_run': dry_run,
         'subscription': json.loads(json_dumps(subscription))
     }
 
-    _send_request(parameters, process_id)
+    _send_request(endpoint, parameters, process_id)
+
+
+def provision_device(subscription: SubscriptionModel,
+                     process_id: UUIDstr,
+                     dry_run: bool = True):
+    _provision_service('device', subscription, process_id, dry_run)
 
 
 @inputstep('Await provisioning proxy results', assignee=Assignee('SYSTEM'))