diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html
index be0c599a5b7e04df8b03cbe0c51568aed474e709..e86356acece82f9d84a903d8a71d0181ffc5c6bf 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.html
@@ -23,7 +23,7 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<ng-container *ngIf="vorgang | hasLink: linkRel.ABSCHLIESSEN">
+<ng-container *ngIf="isVisible">
   <ozgcloud-stroked-button-with-spinner
     *ngIf="!showAsIconButton"
     data-test-id="abschliessen-button"
diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts
index 4d98aa579e9927feab12c1474ebc7dfaddb8e926..53f7eb0cbc0b54c8a83a4bba21443ce3377cd2b8 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts
@@ -22,22 +22,10 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { CommandResource } from '@alfa-client/command-shared';
-import {
-  HasLinkPipe,
-  StateResource,
-  createEmptyStateResource,
-  createStateResource,
-} from '@alfa-client/tech-shared';
+import { createEmptyStateResource, createStateResource, HasLinkPipe, StateResource, } from '@alfa-client/tech-shared';
 import { mock } from '@alfa-client/test-utils';
-import {
-  IconButtonWithSpinnerComponent,
-  OzgcloudStrokedButtonWithSpinnerComponent,
-} from '@alfa-client/ui';
-import {
-  VorgangCommandService,
-  VorgangStatus,
-  VorgangWithEingangLinkRel,
-} from '@alfa-client/vorgang-shared';
+import { IconButtonWithSpinnerComponent, OzgcloudStrokedButtonWithSpinnerComponent, } from '@alfa-client/ui';
+import { VorgangCommandService, VorgangWithEingangLinkRel, VorgangWithEingangResource, } from '@alfa-client/vorgang-shared';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { createCommandResource } from 'libs/command-shared/test/command';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
@@ -126,7 +114,7 @@ describe('AbschliessenButtonComponent', () => {
     });
 
     it('should be hidden', () => {
-      component.vorgang = createVorgangWithEingangResource();
+      component.isVisible = false;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenButton);
@@ -135,9 +123,7 @@ describe('AbschliessenButtonComponent', () => {
     });
 
     it('should be visible', () => {
-      component.vorgang = createVorgangWithEingangResource([
-        VorgangWithEingangLinkRel.ABSCHLIESSEN,
-      ]);
+      component.isVisible = true;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenButton);
@@ -153,7 +139,7 @@ describe('AbschliessenButtonComponent', () => {
     });
 
     it('should be hidden', () => {
-      component.vorgang = createVorgangWithEingangResource();
+      component.isVisible = false;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenIconButton);
@@ -161,11 +147,8 @@ describe('AbschliessenButtonComponent', () => {
       expect(buttonElement).not.toBeInstanceOf(HTMLElement);
     });
 
-
     it('should be visible', () => {
-      component.vorgang = createVorgangWithEingangResource([
-        VorgangWithEingangLinkRel.ABSCHLIESSEN,
-      ]);
+      component.isVisible = true;
 
       fixture.detectChanges();
       const buttonElement = fixture.nativeElement.querySelector(abschliessenIconButton);
@@ -173,4 +156,58 @@ describe('AbschliessenButtonComponent', () => {
       expect(buttonElement).toBeInstanceOf(HTMLElement);
     });
   });
+
+  describe('set vorgang', () => {
+    it('should set vorgang with eingang resource', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
+
+      component.vorgang = vorgang;
+
+      expect(component.vorgangWithEingangResource).toBe(vorgang);
+    });
+
+    it('should set visible to true', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+        VorgangWithEingangLinkRel.ABSCHLIESSEN,
+      ]);
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeTruthy();
+    });
+
+    it('should set visible to false', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeFalsy();
+    });
+
+    it('should set visible to false if have createBescheidDraft link', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+        VorgangWithEingangLinkRel.ABSCHLIESSEN,
+        VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
+      ]);
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeFalsy();
+    });
+
+    it('should set visible to false if have bescheidDraft link', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+        VorgangWithEingangLinkRel.ABSCHLIESSEN,
+        VorgangWithEingangLinkRel.BESCHEID_DRAFT,
+      ]);
+      component.vorgang = vorgang;
+
+      const isVisible: boolean = component.isVisible;
+
+      expect(isVisible).toBeFalsy();
+    });
+  });
 });
diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts
index 15df48ad2b497eed92ec4dfd36278e18fd3e506f..891dc472cdf377bc9ee28125b925d6a1bcd2dacf 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.ts
@@ -22,13 +22,10 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { CommandResource } from '@alfa-client/command-shared';
-import { StateResource, createEmptyStateResource } from '@alfa-client/tech-shared';
-import {
-  VorgangCommandService,
-  VorgangWithEingangLinkRel,
-  VorgangWithEingangResource,
-} from '@alfa-client/vorgang-shared';
+import { createEmptyStateResource, notHasLink, StateResource } from '@alfa-client/tech-shared';
+import { VorgangCommandService, VorgangWithEingangLinkRel, VorgangWithEingangResource, } from '@alfa-client/vorgang-shared';
 import { Component, Input, OnInit } from '@angular/core';
+import { hasLink } from '@ngxp/rest';
 import { Observable, of } from 'rxjs';
 
 @Component({
@@ -37,9 +34,19 @@ import { Observable, of } from 'rxjs';
   styleUrls: ['./abschliessen-button.component.scss'],
 })
 export class AbschliessenButtonComponent implements OnInit {
-  @Input() vorgang: VorgangWithEingangResource;
+  @Input() set vorgang(vorgang: VorgangWithEingangResource) {
+    this.vorgangWithEingangResource = vorgang;
+    this.isVisible =
+      hasLink(vorgang, VorgangWithEingangLinkRel.ABSCHLIESSEN) &&
+      notHasLink(vorgang, VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT) &&
+      notHasLink(vorgang, VorgangWithEingangLinkRel.BESCHEID_DRAFT);
+  }
+
   @Input() showAsIconButton: boolean = false;
 
+  public isVisible: boolean = false;
+  vorgangWithEingangResource: VorgangWithEingangResource;
+
   commandStateResource$: Observable<StateResource<CommandResource>> = of(
     createEmptyStateResource<CommandResource>(),
   );
@@ -53,6 +60,8 @@ export class AbschliessenButtonComponent implements OnInit {
   }
 
   public abschliessen(): void {
-    this.commandStateResource$ = this.vorgangCommandService.abschliessen(this.vorgang);
+    this.commandStateResource$ = this.vorgangCommandService.abschliessen(
+      this.vorgangWithEingangResource,
+    );
   }
 }
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java
index b6524e0b584102bd93baebf1e6d489e994056a98..da13ce1334dfdc76f838a3778f62f021b2237fbe 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessor.java
@@ -15,6 +15,7 @@ import de.ozgcloud.alfa.bescheid.BescheidController.BescheidByVorgangController;
 import de.ozgcloud.alfa.common.FeatureToggleProperties;
 import de.ozgcloud.alfa.common.ModelBuilder;
 import de.ozgcloud.alfa.common.command.CommandController.CommandByRelationController;
+import de.ozgcloud.alfa.common.user.CurrentUserService;
 import de.ozgcloud.alfa.vorgang.Vorgang;
 import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
 import lombok.RequiredArgsConstructor;
@@ -29,11 +30,12 @@ class BescheidVorgangProcessor implements RepresentationModelProcessor<EntityMod
 
 	private final BescheidService bescheidService;
 	private final FeatureToggleProperties featureToggleProperties;
+	private final CurrentUserService currentUserService;
 
 	@Override
 	public EntityModel<VorgangWithEingang> process(EntityModel<VorgangWithEingang> model) {
 		var vorgang = model.getContent();
-		if (Objects.isNull(vorgang)) {
+		if (Objects.isNull(vorgang) || currentUserService.isCurrentUserEinheitlicherAnsprechpartner()) {
 			return model;
 		}
 		return ModelBuilder.fromModel(model)
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java
index 81ddfb139f273627653798ac0a8368ce32f6ab39..3f25811408c0e6a030d04b7b7bf7018ce9b0a068 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/user/CurrentUserService.java
@@ -60,6 +60,10 @@ public class CurrentUserService {
 		return CurrentUserHelper.hasRole(role) || hasRoleReachable(role);
 	}
 
+	public boolean isCurrentUserEinheitlicherAnsprechpartner() {
+		return hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER);
+	}
+
 	private boolean hasRoleReachable(String role) {
 		var reachableRoles = roleHierarchy.getReachableGrantedAuthorities(getAuthorities());
 
@@ -95,8 +99,8 @@ public class CurrentUserService {
 
 	public Optional<UserId> findUserId() {
 		return Optional.ofNullable(getSingleClaimValue(ATTRIBUTE_NAME_USER_ID)
-				.map(UserId::from)
-				.orElseGet(this::getInternalId))
+						.map(UserId::from)
+						.orElseGet(this::getInternalId))
 				.filter(Objects::nonNull);
 	}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java
index 510a3f2a395f726aabb88c0c29998bd89508f462..3f2e3ba33e4572ca299227654e6bc793f689e9ef 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidVorgangProcessorTest.java
@@ -22,6 +22,7 @@ import org.springframework.hateoas.Link;
 
 import de.ozgcloud.alfa.common.FeatureToggleProperties;
 import de.ozgcloud.alfa.common.UserProfileUrlProvider;
+import de.ozgcloud.alfa.common.user.CurrentUserService;
 import de.ozgcloud.alfa.vorgang.Vorgang;
 import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory;
 import de.ozgcloud.alfa.vorgang.VorgangWithEingang;
@@ -35,8 +36,11 @@ class BescheidVorgangProcessorTest {
 	@Spy
 	@InjectMocks
 	private BescheidVorgangProcessor processor;
+
 	@Mock
 	private BescheidService service;
+	@Mock
+	private CurrentUserService currentUserService;
 
 	@Mock
 	private FeatureToggleProperties featureToggleProperties;
@@ -53,6 +57,16 @@ class BescheidVorgangProcessorTest {
 			assertThat(processedModel).isEqualTo(inputModel);
 		}
 
+		@Test
+		void shouldReturnTheSameModelWhenUserIsEinheitlicherAnsprechpartner() {
+			var inputModel = EntityModel.of(VorgangWithEingangTestFactory.create());
+			when(currentUserService.isCurrentUserEinheitlicherAnsprechpartner()).thenReturn(true);
+
+			var processedModel = processor.process(inputModel);
+
+			assertThat(processedModel).isEqualTo(inputModel);
+		}
+
 		@Test
 		void shouldCallExistsBescheid() {
 			initUserProfileUrlProvider(new UserProfileUrlProvider());
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/user/CurrentUserServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/user/CurrentUserServiceTest.java
index e363dc185c06592f6e7e11e35f25c131bd6a83d6..57866373540cc62930246fd09c489f3a3f97f19a 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/user/CurrentUserServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/user/CurrentUserServiceTest.java
@@ -139,4 +139,35 @@ class CurrentUserServiceTest {
 			}
 		}
 	}
+
+	@Nested
+	class TestICurrentUserEinheitlicherAnsprechpartner {
+
+		@Test
+		void shouldCheckRole() {
+			doReturn(false).when(service).hasRole(any());
+
+			service.isCurrentUserEinheitlicherAnsprechpartner();
+
+			verify(service).hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER);
+		}
+
+		@Test
+		void shouldReturnTrue() {
+			doReturn(true).when(service).hasRole(UserRole.EINHEITLICHER_ANSPRECHPARTNER);
+
+			var isEinhetlicherAnsprechpartner = service.isCurrentUserEinheitlicherAnsprechpartner();
+
+			assertThat(isEinhetlicherAnsprechpartner).isTrue();
+		}
+
+		@Test
+		void shouldReturnFalse() {
+			doReturn(false).when(service).hasRole(any());
+
+			var isEinhetlicherAnsprechpartner = service.isCurrentUserEinheitlicherAnsprechpartner();
+
+			assertThat(isEinhetlicherAnsprechpartner).isFalse();
+		}
+	}
 }
\ No newline at end of file