SDKs overview

SignRequest provides a set of Software Development Kits (SDKs) and client libraries designed to facilitate the integration of its e-signature capabilities into various applications. These tools abstract the underlying RESTful API, allowing developers to interact with SignRequest services using language-specific constructs rather than directly managing HTTP requests and JSON parsing. The SDKs support common operations such as uploading documents, creating signature requests, retrieving signed documents, and managing templates, offering a programmatic interface for embedding document signing workflows.

The SignRequest API is designed to be accessible, leveraging standard HTTP methods and JSON payloads. The SDKs are built on this foundation, providing a more streamlined development experience across popular programming environments. This approach aims to reduce the effort required for developers to implement secure and compliant e-signature features, adhering to standards like eIDAS and SOC 2 Type II, as detailed in the SignRequest core API documentation.

Official SDKs by language

SignRequest maintains official SDKs for several programming languages, developed and supported by the SignRequest team. These SDKs are the recommended tools for integrating the SignRequest API, ensuring compatibility and access to the latest features. Each SDK provides idiomatic bindings for its respective language, simplifying API calls and response handling. The table below lists the primary official SDKs, their package names, common installation commands, and their general maturity status.

Language Package/Repository Installation Command (Example) Maturity
Python signrequest-client pip install signrequest-client Production Ready
PHP signrequest/signrequest-client-php composer require signrequest/signrequest-client-php Production Ready
Node.js signrequest-client npm install signrequest-client Production Ready
Ruby signrequest-ruby-client gem install signrequest-ruby-client Production Ready
C# (.NET) SignRequest.Client Install-Package SignRequest.Client Production Ready
Java signrequest-java-client Maven/Gradle dependency (see docs) Production Ready

For detailed instructions and specific version information, developers should consult the SignRequest API documentation on SDKs and client libraries. The documentation also provides guidance on authentication methods, including API tokens, which are essential for securing API calls.

Installation

Installing SignRequest SDKs typically follows standard package management practices for each respective programming language. The process generally involves adding the SDK as a dependency to your project. Below are illustrative installation commands for some of the most commonly used languages:

Python

The Python SDK can be installed using pip, Python's package installer. It's recommended to use a virtual environment to manage project dependencies.

pip install signrequest-client

PHP

For PHP projects, Composer is the dependency manager used for installing the SignRequest client library.

composer require signrequest/signrequest-client-php

Node.js

Node.js developers can install the SignRequest client via npm (Node Package Manager).

npm install signrequest-client

Ruby

Ruby projects typically use Bundler or direct gem install for package management.

gem install signrequest-ruby-client

C# (.NET)

For .NET applications, the SignRequest client is available as a NuGet package, installed via the NuGet Package Manager Console.

Install-Package SignRequest.Client

Java

Java projects using Maven or Gradle will include the SignRequest SDK as a dependency in their pom.xml or build.gradle file, respectively. Specific dependency coordinates are available in the SignRequest SDK documentation for Java.

After installation, configuration typically involves providing your SignRequest API token, which authenticates your application's requests. This token can be generated from your SignRequest account settings.

Quickstart example

This example demonstrates how to create and send a basic signature request using the Python SDK. This snippet illustrates common steps: initializing the client, specifying document details, and sending the request. Additional parameters for signers, attachments, and callback URLs can be added as required by specific workflows, as outlined in the SignRequest API documentation on signature requests.

Python Example: Creating and Sending a Signature Request

import signrequest_client

# Configure API key authorization
configuration = signrequest_client.Configuration(host="https://signrequest.com/api/v1")
configuration.api_key['Authorization'] = 'YOUR_API_TOKEN'
configuration.api_key_prefix['Authorization'] = 'Token'

# Create an instance of the API client
api_client = signrequest_client.ApiClient(configuration)
api_instance = signrequest_client.SignRequestsApi(api_client)

try:
    # Create a NewDocument object (replace with your document's URL or base64 data)
    document_from_url = signrequest_client.DocumentFromUrl(url="https://example.com/document_to_sign.pdf", name="My Document to Sign")
    new_document = api_instance.documents_create(document_from_url)

    # Define signer information
    signer_email = "[email protected]"
    signer = signrequest_client.Signer(email=signer_email, order=1)

    # Create a SignRequest object
    signrequest_data = signrequest_client.SignRequest(document=new_document.url, 
                                                      signers=[signer], 
                                                      is_being_prepared=False, 
                                                      subject="Please sign this document",
                                                      message="Hello, please sign the attached document.")

    # Send the signature request
    result = api_instance.signrequests_create(signrequest_data)
    print(f"Signature Request created successfully. UUID: {result.uuid}")
    print(f"Signer URL: {result.signers[0].signing_url}")

except signrequest_client.ApiException as e:
    print(f"Error creating SignRequest: {e}")

This example demonstrates a basic flow. In a production environment, you would handle file uploads more robustly (e.g., converting local files to base64 or providing publicly accessible URLs), manage API tokens securely, and implement error handling and retries. Further capabilities, such as specifying signature fields, setting expiration dates, and handling multiple signers, are supported by expanding the SignRequest object with additional parameters.

Community libraries

While SignRequest provides official SDKs, the open-source community often contributes additional libraries, plugins, and integrations that extend functionality or support niche use cases not covered by official offerings. These community-driven projects can range from wrappers for less common languages to integrations with specific frameworks or content management systems.

Community libraries are typically found on platforms like GitHub or language-specific package repositories (e.g., PyPI, npm, Packagist). Developers interested in community contributions should search these platforms using terms such as SignRequest combined with the specific language or framework (e.g., "SignRequest Laravel" or "SignRequest GoLang"). When considering a community library, it is advisable to evaluate its maintenance status, community support, and alignment with the HTTP/1.1 Semantics and Content (RFC 7231) principles that RESTful APIs typically adhere to, to ensure reliability and security. Users should also review the source code for any security vulnerabilities or licensing implications before use.

The reliability and feature set of community libraries can vary significantly as they are not officially supported by SignRequest. For mission-critical applications, it is generally recommended to use the official SignRequest SDKs or directly interact with the SignRequest REST API.