Update Session
Update a draft session before it is sent. Part of the create-review-send flow: create a draft with Create Session, review it at the returned draftUrl, revise it here as needed (the draftUrl stays the same), then send it with Send Session. Sessions that have already been sent cannot be updated - their recipients may already be signing.
Three kinds of change, combinable in one request:
- Settings: pass any of
name,expiryDays,reminderEnabled,reminderFrequencyalone to patch just those. - Recipient details: pass
recipientsalone to fix names, emails or signing order in place. List every current recipient in signing order (same count) - recipient identities and all placed fields are preserved. - Documents: pass
filesandrecipientstogether to replace the whole document set. Send the complete spec exactly as Create Session takes it - the previous documents, fields and recipients are rebuilt from scratch, which also discards any manual edits made in the AirSign editor.
Endpoint
PUT https://api.airsign.com.au/api/v1/Session/{sessionId}Headers
| Name | Value | Required | Description |
|---|---|---|---|
| Authorization | Bearer {access_token} | Yes | Bearer token with the write:sessions scope |
| Content-Type | application/json | Yes | Request body is JSON |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | New session name (max 50 characters) |
files | array | No | Replacement document set - the complete spec, same entries as Create Session files (block documents and/or uploaded PDFs). Requires recipients in the same request, because document fields bind to recipient keys |
recipients | array | No | With files: the full recipient list the new documents bind to (key, name, email, optional signingOrder). Alone: an in-place details update for the existing recipients, in signing order, same count |
expiryDays | integer | No | 1-730, or null to clear. Plan-gated (session expiry feature); counting starts when the session is sent |
reminderEnabled | boolean | No | Plan-gated (session expiry feature) |
reminderFrequency | string | No | daily, weekly, monthly or quarterly |
At least one field must be provided.
Example Request - fix a recipient email
curl --location --request PUT 'https://api.airsign.com.au/api/v1/Session/{uuid}' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json' \
--data '{
"recipients": [
{ "key": "parent", "name": "Ada Lovelace", "email": "{valid_email}" }
]
}'Response
Status: 200 OK - the same summary shape Create Session returns, including draftUrl (unchanged), a per-file fieldCount, and warnings (e.g. a recipient left without a signature field).
Error Responses
| Status | Description |
|---|---|
400 | Session is not a draft (NOT_A_DRAFT), files sent without recipients (INVALID_REQUEST), recipients alone does not match the current recipient count (RECIPIENT_COUNT_MISMATCH), or a document failed to compile (DOCUMENT_VALIDATION_FAILED with per-block issues) |
401 | Missing or invalid authentication token |
403 | Expiry/reminder settings on a plan without the session expiry feature (PLAN_FEATURE_REQUIRED) |
404 | Session not found, or a referenced uploaded file/image not found |