For the complete documentation index, see llms.txt. You can also append .md to any page URL to get its markdown version.
Skip to main content
For the complete documentation index, see llms.txt.

For the complete documentation index, see llms.txt

Signature forwarding

About this feature

Signature forwarding allows end-users to send a signing session to another person and nominate that person as a signer. This feature is particularly useful in business-to-business (B2B) contexts where the initial recipient of a signing request may not be the authorised signer, or where multiple individuals need to be involved in a signing process sequentially.

When a session is forwarded, a new, independent signing session is created for the recipient and linked back to the original. This new child session is a copy of the parent session (including documents, UI and redirect settings, authentication setup and archiving configuration), with the new recipient set as its signer. This parent-child relationship is tracked via the session.forwarding.parentSessionId and session.forwarding.childSessionIds properties, allowing each session to trace which session it was forwarded from and which session it was forwarded to.

Use cases

  • Business-to-business (B2B): A company representative receives a contract but does not have the legal authority to sign it, so they forward it to an authorised person within their organisation.

How it works

When signature forwarding is enabled, the end-user will see a Forward option in the More actions dropdown menu at the top right of the signing interface.

A screenshot of the dropdown menu in the signing interface, showing the Forward option.

Selecting this opens a form where it's possible to delegate the signing responsibility. The original sender will be informed of this action.

A screenshot of the Forward documents form, with fields for the recipient's name, email, a message and the sender's name.

Integration steps

The process for signature forwarding consists of three steps:

  1. Initiating a forward: The original recipient fills out the form with the following details:
    1. Name: The name of the recipient of the forwarded session.
    2. Email: The email address of the recipient of the forwarded session.
    3. Message: An optional custom message to be included in the notification email.
    4. Sender: The name of the sender of the forwarded session
  2. Session tracking: Submitting the form creates a new child signing session. The original parent session is updated with a childSessionIds property containing the ID of the new session. The new child session will have a parentSessionId property, linking it back to the original.
  3. Preventing further forwarding: The new child session is created with its own forwarding capability disabled to prevent daisy-chaining.

Once the form is submitted, the new child session is initially created in a blocked state and becomes active once fully set up. This triggers the email notification containing the custom message and a link to review and sign the document to the recipient of the forwarded session.

A screenshot of the email notification sent to the new recipient, inviting them to sign the forwarded document collection.

Configuration and setup

Note

Using this feature requires the SIGN-FORWARD product entitlement to be enabled on your account.

When you create a signing session, add the relevant parameters to the request body in your HTTP POST request to the Signing sessions endpoint.

To configure signature forwarding, include the forwarding object in your createSigningSession request with the following properties:

  • flow: Set this to FORWARD_AND_CONTINUE to enable forwarding. The default value is NONE, which disables the feature.
  • senderAddress (optional): The email address from which forwarding notifications are sent. This requires a custom domain configured for your account; otherwise, notifications are sent from the default noreply@signicat address.

Request example

The following is an example of a createSigningSession request body to initiate the parent session (session A) with forwarding enabled:

{
"title": "Le doc",
"documents": [
{
"documentCollectionId": "{{collectionId}}",
"action": "SIGN",
"documentId": "{{documentId}}"
}
],
"senderDisplayName": "Some sender",
"externalReference": "abc-123",
"signingSetup": [
{
"signingFlow": "AUTHENTICATION_BASED"
}
],
"forwarding": {
"flow": "FORWARD_AND_CONTINUE"
}
}

Response example before forwarding

A successful request returns a 201 Created status code and the initial SigningSession object for the parent session (session A). At this stage, the nested forwarding block confirms that the feature is enabled but shows no active delegations:

  • flow: Confirms that forwarding is active (FORWARD_AND_CONTINUE).
  • childSessionIds: An empty list ([]) because the end-user has not yet forwarded their signing invitation.
{
"id": "019fd706-2377-7ef5-bf60-3e656986dc23",
"signatureUrl": "https://sign-customer-local.sandbox.signicat.dev/sign?sessionId=019fd706-2377-7ef5-bf60-3e656986dc23",
"title": "Le doc",
"dueDate": "2026-09-05T12:22:11.333920635Z",
"documents": [
{
"documentCollectionId": "019fd705-bd8e-7cf9-973d-2c9c778dc094",
"action": "SIGN",
"documentId": "019fd705-af77-7b6e-8562-97dbc4dd3a1f"
}
],
"lifecycle": {
"state": "READY",
"stateIsFinal": false
},
"senderDisplayName": "Some sender",
"output": {
"signatures": [],
"packages": [],
"userInfo": {
"extra": {}
},
"seals": []
},
"externalReference": "abc-123",
"signingSetup": [
{
"identityProviders": [],
"signingFlow": "AUTHENTICATION_BASED",
"additionalParameters": {},
"requestedAttributes": []
}
],
"subsequentTo": [],
"packageTo": [],
"sealTo": [],
"archive": {
"sendSignatureResultsToArchive": false,
"sendPackagingResultToArchive": false,
"archiveTags": []
},
"ui": {
"hideWelcomeScreen": false,
"minimalTextMode": false
},
"intentionText": {},
"usageTags": [],
"forwarding": {
"flow": "FORWARD_AND_CONTINUE",
"childSessionIds": []
}
}

Response example after forwarding

Once the end-user delegates the signing, retrieving the parent session (session A) via a GET request shows the newly established link to the delegated session. The key change occurs within the forwarding block:

  • childSessionIds: Now contains the server-generated ID of the child session (session B).
{
"id": "019fd706-2377-7ef5-bf60-3e656986dc23",
"signatureUrl": "https://sign-customer-local.sandbox.signicat.dev/sign?sessionId=019fd706-2377-7ef5-bf60-3e656986dc23",
"title": "Le doc",
"dueDate": "2026-09-05T12:22:11.333921Z",
"documents": [
{
"documentCollectionId": "019fd705-bd8e-7cf9-973d-2c9c778dc094",
"action": "SIGN",
"documentId": "019fd705-af77-7b6e-8562-97dbc4dd3a1f"
}
],
"lifecycle": {
"state": "READY",
"stateIsFinal": false
},
"senderDisplayName": "Some sender",
"output": {
"signatures": [],
"packages": [],
"userInfo": {
"extra": {}
},
"seals": []
},
"externalReference": "abc-123",
"signingSetup": [
{
"identityProviders": [],
"signingFlow": "AUTHENTICATION_BASED",
"additionalParameters": {},
"requestedAttributes": []
}
],
"subsequentTo": [],
"packageTo": [],
"sealTo": [],
"archive": {
"sendSignatureResultsToArchive": false,
"sendPackagingResultToArchive": false,
"archiveTags": []
},
"ui": {
"hideWelcomeScreen": false,
"minimalTextMode": false
},
"intentionText": {},
"notifications": [],
"usageTags": [],
"forwarding": {
"flow": "FORWARD_AND_CONTINUE",
"childSessionIds": [
"019fd70d-0ca0-7795-b94a-bac33f18c1be"
]
}
}

Response example for the forwarded session

When you retrieve the newly created child session (session B) via a GET request, the payload contains the configuration inherited from session A, along with new properties representing the new signer's context:

  • signer: Populated with the new recipient's details (such as the email address "test.testerson@testcat.test").
  • notifications: Contains the FORWARDING_NOTIFICATION structure configured for emailing the new signer.
  • forwarding: The flow is set to "NONE" to prevent further forwarding (as chains are not allowed). The parentSessionId points back to the parent session (session A), creating a clear, two-way cryptographic link.
{
"id": "019fd70d-0ca0-7795-b94a-bac33f18c1be",
"signatureUrl": "https://sign-customer-local.sandbox.signicat.dev/sign?sessionId=019fd70d-0ca0-7795-b94a-bac33f18c1be",
"title": "Le doc",
"dueDate": "2026-09-05T12:22:11.333921Z",
"documents": [
{
"documentCollectionId": "019fd705-bd8e-7cf9-973d-2c9c778dc094",
"action": "SIGN",
"documentId": "019fd705-af77-7b6e-8562-97dbc4dd3a1f"
}
],
"lifecycle": {
"state": "READY",
"stateIsFinal": false
},
"senderDisplayName": "Some sender",
"output": {
"signatures": [],
"packages": [],
"userInfo": {
"extra": {}
},
"seals": []
},
"externalReference": "abc-123",
"signingSetup": [
{
"identityProviders": [],
"signingFlow": "AUTHENTICATION_BASED",
"additionalParameters": {},
"requestedAttributes": []
}
],
"subsequentTo": [],
"packageTo": [],
"sealTo": [],
"signer": {
"email": "test.testerson@testcat.test",
"prefill": [],
"validations": [],
"restrictUse": []
},
"archive": {
"sendSignatureResultsToArchive": false,
"sendPackagingResultToArchive": false,
"archiveTags": []
},
"ui": {
"hideWelcomeScreen": false,
"minimalTextMode": false
},
"intentionText": {},
"notifications": [
{
"category": "FORWARDING_NOTIFICATION",
"communicationMethod": "EMAIL",
"tags": [],
"message": {
"language": "en"
}
}
],
"usageTags": [],
"forwarding": {
"flow": "NONE",
"parentSessionId": "019fd706-2377-7ef5-bf60-3e656986dc23",
"childSessionIds": []
}
}

Limitations

  • A signing session can be forwarded a maximum of 5 times.
  • A forwarded session cannot itself be forwarded (no chains).
  • The forwarding and signer.validations properties cannot be used together in the same session.
  • Forwarding is blocked if the session's document collections have hit their reference limit.
  • Notifications from the original session are not carried over to the new session.