diff --git a/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java b/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java
index c3f5320bc928490b407bf0ff8a83b192566eb0d7..1f3bafc0e2c86b61357bf488d0a4304bca032b70 100644
--- a/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java
+++ b/common/src/test/java/de/ozgcloud/eingang/common/formdata/AntragstellerTestFactory.java
@@ -30,6 +30,7 @@ public class AntragstellerTestFactory {
 
 	public static final String ANREDE = "Herr";
 
+	public static final String FIRMA_NAME = "Firma X";
 	public static final String GEBIET_BEZEICHNUNG_KEY = "GebietBEZEICHNUNG";
 	public static final String GEBIET_BEZEICHNUNG_VALUE = "Schleswig";
 
@@ -54,6 +55,19 @@ public class AntragstellerTestFactory {
 		return createBuilder().build();
 	}
 
+	public static Antragsteller createFirm() {
+		return createBuilder()
+				.firmName(FIRMA_NAME)
+				.geburtsname(null)
+				.geburtsdatum(null)
+				.geburtsort(null)
+				.hausnummer(null)
+				.postfachId(null)
+				.strasse("%s %s".formatted(STRASSE, HAUSNUMMER))
+				.data(null)
+				.build();
+	}
+
 	public static Antragsteller.AntragstellerBuilder createBuilder() {
 		return Antragsteller.builder()
 				.anrede(ANREDE)
diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java
index a8d133be63359eca9db5d610c01f4bfd144f1a96..7e9abf89ddcfd882477dc7007848f937db800e5c 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapper.java
@@ -1,5 +1,7 @@
 package de.ozgcloud.eingang.semantik.enginebased.formcycle;
 
+import static org.apache.commons.lang3.StringUtils.*;
+
 import java.util.Map;
 import java.util.Optional;
 
@@ -25,6 +27,7 @@ public class FormcycleAntragstellerMapper implements FormcycleEngineBasedMapper
 	static final String KEY_ADDRESS = "tfAntragstellerAdresse";
 	static final String KEY_PLZ = "tfAntragstellerPLZ";
 	static final String KEY_ORT = "tfAntragstellerOrt";
+	static final String KEY_FIRMA_NAME = "tfOrgName";
 
 	@Override
 	public FormData parseFormData(final FormData formData) {
@@ -41,19 +44,26 @@ public class FormcycleAntragstellerMapper implements FormcycleEngineBasedMapper
 	}
 
 	Antragsteller buildAntragsteller(Map<String, Object> antragstellerData) {
-		return Antragsteller.builder()
+		var firmaName = getValue(antragstellerData, KEY_FIRMA_NAME);
+		var antragstellerBuilder = Antragsteller.builder()
+				.firmName(firmaName)
 				.anrede(getValue(antragstellerData, KEY_ANREDE))
 				.vorname(getValue(antragstellerData, KEY_VORNAME))
 				.nachname(getValue(antragstellerData, KEY_NACHNAME))
-				.geburtsname(getValue(antragstellerData, KEY_GEBURTSNAME))
-				.geburtsdatum(getValue(antragstellerData, KEY_GEBURTSDATUM))
-				.geburtsort(getValue(antragstellerData, KEY_GEBURTSORT))
 				.email(getValue(antragstellerData, KEY_EMAIL))
 				.telefon(getValue(antragstellerData, KEY_TELEFON))
 				.strasse(getValue(antragstellerData, KEY_ADDRESS))
 				.plz(getValue(antragstellerData, KEY_PLZ))
-				.ort(getValue(antragstellerData, KEY_ORT))
-				.build();
+				.ort(getValue(antragstellerData, KEY_ORT));
+		if (isBlank(firmaName)) {
+			antragstellerBuilder
+					.geburtsname(getValue(antragstellerData, KEY_GEBURTSNAME))
+					.geburtsdatum(getValue(antragstellerData, KEY_GEBURTSDATUM))
+					.geburtsort(getValue(antragstellerData, KEY_GEBURTSORT));
+		}else {
+			antragstellerBuilder.firmName(firmaName);
+		}
+		return antragstellerBuilder.build();
 	}
 
 	String getValue(Map<String, Object> formDataMap, String key) {
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java
index ecce809dfc165ebda375212fcc659021b9f8ea76..96ba09f229caed28bbaa88174714a57f1a54755f 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/formcycle/FormcycleAntragstellerMapperTest.java
@@ -7,8 +7,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 
-import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
@@ -28,23 +27,9 @@ class FormcycleAntragstellerMapperTest {
 
 	private static final String VALUE_KEY = "value";
 	private static final String LABEL_KEY = "label";
-	private static final Map<String, Object> ANTRAGSTELLER_DATA = new HashMap<>();
-	private static final Map<String, Object> ANTRAGSTELLER_MAP = Map.of("fsBKAllDaten", Map.of(VALUE_KEY, ANTRAGSTELLER_DATA));
-
-	@BeforeAll
-	static void fillAntragstellerData() {
-		ANTRAGSTELLER_DATA.put("tfAntragstellerAnrede", Map.of(VALUE_KEY, AntragstellerTestFactory.ANREDE, LABEL_KEY, "Anrede"));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerVorname", Map.of(LABEL_KEY, "Vorname", VALUE_KEY, AntragstellerTestFactory.VORNAME));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerName", Map.of(VALUE_KEY, AntragstellerTestFactory.NACHNAME, LABEL_KEY, "Nachname"));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerGeburtsname", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSNAME, LABEL_KEY, "Geburtsname"));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerGeburtsdatum", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSDATUM, LABEL_KEY, "Geburtsdatum"));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerGeburtsort", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSORT, LABEL_KEY, "Geburtsort"));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerEmail", Map.of(VALUE_KEY, AntragstellerTestFactory.EMAIL, LABEL_KEY, "E-Mail"));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerTelefon", Map.of(VALUE_KEY, AntragstellerTestFactory.TELEFON, LABEL_KEY, "Telefon"));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerAdresse", Map.of(LABEL_KEY, "Adresse", VALUE_KEY, AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerPLZ", Map.of(LABEL_KEY, "PLZ", VALUE_KEY, AntragstellerTestFactory.PLZ));
-		ANTRAGSTELLER_DATA.put("tfAntragstellerOrt", Map.of(LABEL_KEY, "Ort", VALUE_KEY, AntragstellerTestFactory.ORT));
-	}
+
+	private Map<String, Object> antragstellerData = new HashMap<>();
+	private Map<String, Object> antragstellerMap = Map.of("fsBKAllDaten", Map.of(VALUE_KEY, antragstellerData));
 
 	@Nested
 	class TestParseFormData {
@@ -56,16 +41,16 @@ class FormcycleAntragstellerMapperTest {
 		void shouldCallGetAntragsteller() {
 			mapper.parseFormData(buildFormData());
 
-			verify(mapper).getAntragstellerData(ANTRAGSTELLER_MAP);
+			verify(mapper).getAntragstellerData(antragstellerMap);
 		}
 
 		@Test
 		void shouldCallBuildAntragsteller() {
-			doReturn(Optional.of(ANTRAGSTELLER_DATA)).when(mapper).getAntragstellerData(anyMap());
+			doReturn(Optional.of(antragstellerData)).when(mapper).getAntragstellerData(anyMap());
 
 			mapper.parseFormData(buildFormData());
 
-			verify(mapper).buildAntragsteller(ANTRAGSTELLER_DATA);
+			verify(mapper).buildAntragsteller(antragstellerData);
 		}
 
 		@Test
@@ -87,7 +72,7 @@ class FormcycleAntragstellerMapperTest {
 		}
 
 		FormData buildFormData() {
-			return FormData.builder().formData(ANTRAGSTELLER_MAP).build();
+			return FormData.builder().formData(antragstellerMap).build();
 		}
 	}
 
@@ -105,9 +90,9 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldReturnAntragstellerData() {
-			var result = mapper.getAntragstellerData(ANTRAGSTELLER_MAP);
+			var result = mapper.getAntragstellerData(antragstellerMap);
 
-			assertThat(result).contains(ANTRAGSTELLER_DATA);
+			assertThat(result).contains(antragstellerData);
 		}
 	}
 
@@ -116,6 +101,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetAnrede() {
+			antragstellerData.put("tfAntragstellerAnrede", Map.of(VALUE_KEY, AntragstellerTestFactory.ANREDE, LABEL_KEY, "Anrede"));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getAnrede()).isEqualTo(AntragstellerTestFactory.ANREDE);
@@ -123,6 +110,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetVorname() {
+			antragstellerData.put("tfAntragstellerVorname", Map.of(LABEL_KEY, "Vorname", VALUE_KEY, AntragstellerTestFactory.VORNAME));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getVorname()).isEqualTo(AntragstellerTestFactory.VORNAME);
@@ -130,6 +119,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetNachname() {
+			antragstellerData.put("tfAntragstellerName", Map.of(VALUE_KEY, AntragstellerTestFactory.NACHNAME, LABEL_KEY, "Nachname"));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getNachname()).isEqualTo(AntragstellerTestFactory.NACHNAME);
@@ -137,6 +128,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetGeburtsname() {
+			antragstellerData.put("tfAntragstellerGeburtsname", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSNAME, LABEL_KEY, "Geburtsname"));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getGeburtsname()).isEqualTo(AntragstellerTestFactory.GEBURTSNAME);
@@ -144,6 +137,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetGeburtsdatum() {
+			antragstellerData.put("tfAntragstellerGeburtsdatum", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSDATUM, LABEL_KEY, "Geburtsdatum"));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getGeburtsdatum()).isEqualTo(AntragstellerTestFactory.GEBURTSDATUM);
@@ -151,6 +146,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetGeburtsort() {
+			antragstellerData.put("tfAntragstellerGeburtsort", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSORT, LABEL_KEY, "Geburtsort"));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getGeburtsort()).isEqualTo(AntragstellerTestFactory.GEBURTSORT);
@@ -158,6 +155,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetEmail() {
+			antragstellerData.put("tfAntragstellerEmail", Map.of(VALUE_KEY, AntragstellerTestFactory.EMAIL, LABEL_KEY, "E-Mail"));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getEmail()).isEqualTo(AntragstellerTestFactory.EMAIL);
@@ -165,6 +164,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetTelefon() {
+			antragstellerData.put("tfAntragstellerTelefon", Map.of(VALUE_KEY, AntragstellerTestFactory.TELEFON, LABEL_KEY, "Telefon"));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getTelefon()).isEqualTo(AntragstellerTestFactory.TELEFON);
@@ -172,6 +173,9 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetAdresse() {
+			antragstellerData.put("tfAntragstellerAdresse",
+					Map.of(LABEL_KEY, "Adresse", VALUE_KEY, AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getStrasse()).isEqualTo(AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER);
@@ -179,6 +183,8 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetPlz() {
+			antragstellerData.put("tfAntragstellerPLZ", Map.of(LABEL_KEY, "PLZ", VALUE_KEY, AntragstellerTestFactory.PLZ));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getPlz()).isEqualTo(AntragstellerTestFactory.PLZ);
@@ -186,13 +192,44 @@ class FormcycleAntragstellerMapperTest {
 
 		@Test
 		void shouldSetOrt() {
+			antragstellerData.put("tfAntragstellerOrt", Map.of(LABEL_KEY, "Ort", VALUE_KEY, AntragstellerTestFactory.ORT));
+
 			var result = buildAntragsteller();
 
 			assertThat(result.getOrt()).isEqualTo(AntragstellerTestFactory.ORT);
 		}
 
 		Antragsteller buildAntragsteller() {
-			return mapper.buildAntragsteller(ANTRAGSTELLER_DATA);
+			return mapper.buildAntragsteller(antragstellerData);
+		}
+	}
+
+	@Nested
+	class TestBuildFirmaAntragsteller {
+
+		@BeforeEach
+		void fillAntragstellerData() {
+			antragstellerData.put("tfOrgName", Map.of(VALUE_KEY, AntragstellerTestFactory.FIRMA_NAME, LABEL_KEY, "Firmenname"));
+			antragstellerData.put("tfAntragstellerAnrede", Map.of(VALUE_KEY, AntragstellerTestFactory.ANREDE, LABEL_KEY, "Anrede"));
+			antragstellerData.put("tfAntragstellerVorname", Map.of(LABEL_KEY, "Vorname", VALUE_KEY, AntragstellerTestFactory.VORNAME));
+			antragstellerData.put("tfAntragstellerName", Map.of(VALUE_KEY, AntragstellerTestFactory.NACHNAME, LABEL_KEY, "Nachname"));
+			antragstellerData.put("tfAntragstellerGeburtsname", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSNAME, LABEL_KEY, "Geburtsname"));
+			antragstellerData.put("tfAntragstellerGeburtsdatum", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSDATUM, LABEL_KEY, "Geburtsdatum"));
+			antragstellerData.put("tfAntragstellerGeburtsort", Map.of(VALUE_KEY, AntragstellerTestFactory.GEBURTSORT, LABEL_KEY, "Geburtsort"));
+			antragstellerData.put("tfAntragstellerEmail", Map.of(VALUE_KEY, AntragstellerTestFactory.EMAIL, LABEL_KEY, "E-Mail"));
+			antragstellerData.put("tfAntragstellerTelefon", Map.of(VALUE_KEY, AntragstellerTestFactory.TELEFON, LABEL_KEY, "Telefon"));
+			antragstellerData.put("tfAntragstellerAdresse",
+					Map.of(LABEL_KEY, "Adresse", VALUE_KEY, AntragstellerTestFactory.STRASSE + " " + AntragstellerTestFactory.HAUSNUMMER));
+			antragstellerData.put("tfAntragstellerPLZ", Map.of(LABEL_KEY, "PLZ", VALUE_KEY, AntragstellerTestFactory.PLZ));
+			antragstellerData.put("tfAntragstellerOrt", Map.of(LABEL_KEY, "Ort", VALUE_KEY, AntragstellerTestFactory.ORT));
 		}
+
+		@Test
+		void shouldMapFirmaData() {
+			var result = mapper.buildAntragsteller(antragstellerData);
+
+			assertThat(result).usingRecursiveComparison().isEqualTo(AntragstellerTestFactory.createFirm());
+		}
+
 	}
 }
\ No newline at end of file