diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
index 41240e84f576532b296a61e24e9375f400e6d471..6fe0a332ba918b071d6bddfb712e7b4e177a4891 100644
--- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
+++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
@@ -201,26 +201,6 @@ describe('KeycloakFormService', () => {
     });
   });
 
-  describe('delete', () => {
-    const dummyStateResource: StateResource<Dummy> = createStateResource(createDummy());
-
-    beforeEach(() => {
-      service._doDelete = jest.fn().mockReturnValue(singleHot(dummyStateResource));
-    });
-
-    it('should call do delete', () => {
-      service.delete();
-
-      expect(service._doDelete).toHaveBeenCalled();
-    });
-
-    it('should return delete response', () => {
-      const deleteResponse: Observable<StateResource<Dummy>> = service.delete();
-
-      expect(deleteResponse).toBeObservable(singleCold(dummyStateResource));
-    });
-  });
-
   describe('patch', () => {
     const valueToPatch: Dummy = { name: 'newName' };
     let patchFormSpy: jest.SpyInstance;
diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
index bc8b2ea2455f7cd0d3f77e0b02e72cc3998d1f4d..49a2e6c84e3fdbf69b22ca324ee0100a34ae6763 100644
--- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
+++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
@@ -75,12 +75,6 @@ export abstract class KeycloakFormService<T> {
 
   abstract _doSubmit(): Observable<StateResource<T>>;
 
-  public delete(): Observable<StateResource<unknown>> {
-    return this._doDelete();
-  }
-
-  abstract _doDelete(): Observable<StateResource<unknown>>;
-
   _patch(valueToPatch: T): void {
     this.form.reset();
 
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts
index 7d31c2336f640739f3ff3c63d5d295405d9c9af8..08d0be421e975875835070706f8ca35efb6cfbf4 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts
@@ -1,6 +1,7 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { ROUTES } from '@admin-client/shared';
+import { UserService } from '@admin-client/user-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
 import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
 import { dispatchEventFromFixture, getMockComponent, Mock, mock } from '@alfa-client/test-utils';
@@ -20,10 +21,12 @@ describe('UserFormDeleteDialogComponent', () => {
   const deletDialogLocator: string = getDataTestIdOf('delete-dialog');
 
   let formService: Mock<UserFormService>;
+  let userService: Mock<UserService>;
   let navigationService: Mock<NavigationService>;
 
   beforeEach(async () => {
     formService = mock(UserFormService);
+    userService = mock(UserService);
     navigationService = mock(NavigationService);
     formService = {
       ...mock(UserFormService),
@@ -35,6 +38,7 @@ describe('UserFormDeleteDialogComponent', () => {
       imports: [UserDeleteDialogContainerComponent, UserDeleteDialogComponent],
       providers: [
         { provide: UserFormService, useValue: formService },
+        { provide: UserService, useValue: userService },
         { provide: NavigationService, useValue: navigationService },
       ],
     }).compileComponents();
@@ -73,29 +77,35 @@ describe('UserFormDeleteDialogComponent', () => {
 
   describe('component', () => {
     describe('deleteUser', () => {
+      const userId: string = faker.string.uuid();
       const loadingStateResource: StateResource<unknown> = createEmptyStateResource(true);
       const loadingStateResource$: Observable<StateResource<unknown>> = of(loadingStateResource);
       const loadingDoneStateResource$: Observable<StateResource<unknown>> = of(createEmptyStateResource());
 
-      it('should call formService.delete', () => {
-        formService.delete.mockReturnValue(loadingStateResource$);
+      beforeEach(() => {
+        userService.delete = jest.fn().mockReturnValue(loadingStateResource$);
+        formService.getId = jest.fn().mockReturnValue(userId);
+      });
 
+      it('should call formService getId', () => {
         component.deleteUser();
 
-        expect(formService.delete).toHaveBeenCalled();
+        expect(formService.getId).toHaveBeenCalled();
       });
 
-      it('should set deleteUserStateResource$', () => {
-        formService.delete.mockReturnValue(loadingStateResource$);
+      it('should call userService delete', () => {
+        component.deleteUser();
 
+        expect(userService.delete).toHaveBeenCalledWith(userId);
+      });
+
+      it('should set deleteUserStateResource$', () => {
         component.deleteUser();
 
         expect(component.deleteUserStateResource$).toBeObservable(singleColdCompleted(loadingStateResource));
       });
 
       it('should not navigate on loading', () => {
-        formService.delete.mockReturnValue(loadingStateResource$);
-
         component.deleteUser();
         component.deleteUserStateResource$.subscribe();
 
@@ -103,7 +113,7 @@ describe('UserFormDeleteDialogComponent', () => {
       });
 
       it('should navigate on delete success', () => {
-        formService.delete.mockReturnValue(loadingDoneStateResource$);
+        userService.delete.mockReturnValue(loadingDoneStateResource$);
 
         component.deleteUser();
         component.deleteUserStateResource$.subscribe();
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts
index a582fc6598784096a6bedfb4b78966980cd0e9e9..fb3f0e0a9ae2e286b4ab6e49d4f4e79965b65dc5 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts
@@ -1,4 +1,5 @@
 import { ROUTES } from '@admin-client/shared';
+import { UserService } from '@admin-client/user-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
 import { createEmptyStateResource, isNotLoading, StateResource } from '@alfa-client/tech-shared';
 import { AsyncPipe } from '@angular/common';
@@ -15,13 +16,14 @@ import { UserDeleteDialogComponent } from './user-delete-dialog/user-delete-dial
 })
 export class UserDeleteDialogContainerComponent {
   public readonly formService = inject(UserFormService);
+  public readonly userService = inject(UserService);
   public readonly navigationService = inject(NavigationService);
 
   public deleteUserStateResource$: Observable<StateResource<unknown>> = of(createEmptyStateResource());
 
   public deleteUser(): void {
-    this.deleteUserStateResource$ = this.formService
-      .delete()
+    this.deleteUserStateResource$ = this.userService
+      .delete(this.formService.getId())
       .pipe(tap((state: StateResource<unknown>) => this.navigateOnDeleteSuccess(state)));
   }
 
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
index 7b340b7fff3d0a41d0060c94835ce82fde99b9a0..e4f349008dcf3b2fa2417836a3e735115a30449b 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
@@ -358,28 +358,6 @@ describe('UserFormService', () => {
     }));
   });
 
-  describe('doDelete', () => {
-    const id: string = faker.string.uuid();
-    const stateResource: StateResource<unknown> = createEmptyStateResource();
-
-    beforeEach(() => {
-      formService._patchConfig = { id, doPatch: true };
-      service.delete.mockReturnValue(of(stateResource));
-    });
-
-    it('should call service delete', () => {
-      formService._doDelete();
-
-      expect(service.delete).toHaveBeenCalledWith(id);
-    });
-
-    it('should return empty stateResource', () => {
-      const result: Observable<StateResource<unknown>> = formService._doDelete();
-
-      expect(result).toBeObservable(singleColdCompleted(stateResource));
-    });
-  });
-
   describe('createOrSave', () => {
     const user: User = createUser();
 
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
index da268c079ed0afa0607f1ce1c5667a4c1cb0d116..a456872659a6b1ebd15a0bb570080b5834069fdd 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
@@ -206,10 +206,6 @@ export class UserFormService extends KeycloakFormService<User> implements OnDest
     );
   }
 
-  _doDelete(): Observable<StateResource<unknown>> {
-    return this.userService.delete(this._patchConfig.id);
-  }
-
   _createOrSave(user: User): Observable<StateResource<User>> {
     if (this.isPatch()) {
       return this.userService.save({