diff --git a/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.spec.ts b/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.spec.ts
index b07673efb637d2565358c33723a9953ee187923b..1804540773a7b68dac8314afa73faf800b50a8e0 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.spec.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.spec.ts
@@ -37,19 +37,65 @@ describe('BescheidFacade', () => {
   });
 
   describe('createBescheid', () => {
-    it('should dispatch "createCommand"', () => {
-      const vorgangWithEingang: VorgangWithEingangResource = createVorgangWithEingangResource();
-      const createCommand: CreateCommand = createCreateCommand(CommandOrder.CREATE_BESCHEID);
-
-      facade.createBescheid(vorgangWithEingang, createCommand);
-
-      expect(store.dispatch).toHaveBeenCalledWith(
-        CommandActions.createCommand({
-          resource: vorgangWithEingang,
-          linkRel: VorgangWithEingangLinkRel.CREATE_BESCHEID,
-          command: createCommand,
-        }),
-      );
+    const vorgangWithEingang: VorgangWithEingangResource = createVorgangWithEingangResource();
+    const createCommand: CreateCommand = createCreateCommand(CommandOrder.CREATE_BESCHEID);
+
+    describe('with both Links', () => {
+      it('should dispatch "createCommand" to CREATE_BESCHEID', () => {
+        const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+          VorgangWithEingangLinkRel.CREATE_BESCHEID,
+          VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
+        ]);
+        facade.createBescheid(vorgang, createCommand);
+
+        expect(store.dispatch).toHaveBeenCalledWith(
+          CommandActions.createCommand({
+            resource: vorgang,
+            linkRel: VorgangWithEingangLinkRel.CREATE_BESCHEID,
+            command: createCommand,
+          }),
+        );
+      });
+    });
+
+    describe('with CREATE_BESCHEID_DRAFT link', () => {
+      it('should dispatch "createCommand" to CREATE_BESCHEID_DRAFT', () => {
+        const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+          VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
+        ]);
+        facade.createBescheid(vorgang, createCommand);
+
+        expect(store.dispatch).toHaveBeenCalledWith(
+          CommandActions.createCommand({
+            resource: vorgang,
+            linkRel: VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
+            command: createCommand,
+          }),
+        );
+      });
+    });
+
+    describe('with CREATE_BESCHEID link', () => {
+      it('should dispatch "createCommand" to CREATE_BESCHEID', () => {
+        const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource([
+          VorgangWithEingangLinkRel.CREATE_BESCHEID,
+        ]);
+
+        facade.createBescheid(vorgang, createCommand);
+
+        expect(store.dispatch).toHaveBeenCalledWith(
+          CommandActions.createCommand({
+            resource: vorgang,
+            linkRel: VorgangWithEingangLinkRel.CREATE_BESCHEID,
+            command: createCommand,
+          }),
+        );
+      });
+    });
+    it('should emit error if link is missing()', () => {
+      const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
+
+      expect(() => facade.createBescheid(vorgang, createCommand)).toThrowError();
     });
   });
 });
diff --git a/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.ts b/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.ts
index c71a5ec087fcf8c07fbb485040890d7dacc8541d..0f965a3dbf1296e4ab9c1b08eb9aefded1902da8 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/+state/bescheid.facade.ts
@@ -1,11 +1,13 @@
-import { Injectable } from '@angular/core';
 import { CommandResource, CreateCommand } from '@alfa-client/command-shared';
 import { StateResource } from '@alfa-client/tech-shared';
 import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { Injectable } from '@angular/core';
 import { Store } from '@ngrx/store';
-import { Observable } from 'rxjs';
+import { Observable, throwError } from 'rxjs';
+
 import * as CommandActions from '../../../../command-shared/src/lib/+state/command.actions';
 import * as BescheidSelectors from './bescheid.selectors';
+import { hasLink } from '@ngxp/rest';
 
 @Injectable({ providedIn: 'root' })
 export class BescheidFacade {
@@ -18,6 +20,19 @@ export class BescheidFacade {
   public createBescheid(
     vorgangWithEingang: VorgangWithEingangResource,
     command: CreateCommand,
+  ): void {
+    if (hasLink(vorgangWithEingang, VorgangWithEingangLinkRel.CREATE_BESCHEID)) {
+      return this.createBescheidKiel(vorgangWithEingang, command);
+    }
+    if (hasLink(vorgangWithEingang, VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT)) {
+      return this.createBescheidDraft(vorgangWithEingang, command);
+    }
+    throw new Error('missing Link: CREATE_BESCHEID or CREATE_BESCHEID_DRAFT expected');
+  }
+
+  public createBescheidKiel(
+    vorgangWithEingang: VorgangWithEingangResource,
+    command: CreateCommand,
   ): void {
     this.store.dispatch(
       CommandActions.createCommand({
@@ -27,4 +42,17 @@ export class BescheidFacade {
       }),
     );
   }
+
+  public createBescheidDraft(
+    vorgangWithEingang: VorgangWithEingangResource,
+    command: CreateCommand,
+  ): void {
+    this.store.dispatch(
+      CommandActions.createCommand({
+        resource: vorgangWithEingang,
+        linkRel: VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
+        command,
+      }),
+    );
+  }
 }