diff --git a/src/main/java/org/springframework/samples/petclinic/mapper/PetTypeMapper.java b/src/main/java/org/springframework/samples/petclinic/mapper/PetTypeMapper.java
index 486e5cbaf4b87b88665096200abb7cb6e7a1386d..05617161ad4d1bcf9c4c4d3b933e29944ecef6f1 100644
--- a/src/main/java/org/springframework/samples/petclinic/mapper/PetTypeMapper.java
+++ b/src/main/java/org/springframework/samples/petclinic/mapper/PetTypeMapper.java
@@ -19,6 +19,7 @@ public interface PetTypeMapper {
     PetType toPetType(PetTypeFieldsDto petTypeFieldsDto);
 
     PetTypeDto toPetTypeDto(PetType petType);
+    PetTypeFieldsDto toPetTypeFieldsDto(PetType petType);
 
     List<PetTypeDto> toPetTypeDtos(Collection<PetType> petTypes);
 }
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java
index cb2d0bad088c153ae7a59f1bc4fd246ef256d387..2b0107335a3c26c48369e83b995fdac426c5ce55 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/OwnerRestController.java
@@ -24,7 +24,6 @@ import org.springframework.samples.petclinic.mapper.PetMapper;
 import org.springframework.samples.petclinic.mapper.VisitMapper;
 import org.springframework.samples.petclinic.model.Owner;
 import org.springframework.samples.petclinic.model.Pet;
-import org.springframework.samples.petclinic.model.PetType;
 import org.springframework.samples.petclinic.model.Visit;
 import org.springframework.samples.petclinic.rest.api.OwnersApi;
 import org.springframework.samples.petclinic.rest.dto.*;
@@ -140,8 +139,6 @@ public class OwnerRestController implements OwnersApi {
         Owner owner = new Owner();
         owner.setId(ownerId);
         pet.setOwner(owner);
-        PetType petType = this.clinicService.findPetTypeByName(pet.getType().getName());
-        pet.setType(petType);
         this.clinicService.savePet(pet);
         PetDto petDto = petMapper.toPetDto(pet);
         headers.setLocation(UriComponentsBuilder.newInstance().path("/api/pets/{id}")
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java
index 870cd661879d0577b8905be391cd851606960231..3d0f423384a8b325b5a1d25bf6a25d2603e9b7b9 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestController.java
@@ -23,6 +23,7 @@ import org.springframework.samples.petclinic.mapper.PetTypeMapper;
 import org.springframework.samples.petclinic.model.PetType;
 import org.springframework.samples.petclinic.rest.api.PettypesApi;
 import org.springframework.samples.petclinic.rest.dto.PetTypeDto;
+import org.springframework.samples.petclinic.rest.dto.PetTypeFieldsDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -32,7 +33,6 @@ import jakarta.transaction.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 
 @RestController
 @CrossOrigin(exposedHeaders = "errors, content-type")
@@ -70,16 +70,12 @@ public class PetTypeRestController implements PettypesApi {
 
     @PreAuthorize("hasRole(@roles.VET_ADMIN)")
     @Override
-    public ResponseEntity<PetTypeDto> addPetType(PetTypeDto petTypeDto) {
+    public ResponseEntity<PetTypeDto> addPetType(PetTypeFieldsDto petTypeFieldsDto) {
         HttpHeaders headers = new HttpHeaders();
-        if (Objects.nonNull(petTypeDto.getId()) && !petTypeDto.getId().equals(0)) {
-            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
-        } else {
-            final PetType type = petTypeMapper.toPetType(petTypeDto);
-            this.clinicService.savePetType(type);
-            headers.setLocation(UriComponentsBuilder.newInstance().path("/api/pettypes/{id}").buildAndExpand(type.getId()).toUri());
-            return new ResponseEntity<>(petTypeMapper.toPetTypeDto(type), headers, HttpStatus.CREATED);
-        }
+        final PetType type = petTypeMapper.toPetType(petTypeFieldsDto);
+        this.clinicService.savePetType(type);
+        headers.setLocation(UriComponentsBuilder.newInstance().path("/api/pettypes/{id}").buildAndExpand(type.getId()).toUri());
+        return new ResponseEntity<>(petTypeMapper.toPetTypeDto(type), headers, HttpStatus.CREATED);
     }
 
     @PreAuthorize("hasRole(@roles.VET_ADMIN)")
diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java b/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java
index 6b01f1a921cde82e7b7cec0167c0a89b834bcaea..32d0975ebdf60afc243553207113d09639f0484c 100644
--- a/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java
+++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java
@@ -67,6 +67,4 @@ public interface ClinicService {
 	void deleteSpecialty(Specialty specialty) throws DataAccessException;
 
     List<Specialty> findSpecialtiesByNameIn(Set<String> names) throws DataAccessException;
-
-    PetType findPetTypeByName(String name) throws DataAccessException;
 }
diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
index 001fb4aedc944ffbe78866dfaf7236284517209f..e1f456d8b36cc67c3a43f046df84013993a40f9b 100644
--- a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
+++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java
@@ -296,17 +296,4 @@ public class ClinicServiceImpl implements ClinicService {
         }
         return specialties;
     }
-
-    @Override
-    @Transactional(readOnly = true)
-    public PetType findPetTypeByName(String name){
-        PetType petType;
-        try {
-            petType = petTypeRepository.findByName(name);
-        } catch (ObjectRetrievalFailureException|EmptyResultDataAccessException e) {
-            // just ignore not found exceptions for Jdbc/Jpa realization
-            return null;
-        }
-        return petType;
-    }
 }
diff --git a/src/main/resources/openapi.yml b/src/main/resources/openapi.yml
index c49fe4968ebe8c5125802a200687dc41ebe59ca0..162ef275488a05305dc7d11cccb401a95cef426a 100755
--- a/src/main/resources/openapi.yml
+++ b/src/main/resources/openapi.yml
@@ -557,7 +557,7 @@ paths:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/PetType'
+              $ref: '#/components/schemas/PetTypeFields'
         required: true
       responses:
         200:
@@ -2170,7 +2170,6 @@ components:
               format: int32
               minimum: 0
               example: 1
-              readOnly: true
           required:
             - id
     User:
diff --git a/src/test/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestControllerTests.java
index 72cb078e8c6922249c1f6f29e85f8f738a9187dd..2e21d73ae4bdf0c940bac36489f95163292ae1b2 100644
--- a/src/test/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/rest/controller/PetTypeRestControllerTests.java
@@ -26,8 +26,6 @@ import org.springframework.http.MediaType;
 import org.springframework.samples.petclinic.mapper.PetTypeMapper;
 import org.springframework.samples.petclinic.model.PetType;
 import org.springframework.samples.petclinic.rest.advice.ExceptionControllerAdvice;
-import org.springframework.samples.petclinic.rest.controller.PetTypeRestController;
-import org.springframework.samples.petclinic.rest.dto.PetTypeDto;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.samples.petclinic.service.clinicService.ApplicationTestConfig;
 import org.springframework.security.test.context.support.WithMockUser;
@@ -72,7 +70,7 @@ class PetTypeRestControllerTests {
     	this.mockMvc = MockMvcBuilders.standaloneSetup(petTypeRestController)
     			.setControllerAdvice(new ExceptionControllerAdvice())
     			.build();
-    	petTypes = new ArrayList<PetType>();
+    	petTypes = new ArrayList<>();
 
     	PetType petType = new PetType();
     	petType.setId(1);
@@ -176,7 +174,7 @@ class PetTypeRestControllerTests {
     	PetType newPetType = petTypes.get(0);
     	newPetType.setId(null);
     	ObjectMapper mapper = new ObjectMapper();
-        String newPetTypeAsJSON = mapper.writeValueAsString(petTypeMapper.toPetTypeDto(newPetType));
+        String newPetTypeAsJSON = mapper.writeValueAsString(petTypeMapper.toPetTypeFieldsDto(newPetType));
     	this.mockMvc.perform(post("/api/pettypes/")
     		.content(newPetTypeAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
     		.andExpect(status().isCreated());
@@ -194,17 +192,7 @@ class PetTypeRestControllerTests {
         		.content(newPetTypeAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
         		.andExpect(status().isBadRequest());
      }
-    @Test
-    @WithMockUser(roles="VET_ADMIN")
-    void testCreatePetTypeErrorWithId() throws Exception {
-        PetType newPetType = petTypes.get(0);
-        newPetType.setId(1);
-        ObjectMapper mapper = new ObjectMapper();
-        String newPetTypeAsJSON = mapper.writeValueAsString(petTypeMapper.toPetTypeDto(newPetType));
-        this.mockMvc.perform(post("/api/pettypes/")
-                .content(newPetTypeAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-            .andExpect(status().isBadRequest());
-    }
+
     @Test
     @WithMockUser(roles="VET_ADMIN")
     void testUpdatePetTypeSuccess() throws Exception {
diff --git a/src/test/java/org/springframework/samples/petclinic/service/clinicService/AbstractClinicServiceTests.java b/src/test/java/org/springframework/samples/petclinic/service/clinicService/AbstractClinicServiceTests.java
index 55a4b423119cc31eb2bf7e251885684f3fdd0468..aff2ec156fa25a97a908538be17459095655c47d 100644
--- a/src/test/java/org/springframework/samples/petclinic/service/clinicService/AbstractClinicServiceTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/service/clinicService/AbstractClinicServiceTests.java
@@ -499,11 +499,4 @@ abstract class AbstractClinicServiceTests {
                     && actual.getId().equals(expected.getId()))).isTrue();
         }
     }
-
-    @Test
-    @Transactional
-    void shouldFindPetTypeByName(){
-        PetType petType = this.clinicService.findPetTypeByName("cat");
-        assertThat(petType.getId()).isEqualTo(1);
-    }
 }