diff --git a/gso/migrations/versions/2024-10-29_72a4f7aa499d_add_l2circuit_workflows.py b/gso/migrations/versions/2024-10-29_72a4f7aa499d_add_l2circuit_workflows.py
index 93ee541a23345ca01f3dd3a4623ee483058e1221..3dfffe01453028388571df574f48442839c36fc6 100644
--- a/gso/migrations/versions/2024-10-29_72a4f7aa499d_add_l2circuit_workflows.py
+++ b/gso/migrations/versions/2024-10-29_72a4f7aa499d_add_l2circuit_workflows.py
@@ -29,6 +29,12 @@ new_workflows = [
         "target": "MODIFY",
         "description": "Modify Layer 2 Circuit Service",
         "product_type": "Layer2Circuit"
+    },
+    {
+        "name": "terminate_layer_2_circuit",
+        "target": "TERMINATE",
+        "description": "Terminate Layer 2 Circuit Service",
+        "product_type": "Layer2Circuit"
     }
 ]
 
diff --git a/gso/workflows/__init__.py b/gso/workflows/__init__.py
index c2444925c1025d5cbab3b352c8aa3f592e70f15f..76527718f1d9e1b87d393e3c50f1a879129fe47b 100644
--- a/gso/workflows/__init__.py
+++ b/gso/workflows/__init__.py
@@ -128,3 +128,4 @@ LazyWorkflowInstance("gso.workflows.nren_l3_core_service.migrate_nren_l3_core_se
 # Layer 2 Circuit workflows
 LazyWorkflowInstance("gso.workflows.l2_circuit.create_layer_2_circuit", "create_layer_2_circuit")
 LazyWorkflowInstance("gso.workflows.l2_circuit.modify_layer_2_circuit", "modify_layer_2_circuit")
+LazyWorkflowInstance("gso.workflows.l2_circuit.terminate_layer_2_circuit", "terminate_layer_2_circuit")
diff --git a/gso/workflows/l2_circuit/terminate_layer_2_circuit.py b/gso/workflows/l2_circuit/terminate_layer_2_circuit.py
new file mode 100644
index 0000000000000000000000000000000000000000..9f7db143495208aaa245ad77b19fbc0414009b31
--- /dev/null
+++ b/gso/workflows/l2_circuit/terminate_layer_2_circuit.py
@@ -0,0 +1,40 @@
+"""Workflow for terminating a Layer 2 Circuit."""
+
+from orchestrator import begin, workflow
+from orchestrator.forms import FormPage
+from orchestrator.targets import Target
+from orchestrator.types import SubscriptionLifecycle, UUIDstr
+from orchestrator.workflow import StepList, done
+from orchestrator.workflows.steps import resync, set_status, store_process_subscription, unsync
+from orchestrator.workflows.utils import wrap_modify_initial_input_form
+from pydantic_forms.types import FormGenerator
+
+from gso.products.product_types.layer_2_circuit import Layer2Circuit
+from gso.utils.types.tt_number import TTNumber
+
+
+def _input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
+    layer_2_circuit = Layer2Circuit.from_subscription(subscription_id)
+
+    class TerminateForm(FormPage):
+        tt_number: TTNumber
+
+    yield TerminateForm
+    return {"subscription": layer_2_circuit}
+
+
+@workflow(
+    "Terminate Layer 2 Circuit",
+    initial_input_form=wrap_modify_initial_input_form(_input_form_generator),
+    target=Target.TERMINATE,
+)
+def terminate_layer_2_circuit() -> StepList:
+    """Terminate a Layer 2 Circuit subscription."""
+    return (
+        begin
+        >> store_process_subscription(Target.TERMINATE)
+        >> unsync
+        >> set_status(SubscriptionLifecycle.TERMINATED)
+        >> resync
+        >> done
+    )