Access & visibility
Allow signing.GetSigningRequest 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.
Request fields
Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.
signing_request_idstringRequiredKeep the signing_request_id returned when invitations were requested. A file_id or signer_id identifies something else. signing.RequestFileSignatures.
At least 1 character.
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_idstringRequiredSigning request identifier.
titlestringRequiredDisplay title.
statusstringRequiredRequest state: pending is awaiting signatures; completed means every recipient signed; cancelled stops the request; expired means a pending request passed its deadline. Completed does not by itself guarantee an archived file.
Allowed: "pending", "completed", "cancelled", "expired".
signature_methodstringRequiredSignature method required for the request.
Allowed: "standard", "bankid".
expires_atnumberRequiredSigning deadline in Unix milliseconds.
created_atnumberRequiredCreation time in Unix milliseconds.
completed_atnumber or nullRequiredTime signing completed, in Unix milliseconds, or null while incomplete.
sourceobjectRequiredOriginal document identity preserved for this signing request.
Nested fields
typestringRequiredType identifying which variant of this model applies.
Allowed: "file", "document", "registration".
idstringRequiredOriginal identity, interpreted with source.type: file means the uploaded file_id, document means the generated document_id, and registration means the business registration_id. It is not the signed archive's file_id.
sha256stringOptionalSHA-256 hex digest of the fixed uploaded PDF source, when included. Replacing the original file does not change that signing source.
file_idstring or nullRequiredSigned archive identity, or null when not yet available. Request version=signed from GetSigningDocument only after this is present.
signersarray of objectRequiredNamed recipients and their individual signature states.
Item fields
signer_idstringRequiredSigner identifier.
emailstringRequiredEmail address.
namestring or nullRequiredDisplay name.
statusstringRequiredThis recipient's state: pending has not signed, signed completed their signature, declined refused. It is independent of archive creation and is not the request's overall state.
Allowed: "pending", "signed", "declined".
signed_atnumber or nullRequiredUnix millisecond time of this recipient's signature, or null if they have not signed.
Errors & retries
This operation reads data. It needs no idempotency key and can be retried after a transient failure.
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. |
| 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 request is unavailable to this identity. A workspace-only credential can read its own initiated requests; member delegation also checks that member's signing access. |
| 429 | rate_limited |
Wait for Retry-After before retrying. |
Next steps
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,
"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)."
}
},
"required": [
"signing_request_id"
],
"additionalProperties": false,
"examples": [
{
"signing_request_id": "sig_project_agreement"
}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"signing_request_id": {
"type": "string",
"description": "Signing request identifier."
},
"title": {
"type": "string",
"description": "Display title."
},
"status": {
"type": "string",
"enum": [
"pending",
"completed",
"cancelled",
"expired"
],
"description": "Request state: pending is awaiting signatures; completed means every recipient signed; cancelled stops the request; expired means a pending request passed its deadline. Completed does not by itself guarantee an archived file."
},
"signature_method": {
"type": "string",
"enum": [
"standard",
"bankid"
],
"description": "Signature method required for the request."
},
"expires_at": {
"type": "number",
"description": "Signing deadline in Unix milliseconds."
},
"created_at": {
"type": "number",
"description": "Creation time in Unix milliseconds."
},
"completed_at": {
"type": [
"number",
"null"
],
"description": "Time signing completed, in Unix milliseconds, or null while incomplete."
},
"source": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"file",
"document",
"registration"
],
"description": "Type identifying which variant of this model applies."
},
"id": {
"type": "string",
"description": "Original identity, interpreted with source.type: file means the uploaded file_id, document means the generated document_id, and registration means the business registration_id. It is not the signed archive's file_id."
},
"sha256": {
"type": "string",
"description": "SHA-256 hex digest of the fixed uploaded PDF source, when included. Replacing the original file does not change that signing source."
}
},
"required": [
"type",
"id"
],
"additionalProperties": false,
"description": "Original document identity preserved for this signing request."
},
"file_id": {
"type": [
"string",
"null"
],
"description": "Signed archive identity, or null when not yet available. Request version=signed from GetSigningDocument only after this is present."
},
"signers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"signer_id": {
"type": "string",
"description": "Signer identifier."
},
"email": {
"type": "string",
"description": "Email address."
},
"name": {
"type": [
"string",
"null"
],
"description": "Display name."
},
"status": {
"type": "string",
"enum": [
"pending",
"signed",
"declined"
],
"description": "This recipient's state: pending has not signed, signed completed their signature, declined refused. It is independent of archive creation and is not the request's overall state."
},
"signed_at": {
"type": [
"number",
"null"
],
"description": "Unix millisecond time of this recipient's signature, or null if they have not signed."
}
},
"required": [
"signer_id",
"email",
"name",
"status",
"signed_at"
],
"additionalProperties": false
},
"description": "Named recipients and their individual signature states."
}
},
"required": [
"signing_request_id",
"title",
"status",
"signature_method",
"expires_at",
"created_at",
"completed_at",
"source",
"file_id",
"signers"
],
"additionalProperties": false,
"examples": [
{
"signing_request_id": "sig_project_agreement",
"title": "Project agreement",
"status": "pending",
"signature_method": "standard",
"expires_at": 1794906000000,
"created_at": 1794301200000,
"completed_at": null,
"source": {
"type": "file",
"id": "f_agreement",
"sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"file_id": null,
"signers": [
{
"signer_id": "signer_jamie",
"email": "jamie@example.com",
"name": "Jamie Lee",
"status": "pending",
"signed_at": null
}
]
}
]
}