快速入门 — 从您的服务器调用API
声明一个沙箱,存储`esk_test_`密钥,确认它,从模板创建一个文档,然后发送它。签名会话令牌使用相同的密钥。 Webhook已在管理应用程序中注册。
开始之前
您需要一个带有“curl”和“jq”的终端,以及您控制的电子邮件收件箱。沙箱密钥是“esk_test_…”。生产密钥是“esk_live_…”。将其作为“授权:承载者”发送。租户来自密钥,因此不要发送“x-tenant-id”。
沙箱密钥包括`integrations:zapier`和`signing:write`。上传、信封向导和webhook注册在您登录后使用管理会话。您的服务器使用密钥进行以下调用。
四次服务器调用,然后是管理应用程序中的webhook
- 1
领取你的沙箱
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
确认密钥
GET /api/v1/zapier/auth/test with the key. Expected output: HTTP 200 and `{ success: true, data: { tenantId, tenantName, zapierEnabled: true } }`.
- 3
创建文档并发送
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
在管理中注册一个webhook
登录并打开管理→开发者→Webhooks。保存签名秘密。交付使用“X-Endorsed-Signature”。验证步骤在webhook指南上。在管理 → 开发人员 → 控制台中检查尝试。
第 1 步 — 申领沙箱
先决条件:电子邮件地址和 8 个以上字符的密码。预期输出:HTTP 201,其中“data.sandbox.apiKey”开始“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)"将密钥存储在服务器秘密管理器中。电子邮件验证控制管理控制台。该密钥一经发出即可用于此页面上的呼叫。
第2步 — 确认密钥
先决条件:步骤 1 中的“$ENDORSED_API_KEY”。沙盒密钥已具有“integrations:zapier”。预期输出:HTTP 200 和您的租户名称。
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 }'缺失或格式错误的密钥为 401。没有 `integrations:zapier` 的有效密钥为 403。不要发送 `X-Data-Mode`:`esk_test_` 已选择测试数据。
步骤 3 — 从沙盒模板创建文档并发送
先决条件:“$ENDORSED_API_KEY”和非空“$ENDORSED_TEMPLATE_ID”。如果“sampleTemplateId”为空,请在管理应用程序中创建一个模板并粘贴其 ID。预期输出:带有 `data.documentId` 的 HTTP 201,然后是带有 `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 }'签名链接通过电子邮件发送至“recipientEmail”。 JSON 响应携带文档 ID、状态和链接到期时间。打开电子邮件完成签名,然后在您在管理员中注册的webhook上观看“document.signed”。
铸造签名会话令牌
先决条件:“$ENDORSED_API_KEY”和“signing:write”(包含在沙箱密钥中)以及来自您已创建的会话的签名会话 ID。预期输出:带有一次性“st_…”令牌的 HTTP 201。
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 }'将 `st_…` 交给浏览器嵌入。将 `esk_...` 保留在服务器上。兑换说明位于 Elements 嵌入页面上。