Skip to main content

Create Your First eSignature Transaction

The Stewart Sign API allows you to easily create, manage, and send eSignature transactions to one or more recipients.
This guide walks you through the basic steps to create your first eSignature transaction, from uploading documents to creating the transaction.


Overview

An eSignature transaction represents a digital signing session where participants review and sign one or more documents.
Each transaction includes:

  • One or more documents (PDF files)
  • One or more participants (signers)
  • Optional tags for signatures, initials, and dates
  • Metadata such as status, referenceId, personalizedMessage, and emailSubject

Prerequisites

Before creating your first transaction, ensure you have:

  • A valid Bearer token (JWT) for authentication.
  • At least one PDF document uploaded via the /documents/upload endpoint.

All API requests must include the following header:

Authorization: Bearer <your_access_token>
Content-Type: application/json

Step 1: Upload Your Document

First, upload your PDF file to the system.

Endpoint

POST /documents/upload

Request (multipart/form-data)

curl -X POST "https://public-api.sign.stewart.com/documents/upload"   -H "Authorization: Bearer <token>"   -F "files=@MyFile.pdf"

Successful Response

{
"data": [
{
"StoragePath": "14a00c39-af89-47ee-b26c-f0bc523c270e/MyFile.pdf",
"docId": "8d976a23-b865-4fcd-9165-ddc0aedaf614"
}
]
}

From this response, note the StoragePath (the storage path) and docId for each uploaded document — you'll need them when creating your transaction.


Step 2: Create an eSignature Transaction

Once your document is uploaded, you can create a transaction that defines participants, documents, and signing rules.

Endpoint

POST /transactions

Example Request

curl -X POST "https://public-api.sign.stewart.com/transactions"   -H "Authorization: Bearer <token>"   -H "Content-Type: application/json"   -d '{
"documents": [
{
"id": "391866a6-8ebb-4533-b6ab-c7bb4d6fbd38",
"StoragePath": "14a00c39-af89-47ee-b26c-f0bc523c270e/TiffinBillofSale.pdf",
"title": "Purchase Agreement",
"description": "Please review and sign the attached document",
"sessionType": "esign",
"readOnly": false,
"visible": true,
"order": 0,
"pages": 1,
"tags": [
{
"x": 100,
"y": 150,
"width": 150,
"height": 34,
"type": "SIGNATURETEMPLATE",
"signerId": "37da192e-6420-4b9c-9951-a979eeaf8889",
"page": 0,
"required": true
}
]
}
],
"participants": [
{
"id": "37da192e-6420-4b9c-9951-a979eeaf8889",
"email": "client@example.com",
"firstName": "John",
"lastName": "Doe",
"kbaRequired": false,
"credAnalysisRequired": false,
"order": 0,
"primary": true,
"type": "signer"
}
],
"status": "esign_pending",
"personalizedMessage": "Dear John, please review and sign your purchase agreement.",
"emailSubject": "Action Required: Your Document Is Ready to Sign",
"notifyParticipants": { "email": true }
}'

Additional Request Body Fields

The POST /transactions endpoint accepts several additional optional fields:

FieldTypeDescription
taggingOrganizationIdstringOrganization ID assigned to tag the document
taggingUserIdstringUser ID assigned to tag the document
notifyParticipantsobjectNotification preferences (e.g., { "email": true })
signingOrderbooleanEnable sequential signing order
referenceIdstringYour organization's unique reference ID for this transaction
personalizedMessagestringCustom email message body included in the signing invitation email
emailSubjectstringCustom email subject line for signer notification emails (max 255 chars). If omitted, the system default subject is used.
evaultstringeVault provider: eOriginal, SigniaDocs, or MERS
sendFinalEnoteToarrayList of eVault providers to send the final eNote to

Example Successful Response

{
"documents": [
{
"title": "Purchase Agreement",
"StoragePath": "14a00c39-af89-47ee-b26c-f0bc523c270e/TiffinBillofSale.pdf",
"sessionType": "esign"
}
],
"participants": [
{
"id": "37da192e-6420-4b9c-9951-a979eeaf8889",
"email": "client@example.com",
"firstName": "John",
"lastName": "Doe"
}
]
}

Step 3: Retrieve Transaction Details

You can fetch a transaction by its ID to verify details or monitor its status.

Endpoint

GET /transactions/{id}

Example

curl -X GET "https://public-api.sign.stewart.com/transactions/391866a6-8ebb-4533-b6ab-c7bb4d6fbd38"   -H "Authorization: Bearer <token>"

Step 4: Download Completed Documents

Once the signing process is complete, download all documents as a ZIP file.

Endpoint

GET /transactions/{id}/documents?type=completed

Example

curl -X GET "https://public-api.sign.stewart.com/transactions/391866a6-8ebb-4533-b6ab-c7bb4d6fbd38/documents?type=completed"   -H "Authorization: Bearer <token>"   --output signed-documents.zip

Summary

You’ve now created your first eSignature transaction!
Here’s what we accomplished:

  1. Uploaded a document for signing.
  2. Created a transaction with participants and tags.
  3. Retrieved transaction details.
  4. Downloaded completed documents once signing was done.

💬 Need Help?

Contact the Stewart Sign Support Team for technical assistance or integration guidance.