E-Sign API Overview
The Penvio E-Sign API provides programmatic access to electronic signature workflows, enabling you to automate document signing processes in your applications.
API access requires a Business plan or higher.
Base URL
All API requests should be made to:
https://penvio.io/api/v1For local development:
http://localhost:3000/api/v1Quick Links
Interactive API documentation with try-it-out functionality
API ExplorerLearn how to authenticate with API keys
AuthenticationTemplates and envelopes endpoints
E-Sign APIReal-time event notifications
WebhooksAuthentication
All API endpoints require API key authentication:
curl -X GET https://penvio.io/api/v1/esign/templates \
-H "Authorization: Bearer pk_live_xxxxxxxxxxxxx"API keys are managed in your organization settings. See Authentication for details.
Response Format
All responses are JSON with the following structure:
Success Response
{
"data": {
"id": "tmpl_abc123",
"name": "Sales Agreement",
...
},
"meta": {
"pagination": {
"page": 1,
"pageSize": 20,
"total": 100,
"totalPages": 5
}
}
}Error Response
{
"error": {
"code": "NOT_FOUND",
"message": "Template not found"
}
}Validation Error
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid request",
"details": {
"signers": ["At least one signer is required"]
}
}
}Rate Limiting
Enterprise API requests are rate-limited to 10,000 requests per 15 minutes.
When rate limited, you’ll receive a 429 Too Many Requests response with an X-RateLimit-Reset header.
See Rate Limits for more information.
Pagination
List endpoints support pagination via query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number (1-indexed) |
pageSize | integer | 20 | Items per page (max 100) |
Example:
GET /api/v1/esign/envelopes?page=2&pageSize=50Available Endpoints
Templates
| Method | Path | Description |
|---|---|---|
GET | /api/v1/esign/templates | List all templates |
GET | /api/v1/esign/templates/{id} | Get template details |
Envelopes
| Method | Path | Description |
|---|---|---|
GET | /api/v1/esign/envelopes | List envelopes |
POST | /api/v1/esign/envelopes | Create new envelope |
GET | /api/v1/esign/envelopes/{id} | Get envelope details |
POST | /api/v1/esign/envelopes/{id}/send | Send for signing |
POST | /api/v1/esign/envelopes/{id}/cancel | Cancel envelope |
POST | /api/v1/esign/envelopes/{id}/remind | Send reminder |
Webhooks
Webhooks provide real-time notifications for E-Sign events.
Configure webhooks to receive notifications when:
- Envelopes are sent, viewed, signed, or completed
- Signers decline to sign
- Envelopes expire
See Webhooks for setup instructions.
BYOB Storage
Enterprise customers store documents in their own S3-compatible bucket. The API returns storage keys that you use to access documents directly from your bucket:
{
"documentStorageKey": "esign/envelopes/org_abc/env_def456/document.pdf",
"signedDocumentStorageKey": "esign/envelopes/org_abc/env_def456/signed.pdf",
"certificateStorageKey": "esign/envelopes/org_abc/env_def456/certificate.pdf"
}Configure BYOB storage in your organization settings before using the API.