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
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
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
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
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_`.
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.
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"`.
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.
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.