diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
index 1f1c1ed0920eb49a8cdb98aeeb39a38e827582c6..3113ffb78ef2f532a99726a91adaeae3475f00e8 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
@@ -17,13 +17,11 @@ import {
 import { ResourceRepository } from '../../../tech-shared/src/lib/resource/resource.repository';
 import { CommandOrder, CommandService, CreateCommand } from '@alfa-client/command-shared';
 import faker from '@faker-js/faker';
-import { createBescheidStateResource } from '../test/bescheid';
+import { createBescheidResource } from '../test/bescheid';
 import { createCommandStateResource } from '../../../command-shared/test/command';
-import { CommandLinkRel } from '../../../command-shared/src/lib/command.linkrel';
-import { cold } from 'jest-marbles';
 import { singleCold } from '../../../tech-shared/src/lib/resource/marbles';
 import { BescheidResource } from './bescheid.model';
-import { createBescheidResource } from '../test/bescheid';
+import { cold } from 'jest-marbles';
 
 describe('BescheidService', () => {
   let service: BescheidService;
@@ -105,40 +103,75 @@ describe('BescheidService', () => {
     });
   });
 
-  describe('bescheiderstellungUeberspringen', () => {
-    let vorgang: VorgangWithEingangResource;
-    let getBescheidDraft: jest.Mock;
+  describe('bescheidLoeschenUndErstellungUeberspringen', () => {
+    let vorgangWithEingangResource: VorgangWithEingangResource;
+    let bescheidResource: BescheidResource;
+    let bescheidErstellungUeberspringen: jest.Mock;
     let deleteBescheid: jest.Mock;
 
     beforeEach(() => {
-      vorgang = createVorgangWithEingangResource();
-      getBescheidDraft = service.getBescheidDraft = jest.fn();
+      vorgangWithEingangResource = createVorgangWithEingangResource();
+      bescheidResource = createBescheidResource();
+      bescheidErstellungUeberspringen = service.bescheidErstellungUeberspringen = jest.fn();
       deleteBescheid = service.deleteBescheid = jest.fn();
+      bescheidErstellungUeberspringen.mockReturnValue(of(createCommandStateResource()));
+      deleteBescheid.mockReturnValue(of(createCommandStateResource()));
     });
 
-    it('should get bescheid draft', (done) => {
-      getBescheidDraft.mockReturnValue(of(createBescheidStateResource()));
-      commandService.createCommand.mockReturnValue(of(createCommandStateResource()));
-      deleteBescheid.mockReturnValue(of(createCommandStateResource()));
+    it('should Bescheiderstellung überspringen', (done) => {
+      const command$ = service.bescheidLoeschenUndErstellungUeberspringen(
+        vorgangWithEingangResource,
+        bescheidResource,
+      );
 
-      const command$ = service.bescheiderstellungUeberspringen(vorgang);
+      command$.subscribe(() => {
+        expect(bescheidErstellungUeberspringen).toHaveBeenCalledWith(vorgangWithEingangResource);
+        done();
+      });
+    });
+
+    it('should Bescheid löschen', (done) => {
+      const command$ = service.bescheidLoeschenUndErstellungUeberspringen(
+        vorgangWithEingangResource,
+        bescheidResource,
+      );
 
       command$.subscribe(() => {
-        expect(getBescheidDraft).toHaveBeenCalled();
+        expect(deleteBescheid).toHaveBeenCalledWith(
+          bescheidResource.id,
+          vorgangWithEingangResource,
+        );
         done();
       });
     });
 
-    it('should vorgang abschliessen', (done) => {
-      getBescheidDraft.mockReturnValue(of(createBescheidStateResource()));
+    it('should emit delete bescheid command', () => {
+      const deleteBescheidCommand = createCommandStateResource();
+      deleteBescheid.mockReturnValue(of(deleteBescheidCommand));
+
+      const command$ = service.bescheidLoeschenUndErstellungUeberspringen(
+        vorgangWithEingangResource,
+        bescheidResource,
+      );
+
+      expect(command$).toBeObservable(cold('(a|)', { a: deleteBescheidCommand }));
+    });
+  });
+
+  describe('bescheidErstellungUeberspringen', () => {
+    let vorgangWithEingangResource: VorgangWithEingangResource;
+
+    beforeEach(() => {
+      vorgangWithEingangResource = createVorgangWithEingangResource();
       commandService.createCommand.mockReturnValue(of(createCommandStateResource()));
-      deleteBescheid.mockReturnValue(of(createCommandStateResource()));
+    });
 
-      const command$ = service.bescheiderstellungUeberspringen(vorgang);
+    it('should create command', (done) => {
+      const command$ = service.bescheidErstellungUeberspringen(vorgangWithEingangResource);
 
       command$.subscribe(() => {
         expect(commandService.createCommand).toHaveBeenCalledWith(
-          vorgang,
+          vorgangWithEingangResource,
           VorgangWithEingangLinkRel.UEBERSPRINGEN_UND_ABSCHLIESSEN,
           {
             order: CommandOrder.VORGANG_ABSCHLIESSEN,
@@ -149,28 +182,13 @@ describe('BescheidService', () => {
       });
     });
 
-    it('should delete bescheid', (done) => {
-      getBescheidDraft.mockReturnValue(of(createBescheidStateResource()));
-      commandService.createCommand.mockReturnValue(of(createCommandStateResource()));
-      deleteBescheid.mockReturnValue(of(createCommandStateResource()));
-
-      const command$ = service.bescheiderstellungUeberspringen(vorgang);
-
-      command$.subscribe(() => {
-        expect(deleteBescheid).toHaveBeenCalled();
-        done();
-      });
-    });
-
     it('should return command', () => {
-      const deleteBescheidCommand = createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE]);
-      getBescheidDraft.mockReturnValue(of(createBescheidStateResource()));
-      commandService.createCommand.mockReturnValue(of(createCommandStateResource()));
-      deleteBescheid.mockReturnValue(of(deleteBescheidCommand));
+      const command = createCommandStateResource();
+      commandService.createCommand.mockReturnValue(of(command));
 
-      const command$ = service.bescheiderstellungUeberspringen(vorgang);
+      const command$ = service.bescheidErstellungUeberspringen(vorgangWithEingangResource);
 
-      expect(command$).toBeObservable(cold('(a|)', { a: deleteBescheidCommand }));
+      expect(command$).toBeObservable(cold('(a|)', { a: command }));
     });
   });
 
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
index a0a6e9e7e1bcd48f15601849df8a183c812d00e6..8f5b54ded79a63c59a8b1b946dc83b290933227f 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
@@ -48,26 +48,25 @@ export class BescheidService {
     this.facade.createBescheid(vorgangWithEingang, buildCreateBescheidCommand(bescheid));
   }
 
-  public bescheiderstellungUeberspringen(
+  public bescheidLoeschenUndErstellungUeberspringen(
     vorgangWithEingangResource: VorgangWithEingangResource,
+    bescheidResource: BescheidResource,
   ): Observable<StateResource<CommandResource>> {
-    return this.getBescheidDraft().pipe(
-      switchMap((bescheidStateResource) =>
-        this.commandService
-          .createCommand(
-            vorgangWithEingangResource,
-            VorgangWithEingangLinkRel.UEBERSPRINGEN_UND_ABSCHLIESSEN,
-            {
-              order: CommandOrder.VORGANG_ABSCHLIESSEN,
-              body: null,
-            },
-          )
-          .pipe(
-            switchMap(() =>
-              this.deleteBescheid(bescheidStateResource.resource.id, vorgangWithEingangResource),
-            ),
-          ),
-      ),
+    return this.bescheidErstellungUeberspringen(vorgangWithEingangResource).pipe(
+      switchMap(() => this.deleteBescheid(bescheidResource.id, vorgangWithEingangResource)),
+    );
+  }
+
+  public bescheidErstellungUeberspringen(
+    vorgangWithEingangResource: VorgangWithEingangResource,
+  ): Observable<StateResource<CommandResource>> {
+    return this.commandService.createCommand(
+      vorgangWithEingangResource,
+      VorgangWithEingangLinkRel.UEBERSPRINGEN_UND_ABSCHLIESSEN,
+      {
+        order: CommandOrder.VORGANG_ABSCHLIESSEN,
+        body: null,
+      },
     );
   }
 
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts
index 4c10e6dd53054a691a86f3dd75cb5bc07b079c73..f7642c47dafbb2a6932f63726436869cbb9d791d 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts
@@ -5,15 +5,16 @@ import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-d
 import { MockComponent } from 'ng-mocks';
 import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui';
 import { MatIcon } from '@angular/material/icon';
-import { BescheidService } from '@alfa-client/bescheid-shared';
+import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
 import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang';
-import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { BescheiderstellungUeberspringenDailogData } from '@alfa-client/vorgang-detail';
 import { createCommandStateResource } from '../../../../../../../../command-shared/test/command';
-import { lastValueFrom, of } from 'rxjs';
+import { of } from 'rxjs';
 import { cold } from 'jest-marbles';
-import { createEmptyStateResource } from '@alfa-client/tech-shared';
+import { createStateResource } from '@alfa-client/tech-shared';
 import { CommandLinkRel } from '../../../../../../../../command-shared/src/lib/command.linkrel';
+import { createBescheidResource } from '../../../../../../../../bescheid-shared/src/test/bescheid';
 
 describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
   let component: VorgangDetailBescheidenUeberspringenDialogComponent;
@@ -77,56 +78,114 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
   });
 
   describe('onConfirm', () => {
-    it('should Bescheiderstellung Überspringen', async () => {
-      bescheidService.bescheiderstellungUeberspringen.mockReturnValue(
-        of(createCommandStateResource()),
+    it('should close all dialogs on success', (done) => {
+      bescheidService.bescheidErstellungUeberspringen.mockReturnValue(
+        of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])),
       );
 
       component.onConfirm();
 
-      await lastValueFrom(component.bescheiderstellungUeberspringen$);
-
-      expect(bescheidService.bescheiderstellungUeberspringen).toHaveBeenCalledWith(
-        vorgangWithEingangResource,
-      );
+      component.bescheiderstellungUeberspringen$.subscribe(() => {
+        expect(ozgcloudDialogService.closeAll).toHaveBeenCalled();
+        done();
+      });
     });
 
-    it('should emit values', () => {
-      const loadingCommand = createEmptyStateResource(true);
-      const bescheiderstellungUeberspringenCommand = createCommandStateResource();
-      bescheidService.bescheiderstellungUeberspringen.mockReturnValue(
-        cold('-a', { a: bescheiderstellungUeberspringenCommand }),
+    it('should not close all dialogs on failre', (done) => {
+      bescheidService.bescheidErstellungUeberspringen.mockReturnValue(
+        of(createCommandStateResource()),
       );
 
       component.onConfirm();
 
-      expect(component.bescheiderstellungUeberspringen$).toBeObservable(
-        cold('ab', { a: loadingCommand, b: bescheiderstellungUeberspringenCommand }),
-      );
+      component.bescheiderstellungUeberspringen$.subscribe(() => {
+        expect(ozgcloudDialogService.closeAll).not.toHaveBeenCalled();
+        done();
+      });
     });
 
-    it('should close all dialogs on success', async () => {
-      bescheidService.bescheiderstellungUeberspringen.mockReturnValue(
-        of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])),
-      );
+    describe('Bescheid Draft exists', () => {
+      let vorgangWithEingangResource: VorgangWithEingangResource;
+      let bescheidResource: BescheidResource;
+
+      beforeEach(() => {
+        vorgangWithEingangResource = createVorgangWithEingangResource([
+          VorgangWithEingangLinkRel.BESCHEID_DRAFT,
+        ]);
+        dialogData.vorgangWithEingangResource = vorgangWithEingangResource;
+        bescheidResource = createBescheidResource();
+        bescheidService.getBescheidDraft.mockReturnValue(of(createStateResource(bescheidResource)));
+        bescheidService.bescheidLoeschenUndErstellungUeberspringen.mockReturnValue(
+          of(createCommandStateResource()),
+        );
+      });
+
+      it('should get bescheid draft', (done) => {
+        component.onConfirm();
+
+        component.bescheiderstellungUeberspringen$.subscribe(() => {
+          expect(bescheidService.getBescheidDraft).toHaveBeenCalled();
+          done();
+        });
+      });
+
+      it('should Bescheid löschen und Erstellung überspringen', (done) => {
+        component.onConfirm();
+
+        component.bescheiderstellungUeberspringen$.subscribe(() => {
+          expect(bescheidService.bescheidLoeschenUndErstellungUeberspringen).toHaveBeenCalledWith(
+            vorgangWithEingangResource,
+            bescheidResource,
+          );
+          done();
+        });
+      });
+
+      it('should return command', () => {
+        const command = createCommandStateResource();
+        bescheidService.bescheidLoeschenUndErstellungUeberspringen.mockReturnValue(of(command));
+
+        component.onConfirm();
+
+        expect(component.bescheiderstellungUeberspringen$).toBeObservable(
+          cold('(a|)', { a: command }),
+        );
+      });
+    });
 
-      component.onConfirm();
+    describe('Bescheid Draft not exists', () => {
+      let vorgangWithEingangResource: VorgangWithEingangResource;
 
-      await lastValueFrom(component.bescheiderstellungUeberspringen$);
+      beforeEach(() => {
+        vorgangWithEingangResource = createVorgangWithEingangResource();
+        dialogData.vorgangWithEingangResource = vorgangWithEingangResource;
+      });
 
-      expect(ozgcloudDialogService.closeAll).toHaveBeenCalled();
-    });
+      it('should Bescheiderstellung überspringen', (done) => {
+        bescheidService.bescheidErstellungUeberspringen.mockReturnValue(
+          of(createCommandStateResource()),
+        );
 
-    it('should not close all dialogs on failure', async () => {
-      bescheidService.bescheiderstellungUeberspringen.mockReturnValue(
-        of(createCommandStateResource()),
-      );
+        component.onConfirm();
 
-      component.onConfirm();
+        component.bescheiderstellungUeberspringen$.subscribe(() => {
+          expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith(
+            vorgangWithEingangResource,
+          );
+          done();
+        });
+      });
+
+      it('should return command', () => {
+        const command = createCommandStateResource();
+        bescheidService.bescheidErstellungUeberspringen.mockReturnValue(of(command));
 
-      await lastValueFrom(component.bescheiderstellungUeberspringen$);
+        component.onConfirm();
 
-      expect(ozgcloudDialogService.closeAll).not.toHaveBeenCalled();
+        expect(component.bescheiderstellungUeberspringen$).toBeObservable(
+          cold('(a|)', { a: command }),
+        );
+      });
     });
   });
 
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts
index 6af40f56481e52fe3a1ecfacf3ac8fabbe9765e3..d5f23cad1c8ab2ea2994110073779f3381c42c37 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts
@@ -2,10 +2,12 @@ import { Component, Inject } from '@angular/core';
 import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
 import { OzgcloudDialogService } from '@alfa-client/ui';
 import { BescheidService } from '@alfa-client/bescheid-shared';
-import { Observable, startWith, tap } from 'rxjs';
+import { Observable, switchMap, tap } from 'rxjs';
 import { CommandResource, isSuccessfulDone } from '@alfa-client/command-shared';
-import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
+import { StateResource } from '@alfa-client/tech-shared';
 import { BescheiderstellungUeberspringenDailogData } from '@alfa-client/vorgang-detail';
+import { hasLink } from '@ngxp/rest';
+import { VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
 
 @Component({
   selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-dialog',
@@ -26,16 +28,30 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent {
   }
 
   onConfirm() {
-    this.bescheiderstellungUeberspringen$ = this.bescheidService
-      .bescheiderstellungUeberspringen(this.dialogData.vorgangWithEingangResource)
-      .pipe(
-        startWith(createEmptyStateResource<CommandResource>(true)),
-        tap((command) => {
-          if (isSuccessfulDone(command.resource)) {
-            this.ozgcloudDialogService.closeAll();
-          }
-        }),
+    const vorgangWithEingangResource = this.dialogData.vorgangWithEingangResource;
+    if (!hasLink(vorgangWithEingangResource, VorgangWithEingangLinkRel.BESCHEID_DRAFT)) {
+      this.bescheiderstellungUeberspringen$ = this.bescheidService.bescheidErstellungUeberspringen(
+        vorgangWithEingangResource,
       );
+    } else {
+      this.bescheiderstellungUeberspringen$ = this.bescheidService
+        .getBescheidDraft()
+        .pipe(
+          switchMap((bescheidStateResource) =>
+            this.bescheidService.bescheidLoeschenUndErstellungUeberspringen(
+              vorgangWithEingangResource,
+              bescheidStateResource.resource,
+            ),
+          ),
+        );
+    }
+    this.bescheiderstellungUeberspringen$ = this.bescheiderstellungUeberspringen$.pipe(
+      tap((command) => {
+        if (isSuccessfulDone(command.resource)) {
+          this.ozgcloudDialogService.closeAll();
+        }
+      }),
+    );
   }
 
   onClose() {