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:
- Initiating a forward: The original recipient fills out the form with the following details:
- Name: The name of the recipient of the forwarded session.
- Email: The email address of the recipient of the forwarded session.
- Message: An optional custom message to be included in the notification email.
- Sender: The name of the sender of the forwarded session
- Session tracking: Submitting the form creates a new child signing session. The original parent session is updated with a
childSessionIdsproperty containing the ID of the new session. The new child session will have aparentSessionIdproperty, linking it back to the original. - 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
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 toFORWARD_AND_CONTINUEto enable forwarding. The default value isNONE, 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 defaultnoreply@signicataddress.
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 theFORWARDING_NOTIFICATIONstructure configured for emailing the new signer.forwarding: Theflowis set to"NONE"to prevent further forwarding (as chains are not allowed). TheparentSessionIdpoints 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
forwardingandsigner.validationsproperties 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.