Skip to content

API reference

Remind signers

signing.RemindSignersWriteAPI key

Send email reminders to pending signers and inspect the delivery outcome for each recipient. A recipient reminded within the last hour is skipped. SMS reminders require a person's own action in Brigg and are unavailable to API or agent calls.

POST/v1/operations/signing.RemindSigners
On this page

Access & visibility

Allow signing.RemindSigners on your API key.

Workspace access by default. Private member data requires approved member delegation through Brigg-Act-As; the key supplies permissions while private ownership and project boundaries remain enforced.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

signing_request_idstringRequired

Keep the signing_request_id returned when invitations were requested. A file_id or signer_id identifies something else. signing.RequestFileSignatures.

At least 1 character. At most 120 characters.

channelsarray of stringRequired

Use ["email"] for API and agent calls. Although sms is a protocol value, SMS reminders require the person's own action in Brigg and are refused for API keys, including delegated calls.

Each item: "email", "sms". At least 1 item. At most 2 items.

signersarray of objectOptional

Pending recipients to remind, using signer_id from signing.GetSigningRequest. Omit to remind all pending recipients. A supplied phone number is used only for this reminder's SMS; it does not change the recipient's saved number.

At least 1 item. At most 50 items.

Item fields
idstringRequired

signer_id from GetSigningRequest for this same signing_request_id. It is not a Person record ID or an email address.

At least 1 character.

phonestringOptional

Reserved for a person's own SMS reminder in Brigg. Do not supply a phone number in API or agent calls; doing so returns sms_needs_person.

At most 40 characters.

Send one reminder and inspect each outcome

The signing request must still be pending and before its deadline. Use the same workspace credential that initiated a workspace request, or act as the member who initiated a personal request; a different member cannot send its reminders. Read Get signing request first.

Omit signers to target all pending recipients, or select their signer_id values. API calls support email reminders; SMS remains a person's action in Brigg. Member delegation does not turn an automated call into that human action.

A 200 response can contain a mix of successful sends, failures and skipped recipients. A signer reminded within the last hour is skipped with retry_at. Retry a lost response with the original idempotency key; a later intentional reminder is a new action and needs a new key. Do not create a duplicate signing request to retry a notification.

Follow one signing request through completion

Upload a readable PDF, then request signatures and keep signing_request_id. The request keeps a fixed source; replacing the original file later does not change what recipients sign.

Read Get signing request for per-recipient progress. completed means everyone signed, but the archive can still be preparing: wait for non-null file_id before requesting the signed PDF. Get signing document returns a short-lived URL for either the fixed original or the signed archive.

Notification failures do not undo the signing request. Remind the affected pending recipients instead of creating a duplicate request. Recipients sign themselves; a delegated API call cannot supply a recipient's signature. See the complete signing workflow.

Response

Returns 200 OK with a JSON body.

signing_request_idstringRequired

Signing request identifier.

resultsarray of objectRequired

Per-recipient reminder delivery outcomes.

Item fields
signer_idstringRequired

Signer identifier.

emailstringRequired

Email address.

sentarray of stringRequired

Channels on which the send succeeded, such as ["email"]. An empty array means no channel succeeded; inspect skipped and failures. This does not prove the recipient read the message.

failuresarray of objectRequired

Recipient notifications that could not be delivered.

Item fields
channelstringRequired

Channel to use for the reminder, subject to the acting member's authority.

reasonstringRequired

Delivery failure reported for this channel. A failed notification does not cancel the signing request; inspect the request before deciding to remind again.

skippedstringOptional

Reason no send was attempted: cooldown, not_pending or unknown_signer. This is an optional reason string, not a boolean.

retry_atnumberOptional

For cooldown, the earliest time another deliberate reminder can be sent, in Unix milliseconds. Wait until then and use a new idempotency key for that new action.

Errors & retries

Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.

For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.

HTTP status Code What to do
400 invalid_json Send a JSON object with Content-Type: application/json.
400 invalid_input Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters.
401 invalid_key The workspace API key is missing, invalid or revoked.
403 forbidden Check the key’s operation and resource grants. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member.
404 not_found The requested operation or resource is not available to this credential.
429 rate_limited Wait for Retry-After before retrying. Reuse the original Idempotency-Key.
403 sms_needs_person Use channels: [email] and omit phone. SMS requires the person's own action in Brigg; member delegation does not bypass this rule.
409 not_pending The signing request is completed or cancelled. Read its current state instead of sending another reminder.
410 expired The signing deadline has passed. The initiator must deliberately extend it before a reminder can be sent.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "signing_request_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Keep the signing_request_id returned when invitations were requested. A file_id or signer_id identifies something else. [signing.RequestFileSignatures](/developers/reference/signing/RequestFileSignatures)."
    },
    "channels": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "email",
          "sms"
        ]
      },
      "minItems": 1,
      "maxItems": 2,
      "description": "Use [\"email\"] for API and agent calls. Although sms is a protocol value, SMS reminders require the person's own action in Brigg and are refused for API keys, including delegated calls."
    },
    "signers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "signer_id from GetSigningRequest for this same signing_request_id. It is not a Person record ID or an email address."
          },
          "phone": {
            "type": "string",
            "maxLength": 40,
            "description": "Reserved for a person's own SMS reminder in Brigg. Do not supply a phone number in API or agent calls; doing so returns sms_needs_person."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 50,
      "description": "Pending recipients to remind, using signer_id from signing.GetSigningRequest. Omit to remind all pending recipients. A supplied phone number is used only for this reminder's SMS; it does not change the recipient's saved number."
    }
  },
  "required": [
    "signing_request_id",
    "channels"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "signing_request_id": "sig_agreement",
      "channels": [
        "email"
      ]
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "signing_request_id": {
      "type": "string",
      "description": "Signing request identifier."
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "signer_id": {
            "type": "string",
            "description": "Signer identifier."
          },
          "email": {
            "type": "string",
            "description": "Email address."
          },
          "sent": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Channels on which the send succeeded, such as [\"email\"]. An empty array means no channel succeeded; inspect skipped and failures. This does not prove the recipient read the message."
          },
          "failures": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "channel": {
                  "type": "string",
                  "description": "Channel to use for the reminder, subject to the acting member's authority."
                },
                "reason": {
                  "type": "string",
                  "description": "Delivery failure reported for this channel. A failed notification does not cancel the signing request; inspect the request before deciding to remind again."
                }
              },
              "required": [
                "channel",
                "reason"
              ],
              "additionalProperties": false
            },
            "description": "Recipient notifications that could not be delivered."
          },
          "skipped": {
            "type": "string",
            "description": "Reason no send was attempted: cooldown, not_pending or unknown_signer. This is an optional reason string, not a boolean."
          },
          "retry_at": {
            "type": "number",
            "description": "For cooldown, the earliest time another deliberate reminder can be sent, in Unix milliseconds. Wait until then and use a new idempotency key for that new action."
          }
        },
        "required": [
          "signer_id",
          "email",
          "sent",
          "failures"
        ],
        "additionalProperties": false
      },
      "description": "Per-recipient reminder delivery outcomes."
    }
  },
  "required": [
    "signing_request_id",
    "results"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "signing_request_id": "sig_agreement",
      "results": [
        {
          "signer_id": "signer_jamie",
          "email": "jamie@example.com",
          "sent": [
            "email"
          ],
          "failures": []
        },
        {
          "signer_id": "signer_alex",
          "email": "alex@example.com",
          "sent": [],
          "failures": [],
          "skipped": "cooldown",
          "retry_at": 1794304800000
        }
      ]
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.