diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/Anschrift.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/Anschrift.java
index 231090b96c06be539ba68fe68213163869d49202..96b2d58709780761d8bbc82baa57bd18d781e928 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/Anschrift.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/Anschrift.java
@@ -28,7 +28,7 @@ import lombok.Getter;
 
 @Builder
 @Getter
-class Anschrift {
+public class Anschrift {
 
 	private String strasse;
 	private String hausnummer;
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheit.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheit.java
index aeccb1786c7795171c5a65a07674a5cb36484512..56e5510b8ada0b536e60a9f8e215f5d509124843 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheit.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheit.java
@@ -30,7 +30,7 @@ import lombok.extern.jackson.Jacksonized;
 @Builder
 @Getter
 @Jacksonized
-class OrganisationsEinheit {
+public class OrganisationsEinheit {
 
 	private String id;
 	private XzufiId xzufiId;
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitController.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitController.java
index 911717902889dfc59197573842a89151a6792c83..a67353b79b2ba863b703a37775fe7c647edfd917 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitController.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitController.java
@@ -40,7 +40,7 @@ import lombok.RequiredArgsConstructor;
 @RestController
 @RequestMapping(OrganisationsEinheitController.PATH)
 @RequiredArgsConstructor
-class OrganisationsEinheitController {
+public class OrganisationsEinheitController {
 
 	static final String PATH = "/api/organisationseinheits"; // NOSONAR
 	static final String SEARCH_BY_PARAM = "searchBy";
@@ -59,4 +59,8 @@ class OrganisationsEinheitController {
 	public CollectionModel<EntityModel<OrganisationsEinheitHeader>> search(@RequestParam String searchBy) {
 		return headerModelAssembler.toCollectionModel(service.searchOrganisationsEinheiten(searchBy).toList());
 	}
+
+	public OrganisationsEinheit getOrganisationEinheit(String organisationEinheitId) {
+		return service.getById(organisationEinheitId);
+	}
 }
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitHeader.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitHeader.java
index b62a4788a8fd963365a2e7e3833572917297a816..ab2b3b4c6a2e8e3efcbbcf636cc11ef7946e6f4d 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitHeader.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitHeader.java
@@ -30,7 +30,7 @@ import lombok.Getter;
 
 @Builder
 @Getter
-class OrganisationsEinheitHeader {
+public class OrganisationsEinheitHeader {
 
 	@JsonIgnore
 	private String id;
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java
index 46db2e9b657a09f9d98f4a25c77d800a07cdba1b..1f288483dc782a92baade909ff64f582c2ae53f9 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java
@@ -30,6 +30,7 @@ import de.ozgcloud.alfa.aktenzeichen.AktenzeichenCommandBody;
 import de.ozgcloud.alfa.bescheid.Bescheid;
 import de.ozgcloud.alfa.bescheid.BescheidDocumentFromFileBody;
 import de.ozgcloud.alfa.collaboration.CollaborationCommandBody;
+import de.ozgcloud.alfa.forwarding.ForwardVorgangCommandBody;
 import de.ozgcloud.alfa.forwarding.RedirectRequest;
 import de.ozgcloud.alfa.kommentar.Kommentar;
 import de.ozgcloud.alfa.loeschanforderung.DeleteLoeschAnforderung;
@@ -57,7 +58,8 @@ import de.ozgcloud.alfa.wiedervorlage.Wiedervorlage;
 		@Type(value = AktenzeichenCommandBody.class, name = "SET_AKTENZEICHEN"),
 		@Type(value = BescheidDocumentFromFileBody.class, name = "CREATE_BESCHEID_DOCUMENT_FROM_FILE"),
 		@Type(value = CollaborationCommandBody.class, name = "CREATE_COLLABORATION_REQUEST"),
-		@Type(value = EmptyCommandBody.class, name = "ARCHIVE_VORGANG")
+		@Type(value = EmptyCommandBody.class, name = "ARCHIVE_VORGANG"),
+		@Type(value = ForwardVorgangCommandBody.class, name = "FORWARD_VORGANG")
 })
 public interface CommandBody {
 }
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandOrder.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandOrder.java
index 5e97b02673c16a2ada39fd7c79ee931507668d46..2abd4dff45e34fa26b3dd6f023fa0023da3f23f8 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandOrder.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandOrder.java
@@ -73,6 +73,8 @@ public enum CommandOrder {
 
 	PROCESS_VORGANG(false, Type.VORGANG),
 
+	FORWARD_VORGANG(false, Type.FORWARDING),
+
 	CREATE_COLLABORATION_REQUEST(false, Type.COLLABORATION),
 
 	UNBEKANNT(false, Type.NONE);
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardByVorgangCommandController.java b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardByVorgangCommandController.java
new file mode 100644
index 0000000000000000000000000000000000000000..046d5308e00596afca7a6383ec77b80a5455fea2
--- /dev/null
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardByVorgangCommandController.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.alfa.forwarding;
+
+import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
+
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import de.ozgcloud.alfa.collaboration.OrganisationsEinheitController;
+import de.ozgcloud.alfa.common.command.CommandController;
+import de.ozgcloud.alfa.common.command.CommandService;
+import de.ozgcloud.alfa.common.command.CreateCommand;
+import lombok.RequiredArgsConstructor;
+
+@RestController
+@RequestMapping(ForwardByVorgangCommandController.PATH)
+@RequiredArgsConstructor
+class ForwardByVorgangCommandController {
+	static final String PATH = "/api/vorgangs/{vorgangId}/{vorgangVersion}/forwarding";
+
+	private final CommandService commandService;
+	private final OrganisationsEinheitController organisationsEinheitController;
+	private final ForwardVorgangCommandBodyMapper bodyMapper;
+
+	@PostMapping
+	public ResponseEntity<Void> createCommand(@PathVariable String vorgangId, @PathVariable long vorgangVersion, @RequestBody CreateCommand command) {
+		var completeBody = addOrganisationEinheitData((ForwardVorgangCommandBody) command.getBody());
+		var enrichedCommand = command.toBuilder()
+				.vorgangId(vorgangId)
+				.relationId(vorgangId)
+				.body(completeBody)
+				.build();
+		var created = commandService.createCommand(enrichedCommand, vorgangVersion);
+		return ResponseEntity.created(linkTo(CommandController.class).slash(created.getId()).toUri()).build();
+	}
+
+
+	private ForwardVorgangCommandBody addOrganisationEinheitData(ForwardVorgangCommandBody body) {
+		var organisationEinheit = organisationsEinheitController.getOrganisationEinheit(body.getOrganisationEinheitId());
+		return bodyMapper.updateFromOrganisationEinheit(organisationEinheit, body);
+	}
+}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBody.java b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBody.java
new file mode 100644
index 0000000000000000000000000000000000000000..7770b4333db7c66abdccac117a2fc155a78c0997
--- /dev/null
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBody.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.alfa.forwarding;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import de.ozgcloud.alfa.common.LinkedResourceDeserializer;
+import de.ozgcloud.alfa.common.command.CommandBody;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@Builder(toBuilder = true)
+@AllArgsConstructor
+@NoArgsConstructor
+public class ForwardVorgangCommandBody implements CommandBody {
+
+	@JsonDeserialize(using = LinkedResourceDeserializer.class)
+	private String organisationEinheitId;
+
+	private String name;
+	private String strasse;
+	private String hausnummer;
+	private String plz;
+	private String ort;
+}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyMapper.java b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd36a44d244b5e355044ce4a4783ba4e6afd0fb6
--- /dev/null
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyMapper.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.alfa.forwarding;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.MappingTarget;
+
+import de.ozgcloud.alfa.collaboration.OrganisationsEinheit;
+
+@Mapper
+interface ForwardVorgangCommandBodyMapper {
+
+	@Mapping(target = "organisationEinheitId", ignore = true)
+	@Mapping(target = ".", source = "anschrift")
+	ForwardVorgangCommandBody updateFromOrganisationEinheit(OrganisationsEinheit organisationsEinheit, @MappingTarget ForwardVorgangCommandBody commandBody);
+}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java
index 863d725f77977266b1ce78f38d075283e4993083..fdb1d9cf0266b2d0ff8ca9f3594dd4164f9b9139 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessor.java
@@ -34,7 +34,6 @@ import org.springframework.hateoas.server.RepresentationModelProcessor;
 import org.springframework.stereotype.Component;
 
 import de.ozgcloud.alfa.common.FeatureToggleProperties;
-import de.ozgcloud.alfa.common.command.CommandController;
 import de.ozgcloud.alfa.common.user.CurrentUserService;
 import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
@@ -70,7 +69,7 @@ class ForwardingVorgangWithEingangProcessor implements RepresentationModelProces
 	}
 
 	private Link buildForwardByOzgCloudLink(VorgangWithEingang vorgang) {
-		return linkTo(methodOn(CommandController.CommandByRelationController.class).createCommand(vorgang.getId(), vorgang.getId(),
+		return linkTo(methodOn(ForwardByVorgangCommandController.class).createCommand(vorgang.getId(),
 				vorgang.getVersion(), null)).withRel(REL_FORWARD_BY_OZGCLOUD);
 	}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitControllerTest.java
index 8f1efd6b991fc2f5649f58359da0cf0d6941c2fb..32662710a920068da9e44cb896f4b47fe9f5f2bc 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitControllerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitControllerTest.java
@@ -23,6 +23,7 @@
  */
 package de.ozgcloud.alfa.collaboration;
 
+import static org.assertj.core.api.Assertions.*;
 import static org.mockito.Mockito.*;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@@ -256,4 +257,24 @@ class OrganisationsEinheitControllerTest {
 		}
 	}
 
+	@Nested
+	class TestGetOrganisationEinheit {
+
+		@Test
+		void shouldCallService() {
+			controller.getOrganisationEinheit(OrganisationsEinheitTestFactory.ID);
+
+			verify(service).getById(OrganisationsEinheitTestFactory.ID);
+		}
+
+		@Test
+		void shouldReturnOrganisationEinheit() {
+			var organisationEinheitFromService = OrganisationsEinheitTestFactory.create();
+			when(service.getById(any())).thenReturn(organisationEinheitFromService);
+
+			var organisationsEinheit = controller.getOrganisationEinheit(OrganisationsEinheitTestFactory.ID);
+
+			assertThat(organisationsEinheit).isSameAs(organisationEinheitFromService);
+		}
+	}
 }
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java
index cdc84e3c2bb10c6620376542e304399ff8ea0cfb..bd98a6b0274afd52ed736ae3a742674401ff45ca 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java
@@ -226,7 +226,7 @@ class CommandModelAssemblerTest {
 					"UPDATE_ATTACHED_ITEM", "PATCH_ATTACHED_ITEM", "RECEIVE_POSTFACH_NACHRICHT", "VORGANG_LOESCHEN", "DELETE_ATTACHED_ITEM",
 					"VORGANG_ZUM_LOESCHEN_MARKIEREN", "LOESCH_ANFORDERUNG_ZURUECKNEHMEN", "CREATE_BESCHEID", "PROCESS_VORGANG", "SET_AKTENZEICHEN",
 					"DELETE_BESCHEID", "UPDATE_BESCHEID", "CREATE_BESCHEID_DOCUMENT_FROM_FILE", "CREATE_BESCHEID_DOCUMENT", "SEND_BESCHEID",
-					"UNBEKANNT", "CREATE_COLLABORATION_REQUEST" })
+					"UNBEKANNT", "CREATE_COLLABORATION_REQUEST", "FORWARD_VORGANG" })
 			void shouldBePresentOnOrder(CommandOrder order) {
 				var model = toModelWithOrder(order.name());
 
@@ -250,7 +250,7 @@ class CommandModelAssemblerTest {
 		@ParameterizedTest
 		@EnumSource(mode = Mode.EXCLUDE, names = { "VORGANG_ANNEHMEN", "VORGANG_VERWERFEN", "VORGANG_ZURUECKHOLEN", "VORGANG_BEARBEITEN",
 				"VORGANG_BESCHEIDEN", "VORGANG_ZURUECKSTELLEN", "VORGANG_ABSCHLIESSEN", "VORGANG_WIEDEREROEFFNEN", "VORGANG_ZUM_LOESCHEN_MARKIEREN",
-				"LOESCH_ANFORDERUNG_ZURUECKNEHMEN" })
+				"LOESCH_ANFORDERUNG_ZURUECKNEHMEN", "FORWARD_VORGANG" })
 		void shouldNOTBePresentOnOrder(CommandOrder order) {
 			var model = toModelWithOrder(order.name());
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/CreateForwardVorgangCommandTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/CreateForwardVorgangCommandTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..077816660e80ee50cc565e12efcc0c6215071f66
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/CreateForwardVorgangCommandTestFactory.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.alfa.forwarding;
+
+import de.ozgcloud.alfa.common.command.CommandOrder;
+import de.ozgcloud.alfa.common.command.CreateCommand;
+import de.ozgcloud.alfa.common.command.CreateCommand.CreateCommandBuilder;
+import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
+
+class CreateForwardVorgangCommandTestFactory {
+
+	static CreateCommand create() {
+		return createBuilder().build();
+	}
+
+	static CreateCommandBuilder createBuilder() {
+		return CreateCommand.builder()
+				.order(CommandOrder.FORWARD_VORGANG.name())
+				.vorgangId(VorgangHeaderTestFactory.ID)
+				.relationId(VorgangHeaderTestFactory.ID)
+				.body(ForwardVorgangCommandBodyTestFactory.create());
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardByVorgangCommandControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardByVorgangCommandControllerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..09eb98b0ab8cb795ca8b6a73595913edde158cc3
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardByVorgangCommandControllerTest.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.alfa.forwarding;
+
+import static de.ozgcloud.alfa.common.command.CommandController.*;
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.springframework.http.MediaType;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.ResultActions;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+
+import de.ozgcloud.alfa.collaboration.OrganisationsEinheit;
+import de.ozgcloud.alfa.collaboration.OrganisationsEinheitController;
+import de.ozgcloud.alfa.collaboration.OrganisationsEinheitTestFactory;
+import de.ozgcloud.alfa.common.command.CommandOrder;
+import de.ozgcloud.alfa.common.command.CommandService;
+import de.ozgcloud.alfa.common.command.CommandTestFactory;
+import de.ozgcloud.alfa.common.command.CreateCommand;
+import de.ozgcloud.alfa.common.errorhandling.ExceptionController;
+import de.ozgcloud.alfa.common.errorhandling.ProblemDetailMapper;
+import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
+import lombok.SneakyThrows;
+
+class ForwardByVorgangCommandControllerTest {
+
+	@Mock
+	private CommandService commandService;
+	@Mock
+	private OrganisationsEinheitController organisationsEinheitController;
+	@Mock
+	private ForwardVorgangCommandBodyMapper bodyMapper;
+	@Mock
+	private ProblemDetailMapper problemDetailMapper;
+	@Spy
+	@InjectMocks
+	private ForwardByVorgangCommandController controller;
+
+	private MockMvc mockMvc;
+
+	@BeforeEach
+	void init() {
+		mockMvc = MockMvcBuilders.standaloneSetup(controller).setControllerAdvice(new ExceptionController(problemDetailMapper)).build();
+	}
+
+	@Nested
+	class TestCreateCommand {
+
+		private final OrganisationsEinheit organisationsEinheit = OrganisationsEinheitTestFactory.create();
+		@Captor
+		private ArgumentCaptor<CreateCommand> commandCaptor;
+		@Captor
+		private ArgumentCaptor<ForwardVorgangCommandBody> commandBodyCaptor;
+
+		@BeforeEach
+		void init() {
+			when(organisationsEinheitController.getOrganisationEinheit(any())).thenReturn(organisationsEinheit);
+			when(commandService.createCommand(any(), anyLong())).thenReturn(CommandTestFactory.create());
+			when(bodyMapper.updateFromOrganisationEinheit(any(), any())).thenReturn(ForwardVorgangCommandBodyTestFactory.create());
+		}
+
+		@Test
+		void shouldCallOrganisationsEinheitController() {
+			doRequest();
+
+			verify(organisationsEinheitController).getOrganisationEinheit(OrganisationsEinheitTestFactory.ID);
+		}
+
+		@Test
+		void shouldAddOrganisationsEinheitData() {
+			doRequest();
+
+			verify(bodyMapper).updateFromOrganisationEinheit(same(organisationsEinheit), commandBodyCaptor.capture());
+			assertThat(commandBodyCaptor.getValue()).usingRecursiveComparison()
+					.isEqualTo(ForwardVorgangCommandBody.builder().organisationEinheitId(OrganisationsEinheitTestFactory.ID).build());
+		}
+
+		@Test
+		void shouldCallCommandService() {
+			doRequest();
+
+			verify(commandService).createCommand(commandCaptor.capture(), eq(VorgangHeaderTestFactory.VERSION));
+			assertThat(commandCaptor.getValue()).usingRecursiveComparison().isEqualTo(CreateForwardVorgangCommandTestFactory.create());
+		}
+
+		@SneakyThrows
+		@Test
+		void shouldReturnCreated() {
+			var response = doRequest();
+
+			response.andExpect(status().isCreated());
+		}
+
+		@SneakyThrows
+		@Test
+		void shouldReturnLinkToCreatedCommand() {
+			var response = doRequest();
+
+			response.andExpect(header().stringValues("location", "http://localhost" + COMMANDS_PATH + "/" + CommandTestFactory.ID));
+		}
+
+		@SneakyThrows
+		private ResultActions doRequest() {
+			return mockMvc.perform(post(ForwardByVorgangCommandController.PATH, VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION)
+					.contentType(MediaType.APPLICATION_JSON)
+					.content(createContent()));
+		}
+
+		private String createContent() {
+			return CommandTestFactory.buildCreateCommandWithBodyContent(
+					CommandOrder.FORWARD_VORGANG,
+					"{\"organisationEinheitId\":\"%s\"}".formatted(OrganisationsEinheitTestFactory.ID));
+		}
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyMapperTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyMapperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..084a164b9dc5098685ce77e7af4e2a03f96c59f8
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyMapperTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.alfa.forwarding;
+
+import static org.assertj.core.api.Assertions.*;
+
+import java.util.UUID;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+import de.ozgcloud.alfa.collaboration.OrganisationsEinheitTestFactory;
+
+class ForwardVorgangCommandBodyMapperTest {
+
+	private final ForwardVorgangCommandBodyMapper mapper = Mappers.getMapper(ForwardVorgangCommandBodyMapper.class);
+
+	@Nested
+	class TestUpdateFromOrganisationEinheit {
+
+		private static final String ORGANISATIONS_EINHEIT_ID = UUID.randomUUID().toString();
+
+		private final ForwardVorgangCommandBody body = ForwardVorgangCommandBody.builder()
+				.organisationEinheitId(ORGANISATIONS_EINHEIT_ID).build();
+
+		@Test
+		void shouldUpdateFromOrganisationEinheit() {
+			mapper.updateFromOrganisationEinheit(OrganisationsEinheitTestFactory.create(), body);
+
+			assertThat(body).usingRecursiveComparison().ignoringFields("organisationEinheitId")
+					.isEqualTo(ForwardVorgangCommandBodyTestFactory.create());
+		}
+
+		@Test
+		void shouldPreserveId() {
+			mapper.updateFromOrganisationEinheit(OrganisationsEinheitTestFactory.create(), body);
+
+			assertThat(body.getOrganisationEinheitId()).isEqualTo(ORGANISATIONS_EINHEIT_ID);
+		}
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..abf89a2543920bfa2a5116a356a60bb7ab18e2d9
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardVorgangCommandBodyTestFactory.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.alfa.forwarding;
+
+import de.ozgcloud.alfa.collaboration.AnschriftTestFactory;
+import de.ozgcloud.alfa.collaboration.OrganisationsEinheitTestFactory;
+import de.ozgcloud.alfa.forwarding.ForwardVorgangCommandBody.ForwardVorgangCommandBodyBuilder;
+
+class ForwardVorgangCommandBodyTestFactory {
+
+	static ForwardVorgangCommandBody create() {
+		return createBuilder().build();
+	}
+
+	static ForwardVorgangCommandBodyBuilder createBuilder() {
+		return ForwardVorgangCommandBody.builder()
+				.organisationEinheitId(OrganisationsEinheitTestFactory.ID)
+				.name(OrganisationsEinheitTestFactory.NAME)
+				.strasse(AnschriftTestFactory.STRASSE)
+				.ort(AnschriftTestFactory.ORT)
+				.hausnummer(AnschriftTestFactory.HAUSNUMMER)
+				.plz(AnschriftTestFactory.PLZ);
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java
index 2b480261858a77629a4036c3d29c6da52a452aa0..551f863ef0902690c89c3068ffcbe1612b71adb6 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/forwarding/ForwardingVorgangWithEingangProcessorTest.java
@@ -42,7 +42,6 @@ import org.springframework.hateoas.Link;
 import org.springframework.web.util.UriComponentsBuilder;
 
 import de.ozgcloud.alfa.common.FeatureToggleProperties;
-import de.ozgcloud.alfa.common.command.CommandController.CommandByRelationController;
 import de.ozgcloud.alfa.common.user.CurrentUserService;
 import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
@@ -122,8 +121,8 @@ class ForwardingVorgangWithEingangProcessorTest {
 
 				@Test
 				void shouldAddForwardByOzgCloudLink() {
-					var expectedHref = UriComponentsBuilder.fromUriString(CommandByRelationController.COMMAND_BY_RELATION_PATH)
-							.buildAndExpand(VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION).toString();
+					var expectedHref = UriComponentsBuilder.fromUriString(ForwardByVorgangCommandController.PATH)
+							.buildAndExpand(VorgangHeaderTestFactory.ID, VorgangHeaderTestFactory.VERSION).toString();
 
 					var model = processor.process(EntityModel.of(vorgang));