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, andemailSubject
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/uploadendpoint.
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:
| Field | Type | Description |
|---|---|---|
taggingOrganizationId | string | Organization ID assigned to tag the document |
taggingUserId | string | User ID assigned to tag the document |
notifyParticipants | object | Notification preferences (e.g., { "email": true }) |
signingOrder | boolean | Enable sequential signing order |
referenceId | string | Your organization's unique reference ID for this transaction |
personalizedMessage | string | Custom email message body included in the signing invitation email |
emailSubject | string | Custom email subject line for signer notification emails (max 255 chars). If omitted, the system default subject is used. |
evault | string | eVault provider: eOriginal, SigniaDocs, or MERS |
sendFinalEnoteTo | array | List 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:
- Uploaded a document for signing.
- Created a transaction with participants and tags.
- Retrieved transaction details.
- Downloaded completed documents once signing was done.
💬 Need Help?
Contact the Stewart Sign Support Team for technical assistance or integration guidance.