Quick Start
Get started with SignEngine in less than 5 minutes! This guide will walk you through creating your first envelope and sending a document for signature.
Prerequisites
Before you begin, make sure you have:
- Node.js 20+ installed (for TypeScript/JavaScript SDK)
- A SignEngine account (sign up at signengine.dev)
- Your API key (available in your dashboard)
Installation
Install the SignEngine SDK for your preferred language:
- TypeScript/JavaScript
- Python
- PHP
- Java
- .NET
npm install @signengine/api-client
pip install signengine
composer require signengine/signengine-php
<dependency>
<groupId>com.signengine</groupId>
<artifactId>signengine-java</artifactId>
<version>1.0.0</version>
</dependency>
dotnet add package SignEngine.SDK
Your First Envelope
Let's create an envelope and send a document for signature.
- TypeScript/JavaScript
- Python
import { SignEngineClient } from '@signengine/api-client';
import fs from 'fs';
// Initialize the client
const client = new SignEngineClient({
apiKey: process.env.SIGNENGINE_API_KEY,
});
async function sendDocumentForSignature() {
// Read the PDF document
const documentBuffer = fs.readFileSync('./contract.pdf');
// Create an envelope
const envelope = await client.envelopes.create({
name: 'Employment Contract',
recipients: [
{
email: '[email protected]',
name: 'Jane Smith',
role: 'signer',
order: 1,
},
],
documents: [
{
name: 'contract.pdf',
content: documentBuffer,
},
],
fields: [
{
type: 'signature',
recipientEmail: '[email protected]',
page: 1,
x: 100,
y: 500,
width: 200,
height: 50,
},
{
type: 'date',
recipientEmail: '[email protected]',
page: 1,
x: 100,
y: 450,
width: 150,
height: 30,
},
],
});
console.log(`✅ Envelope created: ${envelope.id}`);
console.log(`📧 Sent to: ${envelope.recipients[0].email}`);
console.log(`📊 Status: ${envelope.status}`);
return envelope;
}
sendDocumentForSignature();
from signengine import SignEngineClient
import os
# Initialize the client
client = SignEngineClient(api_key=os.getenv('SIGNENGINE_API_KEY'))
# Read the PDF document
with open('./contract.pdf', 'rb') as f:
document_content = f.read()
# Create an envelope
envelope = client.envelopes.create(
name='Employment Contract',
recipients=[
{
'email': '[email protected]',
'name': 'Jane Smith',
'role': 'signer',
'order': 1
}
],
documents=[
{
'name': 'contract.pdf',
'content': document_content
}
],
fields=[
{
'type': 'signature',
'recipient_email': '[email protected]',
'page': 1,
'x': 100,
'y': 500,
'width': 200,
'height': 50
}
]
)
print(f"✅ Envelope created: {envelope.id}")
print(f"📧 Sent to: {envelope.recipients[0].email}")
print(f"📊 Status: {envelope.status}")
What Just Happened?
- Initialized the client with your API key
- Created an envelope with a recipient
- Uploaded a document (PDF)
- Placed signature fields on the document
- Sent the envelope to the recipient
The recipient will receive an email with a link to sign the document!
Check Envelope Status
You can check the status of your envelope at any time:
const envelope = await client.envelopes.get('envelope-id');
console.log(`Status: ${envelope.status}`);
// Possible statuses: draft, sent, delivered, signed, completed, declined, voided
Next Steps
Now that you've sent your first document, explore more features:
- Authentication - Learn about API authentication
- Core Concepts - Understand envelopes, recipients, and fields
- API Reference - Explore all available endpoints
- SDKs - Deep dive into SDK features
Common Issues
API Key Not Working
Make sure your API key is correctly set:
export SIGNENGINE_API_KEY="your-api-key-here"
Document Upload Fails
Ensure your document is:
- A valid PDF file
- Less than 10MB in size
- Not password-protected
Need More Help?
- 📖 Check the full documentation
- 🐛 Report issues on GitHub