For developers
eSignature API for Sending and Embedded Signing
The SignElectronically eSignature API creates envelopes from your templates, returns signing links you can embed in your own product, and posts signed webhooks when a document is viewed, signed or completed. API envelopes use the same plan quota.
REST over HTTPS, JSON in and out, included in Pro.
curl https://signelectronically.com/api/v1/envelopes \
-H "Authorization: Bearer se_live_8f2c..." \
-H "Content-Type: application/json" \
-d '{
"template_id": 412,
"subject": "Order form, Harbor Logistics",
"recipients": [
{"role": "Buyer", "name": "Jordan Avery",
"email": "[email protected]"},
{"role": "Finance", "name": "Priya Kaur",
"email": "[email protected]"}
],
"fields": {"order_total": "$11,600"}
}'
What you can build
Three jobs the API takes over
Create and send
Embed the signing step
React to events
Integration path
From API key to first signed document
-
1
Create an API key
In the developer settings of a Pro team. Give each system its own key so you can revoke one without touching the others.
-
2
Build a template
Set up roles and fields once in the editor. Your code then only passes people and values.
-
3
Create an envelope
POST the template id, recipients and field values. The response holds the envelope id and status.
-
4
Send or embed
Let us email the signers, or request an embedded link per recipient and show it inside your app.
-
5
Listen for completion
On the completed event, download the sealed PDF and the certificate and store them next to your record.
{
"id": "env_01JB7Q2M9K",
"status": "sent",
"recipients": [
{"role": "Buyer", "status": "sent", "order": 1},
{"role": "Finance", "status": "waiting", "order": 2}
],
"quota": {"used": 39, "limit": 2000}
}
Templates keep the layout out of your code. If legal changes a clause, they update the eSignature template and your integration keeps working.
Webhooks
Signed events with automatic retries
Webhook deliveries
https://app.yourproduct.com/hooks/esign ยท signed with HMAC SHA-256
- envelope.completed2026-10-09 09:16:02 UTC 200 delivered
- envelope.signed2026-10-09 09:15:58 UTC 200 delivered
- envelope.viewed2026-10-09 09:12:40 UTC 200 delivered
- envelope.sent2026-10-08 14:00:13 UTC 503 retried
- envelope.sent2026-10-08 14:00:43 UTC 200 delivered
Each delivery includes the header X-SignElectronically-Signature with a Unix timestamp and an HMAC SHA-256 of the timestamp and the raw body. Verify it with your endpoint secret and reject anything older than a few minutes.
If your endpoint does not answer with a 2xx status, the delivery is retried with growing pauses, from 30 seconds up to two hours. The delivery log shows every attempt with its status code.
- Events for sent, viewed, signed, completed, declined, voided and expired
- One secret per endpoint, stored encrypted
- Webhooks work on Plus even without the API
Pricing model
One quota for app and API
| Plus | Pro | Enterprise | |
|---|---|---|---|
| Webhooks | Included | Included | Included |
| REST API and API keys | Not included | Included | Included |
| Embedded signing | Not included | Included | Included |
| Envelopes per month, app and API together | 500 | 2,000 | 5,000 and up |
| Seats | 10 | 25 | 50 and up |
| Price, billed yearly | $74/mo | $249/mo | from $499/mo |
Several vendors sell their API as a separate product next to the per user plans. If that is what you are comparing, see the HelloSign alternative and DocuSign alternatives pages. Every API envelope gets the same audit trail as one sent by hand. Plans are on pricing, and the product overview is on the homepage.
Questions
eSignature API FAQ
Add signing to your product
Pro includes the API, embedded signing, 25 seats and 2,000 envelopes a month.