Skip to main content

Reminders & Expiration

Not all documents get signed immediately. sajn provides tools to manage unsigned documents through reminders, expiration dates, and cancellation options.

Setting Expiration Dates

An expiration date defines when a document is no longer valid for signing. After this date, signers cannot complete the signing process.

When Creating a Document

Set expiration using the expiresAt field:
curl -X POST https://app.sajn.se/api/v1/documents \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Quote - Website Project",
    "type": "SIGNABLE",
    "expiresAt": "2024-02-15T23:59:59Z",
    "signers": [
      {
        "name": "Anna Andersson",
        "email": "anna@client.se",
        "role": "SIGNER",
        "deliveryMethod": "EMAIL",
        "requiredSignature": "DRAWING"
      }
    ]
  }'
Document settings showing expiration date configuration

Updating Expiration on Existing Documents

Extend or shorten the expiration period:
curl -X PATCH https://app.sajn.se/api/v1/documents/doc_123 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "expiresAt": "2024-03-01T23:59:59Z"
  }'
You can only update expiration on documents that haven’t been completed or expired yet.

What Happens When Documents Expire

When a document expires:
  1. Signing is disabled - Signers can no longer access the signing interface
  2. Status changes - Document status becomes EXPIRED
  3. Webhook fires - A DOCUMENT_EXPIRED event is sent
  4. Links invalidated - All signing links return an expiration message

Expired Document Response

When a signer tries to access an expired document:
{
  "error": "DOCUMENT_EXPIRED",
  "message": "This document has expired and can no longer be signed.",
  "expiredAt": "2024-02-15T23:59:59Z"
}

Handling Expired Documents

If a document expires before signing is complete, you have several options:
  1. Create a new document - Duplicate the content with a new expiration date
  2. Contact signers - Reach out directly to understand any issues
  3. Adjust your process - Consider longer expiration periods or earlier reminders

Sending Reminders

Reminders help move stalled documents forward by prompting signers to take action.
Example reminder email sent to a signer

Manual Reminders

Send a reminder to all pending signers on a document:
curl -X POST https://app.sajn.se/api/v1/documents/doc_123/remind \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Reminder to Specific Signer

Send a reminder to a single signer:
curl -X POST https://app.sajn.se/api/v1/documents/doc_123/signers/signer_456/remind \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Automatic Reminders

Configure automatic reminders in the document metadata:
{
  "name": "Service Agreement",
  "type": "SIGNABLE",
  "documentMeta": {
    "autoReminder": true,
    "reminderDays": [3, 7, 14]
  },
  "signers": [...]
}
This configuration sends reminders:
  • 3 days after sending
  • 7 days after sending
  • 14 days after sending
Automatic reminders only send to signers who haven’t yet signed. Already completed signers are excluded.

Reminder Content

Reminders include:
  • Document name and description
  • Original signing request context
  • Direct link to sign
  • Expiration date (if set)

Cancelling Documents

Sometimes you need to cancel a document that’s out for signing—perhaps the terms have changed or the deal fell through.

Cancel a Document

curl -X PATCH https://app.sajn.se/api/v1/documents/doc_123 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "CANCELLED"
  }'

What Happens When Cancelled

  1. Signing is disabled - All signing links become invalid
  2. Status updates - Document status becomes CANCELLED
  3. Webhook fires - A DOCUMENT_CANCELLED event is sent
  4. Signers notified - Signers receive a cancellation notice
Cancellation is permanent. Cancelled documents cannot be reopened. Create a new document if needed.

Webhook Events

Document Expired

{
  "event": "DOCUMENT_EXPIRED",
  "timestamp": "2024-02-15T23:59:59Z",
  "data": {
    "documentId": "doc_123",
    "documentName": "Quote - Website Project",
    "externalId": "quote_456",
    "expiredAt": "2024-02-15T23:59:59Z",
    "pendingSigners": [
      {
        "signerId": "signer_789",
        "name": "Anna Andersson",
        "email": "anna@client.se"
      }
    ]
  }
}

Handling Expired Webhook

app.post('/webhooks/sajn', (req, res) => {
  const { event, data } = req.body;

  if (event === 'DOCUMENT_EXPIRED') {
    // Log the expiration
    console.log(`Document ${data.documentId} expired`);

    // Notify your team
    notifyTeam({
      message: `Document "${data.documentName}" expired without all signatures`,
      pendingSigners: data.pendingSigners
    });

    // Update your CRM/database
    updateDocumentStatus(data.externalId, 'expired');
  }

  res.status(200).send('OK');
});

Document Cancelled

{
  "event": "DOCUMENT_CANCELLED",
  "timestamp": "2024-02-10T14:30:00Z",
  "data": {
    "documentId": "doc_123",
    "documentName": "Quote - Website Project",
    "cancelledAt": "2024-02-10T14:30:00Z",
    "cancelledBy": "user_abc"
  }
}

Best Practices

Consider your signers’ context when setting expiration dates:
  • Quotes: 14-30 days
  • Contracts: 30-60 days
  • Internal approvals: 7-14 days
  • Urgent documents: 3-7 days
Don’t spam signers with too many reminders. A good pattern:
  • First reminder: 3-5 days after sending
  • Second reminder: 7-10 days after sending
  • Final reminder: A few days before expiration
When sending documents, mention the expiration date in the subject or message so signers know there’s a deadline.
Set up webhook handlers for DOCUMENT_EXPIRED events to proactively reach out to signers or take corrective action.
When documents expire, have a defined process:
  1. Contact the signer to understand the delay
  2. Address any concerns or questions
  3. Create a new document if needed
  4. Adjust future expiration periods if consistently too short
Expiration times are in UTC. Consider your signers’ timezones when setting deadlines to avoid unexpected expirations.

Document Lifecycle

StatusDescriptionCan Sign?Can Remind?
DRAFTNot yet sentNoNo
SENTOut for signingYesYes
COMPLETEDAll signers doneNoNo
EXPIREDPast expiration dateNoNo
CANCELLEDManually cancelledNoNo
REJECTEDSigner rejectedNoNo

Next Steps

Multi-Party Signing

Configure complex signing workflows

Webhooks

Set up event notifications

Downloading Documents

Retrieve completed documents

Creating Documents

Learn document creation basics