Quickstart — appelez le API depuis votre serveur
Réclamez un bac à sable, stockez la clé `esk_test_`, confirmez-la, créez un document à partir d''un modèle et envoyez-le. Les jetons de session de signature utilisent la même clé. Les Webhook sont enregistrés dans l''application d''administration.
Avant de commencer
Vous avez besoin d''un terminal avec `curl` et `jq`, ainsi que d''une boîte de réception de courrier électronique que vous contrôlez. La clé du bac à sable est `esk_test_…`. Une clé de production est `esk_live_…`. Envoyez-le comme « Autorisation : au porteur ». Le locataire vient de la clé, donc n''envoyez pas `x-tenant-id`.
Une clé sandbox comprend `integrations:zapier` et `signing:write`. Le téléchargement, l''assistant d''enveloppe et l''enregistrement webhook utilisent la session d''administration après votre connexion. Votre serveur utilise la clé pour les appels ci-dessous.
Quatre appels au serveur, puis un webhook dans l''application d''administration
- 1
Réclamez votre bac à sable
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
Confirmez la clé
GET /api/v1/zapier/auth/test with the key. Expected output: HTTP 200 and `{ success: true, data: { tenantId, tenantName, zapierEnabled: true } }`.
- 3
Créer un document et l''envoyer
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
Enregistrez un webhook dans l''administrateur
Connectez-vous et ouvrez Admin → Développeur → Webhooks. Enregistrez le secret de signature. Les livraisons utilisent `X-Endorsed-Signature`. Les étapes de vérification sont sur le guide du webhook. Inspectez les tentatives dans Admin → Développeur → Console.
Étape 1 : réclamer un bac à sable
Prérequis : une adresse e-mail et un mot de passe de plus de 8 caractères. Résultat attendu : HTTP 201 avec `data.sandbox.apiKey` commençant `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)"Stockez la clé dans le gestionnaire secret de votre serveur. La vérification des e-mails ouvre la console d''administration. La clé fonctionne pour les appels sur cette page dès son émission.
Étape 2 — confirmez la clé
Prérequis : `$ENDORSED_API_KEY` de l''étape 1. La clé du bac à sable a déjà `integrations:zapier`. Résultat attendu : HTTP 200 et le nom de votre locataire.
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 }'Une clé manquante ou mal formée est 401. Une clé valide sans `integrations:zapier` est 403. N''envoyez pas `X-Data-Mode` : `esk_test_` sélectionne déjà les données de test.
Étape 3 — créez un document à partir du modèle sandbox et envoyez-le
Prérequis : `$ENDORSED_API_KEY` et un `$ENDORSED_TEMPLATE_ID` non vide. Si `sampleTemplateId` était nul, créez un modèle dans l''application d''administration et collez son identifiant. Sortie attendue : HTTP 201 avec `data.documentId`, puis une réponse d''envoi avec `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 }'Le lien de signature est envoyé par e-mail à `recipientEmail`. La réponse JSON contient l''identifiant du document, le statut et l''expiration du lien. Ouvrez l''e-mail pour terminer la signature, puis regardez `document.signed` sur un webhook que vous avez enregistré dans Admin.
Créez un jeton de session de signature
Prérequis : `$ENDORSED_API_KEY` avec `signing:write` (inclus sur la clé du bac à sable) et un identifiant de session de signature d''une session que vous avez déjà créée. Résultat attendu : HTTP 201 avec un jeton `st_…` unique.
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 }'Transmettez `st_…` à l''intégration du navigateur. Gardez `esk_…` sur le serveur. Les instructions d’utilisation se trouvent sur la page d’intégration d’Elements.
Quand quelque chose ne va pas
Prêt à aller plus loin ?
Une fois que vous avez signé un document de bout en bout, connectez-vous aux zones ci-dessous pour la tranche suivante de l''intégration.