The Docusign SDK makes integrating Docusign into your apps and websites a seamless experience.
- Introduction
- Installation
- Dependencies
- API Reference
- Code Examples
- OAuth Implementations
- Security
- Changelog
- Support
- License
- Additional Resources
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.
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.
- API version: v2.1
- Latest SDK version (Including prerelease):
- Java 1.9+
- Free developer account
- Java 1.9+
Note: Docusign uses Eclipse with Maven for testing purposes.
- In Eclipse, create a new project by selecting File > New > Project.
- In the New Project Wizard, expand Maven, then select Maven Project.
- Leave Create a simple project unchecked.
- Select Next, then provide a unique groupId and artifactId.
- In the directory where you've saved your project, open the pom.xml file.
- In the pom.xml file, locate the
dependenciesnode. - Add:
<dependency> <groupId>com.docusign</groupId> <artifactId>docusign-esign-java</artifactId> <version>6.7.0</version> </dependency> - If your project is still open, restart Eclipse.
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
You can refer to the API reference here.
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.
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.
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 paths —
setBasePath()and theApiClient(String basePath)constructor rejecthttp://URLs by default. - OAuth base path validation —
setOAuthBasePath()also enforces HTTPS. - TLS 1.2 required — The SDK fails fast if TLSv1.2 is not available on the JVM.
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.
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.
You can refer to the complete changelog here.
Log issues against this client SDK through GitHub. You can also reach out to us through Docusign Community and Stack Overflow.
The Docusign eSignature Java Client SDK is licensed under the MIT License.