Ontwikkelaars

Quickstart — bel de API vanaf uw server

Claim een sandbox, sla de sleutel `esk_test_` op, bevestig deze, maak een document op basis van een sjabloon en verzend het. Tokens voor ondertekeningssessies gebruiken dezelfde sleutel. Webhook''s worden geregistreerd in de admin-app.

Voordat je begint

Je hebt een terminal nodig met `curl` en `jq`, plus een e-mailinbox die jij beheert. De sandboxsleutel is `esk_test_…`. Een productiesleutel is `esk_live_…`. Verzend het als `Authorisatie: Bearer`. De tenant komt uit de sleutel, dus stuur geen `x-tenant-id` mee.

Een sandboxsleutel bevat `integrations:zapier` en `signing:write`. Uploaden, de envelopwizard en webhook-registratie gebruiken de beheerderssessie nadat u zich heeft aangemeld. Uw server gebruikt de sleutel voor de onderstaande oproepen.

Vier serveroproepen, daarna een webhook in de admin-app

  1. 1

    Claim je sandbox

    POST /api/auth/register with `mode: sandbox`. The response includes a full `esk_test_…` key, shown once, plus `demoCustomerId`. When seeding succeeds it also includes `sampleTemplateId`.

  2. 2

    Bevestig de sleutel

    GET /api/v1/zapier/auth/test with the key. Expected output: HTTP 200 and `{ success: true, data: { tenantId, tenantName, zapierEnabled: true } }`.

  3. 3

    Maak een document en verzend het

    POST /api/v1/zapier/actions/create-from-template with `sampleTemplateId`, then POST /api/v1/zapier/actions/send-for-signing with the returned `documentId`. The signer receives the link by email.

  4. 4

    Registreer een webhook in Beheerder

    Log in en open Beheerder → Ontwikkelaar → Webhooks. Bewaar het ondertekeningsgeheim. Voor leveringen wordt `X-Endorsed-Signature` gebruikt. De verificatiestappen staan ​​in de webhook-gids. Inspecteer pogingen in Beheerder → Ontwikkelaar → Console.

Stap 1 — claim een sandbox

Vereisten: een e-mailadres en een wachtwoord van meer dan 8 tekens. Verwachte uitvoer: HTTP 201 met `data.sandbox.apiKey` beginnend met `esk_test_`.

bash
curl -sS -X POST https://api.endorsedsign.com/api/auth/register \
  -H 'Content-Type: application/json' \
  -d '{
    "tenantName": "Acme Dev Sandbox",
    "adminEmail": "you@acme.example",
    "password": "your-strong-password",
    "mode": "sandbox"
  }' | tee sandbox.json | jq '.data.sandbox'

# → {
#     "apiKey": "esk_test_…",
#     "keyPrefix": "esk_test_…",
#     "keyId": "…",
#     "scopes": ["signing:write", "integrations:zapier", …],
#     "demoCustomerId": "sandbox-signer-acme-dev-sandbox",
#     "demoCustomerName": "Sandbox Signer",
#     "sampleTemplateId": "…",
#     "expiresAt": "2026-…"
#   }

export ENDORSED_API_KEY="$(jq -r '.data.sandbox.apiKey' sandbox.json)"
export ENDORSED_TEMPLATE_ID="$(jq -r '.data.sandbox.sampleTemplateId // empty' sandbox.json)"

Bewaar de sleutel in uw servergeheimbeheerder. E-mailverificatie vergrendelt de beheerdersconsole. De sleutel werkt voor de oproepen op deze pagina zodra deze wordt uitgegeven.

Stap 2 — bevestig de sleutel

Vereisten: `$ENDORSED_API_KEY` uit stap 1. De sandboxsleutel heeft al `integraties:zapier`. Verwachte uitvoer: HTTP 200 en uw tenantnaam.

bash
curl -sS https://api.endorsedsign.com/api/v1/zapier/auth/test \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  | jq '{ success, tenantId: .data.tenantId, tenantName: .data.tenantName, zapierEnabled: .data.zapierEnabled }'

Een ontbrekende of verkeerd opgemaakte sleutel is 401. Een geldige sleutel zonder `integrations:zapier` is 403. `X-Data-Mode` niet verzenden: `esk_test_` selecteert al testgegevens.

Stap 3 — maak een document op basis van de sandbox-sjabloon en verzend het

Vereisten: `$ENDORSED_API_KEY` en een niet-lege `$ENDORSED_TEMPLATE_ID`. Als `sampleTemplateId` null is, maak dan een sjabloon in de beheerdersapp en plak de ID ervan. Verwachte uitvoer: HTTP 201 met `data.documentId`, vervolgens een verzendantwoord met `status: "link-sent"`.

bash
curl -sS -X POST https://api.endorsedsign.com/api/v1/zapier/actions/create-from-template \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{
    \"templateId\": \"$ENDORSED_TEMPLATE_ID\",
    \"recipientEmail\": \"you@acme.example\",
    \"recipientName\": \"Sandbox Signer\"
  }" | tee created.json | jq '.data | { documentId, customerId, status }'

export ENDORSED_DOCUMENT_ID="$(jq -r '.data.documentId' created.json)"

curl -sS -X POST https://api.endorsedsign.com/api/v1/zapier/actions/send-for-signing \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{
    \"documentId\": \"$ENDORSED_DOCUMENT_ID\",
    \"channel\": \"email\",
    \"subject\": \"Please sign\"
  }" | jq '.data | { documentId, status, channel, shareLinkExpiresAt }'

De ondertekenlink wordt per e-mail verzonden naar `recipientEmail`. Het JSON-antwoord bevat de document-ID, status en vervaldatum van de link. Open de e-mail om de handtekening af te ronden en bekijk vervolgens ''document.signed'' op een webhook die u in Admin heeft geregistreerd.

Mint een ondertekensessietoken

Vereisten: `$ENDORSED_API_KEY` met `signing:write` (inbegrepen op de sandboxsleutel) en een ondertekeningssessie-ID van een sessie die u al hebt gemaakt. Verwachte uitvoer: HTTP 201 met een eenmalig `st_…`-token.

bash
curl -sS -X POST "https://api.endorsedsign.com/api/v1/signing-sessions/$ENDORSED_SESSION_ID/tokens" \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{ "scope": "embed", "ttl_seconds": 300 }' \
  | jq '{ token, expires_at, scope }'

Hand `st_…` naar de browserinsluiting. Houd `esk_…` op de server. Instructies voor het inwisselen staan ​​op de Elements-insluitpagina.

Als er iets misgaat

Klaar om dieper te gaan?

Zodra u een document end-to-end hebt ondertekend, sluit u de onderstaande oppervlaktegebieden aan voor het volgende deel van de integratie.