Is there sample code to describe different integration options ?

Yes, please see this sample Github repository

Types of integrations

There are a few types of integration scenarios, the difference being in the content of the PDF file which will be signed and the recipients.

Here are some recommendations for each scenario :

1) Same PDF documents to sign every time, each time signed by different signers.

Recommendation :

  • create a template in Bulksign with the files and "placeholder" recipients and assign the form fields and signature fields to those recipients

  • save the id of the template and use the "SendEnvelopeFromTemplate" API to replace the recipients and send the documents for signing.

Sample code for this scenario on GitHub

2) Same PDF documents to sign (with the possibility to add / remove some of them) and variable number of recipients.

Recommendations :

  • if the PDF documents contain signature fields, you can invoke AnalyzeFile ONCE to obtain the ids of the form / signature fields. This needs to be done only once, independent of the integration code.

  • in the integration code, assigned the hard-coded list of form fields to recipients.

  • if needed, add new form/signature fields as needed and assign them.

  • use SendEnvelope to send the documents for signing, the PDF files should be included with the request.

Sample code for this scenario on GitHub

3) Dynamic : PDF files will always be different and the number of signers differs every time.

  • invoke PrepareEnvelope API with all PDF files which will return a EnvelopeApiModel populated with a placeholder recipient.

  • assign these ids to recipients as required by your integration.

  • if needed add new form/signature fields to documents and assign them to recipients.

  • pass the EnvelopeApiModel received from PrepareEnvelope to SendEnvelope.

Sample code for this scenario on GitHub

What is the recommanded way to send to signing a large number of PDF files as part of the envelope ?

Because adding multiple large PDF files to the SendEnvelope input can go over the IIS max request size value, it is recommanded to use call the AnalyzeFile API for each file and use in SendEnvelope the identifiers for all files.

For my on premise Bulksign integration, I only need to get the completed documents and copy them in my Document Management System. Is there a easy way to achieve this, without creating a "full integration" ?

Yes, the Bulksign extensibility supports the IFinishedEnvelopeBackupProvider interface which allows you to create a plugin which can copy the documents into the DMS.

Which organization settings can be overwritten individually for each envelope/draft/template from API ?

When sending a envelope (or creating a draft/template), there are a few options which can overwrite the defaults set per organization.

The list of over-writable options :

  • callback URLs can be set for each envelope, the property name is OverwriteCallbackUrls. If this is set it will overwrite the default settings from Webhooks

  • to set a custom signature disclosure text per envelope/draft/template, just set OverwriteSignatureDisclosure

  • to overwrite the signing settings, use OverwriteSignSettings (please note that all fields are required there).

Yes, SendEnvelope returns a RecipientAccess array. For a serial envelope that will contain "SigningUrl" which has the redirection url for signing. On a bulk envelope will return the signing link for all recipients.

Can i disable email notifications for a single recipient ?

Yes. Just set the recipient email to

Can i disable email notifications for signer recipients and manage the signing flow from a integration ?

This can be done by setting the DisableSignerEmailNotifications flag when sending a envelope with the API :

envelope.DisableSignerEmailNotifications = true; 

This will disable signers email notifications and allow the integrator to manage the signing flow using callbacks

How do i integrate with Bulksign using callbacks ? Can these callbacks be triggered using something else than HTTP/S ?

Please see the callbacks section for details . By default (in SAAS version) callbacks are sent using HTTP/S. For OnPremise version there are 2 additional ways to receive them :
- Named pipes
Additional, using the Extensibility API , a custom provider can be written to expose the events using custom protocols.

Can i use my own SMS gateway with Bulksign ?

Yes, this is possible in the private instance and on-premise version versions of Bulksign. See this GitHub sample to get you started.

Can i use my private email server to send email notifications ?

Yes, for private instance and on-premise version versions. Also Bulksign ships with providers for SendGrid, Sparkpost and Mailjet

Is the Bulksign platform extensible ? Can i replace different parts of the functionality ?

Absolutely. Extending the platform is done by implementing specific interfaces defined in our extensibility library . See also the Extensibility section

Is the Bulksign platform modular ?

Yes, absolutely. Modularity if one of the core design decisions of the Bulksign platform. The platform is loose coupled and allows the replacement of different "components". You can use, for instance, the envelope routing "component" and integrate a new UI and signer notification scheduler in your solution.

After finishing the signing process, can i redirect the user to my own website ?

Yes, please configure in Bulksign UI the redirection URL in Settings / Signing Redirection.
Specific redirection for each envelope can also be enabled :

 OverwriteSignSettings.DocumentDownload = SignerDownloadDocumentActionTypeApi.RedirectToUrl;
 OverwriteSignSettings.DocumentDownloadRedirectUrl = "";

Can i redirect the user to my own website when he logs off ?

Yes, this is possible on the private instance and on-premise version. Run the settings configuration utility and set the url value for the setting named LogOffRedirectionUrlForHostedVersion

Can I import users from Active Directory ?

Yes, the on-premise version allows continuous synchronization of users from Active Directory . We also provide a GUI tool to quickly import the users.

Can a user do API requests before validating his email address ?


My callback handler was down and i've missed it. Is there a way to re-trigger it ?

Yes, open the envelope details page, click the "INFO" icon on the top right side of the page. From there click "Callbacks" to see all triggered callbacks for that envelope and click the link for the one that you want to trigger again.

Is there a way to retrieve the list of language codes supported for my organization ?

Yes, the API is called GetLanguageCodes.

I've added a new language translation to WebSign but GetLanguageCodes codes doesn't returns the identifier for this new language. Why ?

GetLanguage returns the list of supported languages for email templates. You can still us the new language translation, call GetEnvelopeDetails and append/replace the new language code in the SigningUrl (the name of the query parameter is "lng").