Distribution of signing links
When integrating with Penneo, you have full control over how the signingLink reach signers. You can choose between two primary distribution flows depending on how much control you wish in your desired integration flow.
1. Penneo-managed distribution (email)
This is the standard approach where Penneo handles the communication.
- How it works: You create the case file and add the signer's email address. Once the case file is activated, Penneo automatically sends an email to the signer containing the
signingLink. - Best for: Integrations that wish to rely on Penneo’s service for email distribution and are happy with the the email capabilities Penneo offer.
You can read more about sending your first case file here.
If you wish to use the approach Penneo-managed distribution and wish to avoid the branding on Penneo's emails, you can contact our support team to discuss full customisation of Penneo email templates.
2. Integrator-managed distribution (custom)
This approach allows you to distribute signingLinks via your own channels.
- How it works: You create the case file but do not rely on Penneo's email triggers. Instead, you create the case file, query the API to fetch the generated
signingLinkfor each signer, and distribute thatsigningLinkthrough your desired channels. - Best for: Integrations with a need for distribution via e.g. your own email servers, your customers email servers, SMS, or embedding the link in an internal webportal.
Integrator-managed distribution example
First, create the case file using this endpoint. In the response, you must capture the UUID and the payloadHash. You will need these credentials to retrieve the signingLinks securely.
Example request of a case file with two signers and one document:
{
"caseFile": {
"title": "<insert casefile name>",
"signers": [
{
"name": "<signer name 1>",
},
{
"name": "<signer name 2>",
}
],
"documents": [
{
"name": "<name of the file>",
"title": "<enter a document title>"
}
]
}
}Do not add email in the
signerarray as this will trigger Penneo to send the automatic emails.
Once the case file is send, use the check job status endpoint to fetch the generated signingLinks for your signers.
{
"uuid": "550e8400-e29b-41d4-a716-4...",
"payloadHash": "a1b2c3d4e5f6..."
}With the UUID and the payloadHash you will receive a response similiar to the following.
{
"uuid": "550e8400-e29b-41d4-a716-4...",
"type": "etl-queue",
"payloadHash": "a1b2c3d4e5f6...",
"jobStatus": "completed",
"errorMessage": null,
"retries": 0,
"maxRetries": 0,
"createdAt": "2026-01-16T10:24:20.721Z",
"updatedAt": "2026-01-16T10:24:24.427Z",
"result": {
"data": {
"caseFile": {
"id": 1234567
},
"signingLinks": [
{
"name": "Mads 1",
"role": "Signer",
"signerId": 1234567,
"signingLink": "https://sandbox.penneo.com/signing/<unique>"
},
{
"name": "Mads 2",
"role": "Signer",
"signerId": 1234576,
"signingLink": "https://sandbox.penneo.com/signing/<unique>"
}
]
},
"errors": null,
"success": true
}
}Fetch the signingLinks and distribute with the desired channel.
Updated about 16 hours ago
