Get Signing Link

POST/openapi/v1/envelopes/signing-view

Generate one-time signing links for the envelope's signers.

  • Link validity is governed by the response ExpiresAt, default 1 hour (identical for Trusted and standard modes). Expired links require re-calling this endpoint
  • Multiple calls for the same signer will invalidate previous links; do not cache links
  • Carbon-copy recipients are not returned (they do not have signing links)

Filter Rules

  • When both RecipientId and RecipientEmail are provided, RecipientId takes precedence and RecipientEmail is ignored.
  • When only one is provided, filter by that field and return a single signer's link.
  • When neither is provided, return links for all signers of the envelope.

Embedded Signing

Embed the SigningUrl into your own system (iframe / new window) to build an embedded signing page. Customize via the request body:

  • TrustedMode=true: skip platform login authentication (the customer has completed its own authentication). Requires the App to have Trusted Signing enabled and ClientUserId provided for this signer (single-signer endpoint)
  • ReturnUrl: after the signer completes or ends signing, the browser automatically redirects here with event (e.g. signing_complete), envelopeId, and recipientId query parameters, so your system can proceed without polling envelope status
  • ClientUserId: the customer-side user identifier for this signer (single value). A mismatch with the existing binding is an error (prevents mis-binding); it is written on first use

Request Parameters

AuthorizationRequiredstring
Bearer <access_token>
X-Operator-User-IdOptionalstring
Operator user ID. Not required in Authorization Code mode (the authorized user is used automatically). Optional in Client Credentials mode — omit to use the system user ID.
application/json
EnvelopeIdRequiredstring
Envelope ID (required)
RecipientIdOptionalstring
Signer ID (optional, used to filter a single signer)
RecipientEmailOptionalstring(email)
Signer email (optional, used to filter a single signer). When both RecipientId and RecipientEmail are provided, RecipientId takes precedence and Email is ignored.
ClientUserIdOptionalstring
The customer-side user identifier for this signer (optional; this endpoint is single-signer). Applies to the signer selected by RecipientId / RecipientEmail: a mismatch with the signer's existing ClientUserId is an error (prevents mis-binding); it is written on first use. Required when TrustedMode=true.
ReturnUrlOptionalstring
Return URL after the signer finishes signing (optional, Embedded only). Only takes effect after it passes the App's signing_return integration allowlist validation; HTTPS only.
TrustedModeOptionalboolean
Trusted Embedded Signing mode (optional, default false). When true, the customer has already completed its own authentication, so the signer can skip our authentication and sign directly. Requires the App to have Trusted Signing enabled and every target signer bound with a ClientUserId; otherwise an error is returned.

Request Example

{
  "EnvelopeId": "SGEV1234567890",
  "RecipientId": "r1",
  "ClientUserId": "my-client-user-001"
}

Response Parameters

EnvelopeIdOptionalstring
Envelope ID
EnvelopeStatusOptionalstring
Envelope current status. draft; sending (async anchor resolving); sent; sent_failed (async resolve failed); completed; voided; declined.
draftsendingsentsent_failedcompletedvoideddeclined
SignerInfosOptionalarray<object>
Signer signing-link list
RecipientIdOptionalstring
System-assigned recipient ID
NameOptionalstring
Name (required)
EmailOptionalstring
Email (masked, e.g. z***@example.com)
SigningOrderOptionalinteger
Signing order (0 when SigningOrderType=parallel)
SigningUrlOptionalstring
Signing link
ExpiresAtOptionalstring(date-time)
Link expiration time, RFC3339 format, e.g. 2024-01-15T11:00:00Z

Response Example

{
  "Response": {
    "RequestId": "req-abc123",
    "Error": null,
    "Data": {
      "EnvelopeId": "SGEV1234567890",
      "EnvelopeStatus": "sent",
      "SignerInfos": [
        {
          "RecipientId": "r1",
          "Name": "Alice",
          "Email": "a***@example.com",
          "SigningOrder": 1,
          "SigningUrl": "https://sign.example.com/signing/eyJhbGciOi...",
          "ExpiresAt": "2024-01-15T11:00:00Z"
        }
      ]
    }
  }
}

Error Codes

Error CodeDescription
INVALID_REQUESTInvalid parameters (e.g. EnvelopeId is empty)
NOT_FOUNDEnvelope does not exist
RECIPIENT.NOT_RECIPIENTThe specified RecipientId / Email is not a signer of this envelope
ENVELOPE.INVALID_STATUSEnvelope status does not allow signing (completed, voided, draft, etc.)
SIGNING.RECIPIENT_ALREADY_SIGNEDThe signer has already signed
SIGNING.RECIPIENT_DECLINEDThe signer has declined
INTERNAL_ERRORInternal service error
API_SIGNING.TRUSTED_SIGNING_NOT_ENABLEDTrusted signing is not enabled for this App
API_SIGNING.TRUSTED_SIGNING_CLIENT_USER_ID_REQUIREDA target signer has no ClientUserId binding in Trusted mode
API_SIGNING.RETURN_URL_NOT_ALLOWEDReturnUrl is not in this App's signing_return allowlist