A hands-on, click-through tour of the LedgerSign Public API. Enter your base URL and API key above, then run each step — the output of one step (template → document → signing URL) flows into the next, and every button makes the real call so you see the exact request and response.
Documents are built from templates. Fetch them to get a template_id and the signer roles you'll map to.
Map each template role to a signer. With send_immediately on, the response returns per-recipient signing URLs.
field_identifier keys you can set here.
Each recipient gets FRONTEND_URL/sign/{token}. Email or embed them in your product — here you can sign one inline.
Run Step 2 with send_immediately on to get signing URLs — or paste one below.
Poll the document for lifecycle status, per-recipient progress, and the signed-PDF URL once completed.
Skip polling — register a URL and we POST you an event when things change. The signing secret is shown only at creation.
HMAC-SHA256(raw_body, secret) and comparing to the X-Webhook-Signature header.url:
{
"event": "document.completed",
"timestamp": "2026-06-14T14:32:08.512345",
"data": { /* event-specific payload */ }
}
X-Webhook-Event, X-Webhook-Timestamp (unix), X-Webhook-Signature (HMAC-SHA256 of raw body), User-Agent: LedgerSign-Webhook/1.0. Retries up to 3× on non-2xx.Recompute the HMAC over the raw body (not parsed JSON) and compare with X-Webhook-Signature.
Retries can re-deliver — dedupe on document_id + event and respond 2xx fast.
document.created/sent/viewed/signed/completed/expired + recipient.viewed/signed.