diff --git a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php
index cdb58e0592e375ce1a073526a6fa2248659ebeb4..4395a56d89ca5538007c81faadec6552a2cfdfde 100644
--- a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php
+++ b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php
@@ -37,7 +37,8 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module,
         $labelAction = functions::show_string($resAction->label_action);
     }
 
-    $html = '<h2 class="title">' . $labelAction . '</h2>';
+    $html = '<div id="frm_error_'.$id_action.'" class="error"></div>';
+    $html .= '<h2 class="title">' . $labelAction . '</h2>';
 
     $html .= '<form name="sendToExternalSB" id="sendToExternalSB" method="post" class="forms" action="#">';
     $html .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
@@ -72,6 +73,27 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module,
 
 function check_form($form_id, $values)
 {
+    $_SESSION['action_error'] = '';
+    $config = getXml();
+
+    if (!empty($config)) {
+        if ($config['id'] == 'ixbus') {
+            include_once 'modules/visa/class/IxbusController.php';
+
+            $loginIxbus    = get_value_fields($values, 'loginIxbus');
+            $passwordIxbus = get_value_fields($values, 'passwordIxbus');
+
+            $userInfo  = IxbusController::getInfoUtilisateur(['config' => $config, 'login' => $loginIxbus, 'password' => $passwordIxbus]);
+
+            if (!empty($userInfo->Identifiant)) {
+                return true;
+            } else {
+                $_SESSION['action_error'] = _WRONG_ID_PASSWORD_IXBUS;
+                return false;
+            }
+        }
+    }
+
     return true;
 }
 
@@ -96,7 +118,8 @@ function manage_form($arr_id, $history, $id_action, $label_action, $status, $col
                 $passwordIxbus      = get_value_fields($values_form, 'passwordIxbus');
                 $nature             = get_value_fields($values_form, 'nature');
                 $messageModel       = get_value_fields($values_form, 'messageModel');
-                $attachmentToFreeze = IxbusController::sendDatas(['config' => $config, 'resIdMaster' => $res_id, 'loginIxbus' => $loginIxbus, 'passwordIxbus' => $passwordIxbus, 'classeurName' => $nature, 'messageModel' => $messageModel]);
+                $manSignature       = get_value_fields($values_form, 'mansignature');
+                $attachmentToFreeze = IxbusController::sendDatas(['config' => $config, 'resIdMaster' => $res_id, 'loginIxbus' => $loginIxbus, 'passwordIxbus' => $passwordIxbus, 'classeurName' => $nature, 'messageModel' => $messageModel, 'manSignature' => var_export($manSignature, true)]);
             } elseif ($config['id'] == 'iParapheur') {
                 include_once 'modules/visa/class/IParapheurController.php';
                 $attachmentToFreeze = IParapheurController::sendDatas(['config' => $config, 'resIdMaster' => $res_id]);
diff --git a/modules/visa/class/IxbusController.php b/modules/visa/class/IxbusController.php
index e30cb538c0b1588b86c9dfa677f8a144a937c575..4c11462013694d441ea74f2be28fef1418250758 100755
--- a/modules/visa/class/IxbusController.php
+++ b/modules/visa/class/IxbusController.php
@@ -31,8 +31,6 @@ class IxbusController
         }
         $html .= '</select><br /><br />';
 
-        // $initializeDatas['messagesModel'] = ['12' => 'modele courrier', '34' => 'DRH'];
-
         $html .= '<label for="messageModel">' . _WORKFLOW_MODEL_IXBUS . '</label><select name="messageModel" id="messageModel">';
         foreach ($initializeDatas['messagesModel'] as $key => $value) {
             $html .= '<option value="';
@@ -44,6 +42,7 @@ class IxbusController
         $html .= '</select><br /><br />';
         $html .= '<label for="loginIxbus">'._ID_IXBUS.'</label><input name="loginIxbus" id="loginIxbus"/><br /><br />';
         $html .= '<label for="passwordIxbus">'._PASSWORD_IXBUS.'</label><input type="password" name="passwordIxbus" id="passwordIxbus"/><br /><br />';
+        $html .= _ESIGN . '<input type="radio" name="mansignature" id="esignature" value="false" checked="checked" />' . _HANDWRITTEN_SIGN .'<input type="radio" name="mansignature" id="signature" value="true" checked="checked" /><br /><br />';
 
         return $html;
     }
@@ -282,6 +281,14 @@ class IxbusController
 
             $encodedZipFile = IxbusController::createZip(['filepath' => $filePath, 'filename' => $adrInfo['filename'], 'res_id_master' => $aArgs['resIdMaster']]);
 
+            $mainResource = \Resource\models\ResModel::getExtById(['resId' => $aArgs['resIdMaster'], 'select' => ['process_limit_date']]);
+            if (empty($mainResource['process_limit_date'])) {
+                $processLimitDate = $mainResource['process_limit_date'] = date('Y-m-d', strtotime(date("Y-m-d"). ' + 7 days'));
+            } else {
+                $processLimitDateTmp = explode(" ", $mainResource['process_limit_date']);
+                $processLimitDate = $processLimitDateTmp[0];
+            }
+
             $xmlPostString = '<?xml version="1.0" encoding="utf-8"?>
             <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
               <soap:Body>
@@ -291,12 +298,12 @@ class IxbusController
                   <NomDossier>'. $value['title'] .'</NomDossier>
                   <NomModele>'. $aArgs['messageModel'] .'</NomModele>
                   <NomNature>'. $aArgs['classeurName'] .'</NomNature>
-                  <DateLimite>2019-12-17</DateLimite>
+                  <DateLimite>'.$processLimitDate.'</DateLimite>
                   <LoginResponsable>'. $userInfo->NomUtilisateur .'</LoginResponsable>
                   <Confidentiel>false</Confidentiel>
                   <DocumentModifiable>true</DocumentModifiable>
                   <AnnexesSignables>false</AnnexesSignables>
-                  <SignatureManuscrite>false</SignatureManuscrite>
+                  <SignatureManuscrite>'.$aArgs['manSignature'].'</SignatureManuscrite>
                 </SendDossier>
               </soap:Body>
             </soap:Envelope>';
@@ -365,12 +372,12 @@ class IxbusController
                 $etatDossier = IxbusController::getEtatDossier(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]);
     
                 // Refused
-                if ((string)$etatDossier == $aArgs['config']['data']['ixbusIdRefused']) {
+                if ((string)$etatDossier == $aArgs['config']['data']['ixbusIdEtatRefused']) {
                     $aArgs['idsToRetrieve'][$version][$resId]->status = 'refused';
                     $notes = IxbusController::getAnnotations(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]);
                     $aArgs['idsToRetrieve'][$version][$resId]->noteContent = (string)$notes->Annotation;
                 // Validated
-                } elseif ((string)$etatDossier == $aArgs['config']['data']['ixbusIdValidated']) {
+                } elseif ((string)$etatDossier == $aArgs['config']['data']['ixbusIdEtatValidated']) {
                     $aArgs['idsToRetrieve'][$version][$resId]->status = 'validated';
                     $signedDocument = IxbusController::getAnnexes(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]);
                     $aArgs['idsToRetrieve'][$version][$resId]->format = 'pdf'; // format du fichier récupéré
diff --git a/modules/visa/lang/en.php b/modules/visa/lang/en.php
index 20e19407b2a446936e4736e5b86532476843c36f..1b224a4b1ad15d866e367cf3a634dd529977338e 100755
--- a/modules/visa/lang/en.php
+++ b/modules/visa/lang/en.php
@@ -291,3 +291,15 @@ if (!defined('_ID_IXBUS')) {
 if (!defined('_PASSWORD_IXBUS')) {
     define('_PASSWORD_IXBUS', "Password IxBus");
 }
+
+if (!defined('_WRONG_ID_PASSWORD_IXBUS')) {
+    define('_WRONG_ID_PASSWORD_IXBUS', "Invalid IxBus ID or password");
+}
+
+if (!defined('_HANDWRITTEN_SIGN')) {
+    define('_HANDWRITTEN_SIGN', "Handwritten signature");
+}
+
+if (!defined('_ESIGN')) {
+    define('_ESIGN', "Electronique signature");
+}
diff --git a/modules/visa/lang/fr.php b/modules/visa/lang/fr.php
index 5717b0a806026d6a36042f47ee1e5e315bdd53f8..dcd9bb033a74cb16f865b294eaf57865a1d11881 100755
--- a/modules/visa/lang/fr.php
+++ b/modules/visa/lang/fr.php
@@ -441,3 +441,15 @@ if (!defined('_ID_IXBUS')) {
 if (!defined('_PASSWORD_IXBUS')) {
     define('_PASSWORD_IXBUS', "Mot de passe IxBus");
 }
+
+if (!defined('_WRONG_ID_PASSWORD_IXBUS')) {
+    define('_WRONG_ID_PASSWORD_IXBUS', "Identifiant ou Mot de passe IxBus incorrect");
+}
+
+if (!defined('_HANDWRITTEN_SIGN')) {
+    define('_HANDWRITTEN_SIGN', "Signature manuscrite");
+}
+
+if (!defined('_ESIGN')) {
+    define('_ESIGN', "Signature électronique");
+}
diff --git a/modules/visa/xml/remoteSignatoryBooks.xml b/modules/visa/xml/remoteSignatoryBooks.xml
index 1338c3825cd1b42c309ba2dfe6b54f0065a74f30..81836715a33263b7404b0f37ec96d11e6d0f3ec1 100755
--- a/modules/visa/xml/remoteSignatoryBooks.xml
+++ b/modules/visa/xml/remoteSignatoryBooks.xml
@@ -7,8 +7,8 @@
         <password></password>
         <url></url>
         <organizationId>9</organizationId>
-        <ixbusIdRefused>14</ixbusIdRefused>
-        <ixbusIdValidated>2</ixbusIdValidated>
+        <ixbusIdEtatRefused>14</ixbusIdEtatRefused>
+        <ixbusIdEtatValidated>2</ixbusIdEtatValidated>
     </signatoryBook>
     <signatoryBook>
         <id>iParapheur</id>