tjphippen/docusign

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: 2022-11-29 01:56:19 UTC


README

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

Installation

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(
    Tjphippen\Docusign\DocusignServiceProvider::class,
)

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' => '',
...

Examples

Get List of Users

Docusign::getUsers();

Get Individual User

Docusign::getUser($userId); 
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

Docusign::getFolderEnvelopes($folderId);

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

Docusign::getTemplates();

Or with Additional Parameters.

Docusign::getTemplates(array(
   '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

Docusign::getTemplate($templateId);

Get Multiple Envelopes

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

Get Individual Envelope

Docusign::getEnvelope($envelopeId);

Get Envelope Recipient

Docusign::getEnvelopeRecipients($envelopeId);

To include tabs simply set the second parameter to true:

Docusign::getEnvelopeRecipients($envelopeId, true);

Get Envelope Custom Fields

Docusign::getEnvelopeCustomFields($envelopeId);

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] (https://www.docusign.com/p/RESTAPIGuide/RESTAPIGuide.htm#REST%20API%20References/Tab%20Parameters.htm)

$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.

Docusign::createEnvelope(array(
   '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'    => 'tj@tjphippen.com',
         'roleName' => 'Contractor',
         'clientUserId'  => 1],
        ['name'     => 'Jane Someone',
         'email'    => 'demo@demo.com',
         '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] (https://www.docusign.com/p/RESTAPIGuide/RESTAPIGuide.htm#REST%20API%20References/Post%20Recipient%20View.htm)

Docusign::createRecipientView($envelopeId, array(
    'userName' => 'TJ Phippen',
    'email' => 'tj@tjphippen.com',
    '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

Docusign::deleteEnvelope($envelopeId);

Change Log

v0.2.0

  • Updated Guzzle dependancy & namespace

v0.2.0

  • Added trait

v0.1.0

  • Released