An open-source electronic-signature platform with a complete field and routing toolkit, a developer API, and a tamper-evident audit trail on every envelope — with security engineered in from the start.
Free and open source. No credit card. Your data encrypted at rest and in transit.
A focused, well-engineered signing platform with security and developer experience at its core.
Upload a PDF, drag fields onto the page, add recipients, and send. Reusable templates and CSV bulk send handle the repetitive work.
Workspaces with admin, sender, and viewer roles, organization-wide visibility, shared templates, and strict isolation between tenants.
A versioned REST API with API keys, idempotency, and pagination, plus HMAC-signed webhooks and a published OpenAPI spec.
SHA-256 sealing, a certificate of completion, MFA, least-privilege infrastructure, and secrets encrypted with a customer-managed key.
Sequential, parallel, or mixed signing order; signer, approver, and CC roles; reassignment; and in-person signing.
Signature, initials, dates, text with validation, dropdowns, radio groups, checkboxes, conditional logic, and auto-filled fields.
Drop in one or more PDFs and place fields for each recipient by dragging them onto the page — or auto-place by anchor text.
Add signers, approvers, and CCs, choose the routing order, and share each recipient's secure signing link or fire it through the API.
Recipients sign with consent captured. When everyone's done, QuillSign seals the document and appends a certificate of completion.
Everything below ships today.
Create and send envelopes programmatically, then receive signed, HMAC-verified webhook events. Authenticate with an API key, get idempotency and cursor pagination out of the box, and explore the published OpenAPI spec.
# Create & send an envelope curl https://quillsign-dev.com/v1/envelopes \ -H "Authorization: Bearer qsk_…" \ -H "Idempotency-Key: order-4821" \ -d '{"title":"MSA","filename":"msa.pdf", "fileBase64":"JVBERi0…"}' # Verify a webhook (HMAC-SHA256) const mac = crypto .createHmac("sha256", secret) .update(`${ts}.${body}`) .digest("hex");
Spin up a workspace, place a few fields, and watch the audit trail build itself. Developers, grab an API key and go.