DocuSign Rest API Wrapper for Laravel.

dev-master / 0.4.x-dev 2021-07-30 00:30 UTC

This package is auto-updated.

Last update: 2023-11-29 02:07:48 UTC


This package was developed to utilize e-contract/signatures directly within a Laravel based CRM.

PHPPackages Rank Latest Stable Version Total Downloads

Refer to

Latest Docusign API Documentation for outdated links.

Also see my eOriginal package


Add the following to your composer.json file.

"tjphippen/docusign": "0.4*@dev"

Then run composer install or composer update to download and install.

You'll then need to register the service provider in your config/app.php file within providers.

'providers' => array(

DocuSign includes a auto registered facade which provides the static syntax for managing envelopes, recipients etc. If you have issues simply add it manually to your aliases array

'aliases' => array(
    'Docusign'  => Tjphippen\Docusign\Facades\Docusign::class,

Create configuration file using artisan

$ php artisan vendor:publish

The configuration file will be published to config/docusign.php which must be completed to make connections to the API.

     * The DocuSign Integrator's Key

    'integrator_key' => '',

     * The Docusign Account Email
    'email' => '',

     * The Docusign Account Password
    'password' => '',


Get List of Users


Get Individual User

Docusign::getUser($userId, true);  // When true, the full list of user information is returned for the user. 

Get Folders

Docusign::getFolders(); // By default only the list of template folders are returned
Docusign::getFolders(true);  // Will return normal folders plus template folders

Get Folder Envelope List


See: All Parameters for this method.

Docusign::getFolderEnvelopes($folderId, array(
   'start_position' => 1, // Integer
   'from_date' => '', // date/Time
   'to_date' => '', // date/Time
   'search_text' => '', // String
   'status' => 'created', // Status
   'owner_name' => '', // username
   'owner_email' => '', // email

Get List of Templates


Or with Additional Parameters.

   'folder' => 1, // String (folder name or folder ID)
   'folder_ids' => '', // Comma separated list of folder ID GUIDs.
   'include' => '', // Comma separated list of additional template attributes

Get Template


Get Multiple Envelopes

$envelopes = array('49d91fa5-1259-443f-85fc-708379fd7bbe', '8b2d44a-41dc-4698-9233-4be0678c345c');

Get Individual Envelope


Get Envelope Recipient


To include tabs simply set the second parameter to true:

Docusign::getEnvelopeRecipients($envelopeId, true);

Get Envelope Custom Fields


Get Tab Information for a Recipient

See: Tab Parameters

Docusign::getEnvelopeTabs($envelopeId, $recipientId);

Modify Tabs for a Recipient

This one is a bit tricky. The tabId is required and must be within set of arrays. See: [Tab Types and Parameters] (

$tabs = ['textTabs' => [['tabId' => '270269f6-4a84-4ff9-86db-2a572eb73d99', 'value' => '123 Fake Street']]];
Docusign::updateRecipientTabs($envelopeId, $recipientId, $tabs);

Create/Send an Envelope from a Template

See: Send an Envelope or Create a Draft Envelope for full list of parameters/options.

   'templateId'     => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', // Template ID
   'emailSubject'   => 'Demo Envelope Subject', // Subject of email sent to all recipients
   'status'         => 'created', // created = draft ('sent' will send the envelope!)
   'templateRoles'  => array(
        ['name'     => 'TJ Phippen',
         'email'    => '',
         'roleName' => 'Contractor',
         'clientUserId'  => 1],
        ['name'     => 'Jane Someone',
         'email'    => '',
         'roleName' => 'Customer']),

Modify Draft Envelope Email Subject and Message

The updateEnvelope method can be used in a variety of ways..

Docusign::updateEnvelope($envelopeId, array(
    'emailSubject' => 'New Email Subject', // Required
    'emailBlurb' => 'Email message body text'

Post Recipient View

Returns embeded signing URL. [Reference] (

Docusign::createRecipientView($envelopeId, array(
    'userName' => 'TJ Phippen',
    'email' => '',
    'AuthenticationMethod' => 'email',
    'clientUserId' => 1, // Must create envelope with this ID
    'returnUrl' => 'http://your-site.tdl/returningUrl'

Send Draft Envelope

Docusign::updateEnvelope($envelopeId, ['status' => 'sent']);

Void Envelope

Docusign::updateEnvelope($envelopeId, array(
    'status' => 'voided',
    'voidedReason' => 'Just Testing'

Delete Envelope


Change Log


  • Updated Guzzle dependancy & namespace


  • Added trait


  • Released