Developer Guide

E-Signature API Comparison: GoSignHere vs DocuSign

May 5, 2026  ·  8 min read

If you're building an application that needs document signing — a SaaS product, an internal tool, a client-facing workflow — you'll eventually need to evaluate e-signature APIs. DocuSign is the default assumption for a lot of developers. GoSignHere is the alternative we built specifically for cases where DocuSign's complexity and pricing don't fit.

This article is for developers. We'll look at authentication, code complexity, pricing, webhooks, and what it actually takes to go from zero to a working signing integration. We'll include real API calls for both.

Overview

GoSignHere API: REST, API key authentication, clean JSON responses, available on the Business plan at $25/month. You can read the docs, sign up, and have a working integration in an afternoon. No sales call, no enterprise contract, no sandbox-to-production approval process.

DocuSign API: Feature-rich and battle-tested, but designed for enterprise workflows. OAuth 2.0 with JWT grant or auth code flow, complex request structures, base64-encoded document payloads. Production access requires a paid account; the eSignature API is available on most plans but the full developer platform unlocks at higher tiers.

Getting API Access

GoSignHere

  1. Sign up at app.gosignhere.com — free, no card
  2. Upgrade to Business plan ($25/mo annual) — API access unlocks immediately
  3. Go to Settings → API Keys → Create Key
  4. Copy your gsh_... key and start making calls

There is no separate developer account, no sandbox approval, no account team involved. The key you create works in production immediately.

DocuSign

  1. Create a DocuSign developer account at developers.docusign.com
  2. Create an app in the developer console to get an Integration Key (client ID)
  3. Configure OAuth — choose JWT grant (server-to-server) or auth code flow
  4. Generate RSA keypair, upload public key to DocuSign developer console
  5. Request user consent for your integration
  6. Exchange for an access token (expires every 8 hours — you need a refresh flow)
  7. To go to production: submit your app for go-live review

The developer sandbox is free and functional. Production access is tied to a paid DocuSign account. The go-live process adds a review step before your integration can send real envelopes.

Authentication

This is the sharpest difference between the two APIs day-to-day.

GoSignHere uses a static API key passed as a header:

Every request X-API-Key: gsh_your_api_key_here

That's it. No token exchange, no expiry, no refresh logic. Revoke and rotate keys from the dashboard whenever you want.

DocuSign uses OAuth 2.0. For server-to-server integrations (the most common case), you use the JWT grant flow:

Token request (every 8 hours) # 1. Build a JWT assertion signed with your RSA private key # 2. POST to the auth server POST https://account.docusign.com/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer &assertion=<signed_jwt> # 3. Parse the access_token from the response # 4. Use it as a Bearer token until it expires # 5. Repeat step 1–4 on expiry

This adds real complexity to your integration: you need RSA key management, JWT signing logic, token storage, expiry detection, and a refresh flow. For production applications this is manageable, but it's a meaningful amount of infrastructure to build before you write a single line of signing-related code.

Time to First API Call

GoSignHere: under 5 minutes from sign-up to a working API call. Create an account, get a key, make the call.

DocuSign: 30–60 minutes of setup before your first authenticated request — developer account, app configuration, OAuth flow, RSA keys, consent, token exchange. This isn't a criticism of the design — it's appropriate for what DocuSign is. But if you're evaluating whether to invest in an integration, that setup cost is a real factor.

GoSignHere API: read the docs, make a call

Business plan at $25/mo. API key in 30 seconds. Full REST docs with code examples.

View API Reference

Sending a Document: Code Comparison

The best way to understand the complexity difference is to look at what it takes to send a document for signature. Here's the same operation on both APIs.

GoSignHere — one call

GoSignHere has a POST /v1/packages/send endpoint that creates the package, attaches the document, assigns signers, and sends the signing invitations in a single request:

curl curl -X POST https://api.gosignhere.com/v1/packages/send \ -H "X-API-Key: gsh_your_key" \ -H "Content-Type: application/json" \ -d '{ "title": "Client Service Agreement", "document_url": "https://example.com/contract.pdf", "signers": [ { "name": "Jane Smith", "email": "jane@example.com", "fields": [ { "type": "signature", "page": 1, "x": 0.62, "y": 0.81 }, { "type": "date", "page": 1, "x": 0.62, "y": 0.87 } ] } ] }'

Response:

JSON { "success": true, "result": { "package_id": "pkg_a3f9c...", "status": "assigned", "signers": [ { "signer_id": "sgn_b7e2...", "email": "jane@example.com", "status": "notified" } ] } }

Jane receives a signing invitation email. When she signs, you get a webhook. Done.

DocuSign — multiple steps

The DocuSign equivalent requires creating an envelope object with nested recipients, tabs (field definitions), and a base64-encoded copy of the document:

curl (simplified) curl -X POST \ https://na4.docusign.net/restapi/v2.1/accounts/{accountId}/envelopes \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -d '{ "emailSubject": "Please sign: Client Service Agreement", "status": "sent", "documents": [ { "documentId": "1", "name": "contract.pdf", "documentBase64": "JVBERi0xLjQK..." } ], "recipients": { "signers": [ { "recipientId": "1", "name": "Jane Smith", "email": "jane@example.com", "tabs": { "signHereTabs": [ { "documentId": "1", "pageNumber": "1", "xPosition": "446", "yPosition": "583" } ], "dateSignedTabs": [ { "documentId": "1", "pageNumber": "1", "xPosition": "446", "yPosition": "630" } ] } } ] } }'

A few things to note about the DocuSign version:

  • The document must be base64-encoded and sent in the request body — you can't pass a URL
  • Field positions are in absolute pixels (at 72 DPI), not percentages — this means you need to know the exact page dimensions of your document
  • The account ID is required in the URL and varies per environment
  • The access_token must be refreshed every 8 hours
  • Server region is part of the base URL (na4, eu1, etc.) and varies per account

None of this is insurmountable — developers use the DocuSign API successfully every day. But it's a materially more complex integration, and that complexity lives in your codebase permanently.

Webhooks

Both APIs support webhooks. The implementation approach is different.

GoSignHere: Create a webhook endpoint via the API or dashboard, specify your URL and secret, choose events. Payloads are signed with HMAC-SHA256. When a package is completed, signed, or declined, you get a POST to your endpoint with the event data and package ID. Verify the signature, fetch the package status, done.

Webhook payload { "event": "package.completed", "package_id": "pkg_a3f9c...", "timestamp": "2026-05-05T14:22:10Z", "data": { "status": "completed", "signers": [ ... ] } }

DocuSign: Uses Connect, its webhook system, which requires configuration at the account level (not per-integration). Events are called "Connect messages" and use a different payload format — XML by default, JSON available. Requires HTTPS with a valid certificate. Setting up Connect for a new integration involves account-level configuration that may require admin access.

Full Feature Comparison

Capability GoSignHere DocuSign
Authentication API key (header) OAuth 2.0 (JWT or auth code)
Time to first call ~5 min 30–60 min setup
Production access Immediate — Business plan Go-live review process
API access pricing $25/mo (annual) Varies — contact sales
Document upload URL or multipart Base64 in request body
Field positions % of page (resolution-independent) Absolute pixels at 72 DPI
Single-call send ✓ POST /v1/packages/send ✗ Multiple steps
Webhooks ✓ Per-key, HMAC-signed JSON ✓ Connect (account-level)
Response format {"success": true, "result": {...}} Varies by endpoint
Resource ID format Prefixed: pkg_, doc_, sgn_ UUIDs (no type prefix)
Endpoint count 35+ 300+
Official SDKs REST only (no official wrappers yet) C#, Java, Python, Node, PHP, Ruby
Bulk send via API ✗ Not yet
Template API
Embedded signing Signing link (not iframe-embedded) ✓ Full embedded signing UI
Download signed doc via API

When GoSignHere's API Is the Right Choice

You're building a SaaS product and need signing as a feature, not as your main workflow. You want to send contracts or agreements from within your app, get notified when they're signed, and download the completed documents. The GoSignHere API covers this in one call and a webhook. You don't need an enterprise contract or a complex auth flow to ship it.

You're a small team moving fast. Two hours of DocuSign OAuth setup is two hours you're not building your product. GoSignHere's API key model means you can prototype the integration in the same afternoon you decide to build it.

You want predictable costs. Business plan at $25/month covers your API access and 75 packages per month. If you need more, top-up packs are available. No usage-based pricing surprises, no API call rate charges separate from your package allocation.

You value simplicity in your codebase. The GoSignHere API has a consistent response envelope, prefixed resource IDs, percentage-based field positions, and a single-call send endpoint. Less to learn, less to maintain, less to debug.

When DocuSign's API Is the Right Choice

You need official SDKs. DocuSign maintains official libraries for C#, Java, Python, Node.js, PHP, and Ruby. If you need an officially supported library with typed models and integrated OAuth flows, DocuSign has them. GoSignHere's API is clean enough that most developers don't need a wrapper, but if you do, DocuSign wins here.

You need embedded signing. DocuSign supports iFrame-embedded signing where the signer never leaves your application. GoSignHere's signing flow opens in a new tab or window (a signing link) — it's seamless for most use cases, but if embedded UI is a hard requirement, DocuSign has a mature solution for it.

You're already deep in the DocuSign ecosystem. If your organization uses DocuSign's Salesforce integration, CLM, or other platform products, it may make more sense to use their API for consistency even if the developer experience is heavier.

You need bulk send via API. Programmatic bulk sending — one document, thousands of recipients — is a DocuSign capability. If you're building an HR onboarding tool or compliance distribution system at that scale, DocuSign is the right call today.

Frequently Asked Questions

Is there a sandbox environment for GoSignHere's API?

GoSignHere doesn't have a separate sandbox environment — the production API is available immediately on the Business plan, and you control your own test data. Free-tier accounts can be used for development testing (5 packages/month), and you can void or delete test packages after use. Most developers find this simpler than managing separate sandbox credentials.

Can I use GoSignHere's API with any language?

Yes. It's a standard REST API with JSON payloads — any language that can make HTTP requests works. There are no official SDKs yet, but the API is simple enough that most integrations are a few dozen lines of code in any language.

How does GoSignHere handle field positioning compared to DocuSign?

GoSignHere positions fields as a percentage of the page dimensions (0.0 to 1.0 for both x and y). This means your field coordinates work correctly regardless of the PDF's actual pixel dimensions. DocuSign uses absolute pixel positions at 72 DPI, which requires you to know the exact dimensions of each document you're sending.

Does GoSignHere's API support templates?

Yes. You can create templates in the GoSignHere dashboard with pre-placed fields, then send packages from a template via the API. This is the recommended pattern for high-volume applications where the same document is sent repeatedly with different signers.

What happens to my integration if I downgrade from Business to Free?

API access requires the Business plan. If you downgrade, your API keys are deactivated but not deleted — upgrading again reactivates them. Completed packages and their data remain accessible through your account regardless of plan changes.

Ready to build with GoSignHere?

Business plan includes full API access. Read the docs, create an account, ship it.