Session expired Estimated reading: 4 minutes 501 views This webhook can post a request to your API when a session (transaction) status turns expired. An expired session is not deleted yet, but it is no longer accessible and cannot be recovered by extending the session. Why do I need this? This webhook is similar to Session deleted, however it occurs before deletion — usually within minutes for a standalone transaction (one that is not part of a workflow), or within days when the transaction is part of a workflow. It lets your system react to an abandoned transaction while its data still exists — for example to follow up with the recipient, re-send the form, or record the drop-off. Session expired request and response Following are the definitions for the body request posted from CelloSign to your API. ElementWhat it’s for?EventObject that includes the event type WHEF_SESSION_EXPIRED and a timestamp.SessionObject with details on the session the webhook was fired from. It includes the following elements: id — session tokenreference — aggregator ID for the business processprocess_id / process_number — the business process identifierstransaction_number — ID for the transaction, locatable in the CelloSign UI applicationrecipient — in a workflow, indicates the recipient id in the process and its convention namelabels — a key/value object reflecting values injected into labels (see API documentation for details)recipientThe id of the recipient and convention namelabelsAny key/value that is associated with the session Example post request { "event": { "type": "WHEF_SESSION_EXPIRED", "timestamp": "2025-01-26T09:20:03.439650" }, "session": { "id": "xM72By4JkM", "reference": "2d12cdb3-d666-4dbd-8827-d7c165ed9d17", "process_id": "2d12cdb3-d666-4dbd-8827-d7c165ed9d17", "process_number": 28, "transaction_number": 17, "recipient": { "id": 1, "name": "client" }, "labels": { "CUSTOMER_TAG": "CUSTOMER_VALUE" } } } Expected response A successful response from the API should include array of objects, were each object includes “id” and “value” key/value pairs as in this example. Values will be injected into their corresponding id in a session. { "status": "0", "errordesc": "" } Optionally include form data and attachments These options are configured per webhook, in the webhook’s Body section, and they appear only for the Session expired webhook. All three are off by default, so existing expiry webhooks keep sending exactly the same payload as before — no changes and no action required unless you opt in. SwitchWhat it doesInclude dataAdds a data array containing the form field values the recipient entered before the session expired.Include paragraph fieldsWhen Include data is on, keeps read-only paragraph-type fields in the data array. When off (the default), paragraph fields are stripped out.Include attachmentsAdds an attachments array containing uploaded files / images. The signed document is not included. Dependency. Include paragraph fields only has an effect when Include data is on. While Include data is off, the paragraph switch is disabled. Turning Include data on enables the paragraph switch, but it stays off until you turn it on explicitly. Added body elements When enabled, the following elements are added to the request body (same shape as the Archive webhook): ElementWhat it’s for?dataList of form elements. Each element includes: id — element id value type — element type attachmentsList of attachments collected during the process. Each element includes: id — form element id filename mimetype content — Base64 string of the file Which keys are added per option Option stateAdded top-level keysAll off (default)none — baseline payload aboveInclude data (paragraph off)data — paragraph entries strippedInclude data + Include paragraph fieldsdata — paragraph entries keptInclude attachmentsattachments (uploaded files / images; never the signed document) Example post request — data and attachments included { "event": { "type": "WHEF_SESSION_EXPIRED", "timestamp": "2025-01-26T09:20:03.439650" }, "session": { "id": "xM72By4JkM", "reference": "2d12cdb3-d666-4dbd-8827-d7c165ed9d17", "process_id": "2d12cdb3-d666-4dbd-8827-d7c165ed9d17", "process_number": 28, "transaction_number": 17, "recipient": { "id": 1, "name": "client" }, "labels": { "CUSTOMER_TAG": "CUSTOMER_VALUE" } }, "data": [ { "id": "FIELD_FULLNAME", "value": "Jane Doe", "type": "text", "meta": {} } ], "attachments": [ { "id": "FIELD_IDCARD", "filename": "id-card.png", "mimetype": "image/png", "content": "iVBORw0KGgoAAAANSUhEUgAA...==" } ] } Note on sensitive data. Enabling Include data or Include attachments transmits potentially sensitive information — including data the recipient never formally submitted (PII, uploaded documents) — to your configured webhook endpoint. This is the same exposure profile as the Archive webhook and is fully opt-in. Make sure your endpoint uses HTTPS and authentication. Session expired - PreviousLogged in and Form loadedNext - Session expiredSession deleted