|

|  How to Implement DocuSign API for Electronic Signatures in C#

How to Implement DocuSign API for Electronic Signatures in C#

October 31, 2024

Learn to seamlessly integrate DocuSign API for electronic signatures in C#. Follow step-by-step instructions and examples for a smooth implementation.

How to Implement DocuSign API for Electronic Signatures in C#

 

Integrate DocuSign API in a C# Application

 

  • Add the DocuSign NuGet package to your project to simplify API interaction. Use the DocuSign.eSign SDK, which offers a higher-level interface.
  •  

  • Configure your application to authenticate with the DocuSign API. This often involves OAuth 2.0 for security and flexibility in handling user authentication.

 

Install-Package DocuSign.eSign

 

Authenticating with OAuth 2.0

 

  • Begin by setting up your application to handle OAuth 2.0 authentication. You need to follow the Authorization Code Grant flow or use JWT Grant if you need non-interactive authentication.
  •  

  • Utilize DocuSign's OAuth library for C#, which handles the complexity of the OAuth process, reducing manual coding.

 

// Use JWT authentication for server-side operations
string privateKey = File.ReadAllText("path/to/your/private.key");
ApiClient apiClient = new ApiClient();
apiClient.ConfigureJwtAuthorizationFlow(clientId, userId, authServer, privateKey, 1);
string accessToken = apiClient.RequestJWTUserToken();

 

Create an Envelope for Electronic Signatures

 

  • Prepare the envelope that DocuSign will use to send documents for electronic signatures. This involves setting recipient information, document information, and any signing tabs.
  •  

  • Use envelope definition to configure multiple elements such as signers and documents inside your C# code.

 

EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition
{
    EmailSubject = "Please sign this document",
    Documents = new List<Document>
    {
        new Document
        {
            DocumentBase64 = Convert.ToBase64String(File.ReadAllBytes("path/to/document.pdf")),
            Name = "Sample Document",
            FileExtension = "pdf",
            DocumentId = "1"
        }
    },
    Recipients = new Recipients
    {
        Signers = new List<Signer>
        {
            new Signer
            {
                Email = "recipient@example.com",
                Name = "John Doe",
                RecipientId = "1",
                Tabs = new Tabs
                {
                    SignHereTabs = new List<SignHere>
                    {
                        new SignHere
                        {
                            DocumentId = "1",
                            PageNumber = "1",
                            XPosition = "100",
                            YPosition = "100"
                        }
                    }
                }
            }
        }
    },
    Status = "sent"
};

 

Send the Envelope

 

  • Utilize the EnvelopesApi to send the prepared envelope. This step officially triggers the process of sending your documents to the specified recipient for electronic signatures.
  •  

  • Manage the response to ensure the envelope creation and sending process were successful.

 

var apiClient = new ApiClient(baseUrl);
apiClient.Configuration.DefaultHeader["Authorization"] = "Bearer " + accessToken;
EnvelopesApi envelopesApi = new EnvelopesApi(apiClient);
EnvelopeSummary results = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);
Console.WriteLine("Envelope has been sent, with Envelope ID: " + results.EnvelopeId);

 

Handle Callbacks and Notifications

 

  • Implement webhooks to receive real-time updates on the status of envelopes and recipients. This allows your application to respond to events like when a document is signed.
  •  

  • Configure the listener to process DocuSign event notifications, ensuring that your application handles these callbacks effectively and securely.

 

// Simplified example of a webhook handler
public IActionResult WebhookListener()
{
    // Logic to handle notification here
    string requestBody = new StreamReader(HttpContext.Request.Body).ReadToEndAsync().Result;
    Console.WriteLine("Received notification: " + requestBody);
    return Ok();
}

 

By following these guidelines and utilizing the C# DocuSign library, you can efficiently integrate electronic signature functionality into your application.