Yes, please see this sample Github repository
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.
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.
2) Same PDF documents to sign (with the possibility to add / remove some of them) and variable number of recipients.
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.
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.
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.
Yes. Just set the recipient email to email@example.com
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.
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.
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 = "https://yourdomain.com";
Yes, the on-premise version allows continuous synchronization of users from Active Directory . We also provide a GUI tool to quickly import the users.
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.
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").