Skip to content

docusign/docusign-esign-java-client

Repository files navigation

The Official Docusign eSignature Java Client SDK

Build status Maven Central status

The Docusign SDK makes integrating Docusign into your apps and websites a seamless experience.

Table of Contents

Introduction

Integrate eSignatures into your application in minutes. The secure and award-winning Docusign eSignature API makes requesting signatures, automating forms, and tracking documents directly from your app easy.

Installation

This client SDK is provided as open source, which enables you to customize its functionality to suit your particular use case. To do so, download or clone the repository. If the SDK’s given functionality meets your integration needs, or if you’re working through our code examples from the Docusign Developer Center, you merely need to install it by following the instructions below.

Version Information

  • API version: v2.1
  • Latest SDK version (Including prerelease):

Requirements

Compatibility

  • Java 1.9+

Note: Docusign uses Eclipse with Maven for testing purposes.

Maven:

  1. In Eclipse, create a new project by selecting File > New > Project.
  2. In the New Project Wizard, expand Maven, then select Maven Project.
  3. Leave Create a simple project unchecked.
  4. Select Next, then provide a unique groupId and artifactId.
  5. In the directory where you've saved your project, open the pom.xml file.
  6. In the pom.xml file, locate the dependencies node.
  7. Add:
    <dependency>
      <groupId>com.docusign</groupId>
      <artifactId>docusign-esign-java</artifactId>
      <version>6.7.0</version>
    </dependency>
    
  8. If your project is still open, restart Eclipse.

SDK Dependencies

This client has the following external dependencies:

  • io.swagger.core.v3:swagger-annotations:2.2.8
  • org.glassfish.jersey.core:jersey-client:3.1.6
  • org.glassfish.jersey.media:jersey-media-multipart:3.1.6
  • org.glassfish.jersey.media:jersey-media-json-jackson:3.1.6
  • org.glassfish.jersey.inject:jersey-hk2:3.1.6
  • com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-base:2.14.2
  • com.auth0:java-jwt:3.4.1
  • org.bouncycastle:bcprov-jdk18on:1.78.1
  • com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.14.2
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2
  • com.brsanthu:migbase64:2.2
  • com.fasterxml.jackson.core:jackson-core:2.17.1
  • org.json:json:20240303

API Reference

You can refer to the API reference here.

Code examples

Explore our GitHub repository for the Launcher, a self-executing package housing code examples for the eSignature Java SDK. This package showcases several common use cases and their respective source files. Additionally, you can download a version preconfigured for your Docusign developer account from Quickstart. These examples support both the Authorization Code Grant and JSON Web Token (JWT) authentication workflows.

OAuth implementations

For details regarding which type of OAuth grant will work best for your Docusign integration, see Choose OAuth Type in the Docusign Developer Center.

For security purposes, Docusign recommends using the Authorization Code Grant flow.

Security

This SDK enforces secure-by-default transport behavior:

  • TLS certificate validation is enforced by default using the system's trust store and default HostnameVerifier.
  • HTTPS-only base pathssetBasePath() and the ApiClient(String basePath) constructor reject http:// URLs by default.
  • OAuth base path validationsetOAuthBasePath() also enforces HTTPS.
  • TLS 1.2 required — The SDK fails fast if TLSv1.2 is not available on the JVM.

Testing with self-signed certificates or HTTP endpoints

For local development or testing scenarios that require HTTP or self-signed certificates, use the explicit ApiClient.insecure() factory:

// HTTP endpoint for local testing
ApiClient client = ApiClient.insecure("http://localhost:8080/restapi");

// Self-signed certificate
ApiClient client = ApiClient.insecure("https://dev-server.local/restapi");

// Insecure client with default base path
ApiClient client = ApiClient.insecure();
client.setBasePath("http://localhost:8080/restapi");

Warning: ApiClient.insecure() disables TLS certificate validation and hostname verification. Never use in production.

Proxy authentication

By default, when proxy credentials are set via system properties (https.proxyUser / https.proxyPassword), the SDK configures a JVM-wide Authenticator scoped to the proxy host and port. This preserves backward compatibility with existing enterprise configurations.

If you prefer per-connection proxy authentication (which avoids JVM-global side effects), enable it via the setter before the first request:

ApiClient client = new ApiClient();
client.setPerConnectionProxyAuth(true);

Or use the convenience constructor:

ApiClient client = new ApiClient(true);

Note: Per-connection proxy auth will become the default in a future major version.

Changelog

You can refer to the complete changelog here.

Support

Log issues against this client SDK through GitHub. You can also reach out to us through Docusign Community and Stack Overflow.

License

The Docusign eSignature Java Client SDK is licensed under the MIT License.

Additional resources

About

The Official Docusign Java Client Library used to interact with the eSignature REST API. Send, sign, and approve documents using this client.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors