开发者

快速入门 — 从您的服务器调用API

声明一个沙箱,存储`esk_test_`密钥,确认它,从模板创建一个文档,然后发送它。签名会话令牌使用相同的密钥。 Webhook已在管理应用程序中注册。

开始之前

您需要一个带有“curl”和“jq”的终端,以及您控制的电子邮件收件箱。沙箱密钥是“esk_test_…”。生产密钥是“esk_live_…”。将其作为“授权:承载者”发送。租户来自密钥,因此不要发送“x-tenant-id”。

沙箱密钥包括`integrations:zapier`和`signing:write`。上传、信封向导和webhook注册在您登录后使用管理会话。您的服务器使用密钥进行以下调用。

四次服务器调用,然后是管理应用程序中的webhook

  1. 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. 2

    确认密钥

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

  3. 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. 4

    在管理中注册一个webhook

    登录并打开管理→开发者→Webhooks。保存签名秘密。交付使用“X-Endorsed-Signature”。验证步骤在webhook指南上。在管理 → 开发人员 → 控制台中检查尝试。

第 1 步 — 申领沙箱

先决条件:电子邮件地址和 8 个以上字符的密码。预期输出:HTTP 201,其中“data.sandbox.apiKey”开始“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)"

将密钥存储在服务器秘密管理器中。电子邮件验证控制管理控制台。该密钥一经发出即可用于此页面上的呼叫。

第2步 — 确认密钥

先决条件:步骤 1 中的“$ENDORSED_API_KEY”。沙盒密钥已具有“integrations:zapier”。预期输出:HTTP 200 和您的租户名称。

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 }'

缺失或格式错误的密钥为 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"` 的发送响应。

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 }'

签名链接通过电子邮件发送至“recipientEmail”。 JSON 响应携带文档 ID、状态和链接到期时间。打开电子邮件完成签名,然后在您在管理员中注册的webhook上观看“document.signed”。

铸造签名会话令牌

先决条件:“$ENDORSED_API_KEY”和“signing:write”(包含在沙箱密钥中)以及来自您已创建的会话的签名会话 ID。预期输出:带有一次性“st_…”令牌的 HTTP 201。

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 }'

将 `st_…` 交给浏览器嵌入。将 `esk_...` 保留在服务器上。兑换说明位于 Elements 嵌入页面上。

出现问题时

准备好深入了解了吗?

一旦您有了端到端签名的文档,请插入下面的表面区域以进行下一个集成部分。