Skip to Content
API Reference

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/v1

For local development:

http://localhost:3000/api/v1

Authentication

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:

ParameterTypeDefaultDescription
pageinteger1Page number (1-indexed)
pageSizeinteger20Items per page (max 100)

Example:

GET /api/v1/esign/envelopes?page=2&pageSize=50

Available Endpoints

Templates

MethodPathDescription
GET/api/v1/esign/templatesList all templates
GET/api/v1/esign/templates/{id}Get template details

Envelopes

MethodPathDescription
GET/api/v1/esign/envelopesList envelopes
POST/api/v1/esign/envelopesCreate new envelope
GET/api/v1/esign/envelopes/{id}Get envelope details
POST/api/v1/esign/envelopes/{id}/sendSend for signing
POST/api/v1/esign/envelopes/{id}/cancelCancel envelope
POST/api/v1/esign/envelopes/{id}/remindSend 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.

Last updated on