Build e-signatures into your product
REST API for document signing. Real-time webhooks. SDKs for popular languages. Everything you need to integrate legally binding e-signatures.
import SignThem from '@signthem/sdk';
const client = new SignThem('your_api_key');
// Create and send an envelope
const envelope = await client.envelopes.create({
name: 'Contract Agreement',
documents: [{ url: 'https://example.com/contract.pdf' }],
recipients: [
{ email: '[email protected]', name: 'John Doe' }
]
});
await client.envelopes.send(envelope.id);REST API
Full control over envelopes, documents, templates, and recipients. JSON responses, predictable URLs, standard HTTP methods.
- Create & send envelopes
- Manage templates
- Download signed PDFs
- Check envelope status
Webhooks
Real-time HTTP callbacks when signing events occur. No polling required — get notified instantly.
- 8 event types
- HMAC-SHA256 signatures
- Automatic retries
- Delivery logs
SDKs
Official client libraries for popular languages. Type-safe, well-documented, and easy to integrate.
@signthem/sdkOn requestOn requestOn requestWebhook Events
Subscribe to the events you care about. Each webhook includes the envelope ID, event type, timestamp, and relevant data.
envelope.createdWhen a new envelope is created
envelope.sentWhen envelope is sent for signing
envelope.viewedWhen recipient opens the envelope
envelope.signedWhen a recipient signs
envelope.completedWhen all recipients have signed
envelope.voidedWhen envelope is cancelled
envelope.declinedWhen recipient declines to sign
envelope.expiredWhen envelope expires
Security First
Every API request is authenticated. Every webhook is signed. Your data is encrypted at rest and in transit.
- API key authentication
- HMAC webhook verification
- TLS 1.3 encryption
- ESIGN & UETA compliant
Webhook Signature Verification
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return `sha256=${expected}` === signature;
}Ready to build?
Create an account to get your API key. No credit card required.