Garrigues Signature Manager - Signature Request Operations



Introduction

Once you have the token, you can start sending requests to the Signature Manager API to manage signature requests.

Signature requests can move through the following statuses: DRAFT, ACTIVE, PARTIALLY_SIGNED, FULLY_SIGNED, CANCELLED, COMPLETED, COMPLETED_PARTIAL, COMPLETED_EXPIRED, COMPLETED_MANUAL, REJECTED, ERROR, CANCELLED_EXPIRED.


Operations

Create signature request

This endpoint creates a new signature request.

HTTP Request

POST /api/v1/private/signature-requests

With the following information provided as JSON:

Example Request Body

{
  "name": "Signature Request 1",
  "description": "Example description",
  "createdBy": "creator@example.com",
  "senderName": "Garrigues Digital Trust",
  "senderAddress": "no-reply@example.com",
  "signatureRequestBody": [
    {
      "status": "DRAFT",
      "content": {
        "body": "Request body content",
        "subject": "Request Subject",
        "role": "SIGNATORY",
        "additionalText": "Optional additional text"
      }
    }
  ],
  "notifications": true,
  "language": "en",
  "uniqueValidator": false,
  "provider": "NOTICEMAN_AND_WHATSAPP",
  "closeConfig": {
    "condition": "ALL_REQUIRED",
    "date": "2024-01-31T23:59:59Z"
  },
  "webhookUris": [
    {
      "uri": "https://example.com/webhooks/signature-manager"
    }
  ]
}

Where

Parameter Mandatory Datatype Description
name Yes string Name of the signature request.
description No string Description of the signature request.
createdBy Yes string Identifier (e.g., email) of the creator.
senderName No string Name of the sender displayed in notifications.
senderAddress No string (email) Sender email address used in notifications.
signatureRequestBody Yes array of objects Array containing the body details of the signature request.
signatureRequestBody[].status Yes string Status for the body template. Possible values: DRAFT, ACTIVE, REJECTED, COMPLETED, CANCELLED.
signatureRequestBody[].content.body Yes string Body content of the notification.
signatureRequestBody[].content.subject Yes string Subject for the notification.
signatureRequestBody[].content.role Yes string Participant role. Possible values: SIGNATORY, OBSERVER, VALIDATOR.
signatureRequestBody[].content.additionalText No string Additional text appended to the notification.
notifications No boolean Flag to enable notifications.
language No string Language code (e.g., "en").
uniqueValidator No boolean If true, a single validator approval is enough when multiple validators exist for a signatory.
provider No string Default notification provider for the signature request. Possible values: NOTICEMAN, NOTICEMAN_AND_WHATSAPP, NOTICEMAN_AND_WHATSAPP_AND_RCS, NOTICEMAN_AND_RCS. Individual participants can override this value with their own provider, which takes precedence when notifications are sent.
closeConfig.condition No string Close condition. ALL_REQUIRED ends on first rejection, PARTIAL_ALLOWED continues.
closeConfig.date No string (OffsetDateTime) Auto-close date in ISO 8601 format.
webhookUris No array of objects Webhook endpoints specific to this signature request. When set, events of this signature request are delivered only to these URIs instead of the webhook URLs configured at client level (see the Webhook notifications page).
webhookUris[].uri Yes (if provided) string (URI) Webhook URI. Must use HTTPS.

Example Response

{
  "id": "6db10639-bfd1-4a0a-bf2b-e837b715c0c8",
  "name": "Signature Request 1",
  "description": "Example description",
  "createdBy": "creator@example.com",
  "senderName": "Garrigues Digital Trust",
  "senderAddress": "no-reply@example.com",
  "signatureRequestBody": [
    {
      "status": "DRAFT",
      "content": {
        "body": "Request body content",
        "subject": "Request Subject",
        "role": "SIGNATORY",
        "additionalText": "Optional additional text"
      }
    }
  ],
  "cancellationReason": null,
  "status": "DRAFT",
  "notifications": true,
  "language": "en",
  "uniqueValidator": false,
  "provider": "NOTICEMAN_AND_WHATSAPP",
  "closeConfig": {
    "condition": "ALL_REQUIRED",
    "date": "2024-01-31T23:59:59Z"
  },
  "webhookUris": [
    {
      "uri": "https://example.com/webhooks/signature-manager"
    }
  ]
}

Error: 400 Bad request | 409 Conflict because invalid signature request close at | 500 Unexpected error


List signature requests

This endpoint retrieves a list of signature requests. You can filter the results using various query parameters.

HTTP Request

GET /api/v1/private/signature-requests

Where

Parameter Mandatory Datatype Description
ids No array of string (UUID) Filter by signature request IDs.
names No array of string Filter by signature request names.
creators No array of string Filter by creator identifiers.
statuses No array of string Filter by signature request statuses. Possible values: DRAFT, ACTIVE, PARTIALLY_SIGNED, FULLY_SIGNED, CANCELLED, COMPLETED, COMPLETED_PARTIAL, COMPLETED_EXPIRED, COMPLETED_MANUAL, REJECTED, ERROR, CANCELLED_EXPIRED.
cancellationReasons No array of string Filter by cancellation reasons. Possible values: REJECTED, DEADLINE.
dateFrom No string Filter requests created from this date.
dateTo No string Filter requests created until this date.
signatureTypes No array of string Filter by document signature types. Possible values: ADVANCED, INTERPOSITION.
providers No array of string Filter by document signature providers. Possible value: EADTRUST.
emailSignatories No array of string Filter by signatory email addresses.
emailObservers No array of string Filter by observer email addresses.
hashes No array of string Filter by document hashes.
closeCondition No string Filter by close condition. Possible values: ALL_REQUIRED, PARTIAL_ALLOWED.
closeAtFrom No string Filter requests with close date from this date.
closeAtTo No string Filter requests with close date until this date.
page No integer Page number for pagination.
size No integer Number of items per page.
sort No array of string Sorting criteria in the format field:order (e.g., requestId:ASC, createdAt:DESC).

Example Response

[
  {
    "id": "e694c179-e503-4101-992e-329700c37adc",
    "status": "DRAFT",
    "name": "Signature Request 1",
    "description": "Example description",
    "cancellationReason": null,
    "createdBy": "creator@example.com",
    "createdAt": "2023-10-23T10:34:59.483Z"
  },
  {
    "id": "55fc5ab7-2345-41fd-8688-6d04acf2b5bc",
    "status": "ACTIVE",
    "name": "Signature Request 2",
    "description": "Another description",
    "cancellationReason": null,
    "createdBy": "another@example.com",
    "createdAt": "2023-10-24T11:00:00.000Z"
  }
]

Get signature request detail

This endpoint retrieves detailed information for a specific signature request identified by its unique identifier.

HTTP Request

GET /api/v1/private/signature-requests/{signatureRequestId}

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Example Response

{
  "id": "6db10639-bfd1-4a0a-bf2b-e837b715c0c8",
  "status": "ACTIVE",
  "name": "Signature Request 1",
  "description": "Example description",
  "cancellationReason": null,
  "createdBy": "creator@example.com",
  "senderName": "Garrigues Digital Trust",
  "senderAddress": "no-reply@example.com",
  "notifications": true,
  "language": "en",
  "uniqueValidator": false,
  "provider": "NOTICEMAN",
  "closeConfig": {
    "condition": "PARTIAL_ALLOWED",
    "date": "2024-01-31T23:59:59Z"
  },
  "documents": [],
  "statusHistory": [
    {
      "signatureRequestId": "6db10639-bfd1-4a0a-bf2b-e837b715c0c8",
      "registeredAt": "2023-10-23T10:34:59.483Z",
      "status": "ACTIVE"
    }
  ]
}

Update signature request

This endpoint updates a signature request.

HTTP Request

PATCH /api/v1/private/signature-requests/{signatureRequestId}

With the following information provided as JSON:

Example Request Body

{
  "name": "Updated Signature Request 1",
  "description": "Updated description",
  "createdBy": "creator@example.com",
  "signatureRequestBody": [
    {
      "status": "DRAFT",
      "content": {
        "body": "Updated request body",
        "subject": "Updated subject",
        "role": "SIGNATORY",
        "additionalText": "Updated additional text"
      }
    }
  ],
  "notifications": true,
  "language": "en",
  "uniqueValidator": true,
  "provider": "NOTICEMAN",
  "closeConfig": {
    "condition": "PARTIAL_ALLOWED"
  }
}

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.
name No string Updated name of the signature request.
description No string Updated description of the signature request.
createdBy No string Updated identifier of the creator.
signatureRequestBody No array of objects Updated body details of the signature request.
notifications No boolean Flag to enable notifications.
language No string Language code (e.g., "en").
uniqueValidator No boolean If true, a single validator approval is enough when multiple validators exist for a signatory.
provider No string Default notification provider for the signature request. Possible values: NOTICEMAN, NOTICEMAN_AND_WHATSAPP, NOTICEMAN_AND_WHATSAPP_AND_RCS, NOTICEMAN_AND_RCS. Individual participants can override this value with their own provider, which takes precedence when notifications are sent.
closeConfig.condition No string Close condition. ALL_REQUIRED ends on first rejection, PARTIAL_ALLOWED continues.
closeConfig.date No string (OffsetDateTime) Auto-close date in ISO 8601 format. Can also be updated after creation while the signature request is in DRAFT.
webhookUris No array of objects Webhook endpoints specific to this signature request (objects with a uri field, HTTPS only). When set, events of this signature request are delivered only to these URIs instead of the webhook URLs configured at client level.

Error: 400 Bad request | 404 Signature request not found | 409 Signature request not in draft or invalid closeAt | 422 Unprocessable entity | 500 Unexpected error


Update signature requests (bulk patch)

This endpoint updates multiple signature requests using patch operations.

HTTP Request

PATCH /api/v1/private/signature-requests

With the following information provided as JSON:

Example Request Body

{
  "ids": [
    "e694c179-e503-4101-992e-329700c37adc",
    "55fc5ab7-2345-41fd-8688-6d04acf2b5bc"
  ],
  "patch": [
    {
      "operation": "REPLACE",
      "path": "/name",
      "value": "Updated name"
    },
    {
      "operation": "REPLACE",
      "path": "/closeConfig/condition",
      "value": "PARTIAL_ALLOWED"
    },
    {
      "operation": "REPLACE",
      "path": "/signatureRequestBody/0/content/body",
      "value": "Updated body content"
    },
    {
      "operation": "REMOVE",
      "path": "/description"
    }
  ]
}

Where

Parameter Mandatory Datatype Description
ids Yes array of string (UUID) Signature request IDs to update.
patch Yes array of objects Patch operations. Use JSON Pointer paths. Operations: REPLACE, REMOVE.
patch[].path Yes string Editable paths include: /name, /description, /createdBy, /senderName, /senderAddress, /notifications, /language, /uniqueValidator, /provider, /closeConfig/condition, /signatureRequestBody/*/content/body, /signatureRequestBody/*/content/subject, /signatureRequestBody/*/content/role, /signatureRequestBody/*/content/additionalText.

Fields that cannot be edited: identifiers, statuses, and date fields (createdAt, closeConfig.date, and any other dates).

Error: 400 Bad request | 500 Unexpected error


Delete signature request

This endpoint deletes a signature request identified by its unique identifier.

HTTP Request

DELETE /api/v1/private/signature-requests/{signatureRequestId}

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Error: 500 Unexpected error


Delete bulk signature requests

This endpoint deletes up to 100 signature requests in a single asynchronous operation. The request is accepted immediately and the deletion is processed in the background; once the process finishes, the result is notified via webhook (see the Webhook notifications section).

Warning: this is a physical deletion. The signature requests and all their related resources (documents, participants, notifications) are removed permanently and cannot be recovered.

HTTP Request

DELETE /api/v1/private/bulk/signature-requests

With the following information provided as JSON:

Example Request Body

{
  "requestId": "0e9ee9f6-25d1-4dbd-8f27-e582d5b6f4a2",
  "signatureRequestIds": [
    "e694c179-e503-4101-992e-329700c37adc",
    "55fc5ab7-2345-41fd-8688-6d04acf2b5bc"
  ]
}

Where

Parameter Mandatory Datatype Description
requestId Yes string (UUID) Correlation identifier for the bulk delete process, provided by the caller.
signatureRequestIds Yes array of string (UUID) Identifiers of the signature requests to delete. Minimum 1 and maximum 100 items.

Response: 204 No Content (the deletion is asynchronous; the final result is notified via webhook)

Error: 400 Bad request — validation error | 404 Some signature request not found | 409 Some signature request exists in other process | 500 Unexpected error


Activate signature request

This endpoint activates a signature request.

HTTP Request

POST /api/v1/private/signature-requests/{signatureRequestId}/activate

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Example Response

{
  "id": "86b26824-f646-406d-b039-cdb142d46cd4",
  "status": "ACTIVE"
}

Error: 400 Bad request | 404 Signature request not found | 500 Unexpected error


Cancel signature request

This endpoint cancels a signature request identified by its unique identifier.

HTTP Request

POST /api/v1/private/signature-requests/{signatureRequestId}/cancel

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Example Response

{
  "id": "86b26824-f646-406d-b039-cdb142d46cd4",
  "status": "CANCELLED"
}

Error: 400 Bad request | 404 Signature request not found | 500 Unexpected error


Draft signature request

This endpoint drafts a signature request.

HTTP Request

POST /api/v1/private/signature-requests/{signatureRequestId}/draft

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Example Response

{
  "id": "18bb63be-743f-47b3-a7f0-7f76ee79b89c",
  "status": "DRAFT"
}

Error: 500 Unexpected error


Close signature request

This endpoint closes a signature request manually.

HTTP Request

POST /api/v1/private/signature-requests/{signatureRequestId}/close

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Example Response

{
  "id": "86b26824-f646-406d-b039-cdb142d46cd4",
  "status": "COMPLETED_MANUAL"
}

Error: 400 Bad request | 404 Signature request not found | 500 Unexpected error


Resend signature request notifications

This endpoint resends notifications for all participants in a signature request.

HTTP Request

POST /api/v1/private/signature-requests/{signatureRequestId}/resend

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Response: 202 Accepted

Error: 404 Signature request not found | 409 Conflict when request state is invalid


Generate interim report

This endpoint generates an interim report for a document in a signature request. The interim report can be generated at any moment of the signature request flow.

HTTP Request

POST /api/v1/private/signature-requests/{signatureRequestId}/reports

Example Request Body

{
  "documentId": "2b066f42-8e65-4c6f-8253-ad6ded8ae436",
  "reportId": "8d8f5d2a-5b6c-4a0c-a82b-9c7f74b5b9b1",
  "additionalData": {
    "key": "value"
  }
}

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.
documentId Yes string (UUID) Document identifier for which the report is generated.
reportId No string (UUID) Optional report identifier. If omitted, a new report ID is generated.
additionalData No object Key/value map with extra information for the interim report.

Example Response

{
  "signatureRequestId": "6db10639-bfd1-4a0a-bf2b-e837b715c0c8",
  "reportId": "8d8f5d2a-5b6c-4a0c-a82b-9c7f74b5b9b1",
  "documentId": "2b066f42-8e65-4c6f-8253-ad6ded8ae436"
}

Error: 400 Bad request | 404 Signature request or document not found | 409 Report id exists in other process | 500 Internal server error


Generate well signed appearance document

This endpoint triggers the generation of a well signed appearance document. This is an advanced operation and is usually generated automatically.

HTTP Request

POST /api/v1/private/signature-requests/{signatureRequestId}/certificates

Where

Parameter Mandatory Datatype Description
signatureRequestId Yes string (UUID) Unique identifier for the signature request.

Error: 400 Bad request | 404 Signature request not found | 409 Operation not available due the config | 500 Unexpected error