Skip to content

API reference

Request file signatures

signing.RequestFileSignaturesWriteAPI key

Send an uploaded PDF to named recipients for signature. Each recipient receives a private link and gives their own consent. Brigg preserves the original PDF and prepares a signed archive when everyone has signed.

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

Access & visibility

Allow signing.RequestFileSignatures 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.

file_idstringRequired

Use a file_id returned by this listing or by CompleteUpload. It is not an upload ID, storage path or filename. documents.ListDocuments.

At least 1 character.

titlestringRequired

Display title.

At least 1 character. At most 200 characters.

signersarray of objectRequired

Named recipients and their individual signature states.

At least 1 item.

Item fields
emailstringRequired

Email address.

Format: email.

namestringOptional

The recipient's display name. Uses their account name or email when omitted.

At most 120 characters.

expires_atintegerOptional

Signing deadline in Unix milliseconds.

messagestringOptional

Message sent to the signature recipients with their invitation.

At most 2000 characters.

signature_methodstringOptional

Signature method required for the request.

Allowed: "standard", "bankid". Default: "standard".

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.

statusstringRequired

Current signing request or recipient state. A completed request may still be preparing its signed PDF.

Allowed: "pending".

invitation_failuresarray of stringRequired

Recipient email addresses whose invitation was not delivered. The request exists; use RemindSigners to retry delivery.

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.
422 pdf_required Upload a PDF before requesting signatures.
422 invalid_pdf Upload a readable PDF without password encryption.
402 insufficient_credits BankID requires sufficient workspace credit. Refill credit before retrying.
503 bankid_not_configured BankID is not configured for this environment. Use an available signing method or contact support.

Next steps

Download OpenAPI · Versioning & retirement

JSON schemas

Use the complete schemas for validation or client generation.

Full request JSON schema
{
  "type": "object",
  "properties": {
    "file_id": {
      "type": "string",
      "minLength": 1,
      "description": "Use a file_id returned by this listing or by CompleteUpload. It is not an upload ID, storage path or filename. [documents.ListDocuments](/reference/documents/ListDocuments)."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Display title."
    },
    "signers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address."
          },
          "name": {
            "type": "string",
            "maxLength": 120,
            "description": "The recipient's display name. Uses their account name or email when omitted."
          }
        },
        "required": [
          "email"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "description": "Named recipients and their individual signature states."
    },
    "expires_at": {
      "type": "integer",
      "description": "Signing deadline in Unix milliseconds."
    },
    "message": {
      "type": "string",
      "maxLength": 2000,
      "description": "Message sent to the signature recipients with their invitation."
    },
    "signature_method": {
      "type": "string",
      "enum": [
        "standard",
        "bankid"
      ],
      "default": "standard",
      "description": "Signature method required for the request."
    }
  },
  "required": [
    "file_id",
    "title",
    "signers"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "file_id": "f_example",
      "title": "Consulting agreement",
      "signers": [
        {
          "email": "alex@example.com",
          "name": "Alex Morgan"
        }
      ],
      "signature_method": "standard",
      "message": "Please review and sign our agreement."
    }
  ]
}
Full response JSON schema
{
  "type": "object",
  "properties": {
    "signing_request_id": {
      "type": "string",
      "description": "Signing request identifier."
    },
    "status": {
      "type": "string",
      "enum": [
        "pending"
      ],
      "description": "Current signing request or recipient state. A completed request may still be preparing its signed PDF."
    },
    "invitation_failures": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Recipient email addresses whose invitation was not delivered. The request exists; use RemindSigners to retry delivery."
    }
  },
  "required": [
    "signing_request_id",
    "status",
    "invitation_failures"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "signing_request_id": "sig_example",
      "status": "pending",
      "invitation_failures": []
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.