Skip to main content

Overview

This guide will walk you through the process of sending documents to one or more signers for their signatures using our API.

Steps

1

Upload Documents

First, upload the documents that need to be signed. You can upload multiple documents in various formats such as PDF, DOCX, etc.
Request
POST /files/upload
Content-Type: multipart/form-data

Content-Disposition: form-data; filename="document.pdf"
Content-Type: application/pdf

<FILE_CONTENTS>
Response
{
    "fileId": "51400d7a-4f34-4844-9138-46a365130f97",
    "name": "document.pdf",
    "timeCreated": "2025-11-06T16:07:16.1913089Z",
    "fileName": "document.pdf",
    "type": "temporary"
}
Make sure to store the returned fileId for use in next steps.
See the Files upload API for more information.
2

Add Package

Next, create a signing package by providing details such as the package name, description, sign by date, signers, and documents.
Request
POST /packages/add
{
    "name": "New Package",
    "timeSignBy": "2025-12-31T23:59:59Z",
    "type": "concurrent",
    "signers": [
        {
            "firstName": "Signer",
            "lastName": "One",
            "email": "signer.one@example.com"
        }
    ],
    "documents": [
        {
            "fileName": "document.pdf",
            "fileId": "51400d7a-4f34-4844-9138-46a365130f97"
        }
    ],
    "returnPackage": false
}
Make sure you reference the correct fileId obtained from the document upload step.
Response
{
    "packageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "package": null,
}
Make sure to store the returned packageId for use in next steps.
See the Packages add API for more information.
3

Check Package Status

You can check the status of the package at any time using the package ID.
This step is useful for tracking the progress of the signing process if you are not using webhooks.
Request
GET  /packages/{packageId}/status
Response
{
    "packageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "New Package",
    "type": "concurrent",
    "state": "executed",
    "documents": [
        {
            "documentId": "f3223ba8-ed0e-44eb-bee3-e99b03ff1b1f",
            "revisions": [
                {
                "revisionId": "4ee3d092-a390-4459-b5e1-753575d66af9",
                "signerId": "30d4193b-81d6-463e-a861-4e272c324991"
                }
            ]
        }
    ],
    "signers": [
        {
        "signerId": "30d4193b-81d6-463e-a861-4e272c324991",
        "firstName": "signer",
        "lastName": "one",
        "email": "signer.one@syngrafii.com"
        }
    ]
}
The state field indicates the current status of the package. Once all signers have signed their documents, the state will be executed.
See the Packages status API for more information.
4

Download Signed Documents

After all signers have completed signing, you can download the signed documents.
Request
GET /packages/{packageId}/documents/{documentId}/pdf/executed/download
Use the package status endpoint from the previous step to retrieve the document IDs of the signed documents to download.
See the Packages download API for more information.