Download OpenAPI specification:Download
Sign by CM.com offers the ability to have end users sign PDF documents online.
Before you can start using the API, you need to be provided with credentials. You will have received these credentials, consisting of a Key and a Key Id, when you registered for Sign. If you have not yet received any credentials, you can request them via this link. This will grant you access to the sandbox environment.
The credentials provided by CM.com are confidential and should be kept secret.
Upload a new PDF document to be added to a dossier. Make sure to indicate the Content-Type correctly for the file parameter of the form data. The file should be no more than 10MB. The filename will be visible to the end user.
| file | string <application/pdf> The PDF document to upload. |
{- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "size": 3028,
- "contentType": "application/pdf"
}Create a new dossier to sign. To be notified of changes to the dossier, subscribe to webhook events. For the event structure see the Webhook Events section.
You need to provide one or more file id's you've uploaded previously and add the invitees and fields for the persons that need to sign or review the document(s).
A dossier owner can be specified, but this is optional.
| name required | string <= 255 characters human readable name for this dossier |
| locale | string (Locale) Enum: "de-DE" "en-US" "es-ES" "fr-FR" "hu-HU" "it-IT" "ja-JP" "nl-NL" "pl-PL" "pt-PT" "ro-RO" "sk-SK" Locale of the language to be used in the dossier |
| prepare | boolean or null Place fields using the web interface |
| prepareReturnUrl | string or null Optionally redirect the user to your website after the fields are placed. The url must begin with https:// |
| timezone | string or null The identifier of a time zone in the IANA database. This will change the time zone of dates used in communication to the recipient and dossier owner. By default Etc/UTC is used when no value is set. |
| expiresIn | integer <int32> [ 60 .. 7776000 ] Default: 2592000 The expiry in seconds since the dossier was created |
| reminderIn | integer or null [ 86400 .. 7776000 ] The time in seconds after the invite was sent to an invitee, after which an automatic reminder will be sent. Reminders only work if the invite emails were sent by Sign. To cancel all reminders for an existing dossier set value to |
| archive | boolean Default: false This determines if the dossier needs to be archived. |
required | Array of objects (CreateFile) non-empty |
Array of objects (CreateFile) >= 0 items | |
Array of objects (Owner) | |
Array of objects (Invitee) | |
| template | string or null <uuid> Default: null Create a dossier from a template. This means that files and field positions are automatically copied from the template. You can find the template ID in the dashboard. |
object Key-value pairs for template labels. The key must match the exact value of the predefined label in the template. It will then be overwritten by the value in the request. |
{- "id": "22470767-904e-4553-9586-d7ed4f2b330e",
- "name": "Purchase contract",
- "state": "pending",
- "locale": "de-DE",
- "prepare": false,
- "timezone": "Europe/Amsterdam",
- "expiresIn": 2592000,
- "reminderIn": 604800,
- "archive": false,
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "size": 3028
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "size": 3028
}
], - "owners": [
], - "invitees": [
- {
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}
], - "template": "06c2e210-54a8-417f-adf2-fc767c31c929",
- "templateLabelValues": {
- "property1": "string",
- "property2": "string"
}
}{- "id": "22470767-904e-4553-9586-d7ed4f2b330e",
- "name": "Purchase contract",
- "state": "pending",
- "locale": "de-DE",
- "completed": false,
- "prepare": false,
- "timezone": "Europe/Amsterdam",
- "expiresIn": 2592000,
- "reminderIn": 604800,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "owners": [
- {
- "id": "c2b0ff41-f97a-421d-a4eb-85b158a2de2a",
- "name": "Mike Dossierowner",
- "cc": false,
- "notifications": null
}
], - "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "size": 3028,
- "contentType": "application/pdf"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Attachment v1",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "contentType": "application/pdf"
}
], - "invitees": [
- {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}
]
}Retrieve a single dossier and all its related information
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
{- "id": "22470767-904e-4553-9586-d7ed4f2b330e",
- "name": "Purchase contract",
- "state": "pending",
- "locale": "de-DE",
- "completed": false,
- "prepare": false,
- "timezone": "Europe/Amsterdam",
- "expiresIn": 2592000,
- "reminderIn": 604800,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "owners": [
- {
- "id": "c2b0ff41-f97a-421d-a4eb-85b158a2de2a",
- "name": "Mike Dossierowner",
- "cc": false,
- "notifications": null
}
], - "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "size": 3028,
- "contentType": "application/pdf"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Attachment v1",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "contentType": "application/pdf"
}
], - "invitees": [
- {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}
]
}Modify a single dossier and its related information
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| name required | string <= 255 characters human readable name for this dossier |
| locale | string (Locale) Enum: "de-DE" "en-US" "es-ES" "fr-FR" "hu-HU" "it-IT" "ja-JP" "nl-NL" "pl-PL" "pt-PT" "ro-RO" "sk-SK" Locale of the language to be used in the dossier |
| prepare | boolean or null Place fields using the web interface |
| prepareReturnUrl | string or null Optionally redirect the user to your website after the fields are placed. The url must begin with https:// |
| timezone | string or null The identifier of a time zone in the IANA database. This will change the time zone of dates used in communication to the recipient and dossier owner. By default Etc/UTC is used when no value is set. |
| expiresIn | integer <int32> [ 60 .. 7776000 ] Default: 2592000 The expiry in seconds since the dossier was created |
| reminderIn | integer or null [ 86400 .. 7776000 ] The time in seconds after the invite was sent to an invitee, after which an automatic reminder will be sent. Reminders only work if the invite emails were sent by Sign. To cancel all reminders for an existing dossier set value to |
Array of objects (ModifyDossierOwner) | |
Array of objects (ModifyFile) non-empty | |
Array of objects (ModifyInvitee) | |
Array of objects (ModifyFile) >= 0 items |
{- "id": "22470767-904e-4553-9586-d7ed4f2b330e",
- "name": "Purchase contract",
- "state": "pending",
- "locale": "de-DE",
- "prepare": false,
- "timezone": "Europe/Amsterdam",
- "expiresIn": 2592000,
- "reminderIn": 604800,
- "owners": [
- {
- "id": "c2b0ff41-f97a-421d-a4eb-85b158a2de2a",
- "name": "Mike Dossierowner",
- "cc": false,
- "notifications": null
}
], - "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "size": 3028
}
], - "invitees": [
- {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "size": 3028
}
]
}{- "id": "22470767-904e-4553-9586-d7ed4f2b330e",
- "name": "Purchase contract",
- "state": "pending",
- "locale": "de-DE",
- "completed": false,
- "prepare": false,
- "timezone": "Europe/Amsterdam",
- "expiresIn": 2592000,
- "reminderIn": 604800,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "owners": [
- {
- "id": "c2b0ff41-f97a-421d-a4eb-85b158a2de2a",
- "name": "Mike Dossierowner",
- "cc": false,
- "notifications": null
}
], - "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "size": 3028,
- "contentType": "application/pdf"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Attachment v1",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "contentType": "application/pdf"
}
], - "invitees": [
- {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}
]
}Remove a single dossier and its related information
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
{- "id": "22470767-904e-4553-9586-d7ed4f2b330e",
- "name": "Purchase contract",
- "state": "pending",
- "locale": "de-DE",
- "completed": false,
- "prepare": false,
- "timezone": "Europe/Amsterdam",
- "expiresIn": 2592000,
- "reminderIn": 604800,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "owners": [
- {
- "id": "c2b0ff41-f97a-421d-a4eb-85b158a2de2a",
- "name": "Mike Dossierowner",
- "cc": false,
- "notifications": null
}
], - "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Purchase contract",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "size": 3028,
- "contentType": "application/pdf"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Attachment v1",
- "hash": "string",
- "uploadDateTime": "2019-08-24T14:15:22Z",
- "contentType": "application/pdf"
}
], - "invitees": [
- {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}
]
}Download a ZIP file containing the complete result of a dossier. The ZIP file will include the PDF files and audit report.
You can also download the PDF file(s) and audit report separately by using the type query parameter
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| type | string Enum: "zip" "file" "auditReport" Example: type=zip Specify the download type. Defaults to |
| file | string <uuid> When a dossiers has multiple files and download type is This parameter will match the When there is only one document per dossier you can omit this parameter and it will automatically determine the file to download. |
{- "status": 0,
- "message": "string"
}Retrieve the field value.
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| fieldId required | string <uuid> Example: cb222836-fd18-4ec5-8283-63ca2cd2dc0f a uuid string that identifies a field |
{- "type": "text",
- "value": "Example"
}Returns the field values for fields of type checkbox, label, radio, text, and textarea
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
[- {
- "field": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "text",
- "value": "Example"
}
]List of all the invites in the dossier
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
[- {
- "id": "730c6ec8-755b-450f-9ab6-f57111ab1d93",
- "inviteeId": "7ab828ac-054e-4189-b24d-a9ab1bf23196",
- "channel": "email",
- "reminder": false,
- "emailSentAt": "2019-08-24T14:15:22Z",
- "expiresIn": 2592000,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]Add invites to the dossier if allowed. In the response you will receive the id for this new invite.
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
Add invites to the dossier that needs to be signed
| inviteeId | string <uuid> The ID of the invitee |
| channel | string or null (ChannelType) Enum: "email" "sms" "whatsapp" Send invite via email, SMS or WhatsApp. Please note that SMS and WhatsApp are only available when configured for your account. If this field is not provided or set to null, the invite will not be sent automatically. Instead, the |
object | |
| reminder | boolean Marker to indicate this invite is a reminder of an earlier invite |
| expiresIn | integer <int32> [ 60 .. 7776000 ] Default: 2592000 The expiry in seconds since invite was created |
[- {
- "inviteeId": "7ab828ac-054e-4189-b24d-a9ab1bf23196",
- "channel": "email",
- "emailConfig": {
- "message": "string"
}, - "reminder": false,
- "expiresIn": 2592000
}
][- {
- "id": "730c6ec8-755b-450f-9ab6-f57111ab1d93",
- "inviteeId": "7ab828ac-054e-4189-b24d-a9ab1bf23196",
- "channel": "email",
- "reminder": false,
- "emailSentAt": "2019-08-24T14:15:22Z",
- "expiresIn": 2592000,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]Retrieve the invite from the dossier.
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| inviteId required | string <uuid> Example: 6f840cea-796e-4d5d-97ce-20114af5f51c a uuid string that identifies a single invite |
{- "id": "730c6ec8-755b-450f-9ab6-f57111ab1d93",
- "inviteeId": "7ab828ac-054e-4189-b24d-a9ab1bf23196",
- "channel": "email",
- "reminder": false,
- "emailSentAt": "2019-08-24T14:15:22Z",
- "expiresIn": 2592000,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}Remove a single invite from the dossier.
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| inviteId required | string <uuid> Example: 6f840cea-796e-4d5d-97ce-20114af5f51c a uuid string that identifies a single invite |
{- "id": "730c6ec8-755b-450f-9ab6-f57111ab1d93",
- "inviteeId": "7ab828ac-054e-4189-b24d-a9ab1bf23196",
- "channel": "email",
- "reminder": false,
- "emailSentAt": "2019-08-24T14:15:22Z",
- "expiresIn": 2592000,
- "expiresAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}{- "total": 1,
- "perPage": 10,
- "currentPage": 1,
- "lastPage": 1,
- "from": 1,
- "to": 1,
- "data": [
- {
- "id": "22470767-904e-4553-9586-d7ed4f2b330e",
- "name": "Purchase contract",
- "invitees": [
- {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "files": [
- {
- "id": "730c6ec8-755b-450f-9ab6-f57111ab2a76",
- "name": "Purchase contract",
- "contentType": "application/pdf",
- "size": 3028,
- "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
], - "updatedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}Delete a dossier from the archive
| archiveId required | string <uuid> Example: a4dfcba2-cfaa-4240-8e48-5baa7a25bcac a uuid string that identifies an archived dossier |
{- "status": 0,
- "message": "string"
}Download a file from a dossier
| archiveId required | string <uuid> Example: a4dfcba2-cfaa-4240-8e48-5baa7a25bcac a uuid string that identifies an archived dossier |
| fileId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b331f a uuid string that identifies a file |
{- "status": 0,
- "message": "string"
}Retrieve all channels that can be used to send an invite.
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
[- {
- "channel": "email",
- "disabled": false
}
]Modify a single invitee and its related information.
When the dossier is in pending state only the name, email and phoneNumber can be modified.
Existing invites for the invitee are automatically invalidated if the email or phoneNumber is changed.
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| inviteeId required | string <uuid> Example: c4b5020f-a092-4516-b890-81a635ebe470 a uuid string that identifies a single invitee |
| id required | string <uuid> (InviteeReference) Optional. Indicates that only a particular invitee is allowed/required to use a field. |
| name required | string <= 255 characters Name of the person invited to read and/or sign the document |
string <email> <= 255 characters A valid email address | |
| locale | string or null (Locale) Enum: "de-DE" "en-US" "es-ES" "fr-FR" "hu-HU" "it-IT" "ja-JP" "nl-NL" "pl-PL" "pt-PT" "ro-RO" "sk-SK" Locale of the language to be used in invitations. |
| position | integer Set the order of signing. For example if there are two invitees set position |
| authenticationMethods | Array of strings Items Enum: "otp_sms" "otp_email" "otp_whatsapp" "otp_voice" |
| identificationMethod | string (IdentificationMethod) Deprecated Enum: "idin" "iban" "otp_sms" "otp_email" "otp_whatsapp" "otp_voice" "qualified" Additional user identification is required. When you select |
| identificationMethods | Array of strings (IdentificationMethod) Items Enum: "idin" "iban" "otp_sms" "otp_email" "otp_whatsapp" "otp_voice" "qualified" |
| notifications | Array of strings or null Enum: "invite" "signed" "reviewed" "declined" "completed" |
Array of objects (Payment) Additional payment is required. Please note that this is only available when configured for your account. | |
| phoneNumber | string The phone number of the invitee in E.164 format. Required when identificationMethod is otp. |
| reference | string <= 255 characters A reference to an external identifier of your invitee. |
| readOnly | boolean Default: false Indicates that this invitee needs to review the dossier, instead of signing it |
| state | string Enum: "approved" "declined" The invitee has approved or declined the dossier |
| redirectUrl | string or null <url> Default: null URL to redirect the invitee to after signing, approving or declining the dossier. If not set, the default confirmation page will be shown. |
Array of objects (Field) |
{- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}{- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}Retrieve the identification methods and results per invitee.
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| inviteeId required | string <uuid> Example: c4b5020f-a092-4516-b890-81a635ebe470 a uuid string that identifies a single invitee |
[- {
- "identificationMethod": "idin",
- "status": "success",
- "result": {
- "transactionId": "123456789123456789",
- "issuerId": "ABNANL2A",
- "status": "success",
- "bin": "CMBANL9Z3xOcyYKUhR8s0mS+tbkNO2xF2/U/Ns3eIyMOWYWmOZeUGw8StPKPhAdRTyN1XWne1rgJQA",
- "name": {
- "gender": "male",
- "initials": "A",
- "firstName": "Andre",
- "lastName": "Dijk",
- "lastNamePrefix": "van"
}, - "age": {
- "dateOfBirth": "1974-01-31",
- "18yOrOlder": true
}
}
}
]Retrieve the payment methods and statuses per invitee.
| dossierId required | string <uuid> Example: 22470767-904e-4553-9586-d7ed4f2b330e a uuid string that identifies a dossier |
| inviteeId required | string <uuid> Example: c4b5020f-a092-4516-b890-81a635ebe470 a uuid string that identifies a single invitee |
[- {
- "amount": 100,
- "currency": "EUR",
- "status": "success",
- "paymentMethod": "IDEAL",
- "paymentReference": "ch-9a0a32bc-bb25-4f5f-8aeb-681276a738fe"
}
]Manage clients. A client consists of a key and secret and provides access to the API. Please note that access must be explicitly granted in order to use the client management calls.
Create a client.
This endpoint is only available to API clients with admin access. Admin access allows an API client to
manage other API clients through the /clients endpoints. Admin access is not enabled by default and
must be explicitly granted by CM.com. It cannot be requested or changed through the API.
There is no dedicated endpoint to check your admin access in advance: calling this endpoint without admin
access returns 403 Forbidden, while a successful call confirms you have admin access.
| name | string Client name to be used in communication to the end-user. Defaults to the account name when not set. |
| description | string Client description |
| disabled | boolean Indicates if client access is disabled |
{- "name": "Organization A",
- "description": "API",
- "disabled": false
}{- "kid": "fbd6a3ba-7b95-4ed1-846a-9dfac9cfb704",
- "name": "Organization A",
- "description": "API",
- "admin": false,
- "disabled": false,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "key": "fPm3MpxBBN5AKmvBQSrLxXCbE1pF6T07JjNXZwsJpUobknaqJA"
}Retrieve all clients.
This endpoint is only available to API clients with admin access. Admin access allows an API client to
manage other API clients through the /clients endpoints. Admin access is not enabled by default and
must be explicitly granted by CM.com. It cannot be requested or changed through the API.
There is no dedicated endpoint to check your admin access in advance: calling this endpoint without admin
access returns 403 Forbidden, while a successful call confirms you have admin access.
[- {
- "kid": "fbd6a3ba-7b95-4ed1-846a-9dfac9cfb704",
- "name": "Organization A",
- "description": "API",
- "admin": false,
- "disabled": false,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]Retrieve the client.
This endpoint is only available to API clients with admin access. Admin access allows an API client to
manage other API clients through the /clients endpoints. Admin access is not enabled by default and
must be explicitly granted by CM.com. It cannot be requested or changed through the API.
There is no dedicated endpoint to check your admin access in advance: calling this endpoint without admin
access returns 403 Forbidden, while a successful call confirms you have admin access.
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
{- "kid": "fbd6a3ba-7b95-4ed1-846a-9dfac9cfb704",
- "name": "Organization A",
- "description": "API",
- "admin": false,
- "disabled": false,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Update a client.
This endpoint is only available to API clients with admin access. Admin access allows an API client to
manage other API clients through the /clients endpoints. Admin access is not enabled by default and
must be explicitly granted by CM.com. It cannot be requested or changed through the API.
There is no dedicated endpoint to check your admin access in advance: calling this endpoint without admin
access returns 403 Forbidden, while a successful call confirms you have admin access.
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
| name | string Client name to be used in communication to the end-user. Defaults to the account name when not set. |
| description | string Client description |
| disabled | boolean Indicates if client access is disabled |
{- "name": "Organization A",
- "description": "API",
- "disabled": false
}{- "kid": "fbd6a3ba-7b95-4ed1-846a-9dfac9cfb704",
- "name": "Organization A",
- "description": "API",
- "admin": false,
- "disabled": false,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Add a webhook
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
| url required | string <url> The URL must begin with https:// |
| events | Array of strings (WebhookType) Items Enum: "dossier.invite.created" "dossier.invite.expired" "dossier.invite.undelivered" "dossier.invite.viewed" "dossier.invitee.state.updated" "dossier.prepared" "dossier.state.updated" "dossier.invitee.reassignRequest.state.updated" The subscribed webhook events |
object The request HTTP headers |
{- "events": [
- "dossier.invite.created"
], - "headers": {
- "My-Custom-Header": "Example"
}
}{- "id": "eab04267-d849-46d1-9fe3-e7ff0b2c55cf",
- "events": [
- "dossier.invite.created"
], - "headers": {
- "My-Custom-Header": "Example"
}, - "disabled": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Retrieve all webhooks
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
[- {
- "id": "eab04267-d849-46d1-9fe3-e7ff0b2c55cf",
- "events": [
- "dossier.invite.created"
], - "headers": {
- "My-Custom-Header": "Example"
}, - "disabled": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]Retrieve a webhook
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
| webhookId required | string <uuid> Example: b411f416-bec1-4714-91c1-a97daad86b01 a uuid string that identifies a webhook |
{- "id": "eab04267-d849-46d1-9fe3-e7ff0b2c55cf",
- "events": [
- "dossier.invite.created"
], - "headers": {
- "My-Custom-Header": "Example"
}, - "disabled": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Update a webhook
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
| webhookId required | string <uuid> Example: b411f416-bec1-4714-91c1-a97daad86b01 a uuid string that identifies a webhook |
| url | string <url> The URL must begin with https:// |
| events | Array of strings (WebhookType) Items Enum: "dossier.invite.created" "dossier.invite.expired" "dossier.invite.undelivered" "dossier.invite.viewed" "dossier.invitee.state.updated" "dossier.prepared" "dossier.state.updated" "dossier.invitee.reassignRequest.state.updated" The subscribed webhook events |
object The request HTTP headers | |
| disabled | boolean Provide with value false to re-enable automatically disabled webhooks. |
{- "events": [
- "dossier.invite.created"
], - "headers": {
- "My-Custom-Header": "Example"
}, - "disabled": false
}{- "id": "eab04267-d849-46d1-9fe3-e7ff0b2c55cf",
- "events": [
- "dossier.invite.created"
], - "headers": {
- "My-Custom-Header": "Example"
}, - "disabled": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Delete a webhook
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
| webhookId required | string <uuid> Example: b411f416-bec1-4714-91c1-a97daad86b01 a uuid string that identifies a webhook |
{- "id": "eab04267-d849-46d1-9fe3-e7ff0b2c55cf",
- "events": [
- "dossier.invite.created"
], - "headers": {
- "My-Custom-Header": "Example"
}, - "disabled": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z"
}Events sent to your webhook URL when something happens in the lifetime of a dossier. Webhooks are subscribed to via the Webhook endpoints.
More event types might be added in the future, so implementations should strictly vary their behavior on the type attribute.
The state of the dossier is updated. For example, from pending to completed. This event is sent by default.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.state.updated" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
{- "id": "b041a287-bc92-4469-801e-ae1a39c08f6e",
- "type": "dossier.state.updated",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "completed"
}
}The prepare step has been completed: fields are added to the dossier and invites should be sent. This event is sent by default.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.prepared" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
{- "id": "c36f5fc9-b412-4aeb-9cbd-bdb6cdca581f",
- "type": "dossier.prepared",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "draft"
}
}An invite has been created.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.invite.created" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
required | object (InviteWebhook) Basic unprivileged information of the Invite referred to by a webhook event |
{- "id": "523075b3-dae7-4f2e-89ba-b194d2b56c2f",
- "type": "dossier.invite.created",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "draft"
}, - "invite": {
- "id": "87aa2c40-7ad1-4493-8ede-640eab6d2f4e"
}
}An invite has expired.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.invite.expired" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
required | object (InviteWebhook) Basic unprivileged information of the Invite referred to by a webhook event |
{- "id": "115c17e0-e714-465c-a3a4-f33700a69d7b",
- "type": "dossier.invite.expired",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "pending"
}, - "invite": {
- "id": "87aa2c40-7ad1-4493-8ede-640eab6d2f4e"
}
}An invite cannot be delivered. This event is sent by default.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.invite.undelivered" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
required | object (InviteWebhook) Basic unprivileged information of the Invite referred to by a webhook event |
{- "id": "e5210e6e-058b-4898-9f71-16f18eb6c141",
- "type": "dossier.invite.undelivered",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "pending"
}, - "invite": {
- "id": "87aa2c40-7ad1-4493-8ede-640eab6d2f4e"
}
}The invite has been viewed by the invitee.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.invite.viewed" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
required | object (InviteWebhook) Basic unprivileged information of the Invite referred to by a webhook event |
required | object (InviteeWebhook) Basic unprivileged information of the Invitee referred to by a webhook event. The |
{- "id": "e20d315d-9b37-4407-a036-22f4fdafb226",
- "type": "dossier.invite.viewed",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "pending"
}, - "invite": {
- "id": "87aa2c40-7ad1-4493-8ede-640eab6d2f4e"
}, - "invitee": {
- "id": "f6b72c37-9255-4272-8b21-f2f6ba9537ba"
}
}The invitee state is updated. For example, to approved or declined.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.invitee.state.updated" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
required | object (InviteeWebhook) Basic unprivileged information of the Invitee referred to by a webhook event. The |
{- "id": "12a1eded-01ca-4e56-9e6c-125842dca977",
- "type": "dossier.invitee.state.updated",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "pending"
}, - "invitee": {
- "id": "f6b72c37-9255-4272-8b21-f2f6ba9537ba",
- "state": "approved"
}
}The state of the reassign request is updated. For example, from pending to approved.
Your server implementation should return a 2xx HTTP status code if the event was received successfully. The response body is ignored.
| id required | string <uuid> ID of the webhook event |
| created required | string <date-time> The date the webhook event has been created |
| type required | string The type of the event Value: "dossier.invitee.reassignRequest.state.updated" |
required | object (DossierWebhook) Basic unprivileged information of the Dossier referred to by a webhook event |
required | object (ReassignRequestWebhook) Basic unprivileged information of the Reassign Request referred to by a webhook event |
{- "id": "f5b8eb0b-e976-4dc4-88c9-069f377dd1c9",
- "type": "dossier.invitee.reassignRequest.state.updated",
- "created": "2026-01-01T00:00:00+00:00",
- "dossier": {
- "id": "b659c273-954e-43cf-893a-0f74a7f87153",
- "state": "pending"
}, - "reassignRequest": {
- "id": "44971ae0-88fc-43e7-9868-ceaacf6d3ee4",
- "state": "pending",
- "originalInvitee": {
- "id": "f6b72c37-9255-4272-8b21-f2f6ba9537ba",
- "state": "reassigned"
}
}
}Create or update branding
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
| buttonBackgroundColor | string The hex color code for the button background color |
| buttonTextColor | string The hex color code for the button text color |
| themePrimaryColor | string The hex color code for the primary color in the Sign front-end |
| themeSuccessColor | string The hex color code for the success color in the Sign front-end |
| logo | string Base64 encoded PNG image in Data URL format |
| logoEmail | string Base64 encoded PNG image in Data URL format |
{- "buttonBackgroundColor": "#000000",
- "buttonTextColor": "#ffffff",
- "themePrimaryColor": "#0000ff",
- "themeSuccessColor": "#00ff00",
- "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
- "logoEmail": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="
}{- "buttonBackgroundColor": "#000000",
- "buttonTextColor": "#ffffff",
- "themePrimaryColor": "#0000ff",
- "themeSuccessColor": "#00ff00",
- "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
- "logoEmail": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="
}Retrieve branding
| kid required | string <uuid> Example: 1d1c8b3f-d33f-412c-8a57-e259d3bc5e05 a uuid string that identifies the client |
{- "buttonBackgroundColor": "#000000",
- "buttonTextColor": "#ffffff",
- "themePrimaryColor": "#0000ff",
- "themeSuccessColor": "#00ff00",
- "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=",
- "logoEmail": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="
}Get all reassignment requests of unexpired dossiers
[- {
- "id": "6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49",
- "state": "approved",
- "dossier": {
- "id": "6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49",
- "name": "Employment contract",
- "owner": "Human Resources"
}, - "originalInvitee": {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}, - "newInvitee": {
- "name": "John Doe",
- "phoneNumber": "+31612345678",
- "message": "Please sign John"
}, - "reason": "Reassigning to my secretary to sign in my place",
- "declineReason": "We need you to personally sign this dossier",
- "createdAt": "2026-01-01T00:00:00+00:00"
}
]Get a reassignment request
| id required | string Example: 6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49 A unique uuid string that identifies a reassign request. |
{- "id": "6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49",
- "state": "approved",
- "dossier": {
- "id": "6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49",
- "name": "Employment contract",
- "owner": "Human Resources"
}, - "originalInvitee": {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}, - "newInvitee": {
- "name": "John Doe",
- "phoneNumber": "+31612345678",
- "message": "Please sign John"
}, - "reason": "Reassigning to my secretary to sign in my place",
- "declineReason": "We need you to personally sign this dossier",
- "createdAt": "2026-01-01T00:00:00+00:00"
}Approve or decline a reassignment request
| id required | string Example: 6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49 A unique uuid string that identifies a reassign request. |
| state required | string (ReassignRequestState) Enum: "approved" "declined" "pending" State of the reassign request. Only 'approved' and 'declined' are allowed values when updating the reassign request. |
| declineReason | string or null The reason for declining the reassign request. Required when declining the reassign request. |
object |
{- "state": "approved",
- "declineReason": "We need you to personally sign this dossier",
- "newInvitee": {
- "message": "Please sign John"
}
}{- "id": "6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49",
- "state": "approved",
- "dossier": {
- "id": "6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49",
- "name": "Employment contract",
- "owner": "Human Resources"
}, - "originalInvitee": {
- "id": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84",
- "name": "Peter Invitee",
- "locale": "de-DE",
- "position": 1,
- "authenticationMethods": [
- "otp_sms"
], - "identificationMethod": "idin",
- "identificationMethods": [
- "idin"
], - "notifications": [
- "invite"
], - "payments": [
- {
- "amount": 100,
- "currency": "EUR"
}
], - "phoneNumber": "+31601234567",
- "reference": "6c38955e-7324-41e7-97dd-0bcf55e275e2",
- "readOnly": false,
- "state": "approved",
- "stateComment": null,
- "stateChanged": null,
- "redirectUrl": null,
- "fields": [
- {
- "id": "50ee1534-6172-4228-84e8-653c6f65eaf0",
- "type": "signature",
- "required": true,
- "file": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "tag": "{signature1}",
- "tagRequired": true,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
], - "invitee": "c6f7eb6f-7414-4f5e-9096-85c6c5a48f84"
}
]
}, - "newInvitee": {
- "name": "John Doe",
- "phoneNumber": "+31612345678",
- "message": "Please sign John"
}, - "reason": "Reassigning to my secretary to sign in my place",
- "declineReason": "We need you to personally sign this dossier",
- "createdAt": "2026-01-01T00:00:00+00:00"
}Retrieve a paginated response of all templates.
| page | integer or null Default: 1 Examples: page=1 The page of paginated templates to fetch. If not provided, gets the first page. |
| sortBy | string or null Default: "lastUsedAt" Enum: "lastUsedAt" "name" The template field to sort the templates by, order depends on the 'order' parameter.
|
| order | string or null Default: "asc" Enum: "asc" "desc" The order to sort the templates by, depending on the 'sortBy' parameter.
|
| perPage | integer or null Default: 10 Examples: perPage=10 Number of templates to show in the response. If not provided, below 1, or above 100, will be set to 10. |
| search | string or null Examples: search=HR Template Filter the templates if their name contains the search text. |
{- "total": 1,
- "perPage": 10,
- "currentPage": 1,
- "lastPage": 1,
- "from": 1,
- "to": 1,
- "data": [
- {
- "id": "f3ab4c4b-4276-46cc-bba6-d575696454ad",
- "name": "Contract Template",
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Template Agreement"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Employee Handbook"
}
], - "fields": [
- {
- "type": "signature",
- "required": true,
- "value": "Salary",
- "file": 0,
- "invitee": 0,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
]
}
], - "lastUsedAt": "2026-01-01T00:00:00+00:00",
- "updatedAt": "2026-01-01T00:00:00+00:00",
- "createdAt": "2026-01-01T00:00:00+00:00"
}
]
}Create a new template.
| name required | string <= 255 characters Name of the template. |
Array of objects | |
Array of objects | |
Array of objects | |
Array of objects |
{- "name": "Contract Template",
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0"
}
], - "invitees": [
- {
- "name": "Recipient"
}
], - "fields": [
- {
- "type": "signature",
- "required": true,
- "value": "Salary",
- "file": 0,
- "invitee": 0,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
]
}
]
}{- "id": "f3ab4c4b-4276-46cc-bba6-d575696454ad",
- "name": "Contract Template",
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Template Agreement"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Employee Handbook"
}
], - "fields": [
- {
- "type": "signature",
- "required": true,
- "value": "Salary",
- "file": 0,
- "invitee": 0,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
]
}
], - "lastUsedAt": "2026-01-01T00:00:00+00:00",
- "updatedAt": "2026-01-01T00:00:00+00:00",
- "createdAt": "2026-01-01T00:00:00+00:00"
}Get a specific template.
| id required | string <uuid> Example: 6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49 A unique uuid string that identifies a template. |
{- "id": "f3ab4c4b-4276-46cc-bba6-d575696454ad",
- "name": "Contract Template",
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Template Agreement"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Employee Handbook"
}
], - "fields": [
- {
- "type": "signature",
- "required": true,
- "value": "Salary",
- "file": 0,
- "invitee": 0,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
]
}
], - "lastUsedAt": "2026-01-01T00:00:00+00:00",
- "updatedAt": "2026-01-01T00:00:00+00:00",
- "createdAt": "2026-01-01T00:00:00+00:00"
}Update a specific template.
| id required | string <uuid> Example: 6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49 A unique uuid string that identifies a template. |
| name required | string <= 255 characters Name of the template. |
Array of objects | |
Array of objects | |
Array of objects | |
Array of objects |
{- "name": "Contract Template",
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0"
}
], - "invitees": [
- {
- "name": "Recipient"
}
], - "fields": [
- {
- "type": "signature",
- "required": true,
- "value": "Salary",
- "file": 0,
- "invitee": 0,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
]
}
]
}{- "id": "f3ab4c4b-4276-46cc-bba6-d575696454ad",
- "name": "Contract Template",
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Template Agreement"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Employee Handbook"
}
], - "fields": [
- {
- "type": "signature",
- "required": true,
- "value": "Salary",
- "file": 0,
- "invitee": 0,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
]
}
], - "lastUsedAt": "2026-01-01T00:00:00+00:00",
- "updatedAt": "2026-01-01T00:00:00+00:00",
- "createdAt": "2026-01-01T00:00:00+00:00"
}Delete a specific template.
| id required | string <uuid> Example: 6f8d0a9d-b85c-4c3f-9e69-5699f1e00f49 A unique uuid string that identifies a template. |
{- "id": "f3ab4c4b-4276-46cc-bba6-d575696454ad",
- "name": "Contract Template",
- "files": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Template Agreement"
}
], - "attachments": [
- {
- "id": "8d817359-7eb8-4b6e-9030-17ac286b7dc0",
- "name": "Employee Handbook"
}
], - "fields": [
- {
- "type": "signature",
- "required": true,
- "value": "Salary",
- "file": 0,
- "invitee": 0,
- "locations": [
- {
- "range": "1",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1
}
]
}
], - "lastUsedAt": "2026-01-01T00:00:00+00:00",
- "updatedAt": "2026-01-01T00:00:00+00:00",
- "createdAt": "2026-01-01T00:00:00+00:00"
}