ESign Docs

Quickstart

Create an API key and send your first document for signature via the REST API.

This walks through the full signing loop with the REST API: create a document, send it, and receive a document.completed webhook when it is signed and sealed.

The staging base URL is https://web.esign.codeless.au/api/v1.

1. Create an API key

Sign in to the web app, open Settings → API tokens, and create a key. The full key (esk_live_… in production, esk_test_… elsewhere) is shown once — copy it. Send it as a bearer token on every request. See Authentication.

2. Register a webhook

curl -X POST https://web.esign.codeless.au/api/v1/webhooks \
  -H "Authorization: Bearer $ESIGN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/esign",
    "events": ["document.completed"]
  }'

The response includes a secret (shown once) used to verify delivery signatures — see Webhooks.

3. Create a document

Submit the PDF (base64-encoded) together with recipients and their fields in one call. The response returns the new document id.

curl -X POST https://web.esign.codeless.au/api/v1/documents \
  -H "Authorization: Bearer $ESIGN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "title": "NDA",
    "fileName": "nda.pdf",
    "file": "<BASE64_PDF>",
    "recipients": [
      {
        "email": "signer@example.com",
        "name": "Alex Signer",
        "role": "signer",
        "fields": [
          { "type": "signature", "page": 1, "x": 10, "y": 80, "width": 30, "height": 8 }
        ]
      }
    ]
  }'

Field coordinates are percentages of the page (origin top-left).

4. Send for signature

curl -X POST https://web.esign.codeless.au/api/v1/documents/$DOCUMENT_ID/send \
  -H "Authorization: Bearer $ESIGN_API_KEY"

Each recipient receives an email with a secure link and signs from any device — no account required. This emits a document.sent event.

5. Receive the completed event

When every signer is done, ESign seals the PDF (PAdES digital signature + audit certificate page) and delivers a document.completed webhook to your endpoint. Verify the signature, then fetch the sealed file. Reminders and expiry are handled automatically.

Prefer the UI? Everything above is also available in the web app.

On this page