Overview
Direct links provide recipient-specific URLs that can be embedded directly in your application. Each recipient gets a unique token that grants access to sign the document.Getting Recipient Tokens
Via API v1
When you create a document via the API, signing links are automatically generated for each recipient:Direct Template Links
For reusable templates, you can create a direct link that allows anyone with the link to sign:- No pre-defined recipients required
- Anyone with the link can sign
- Signer provides their own name/email
- Perfect for public forms and agreements
Basic Iframe Embedding
Simple Embed
Responsive Embed
Pre-filling Recipient Data
You can pre-fill and lock recipient information by passing data in the URL hash:Embed Data Schema
| Field | Type | Description |
|---|---|---|
email | string | Pre-fill recipient email (templates only) |
lockEmail | boolean | Prevent email editing |
name | string | Pre-fill recipient name |
lockName | boolean | Prevent name editing |
allowDocumentRejection | boolean | Allow recipient to reject document |
showOtherRecipientsCompletedFields | boolean | Show fields completed by other recipients |
darkModeDisabled | boolean | Disable dark mode |
css | string | Custom CSS (Enterprise only) |
cssVars | object | CSS variables (Enterprise only) |
Listening to Events
The embedded iframe sends events to your application viapostMessage:
Direct Template Embedding
Direct templates allow anyone to sign without pre-creating recipients:Pre-filling Direct Template Data
Full Example: React Component
Security Considerations
Origin Verification
Always verify the message origin:Token Security
- Never expose recipient tokens in client-side code
- Generate tokens server-side only
- Use presign tokens for additional security
- Tokens are automatically expired when documents are completed
iframe Sandbox
For maximum security, consider using iframe sandbox attributes:Troubleshooting
Document Not Loading
- Check token validity: Tokens expire after document completion
- Verify recipient access: Ensure it’s the recipient’s turn to sign
- Check authentication: Some documents require account login
- Review Enterprise plan: Embedding requires appropriate subscription
Events Not Received
- Verify origin: Check that your origin validation allows the embed domain
- Check browser console: Look for CORS or security errors
- Test in incognito: Rule out browser extension interference
Styling Issues
- Set iframe dimensions: Ensure adequate width/height
- Check z-index: Verify iframe isn’t hidden behind other elements
- Allow clipboard: Include
allow="clipboard-write"for signature features
Next Steps
CSS Customization
Customize the embedded interface appearance
React Component
Build a reusable React wrapper
