diff --git a/src/app/workflow/controllers/WorkflowTemplateController.php b/src/app/workflow/controllers/WorkflowTemplateController.php
index 12719cb09b4d53a4688b91ea386ae3a6a4c173a1..fb298ffe2c9c872de70c6bdf20f1b992689b05dd 100755
--- a/src/app/workflow/controllers/WorkflowTemplateController.php
+++ b/src/app/workflow/controllers/WorkflowTemplateController.php
@@ -14,6 +14,7 @@
 
 namespace Workflow\controllers;
 
+use Document\controllers\DocumentController;
 use Group\controllers\PrivilegeController;
 use History\controllers\HistoryController;
 use Respect\Validation\Validator;
@@ -147,7 +148,6 @@ class WorkflowTemplateController
         ValidatorModel::notEmpty($args, ['items']);
         ValidatorModel::arrayType($args, ['items']);
 
-        //TODO check mode + signature mode
         foreach ($args['items'] as $key => $item) {
             if (empty($item['userId'])) {
                 return ['errors' => "Item[{$key}] userId is empty"];
@@ -157,10 +157,17 @@ class WorkflowTemplateController
                 return ['errors' => "Item[{$key}] signatureMode is empty"];
             }
 
-            $user = UserModel::getById(['id' => $item['userId'], 'select' => [1]]);
+            if (!in_array($item['mode'], DocumentController::MODES)) {
+                return ['errors' => "Item[{$key}] mode is not valid"];
+            }
+            $user = UserModel::getById(['id' => $item['userId'], 'select' => ['signature_modes']]);
             if (empty($user)) {
                 return ['errors' => 'User is not valid'];
             }
+            $user['signature_modes'] = json_decode($user['signature_modes'], true);
+            if (!in_array($item['signatureMode'], $user['signature_modes'])) {
+                return ['errors' => "Item[{$key}] signatureMode is not valid"];
+            }
         }
 
         return true;
diff --git a/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php b/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php
index fb30799951787475d7e247ea2fe996801d3d11fd..2bf80b1925fdd668a4eb678e53de32ad265a61e4 100755
--- a/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php
+++ b/test/unitTests/app/workflow/WorkflowTemplateControllerTest.php
@@ -26,12 +26,12 @@ class WorkflowTemplateControllerTest extends TestCase
                 [
                     'userId'        => 1,
                     'mode'          => 'visa',
-                    'signatureMode' => 'standard'
+                    'signatureMode' => 'stamp'
                 ],
                 [
                     'userId'        => 3,
                     'mode'          => 'sign',
-                    'signatureMode' => 'standard'
+                    'signatureMode' => 'stamp'
                 ]
             ]
         ];
@@ -93,11 +93,11 @@ class WorkflowTemplateControllerTest extends TestCase
         $this->assertSame(1, $responseBody['workflowTemplate']['items'][0]['userId']);
         $this->assertNotEmpty($responseBody['workflowTemplate']['items'][0]['userLabel']);
         $this->assertSame('visa', $responseBody['workflowTemplate']['items'][0]['mode']);
-        $this->assertSame('standard', $responseBody['workflowTemplate']['items'][0]['signatureMode']);
+        $this->assertSame('stamp', $responseBody['workflowTemplate']['items'][0]['signatureMode']);
         $this->assertSame(3, $responseBody['workflowTemplate']['items'][1]['userId']);
         $this->assertNotEmpty($responseBody['workflowTemplate']['items'][1]['userLabel']);
         $this->assertSame('sign', $responseBody['workflowTemplate']['items'][1]['mode']);
-        $this->assertSame('standard', $responseBody['workflowTemplate']['items'][1]['signatureMode']);
+        $this->assertSame('stamp', $responseBody['workflowTemplate']['items'][1]['signatureMode']);
 
         //ERRORS
         $previousUserId = $GLOBALS['id'];