Signature Request Expiration Date
Signature Request Expiration Date allows requesters to create and send signature requests that have a specific date and time for signers to sign before. If all signers have yet to sign the document by that time, the signature request will expire.
Sending a Signature Request with an Expiration Date
An expiration date is defined by passing anexpires_at
parameter, which accepts an epoch timestamp representing the point in time the signature request should expire. This is supported in all our OpenAPI SDKs.The expires_at
parameter is supported by the following endpoints:- /signature_request/send
- /signature_request/create_embedded
- /signature_request/update
- /unclaimed_draft/create
- /unclaimed_draft/create_embedded
Validations Applied to expires_at
expires_at
must be an integer epoch timestamp in seconds between 1-90 days in the future.expires_at
will be rounded down to the nearest hour.
Example
Expiration Process
A signature request expires when one or more signers have yet to sign the signature request before the expiration date. Only signature requests that explicitly set anexpires_at
will expire. By default signature requests do not expire.Details
Signature Status
After anexpires_at
date has passed, each signature on the signature request that is not been completed will enter the expired status, and the overall signature request will be considered expired. You can determine whether a signature request is expired by checking each each signature
object in the signatures
array for "status_code": "expired"
.Document Access
All parties to the signature request will still have access to the document including audit trail, similar todeclined
signature requests. They will not be able to sign or modify the signature request additionally at that time, and won’t have access via the Signer App.Signing Behavior
Signers that completed signing before expiration will be marked with"status_code": "signed"
. However, for each signer who has yet to sign the signature request, they will be marked "status_code": "expired"
and the document will no longer be available for signing.Expiration Notification
An expired signature request will trigger notifications.
- Non-embedded signing flows - once expired, we will send an email to each signer and requester stating the signature request has expired at the specified signature request expiration date.
- Embedded signing flows - upon expiration, a
signature_request_expired
event will be sent to your integration.
Audit Trail
On the audit trail, the signature request will be shown as in anexpired
status, with an expired
audit event with the expiration date listed along with all the signers who did not sign by the expiration date. Once a signature request has expired, it is considered to be in a final status like declined
and completed
signature requests.Signing a Signature Request with an Expiration
During signing, the signer will see the signature request expiration date in the banner next to the number of required fields to sign on the signature request. The time will be the users local timezone at the time of signing. If they attempt to sign the signature request past the expiration date, they will receive an error stating that the signature request is closed.
Signer Emails for Expiration (Non-embedded)
For signing flows that include emails, signers are notified of expiration date in the emails sent to them about signature requests. The date and time will be displayed in their preferred timezone based on their Dropbox Sign account settings.
No emails in embedded signing
Emails are muted in all embedded signing flows. Integrations using embedded signing must consume the signature_request_expired event.
Screenshot | |
---|---|
Send and UpdateFor both send and update, the signer will receive an email including the signature request expiration date in the subject and body of the email. | |
ReminderSignature request reminder emails will be sent to the signer 3 and 7 days before the signature request expires, this is in addition to our other current automated reminders. If a signer was already reminded within 24 hours, we will skip the automated reminder. | |
ExpiredAn expired email is sent to all signers and the requester when a signature request expired stating the requester has expired the signature request at the expiration date specified. |
Building Expiration into Your Integration
Web Surfaces
From DropboxSign.com you can filter by expired status in your Documents page and API Dashboard and will be displayed as beingexpired
.Searching
We currently don’t support searching byexpired
status in /signature_request/list at this time nor expiration date. See search for detailsUnclaimed Drafts
When setting an expiration using Embedded Requesting, users creating a signature request using theclaim_url
can select an expiration date but not a specific time. The time will be inferred from the local timezone of the user's browser.
If the user does not change the expiration, it will retain the expires_at
set when the draft was initially created. To display the date picker for the signature request expiration date, you need to send a valid value for expires_at
when creating the unclaimed draft.FAQ
The expires_at
in the response for unclaimed draft is different than what I set. Why?
Unclaimed drafts generate a claim_url
that is only accessible for a set period of time. That means the expires_at
on an Unclaimed Draft object is different than expires_at
applied to Signature Request object.{
"unclaimed_draft": {
"claim_url": "https://app.hellosign.com/send/resendDocs?root_snapshot_guids[]=7f967b7d06e154394eab693febedf61e8ebe49eb&snapshot_access_guids[]=fb848631&root_snapshot_guids[]=7aedaf31e12edf9f2672a0b2ddf028aca670e101&snapshot_access_guids[]=f398ef87",
"signing_redirect_url": null,
"expires_at": 1414093891,
"test_mode": true
}
}
{
"signature_request": {
"signature_request_id": "2b388914e3ae3b738bd4e2ee2850c677e6dc53d2",
"test_mode": true,
"title": "OriginalDocument",
"original_title": "OriginalDocument",
"subject": "Example Subject",
"message": "Example Message",
"metadata": {},
"created_at": 1671140704,
"expires_at": 1671987600,
"is_complete": false,
"is_declined": false,
"has_error": false,
"custom_fields": [],
"response_data": [],
"signing_url": "https://app.hellosign.com/sign/2b388914e3ae3b738bd4e2ee2850c677e6dc53d2",
"signing_redirect_url": null,
"final_copy_uri": "/v3/signature_request/final_copy/e4430b36cbabd6d0ed00d1a65a1bfc0260ff7bff",
"files_url": "https://api.hellosign.com/v3/signature_request/files/2b388914e3ae3b738bd4e2ee2850c677e6dc53d2",
"details_url": "https://app.hellosign.com/home/manage?guid=2b388914e3ae3b738bd4e2ee2850c677e6dc53d2",
"requester_email_address": "me@hellosign.com",
"signatures": [
{
"signature_id": "78caf2a1d01cd39cea2bc1cbb340dac3",
"has_pin": false,
"has_sms_auth": false,
"has_sms_delivery": false,
"sms_phone_number": null,
"signer_email_address": "jack@example.com",
"signer_name": "Bob Smith",
"signer_role": null,
"order": null,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": null,
"error": null
}
],
"cc_email_addresses": [],
"template_ids": null
}
}