Developer Guide

How to add e-signatures
to your app

Add legally binding e-signatures with a REST API in four steps: authenticate with OAuth2, create an envelope from your PDF, send a tokenized signing link, and handle the completion webhook to receive a tamper-evident sealed document. Free to start, no sales call.

Get free API keys →
1

Get API keys

Create a free account and grab your OAuth2 client credentials. Exchange them for a short-lived bearer token.

curl
curl -X POST https://api.getsigned.app/oauth/token \
  -d grant_type=client_credentials \
  -d client_id=$GETSIGNED_CLIENT_ID \
  -d client_secret=$GETSIGNED_CLIENT_SECRET
# → { "access_token": "ey...", "expires_in": 3600 }
2

Create an envelope

Upload the document, declare your signers, and place the fields they need to fill. One request returns an envelope you can send.

curl
curl -X POST https://api.getsigned.app/v1/envelopes \
  -H "Authorization: Bearer $TOKEN" \
  -F document=@nda.pdf \
  -F 'signers=[{"name":"Jamie","email":"jamie@client.io"}]' \
  -F 'fields=[{"type":"signature","page":1,"x":420,"y":580}]'
# → { "id": "env_...", "status": "draft" }
3

Send for signing

Sending generates a tokenized, single-use signing link per signer and emails it. Signers verify identity with email/SMS OTP — no account required.

curl
curl -X POST https://api.getsigned.app/v1/envelopes/env_.../send \
  -H "Authorization: Bearer $TOKEN"
# → signing links dispatched, status: "sent"
4

Handle the completion webhook

When the last signer finishes, GetSigned seals the document and fires an envelope.completed webhook. Download the tamper-evident sealed PDF — your app never polls.

curl
// POST from GetSigned → your webhook endpoint
{
  "event": "envelope.completed",
  "envelopeId": "env_...",
  "documentHashFinal": "9f86d0818..."
}
// GET /v1/envelopes/env_.../document → sealed PDF

Why developers choose GetSigned

Frequently asked questions

How do I add e-signatures to my app?

Authenticate with OAuth2 client credentials, POST a document with signers and fields to create an envelope, send it to generate tokenized signing links, then handle the envelope.completed webhook to receive the sealed PDF. GetSigned exposes each step as a REST endpoint, so most integrations are working in under an hour.

Are GetSigned signatures legally binding?

Yes. GetSigned is built for PIPEDA (Canada) and the US ESIGN Act / UETA. Every completed document is sealed with a single service-level PKCS#7 digital signature and backed by a hash-chained, append-only audit log capturing consent, identity verification, IP, and timestamps.

Do signers need an account?

No. Signers receive a tokenized, single-use signing link and verify identity with an email or SMS one-time passcode. They never create an account.

Is there a free tier for developers?

Yes. The Starter plan is free forever and includes full REST API access, PKCS#7 sealing, OTP verification, and webhooks, with 5 envelopes per month. Paid plans start at $29/month for unlimited envelopes.

Using Node.js? See the Node.js guide

Send your first envelope today

Free forever to start. Full API access from the first request.

Get free API keys →