sanketr43 | Posts: 14

Remove default disclosure electronic signatures document while creating new doc

0 votes
Hello, I am using PHP REST API. First i create draft package, then upload form with data, and then publish it. But there is disclosure electronic signatures document get created. I don't want that form in sign process. How to remove or disable that default document in PHP REST API? Following is the code i am using.
 'Package created from template through REST API',

		  'description' => 'Package created with the eSignLive REST API',

		  'emailMessage' => 'This message should be delivered to all signers',

		  'autocomplete' => true,

		  'type' => 'PACKAGE',

		  'visibility' => 'ACCOUNT',

		  'due' => NULL,

		  'language' => 'en',

		  'status' => 'DRAFT',

		  'roles' => 

		  array (

		    0 => 

		    array (

		      'id' => $placeholderId,

				'attachmentRequirements' => 

				  array (

				    0 => 

				    array (

				      'status' => 'INCOMPLETE',

				      'description' => 'contract',

				      'required' => false,

				      'id' => 'attachment1',

				      'comment' => '',

				      'name' => 'Upload, if you have any contract document! Or Click Done.',

				      'data' => NULL,

				    ),

				),

		      'type' => 'SIGNER',

		      'signers' => 

		      array (

		        0 => 

		        array (

		          'id' => $placeholderId,

		          'firstName' => $firstName,

		          'lastName' => $lastName,

		          'email' => $email,

		        ),

		      ),

		      'name' => 'Signer',

		    ),

		  ),

		);

		$packageJSON = json_encode($build);

		$packageId = json_decode($this->sendRequest($this->packageAppend . $templateId . '/clone', $packageJSON, NULL, 'application/json'), true);

		return $packageId;

	}



	//Create package

	public function buildPackage($application_id)

	{



		$application = Application::find($application_id);

		$title 		 = $application->entity_name.' - '.date('d-m-Y');



		/*if(empty($application->directors)){

			return redirect('home/application/'.$application->unique_id.'/signature');

		}*/



		$roles 		 = array();

		$i = 1;

		//directors signers  (ID: Signer1 & Signer2)

		if(!empty($application->directors)){

			foreach (unserialize($application->directors) as $key => $value) {

				if(!empty($value['email'])){

	                $roles[] = array(

	                                'id' => 'Signer'.$i,

	                                'type' => 'SIGNER',

	                                'signers' => array(

	                                    array(

	                                        'email' => trim($value['email']),

	                                        'firstName' => trim($value['f_name']),

	                                        'lastName' => trim($value['l_name']),

	                                        'id' => 'Signer'.$i,

	                                    )

	                                ) ,

	                            );

	                $i++;

	            }

			}

		}



		//manager (ID: Manager1)

		$roles[] = array(

                'id' => 'Manager1',

                'type' => 'SIGNER',

                'signers' => array(

                    array(

                        'email' 	=> '[email protected]',

                        'firstName' => 'Victor',

                        'lastName' 	=> 'GR',

                        'id' => 'Manager1',

                    )

                ) ,

            );





		$build = array(

			'type' 	 => 'PACKAGE',

			'status' => 'DRAFT',

			'roles'  => $roles,

			'name' 	 => $title,

		);



		$packageJSON = json_encode($build);

		$packageId = json_decode($this->sendRequest($this->packageAppend, $packageJSON, NULL, NULL), true);

		return $packageId;

	}



	//Upload document

	public function buildDocument($packageId,$application_id)

	{



		$application  = Application::find($application_id);

		$payment_term = PaymentTerm::where('application_id',$application->id)->first();

		$director  	  = unserialize($application->directors);

		$user = Auth::user();

		$director_count = 1;



		$build = array(

			'fields' => array(

				array(

					'value' => $application->entity_name,

					'name' => 'customer_name',

				) ,

				array(

					'value' => $application->address,

					'name' => 'customer_address',

				) ,

				array(

					'value' => $application->phone,

					'name' => 'telephone',

				) ,

				array(

					'value' => $user->company_name,

					'name' => 'supplier_name',

				) ,

				array(

					'value' => $user->address,

					'name' => 'supplier_address',

				) ,

				array(

					'value' => $user->state.', '.$user->pincode,

					'name' => 'supplier_address2',

				) ,

				array(

					'value' => '',

					'name' => 'email',

				) ,

				array(

					'value' => $application->abn_number,

					'name' => 'abn_number',

				) ,

				array(

					'value' => $payment_term->installment,

					'name' => 'installment',

				) ,

				array(

					'value' => $payment_term->term,

					'name' => 'month',

				) ,

				array(

					'value' => $user->document_fee,

					'name' => 'handling_fee',

				)

			) ,

			'extract' => true,

			'name' => 'GRENKE - EQUIPMENT LEASE AGREEMENT FOR BUSINESS PURPOSES',

			'id' => 'contract'

		);



		if(isset($director[0]['f_name'])){

		//directors

		$build['fields'][] = array(

								'value' => $director[0]['f_name'].' '.$director[0]['l_name'],

								'name' => 'director_name_1',

							);

		}



		if(isset($director[1]['f_name'])){

		$director_count = 2;

		$build['fields'][] = array(

								'value' => $director[1]['f_name'].' '.$director[1]['l_name'],

								'name' => 'director_name_2',

							); 

		}





		//items list

		foreach ($application->items as $key => $value) {

			if(($key+1) == 5){ break; }

		$build['fields'][] = array(

									'value' => $value->category->name,

									'name' => 'item_'.($key+1),

								);

		$build['fields'][] = array(

									'value' => $value->quantity,

									'name' => 'qty_'.($key+1),

								);

		}



		//items list second full

		if(count($application->items) > 4){

			foreach ($application->items as $key => $value) {

			$build['fields'][] = array(

									'value' => $value->category->name,

									'name' => 'item_1_'.($key+1),

								);

			$build['fields'][] = array(

									'value' => $value->quantity,

									'name' => 'qty_1_'.($key+1),

								);

			}	

		}





		$documentJSON = json_encode($build);



	if($director_count == 2){

		$postdata = "--" . $this->MULTIPART_BOUNDARY . "\r\n";

	    $postdata .= "Content-Disposition: form-data; name=\"file\"; filename=\"application_pdf_form_d_2.pdf\"\r\n";

	    $postdata .= "Content-Type: application/pdf" . "\r\n\r\n";

	    $postdata .= file_get_contents(asset('upload/application_pdf_form_d_2.pdf'));

	    $postdata .= "\r\n\r\n";

	    $postdata .= "--" . $this->MULTIPART_BOUNDARY . "\r\n";

	    $postdata .= "Content-Disposition: form-data; name=\"payload\"\r\n\r\n";

	    $postdata .= $documentJSON;

	    $postdata .= "\r\n\r\n";

	    $postdata .= "--" . $this->MULTIPART_BOUNDARY . "--\r\n";

	}else{

		$postdata = "--" . $this->MULTIPART_BOUNDARY . "\r\n";

	    $postdata .= "Content-Disposition: form-data; name=\"file\"; filename=\"application_pdf_form_d_1.pdf\"\r\n";

	    $postdata .= "Content-Type: application/pdf" . "\r\n\r\n";

	    $postdata .= file_get_contents(asset('upload/application_pdf_form_d_1.pdf'));

	    $postdata .= "\r\n\r\n";

	    $postdata .= "--" . $this->MULTIPART_BOUNDARY . "\r\n";

	    $postdata .= "Content-Disposition: form-data; name=\"payload\"\r\n\r\n";

	    $postdata .= $documentJSON;

	    $postdata .= "\r\n\r\n";

	    $postdata .= "--" . $this->MULTIPART_BOUNDARY . "--\r\n";

	}



		$status = $this->sendRequest($this->packageAppend . $packageId . '/documents', $documentJSON, $postdata, 'multipart/form-data; boundary=' . $this->MULTIPART_BOUNDARY);



		return $status;

	}





	//Send Package

	public function buildSend($packageId)

	{

		$build = array(

			'status' => 'SENT'

		);

		$sendJSON = json_encode($build);

		$this->sendRequest($this->packageAppend . $packageId, $sendJSON, NULL, 'application/json');

		return NULL;

	}



	//Sender signs consent and contract documents

	public function buildSign($packageId)

	{

		$build = array(

			'documents' => array(

				array(

					'id' => 'contract',

					'name' => 'Application Form'

				)

			)

		);

		$signJSON = json_encode($build);

		$signatureAppend = $this->packageAppend . $packageId . '/documents/signed_documents';

		$this->sendRequest($signatureAppend, $signJSON, NULL, 'application/json');

		return NULL;

	}



	//Get a session token

	public function buildToken($packageId)

	{

		$build = array(

			'packageId' => $packageId,

			'signerId' => 'Manager1'

		);

		$tokenJSON = json_encode($build);

		$token = json_decode($this->sendRequest($this->tokenAppend, $tokenJSON, NULL, 'application/json'), true);

		return $token;

	}



	//cURL function to send requests to eSignLive

	private function sendRequest($type, $json, $document, $contentType)

	{

		if (is_null($document) && is_null($contentType))

		{

			$postfields = array(

				"payload" => $json

			);

		}

		else if (is_null($document) && !is_null($contentType))

		{

			$postfields = $json;

		}

		else

		{

			$postfields = $document;

		}



		$headerOptions = array(

			'Authorization: Basic ' . $this->key,

			'Accept: application/json,application/zip,text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'

		);

		if (!is_null($contentType))

		{

			$headerOptions[] = "Content-Type: $contentType";

		}



		$ch = curl_init();

		curl_setopt($ch, CURLOPT_URL, $this->url . $type);

		curl_setopt($ch, CURLOPT_POST, true);

		curl_setopt($ch, CURLOPT_FAILONERROR, true);

		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);



		if (!is_null($postfields))

		{

			curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);

			if (!is_array($postfields))

			{

				$headerOptions[] = 'Content-Length: ' . strlen($postfields);

			}

		}



		curl_setopt($ch, CURLOPT_HTTPHEADER, $headerOptions);

		$response = curl_exec($ch);

		$err = curl_error($ch);

		curl_close($ch);

		

		if ($err)

		{

			return $err;

		}

		else

		{

			return $response;

		};

	}



	//cURL function to send requests to eSignLive

	public function sendGetRequest($type)

	{



		$headerOptions = array(

			'Content-Type: application/pdf',

			'Authorization: Basic '.$this->key

		);



		$ch = curl_init();

		curl_setopt($ch, CURLOPT_URL, $this->url . $type);

		curl_setopt($ch, CURLOPT_FAILONERROR, true);

		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

		curl_setopt($ch, CURLOPT_HTTPHEADER, $headerOptions);

		curl_setopt($ch, CURLOPT_HEADER, 0);

		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

		$response = curl_exec($ch);



		$name       = time().'.pdf';

		$file 		= 'upload/filled/'.$name;

		$filename 	= 'filename.pdf';

		file_put_contents($file, $response);



		header('Content-type: application/pdf');

		header('Content-Disposition: inline; filename="' . $filename . '"');

		header('Content-Transfer-Encoding: binary');

		header('Content-Length: ' . filesize($file));

		header('Accept-Ranges: bytes');

		return $name;

		

	}



}
?>

Duo_Liang | Posts: 3776

Reply to: Remove default disclosure electronic signatures document while creating new doc

0 votes
Hi Sanket, If you don't want your default-consent document to appear, you can contact our support team at [email protected] and have this turned off for your account. It’s an account level setting and can’t be set for specific packages. Hope this could help you! Duo

Hello! Looks like you're enjoying the discussion, but haven't signed up for an account.

When you create an account, we remember exactly what you've read, so you always come right back where you left off