Quickstart: llame al API desde su servidor
Reclame una zona de pruebas, almacene la clave `esk_test_`, confírmela, cree un documento a partir de una plantilla y envíelo. Los tokens de sesión de firma utilizan la misma clave. Los Webhook están registrados en la aplicación de administración.
Antes de empezar
Necesita una terminal con `curl` y `jq`, además de una bandeja de entrada de correo electrónico que usted controle. La clave de la zona de pruebas es `esk_test__…`. Una clave de producción es `esk_live__…`. Envíelo como `Autorización: Portador`. El inquilino proviene de la clave, así que no envíe "x-tenant-id".
Una clave de espacio aislado incluye `integraciones:zapier` y `firma:escribir`. La carga, el asistente de sobres y el registro webhook usan la sesión de administrador después de iniciar sesión. Su servidor usa la clave para las llamadas a continuación.
Cuatro llamadas al servidor, luego un webhook en la aplicación de administración
- 1
Reclama tu zona de pruebas
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
Confirma la clave
GET /api/v1/zapier/auth/test with the key. Expected output: HTTP 200 and `{ success: true, data: { tenantId, tenantName, zapierEnabled: true } }`.
- 3
Crea un documento y envíalo
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
Registrar un webhook en Administrador
Inicie sesión y abra Administrador → Desarrollador → Webhooks. Guarde el secreto de firma. Las entregas utilizan `X-Endorsed-Signature`. Los pasos de verificación se encuentran en la guía del webhook. Inspeccione los intentos en Administrador → Desarrollador → Consola.
Paso 1: reclamar una zona de pruebas
Requisitos previos: una dirección de correo electrónico y una contraseña de más de 8 caracteres. Resultado esperado: HTTP 201 con `data.sandbox.apiKey` iniciando `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)"Guarde la clave en el administrador secreto de su servidor. La verificación por correo electrónico accede a la consola de administración. La clave funciona para las convocatorias de esta página tan pronto como se emite.
Paso 2: confirma la clave
Requisitos previos: `$ENDORSED_API_KEY` del paso 1. La clave de la zona de pruebas ya tiene `integraciones:zapier`. Resultado esperado: HTTP 200 y el nombre de su inquilino.
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 }'Una clave faltante o con formato incorrecto es 401. Una clave válida sin `integrations:zapier` es 403. No envíe `X-Data-Mode`: `esk_test_` ya selecciona datos de prueba.
Paso 3: cree un documento a partir de la plantilla de zona de pruebas y envíelo
Requisitos previos: `$ENDORSED_API_KEY` y un `$ENDORSED_TEMPLATE_ID` no vacío. Si `sampleTemplateId` era nulo, cree una plantilla en la aplicación de administración y pegue su identificación. Resultado esperado: HTTP 201 con `data.documentId`, luego una respuesta de envío con `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 }'El enlace de firma se envía por correo electrónico a `recipientEmail`. La respuesta JSON incluye la identificación del documento, el estado y la caducidad del enlace. Abra el correo electrónico para finalizar la firma, luego mire `document.signed` en un webhook que registró en Admin.
Acuña un token de sesión de firma
Requisitos previos: `$ENDORSED_API_KEY` con `signing:write` (incluido en la clave de la zona de pruebas) y una identificación de sesión de firma de una sesión que ya creó. Resultado esperado: HTTP 201 con un token `st_…` único.
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 }'Entregue `st_…` a la inserción del navegador. Mantenga `esk_…` en el servidor. Las instrucciones para canjear se encuentran en la página de inserción de Elements.
Cuando algo sale mal
¿Listo para profundizar más?
Una vez que tenga un documento firmado de extremo a extremo, conéctelo a las áreas de superficie a continuación para la siguiente porción de la integración.