diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py
index fb68c6d47167c250854250eac0a843abe4c93e84..f236d30f427b58819f020b1820ad822a8fd81407 100644
--- a/gso/services/provisioning_proxy.py
+++ b/gso/services/provisioning_proxy.py
@@ -4,6 +4,7 @@ import logging
 import requests
 from orchestrator import inputstep
 from orchestrator.config.assignee import Assignee
+from orchestrator.domain.lifecycle import SubscriptionModel
 from orchestrator.forms import FormPage, ReadOnlyField
 from orchestrator.forms.validators import Accept, Label, LongText
 from orchestrator.types import UUIDstr, State
@@ -15,24 +16,16 @@ from gso.products.product_types.device import DeviceProvisioning
 logger = logging.getLogger(__name__)
 
 
-def provision_node(
-        node_subscription_params: DeviceProvisioning,
-        process_id: UUIDstr,
-        dry_run: bool = True):
+def _send_request(parameters: dict, process_id: UUIDstr):
     oss = settings.load_oss_params()
     pp_params = oss.PROVISIONING_PROXY
     assert pp_params
 
-    device_params = node_subscription_params.device
     callback_url = f'{settings.load_oss_params().GENERAL.public_hostname}' \
                    f'/api/processes/{process_id}/resume'
-    logger.debug(f'[disabled] provisioning node {device_params}')
+    logger.debug(f'[provisioning proxy] provisioning for process {process_id}')
 
-    parameters = {
-        'callback': callback_url,
-        'dry_run': dry_run,
-        'device': json.loads(json_dumps(node_subscription_params))
-    }
+    parameters.update({'callback': callback_url})
 
     post_request = requests.post(
         f'{pp_params.scheme}://{pp_params.api_base}/api/device',
@@ -42,6 +35,18 @@ def provision_node(
         raise AssertionError(post_request.text)
 
 
+def provision_service(
+        subscription: SubscriptionModel,
+        process_id: UUIDstr,
+        dry_run: bool = True):
+    parameters = {
+        'dry_run': dry_run,
+        'subscription': json.loads(json_dumps(subscription))
+    }
+
+    _send_request(parameters, process_id)
+
+
 @inputstep('Await provisioning proxy results', assignee=Assignee('SYSTEM'))
 def await_pp_results() -> State:
     class ProvisioningResultPage(FormPage):
diff --git a/gso/workflows/device/create_device.py b/gso/workflows/device/create_device.py
index 40a03c900c28c42ced40e030d1dbe643630718b3..640c5297d1567d1871d385bf9905516c6982b9d6 100644
--- a/gso/workflows/device/create_device.py
+++ b/gso/workflows/device/create_device.py
@@ -123,7 +123,7 @@ def initialize_subscription(
 @step('Provision device [DRY RUN]')
 def provision_device_dry(subscription: DeviceProvisioning,
                          process_id: UUIDstr) -> State:
-    provisioning_proxy.provision_node(
+    provisioning_proxy.provision_service(
         subscription,
         process_id
     )
@@ -134,7 +134,7 @@ def provision_device_dry(subscription: DeviceProvisioning,
 @step('Provision device [FOR REAL]')
 def provision_device_real(subscription: DeviceProvisioning,
                           process_id: UUIDstr) -> State:
-    provisioning_proxy.provision_node(
+    provisioning_proxy.provision_service(
         subscription,
         process_id,
         False  # No dry run this time, run it for real