Let your customers collect signatures without leaving your platform. GetSigned is built for programmatic embedding: multi-tenant isolation, embedded signing, webhook automation, and template-based sending — all via a REST API.
Render the signing UI inside your product via iframe. Your customer's users never leave your platform. Best for authenticated users completing their own documents.
Embedded signing guide →GetSigned emails each signer a tokenized link. Signers click the link, sign on a hosted page, and your app is notified via webhook. Best for external counterparties outside your platform.
Integration guide →Define a document template once. Your SaaS triggers signing for each customer event — account activation, contract renewal, onboarding — without re-uploading the PDF.
Template API guide →React to signing completions in real time: unlock features, provision accounts, send receipts. Your SaaS stays in control; GetSigned fires events, stays dumb about what they mean.
Webhook guide →Every envelope and document in GetSigned is scoped to your application (app_id) and a tenant identifier you supply. Cross-tenant data access is enforced at the database level — your customers' documents cannot bleed across tenant boundaries.
The signing page brand resolves from your application's branding configuration — brand name and logo. White-label mode (show your customer's own brand) is available on the Enterprise plan.
All webhook deliveries are signed with HMAC-SHA256. Verify the X-GetSigned-Signature header in your endpoint before processing. This prevents forged webhook events from untrusted sources.
Retention periods are configurable per tenant. Your enterprise customers can request longer retention; SMB customers can use the default. Purge-on-expiry removes the PDF blob but retains the audit trail tombstone.
Customer triggers a signing event in your SaaS (e.g., approves a proposal, accepts an upgrade).
Your backend calls POST /v1/envelopes with the document, signer details, and your internal record ID in the metadata field.
Call POST /v1/envelopes/{id}/send — or request an embedded token for in-app signing.
GetSigned handles identity verification (OTP), the signing UI, and sealing.
envelope.completed webhook fires. Your backend reads the metadata, looks up the internal record, and unlocks the next step — no polling needed.
SaaS products typically integrate e-signatures via a REST API: when a signing event is triggered in the product (a contract ready to sign, an onboarding form), the backend calls the e-signature API to create an envelope with the document and signer details, then sends it. Signers complete signing either embedded in the product (iframe) or via an emailed link. The e-signature service fires a webhook on completion; the SaaS backend reacts — unlocking access, sending confirmations, updating records.
For SaaS products, the ideal e-signature API is API-first (not a UI-first tool with a bolted-on API), supports multi-tenant data isolation, offers embedded signing for in-app experiences, and provides webhooks for automation. GetSigned is built specifically for programmatic integration: every envelope is scoped by app_id and tenant_id, embedded signing is a first-class feature, and webhooks are the primary completion notification mechanism.
GetSigned enforces tenant isolation at the database level — every envelope, document, signer, and field is scoped by app_id (your integration credential) and a tenant_id you supply on each request. Cross-tenant queries are rejected by the API. Your customers' documents cannot be accessed across tenant boundaries, even if they share the same integration credential.
Yes. The signing page brand (name, logo) resolves from your application's branding configuration. On the Enterprise plan, white-label mode lets you show your customer's own brand on the signing page instead of yours — so end signers see your customer's brand throughout.
Subscribe to GetSigned webhooks — specifically envelope.completed — and react in your backend: unlock a gated feature, provision an account, send a receipt email, archive the signed PDF to your storage, or update a CRM record. The webhook fires in real time after each envelope is sealed. Use the metadata field on the envelope to pass your internal record IDs through the signing flow so the webhook payload carries the context you need to act on.
Related: Embedded signing · Template API · Webhook guide · Multi-signer routing
Free tier, full API. Multi-tenant isolation. Webhooks included.
Get free API keys →