Skip to content

Envelopes API

Envelope (signing workflow) management endpoints.

List Envelopes

Get all envelopes.

http
GET /api/v1/envelopes
Authorization: Bearer <access_token>

Query Parameters

ParameterTypeDescription
limitintItems per page (default: 20)
cursorstringPagination cursor
statusstringFilter by status
folderstringinbox, sent, drafts, completed

Response (200 OK)

json
{
  "success": true,
  "data": [
    {
      "id": "env-uuid",
      "name": "Contract Signing",
      "document": {
        "id": "doc-uuid",
        "name": "Contract 2026"
      },
      "status": "in_progress",
      "routing_type": "sequential",
      "recipients": [
        {
          "id": "rec-uuid",
          "email": "signer@example.com",
          "name": "Jane Smith",
          "role": "signer",
          "status": "pending"
        }
      ],
      "sent_at": "2026-01-24T10:00:00Z",
      "expires_at": "2026-02-24T10:00:00Z",
      "created_at": "2026-01-24T09:00:00Z"
    }
  ],
  "meta": {
    "limit": 20,
    "has_more": false
  }
}

Create Envelope

Create a new envelope.

http
POST /api/v1/envelopes
Authorization: Bearer <access_token>

Request

json
{
  "document_id": "doc-uuid",
  "name": "Contract Signing",
  "message": "Please sign this contract",
  "routing_type": "sequential",
  "expires_in_days": 30,
  "recipients": [
    {
      "email": "signer@example.com",
      "name": "Jane Smith",
      "role": "signer",
      "routing_order": 1
    },
    {
      "email": "approver@example.com",
      "name": "Bob Johnson",
      "role": "approver",
      "routing_order": 2
    }
  ],
  "fields": [
    {
      "type": "signature",
      "recipient_index": 0,
      "page": 1,
      "x": 100,
      "y": 500,
      "width": 200,
      "height": 50,
      "required": true
    },
    {
      "type": "date",
      "recipient_index": 0,
      "page": 1,
      "x": 100,
      "y": 560,
      "width": 100,
      "height": 20
    }
  ]
}

Response (201 Created)

json
{
  "success": true,
  "data": {
    "id": "env-uuid",
    "name": "Contract Signing",
    "status": "draft",
    "created_at": "2026-01-24T10:00:00Z"
  }
}

Get Envelope

Get envelope details.

http
GET /api/v1/envelopes/:id
Authorization: Bearer <access_token>

Response (200 OK)

json
{
  "success": true,
  "data": {
    "id": "env-uuid",
    "name": "Contract Signing",
    "document": {
      "id": "doc-uuid",
      "name": "Contract 2026",
      "page_count": 5
    },
    "status": "in_progress",
    "routing_type": "sequential",
    "message": "Please sign this contract",
    "recipients": [
      {
        "id": "rec-uuid",
        "email": "signer@example.com",
        "name": "Jane Smith",
        "role": "signer",
        "routing_order": 1,
        "status": "completed",
        "signed_at": "2026-01-24T11:00:00Z"
      },
      {
        "id": "rec-uuid-2",
        "email": "approver@example.com",
        "name": "Bob Johnson",
        "role": "approver",
        "routing_order": 2,
        "status": "pending"
      }
    ],
    "fields": [
      {
        "id": "field-uuid",
        "type": "signature",
        "page": 1,
        "x": 100,
        "y": 500,
        "status": "completed"
      }
    ],
    "sent_at": "2026-01-24T10:00:00Z",
    "expires_at": "2026-02-24T10:00:00Z",
    "created_at": "2026-01-24T09:00:00Z"
  }
}

Send Envelope

Send envelope to recipients.

http
POST /api/v1/envelopes/:id/send
Authorization: Bearer <access_token>

Response (200 OK)

json
{
  "success": true,
  "data": {
    "id": "env-uuid",
    "status": "sent",
    "sent_at": "2026-01-24T10:00:00Z"
  }
}

Void Envelope

Cancel an envelope.

http
POST /api/v1/envelopes/:id/void
Authorization: Bearer <access_token>

Request

json
{
  "reason": "Contract terms changed"
}

Response (200 OK)

json
{
  "success": true,
  "data": {
    "id": "env-uuid",
    "status": "voided",
    "voided_at": "2026-01-24T12:00:00Z"
  }
}

Download Signed Document

Download the completed signed document.

http
GET /api/v1/envelopes/:id/download
Authorization: Bearer <access_token>

Response

Returns the signed PDF with embedded signatures.

Envelope Status

StatusDescription
draftNot yet sent
sentSent to recipients
in_progressSigning in progress
completedAll signatures collected
declinedRecipient declined
voidedCancelled by sender
expiredPast expiration date

Recipient Roles

RoleDescription
signerMust sign the document
approverMust approve (no signature)
ccReceives copy only
in_personSigns in person with host

Routing Types

TypeDescription
sequentialSign in order
parallelAny order
hybridMixed order

GSign Digital Signature Platform