diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVFCNSResource.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVFCNSResource.groovy
index be099eb..e9d51b2 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVFCNSResource.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVFCNSResource.groovy
@@ -44,4 +44,25 @@
 
         utils.log("INFO"," ***** end postProcessRequest *****",  isDebugEnabled)
     }
+
+    public void sendSyncResponse (DelegateExecution execution) {
+        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+        utils.log("DEBUG", " *** sendSyncResponse *** ", isDebugEnabled)
+
+        try {
+            String nsInstanceId = execution.getVariable("nsInstanceId")
+            String operationStatus = execution.getVariable("operationStatus")
+            // RESTResponse for main flow
+            String createVFCResourceRestRsp = """{"nsInstanceId":"${nsInstanceId}","operationStatus":"${operationStatus}"}""".trim()
+            utils.log("DEBUG", " sendSyncResponse to APIH:" + "\n" + createVFCResourceRestRsp, isDebugEnabled)
+            sendWorkflowResponse(execution, 202, createVFCResourceRestRsp)
+            execution.setVariable("sentSyncResponse", true)
+
+        } catch (Exception ex) {
+            String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage()
+            utils.log("DEBUG", msg, isDebugEnabled)
+            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+        }
+        utils.log("DEBUG"," ***** Exit sendSyncResopnse *****",  isDebugEnabled)
+    }
 }
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVFCNSResource.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVFCNSResource.bpmn
index 514abb0..d7a4bba 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVFCNSResource.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVFCNSResource.bpmn
@@ -8,9 +8,9 @@
     <bpmn:sequenceFlow id="SequenceFlow_00vpfm3" sourceRef="Task_0yl3rau" targetRef="Task_14gmbq4" />
     <bpmn:sequenceFlow id="SequenceFlow_1s4cyms" sourceRef="Task_14gmbq4" targetRef="Task_1e27uaw" />
     <bpmn:endEvent id="EndEvent_07ew0rf" name="End Custom Delete E2E NS">
-      <bpmn:incoming>SequenceFlow_152xb4z</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_0jvtdhv</bpmn:incoming>
     </bpmn:endEvent>
-    <bpmn:sequenceFlow id="SequenceFlow_152xb4z" sourceRef="Task_1e27uaw" targetRef="EndEvent_07ew0rf" />
+    <bpmn:sequenceFlow id="SequenceFlow_152xb4z" sourceRef="Task_1e27uaw" targetRef="ScriptTask_0pkuukn" />
     <bpmn:scriptTask id="Task_0yl3rau" name="DoCustomDeleteE2ENS prepare" scriptFormat="groovy">
       <bpmn:incoming>SequenceFlow_0x2e9we</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_00vpfm3</bpmn:outgoing>
@@ -57,6 +57,14 @@
       <bpmn:sequenceFlow id="SequenceFlow_0yro7o2" sourceRef="StartEvent_0zwedl6" targetRef="ScriptTask_0tdtqwh" />
       <bpmn:sequenceFlow id="SequenceFlow_0p0ayci" sourceRef="ScriptTask_0tdtqwh" targetRef="EndEvent_10tfowz" />
     </bpmn:subProcess>
+    <bpmn:scriptTask id="ScriptTask_0pkuukn" name="Send Sync Ack Response" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_152xb4z</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0jvtdhv</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dsi = new  DeleteVFCNSResource()
+dsi.sendSyncResponse(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_0jvtdhv" sourceRef="ScriptTask_0pkuukn" targetRef="EndEvent_07ew0rf" />
   </bpmn:process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DeleteVFCNSResource">
@@ -68,23 +76,23 @@
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0x2e9we_di" bpmnElement="SequenceFlow_0x2e9we">
         <di:waypoint xsi:type="dc:Point" x="366" y="354" />
-        <di:waypoint xsi:type="dc:Point" x="530" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="474" y="354" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="448" y="333" width="0" height="12" />
+          <dc:Bounds x="375" y="333" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_00vpfm3_di" bpmnElement="SequenceFlow_00vpfm3">
-        <di:waypoint xsi:type="dc:Point" x="630" y="354" />
-        <di:waypoint xsi:type="dc:Point" x="774" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="574" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="661" y="354" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="702" y="333" width="0" height="12" />
+          <dc:Bounds x="572.5" y="333" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1s4cyms_di" bpmnElement="SequenceFlow_1s4cyms">
-        <di:waypoint xsi:type="dc:Point" x="874" y="354" />
-        <di:waypoint xsi:type="dc:Point" x="1018" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="761" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="889" y="354" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="946" y="333" width="0" height="12" />
+          <dc:Bounds x="780" y="333" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="EndEvent_07ew0rf_di" bpmnElement="EndEvent_07ew0rf">
@@ -94,20 +102,20 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_152xb4z_di" bpmnElement="SequenceFlow_152xb4z">
-        <di:waypoint xsi:type="dc:Point" x="1118" y="354" />
-        <di:waypoint xsi:type="dc:Point" x="1313" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="989" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="1113" y="354" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1215.5" y="333" width="0" height="12" />
+          <dc:Bounds x="1006" y="333" width="90" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_1ssr09e_di" bpmnElement="Task_0yl3rau">
-        <dc:Bounds x="530" y="314" width="100" height="80" />
+        <dc:Bounds x="474" y="314" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_092ktxo_di" bpmnElement="Task_1e27uaw">
-        <dc:Bounds x="1018" y="314" width="100" height="80" />
+        <dc:Bounds x="889" y="314" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_00p99pt_di" bpmnElement="Task_14gmbq4">
-        <dc:Bounds x="774" y="314" width="100" height="80" />
+        <dc:Bounds x="661" y="314" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="SubProcess_11qmm22_di" bpmnElement="SubProcess_11qmm22" isExpanded="true">
         <dc:Bounds x="636" y="539" width="350" height="200" />
@@ -141,6 +149,16 @@
           <dc:Bounds x="852" y="603" width="0" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0pkuukn_di" bpmnElement="ScriptTask_0pkuukn">
+        <dc:Bounds x="1113" y="314" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0jvtdhv_di" bpmnElement="SequenceFlow_0jvtdhv">
+        <di:waypoint xsi:type="dc:Point" x="1213" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="1313" y="354" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1263" y="333" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn:definitions>
