Skip to main content

Downloading Signed Documents

Once all signers have completed a document, you can download the signed PDF along with the audit trail. This guide covers manual downloads, automated retrieval, and archiving best practices.

Download Endpoint

The download endpoint returns a short-lived, pre-signed URL — not the file bytes directly. Request the URL, then fetch it to retrieve the PDF.
The downloadUrl is valid for 1 hour. Request a fresh one if it expires.
Signed document showing embedded signatures from all parties

Choosing which file to download

Choose which file the pre-signed URL points to with the fileType value: There are two forms of the endpoint:
For new integrations, prefer the path form GET /api/v1/documents/{id}/download/{fileType} — the file type is explicit and required, which avoids ambiguity.
Both forms return the same { "downloadUrl": "..." } JSON response. The endpoint returns 404 if the requested file doesn’t exist for the document (for example, requesting JOURNAL before the document is completed).

Response Headers on the pre-signed URL

When you fetch the downloadUrl, the file is served with:

Audit Trail / Signing Journal

The signing journal is a separate PDF holding the full event log for the document: every party with their identity and signing method, and every recorded event — sent, opened, signed, reminded, sealed — with its timestamp and IP address. The signed PDF itself already ends with a signing certificate, a summary of the same evidence sealed into the document. Download the journal when you need the complete trail rather than the summary.

Downloading the Journal

The signing journal is a separate file — download it with fileType=JOURNAL:

Storing Signed Documents

Download to Local Storage

Upload to Cloud Storage

Amazon S3

Google Cloud Storage

Automating Downloads with Webhooks

The most common pattern is to automatically download documents when they’re completed using webhooks.

Webhook Handler

Python Webhook Handler

Archiving Best Practices

Set up a webhook handler to download documents as soon as they’re completed. This ensures you always have a copy, even if the document is later deleted from sajn.
Always download the signing journal (fileType=JOURNAL) alongside the signed PDF for legal purposes. The journal provides proof of signing events.
Set externalId on documents to match your system’s identifiers. This makes it easy to organize and retrieve archived documents.
Save document metadata (signers, dates, custom fields) alongside the PDF for easier searching and reporting.
Store signed documents in multiple locations (e.g., primary storage + backup) for disaster recovery.
Define how long to keep signed documents based on legal requirements. Some contracts may need to be retained for 7+ years.
Signed documents often contain sensitive information. Ensure your archive has appropriate access controls and encryption.

Error Handling

Document Not Ready

If the requested file isn’t available yet (for example, the signed PDF or journal before completion), the endpoint returns 404 with a JSON body:

Document Not Found

Handling Errors

Next Steps

Webhooks

Set up automated document processing

Reminders & Expiration

Manage unsigned documents

API Reference

Download endpoint documentation

Creating Documents

Learn document creation basics