https://github.com/superdoc-dev/esign
https://github.com/superdoc-dev/esign
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/superdoc-dev/esign
- Owner: superdoc-dev
- License: agpl-3.0
- Created: 2025-09-23T16:51:11.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-12-18T22:15:27.000Z (3 months ago)
- Last Synced: 2025-12-21T20:49:22.054Z (3 months ago)
- Language: TypeScript
- Size: 386 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @superdoc-dev/esign
React component that wraps SuperDoc for document signing workflows with audit trails and compliance tracking.
## Installation
```bash
npm install @superdoc-dev/esign
```
## Quick Start
```jsx
import React from 'react';
import SuperDocESign from '@superdoc-dev/esign';
import 'superdoc/dist/style.css';
function App() {
const handleSubmit = async (data) => {
// Send to your backend
await fetch('/api/sign', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
alert('Document signed!');
};
return (
);
}
```
## Backend - Create Signed PDF
Use the SuperDoc API to create the final signed document:
```javascript
// Node.js/Express
app.post('/api/sign', async (req, res) => {
const { eventId, auditTrail, documentFields, signerFields } = req.body;
// 1. Fill document fields
const annotated = await fetch('https://api.superdoc.dev/v1/annotate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
document: 'template.docx',
fields: [...documentFields, ...signerFields]
})
});
// 2. Add digital signature
const signed = await fetch('https://api.superdoc.dev/v1/sign', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
document: await annotated.blob(),
auditTrail: auditTrail
})
});
// 3. Save PDF
await saveToStorage(await signed.blob(), `signed_${eventId}.pdf`);
res.json({ success: true });
});
```
See [Python, Node.js, and more examples](https://docs.superdoc.dev/solutions/esign/backend).
## What You Receive
```javascript
{
eventId: "session-123",
timestamp: "2024-01-15T10:30:00Z",
duration: 45000,
documentFields: [
{ id: "user_name", value: "John Doe" }
],
signerFields: [
{ id: "signature", value: "John Doe" },
{ id: "accept_terms", value: true }
],
auditTrail: [
{ type: "ready", timestamp: "..." },
{ type: "scroll", timestamp: "..." },
{ type: "field_change", timestamp: "..." },
{ type: "submit", timestamp: "..." }
],
isFullyCompleted: true
}
```
## Documentation
Full docs at [docs.superdoc.dev/solutions/esign](https://docs.superdoc.dev/solutions/esign)
## License
AGPLv3